Optimum POSAPI-documentatie Introductie openapi.json Uitproberen optimumpos.cloud

Optimum POS · Kassaserver

API-documentatie

Met deze REST-API praten alle schermen van Optimum POS (kassa, tablets aan tafel, keukenscherm, klantscherm) met de kassaserver in de zaak. Dezelfde API kun je gebruiken voor koppelingen: een eigen bestelapp, een kiosk, een dashboard of een boekhoudexport.

Basisadres
http://<kassa-pc>:4000/api

De server draait lokaal in de zaak, dus de kassa blijft ook zonder internet werken.

Formaat
application/json

Bedragen in centen (1250 = € 12,50), datums als JJJJ-MM-DD.

Omvang
656 routes

In 86 groepen. Versie 0.1.21.

Liever direct proberen? In de interactieve documentatie (Swagger) kun je met een pincode aanmelden en elke route uitvoeren. De ruwe specificatie staat in openapi.json (te laden in Postman of Insomnia).

Nieuw met Optimum POS? Lees eerst de introductie: wat het kassasysteem kan en hoe het zich verhoudt tot andere systemen.

Snel beginnen

Een complete ronde in vier stappen: aanmelden, een bestelling openen, een product toevoegen en contant afrekenen.

  1. Aanmelden met een pincode

    Je krijgt een token terug. Stuur dat bij elke volgende vraag mee.

    curl -X POST http://kassa:4000/api/aanmelden \
      -H "Content-Type: application/json" \
      -d '{"pincode": "1234"}'
  2. Een bestelling openen

    Aan een tafel (tafelId) of zonder tafel, bijvoorbeeld voor afhalen ("type": "afhalen").

    curl -X POST http://kassa:4000/api/bestellingen \
      -H "Authorization: Bearer <token>" \
      -H "Content-Type: application/json" \
      -d '{"type": "afhalen"}'
  3. Producten toevoegen

    De artikelId's staan in GET /api/catalogus. De prijs bepaalt de server, nooit de app.

    curl -X POST http://kassa:4000/api/bestellingen/<id>/regels \
      -H "Authorization: Bearer <token>" \
      -H "Content-Type: application/json" \
      -d '{"regels": [{"artikelId": "<artikelId>", "aantal": 2}]}'
  4. Afrekenen

    Het openstaande bedrag staat in de bestelling (openstaand, in centen).

    curl -X POST http://kassa:4000/api/bestellingen/<id>/afrekenen \
      -H "Authorization: Bearer <token>" \
      -H "Content-Type: application/json" \
      -d '{"betalingen": [{"methode": "contant", "bedrag": 750}]}'

Aanmelden en token

Medewerkers melden zich aan met hun pincode (4 tot 8 cijfers), net als op de kassa. POST /api/aanmelden geeft een token, de medewerker, zijn rol en zijn rechten terug.

Stuur het token mee in de kop van elke vraag:

Authorization: Bearer 9f1c0d…
  • Een token is 8 uur geldig (een dienst). Daarna, of na een herstart van de kassaserver, volgt 401: meld dan opnieuw aan.
  • POST /api/afmelden maakt het token direct ongeldig.
  • Zonder aanmelden werken alleen: POST /api/aanmelden, GET /api/gezondheid, het in- en uitklokken met pincode en deze documentatie.

Rollen en rechten

Elke medewerker heeft een rol: bediening, manager of beheerder. Wat een rol mag, stelt de beheerder per zaak in (Instellingen → Rechten); hieronder de standaard. De beheerder mag altijd alles. Personeel en rechten beheren kan alleen de beheerder.

Routes onder /api/beheer/… vragen een recht of de rol beheerder. Bij elke route staat onder Toegang welk recht nodig is. Zonder dat recht volgt 403 met een leesbare melding.

RechtGroepBedieningManagerBeheerder
storno
Regels schrappen na bestellen (storno)
Bestellen✓✓✓
korting
Korting geven
Bestellen–✓✓
korting_weghalen
Korting weghalen
Bestellen–✓✓
uitverkocht
Product op "op" zetten (uitverkocht)
Bestellen✓✓✓
bon_kopie
Kopie van een bon printen
Bonnen✓✓✓
retour
Retour doen (creditbon)
Bonnen–✓✓
onbetaald
Afsluiten zonder betaling (gast vertrokken zonder te betalen)
Bonnen–✓✓
bon_verbeteren
Prijs van een bon verbeteren (nieuwe bon met de juiste prijs)
Bonnen–✓✓
op_rekening
Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)
Bonnen–✓✓
x_rapport
Tussenstand (X-rapport) bekijken
Rapporten en kas✓✓✓
dag_afsluiten
Dag afsluiten (Z-rapport)
Rapporten en kas–✓✓
omzet_periode
Omzet per periode
Rapporten en kas–✓✓
kassalade
Kassalade beheren (geld in/uit, lade openen, startgeld)
Rapporten en kas–✓✓
cadeaubonnen_beheren
Cadeaubonnen beheren (saldo corrigeren, blokkeren)
Rapporten en kas–✓✓
reviews_beantwoorden
Reviews lezen en beantwoorden (Google, Trustpilot)
Rapporten en kas–✓✓
klanten_beheren
Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)
Rapporten en kas–✓✓
logboek
Logboek bekijken
Rapporten en kas–✓✓
voorraad_beheren
Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)
Instellingen–✓✓
producten_beheren
Producten, groepen en keuzeopties beheren
Instellingen––✓
plattegronden_beheren
Plattegronden en tafels beheren
Instellingen––✓
instellingen_beheren
Zaak, betalen en printers instellen
Instellingen––✓
werktijden_beheren
Werktijden bekijken en aanpassen
Instellingen––✓
signalering_instellen
Signalering instellen (fraude en afwijkingen: drempels en meldingen)
Instellingen–✓✓
ritplanning_instellen
Ritplanning instellen (adressen per rit, reistijd, tijdvenster, snelheid)
Instellingen–✓✓

Fouten

Een fout is altijd JSON met een leesbare Nederlandse melding in fout, die je direct op het scherm kunt tonen:

{ "fout": "Bestelling niet gevonden." }
StatusBetekenis
400Ongeldige invoer (verkeerd veld, onmogelijk aantal, verminkte id).
401Niet (meer) aangemeld: geen of een verlopen token.
403Aangemeld, maar deze rol heeft het recht niet.
404Niet gevonden (bestelling, tafel, product …).
409Kan nu niet, bijvoorbeeld: bestelling al afgerekend, voorraad staat uit. Soms met een code: "AYCE_REGEL" bij …/bestellen betekent dat een all-you-can-eat-regel (tijd, rondelimiet, wachttijd) het tegenhoudt; opnieuw versturen met { "negeerRegels": true } bestelt toch.
502De betaalterminal of een andere externe dienst gaf een fout.
503Tijdelijk niet beschikbaar, bijvoorbeeld tijdens het omzetten van de database ("code": "DATABASE_OMZETTEN"). Probeer het over een minuut opnieuw.

Realtime (WebSocket)

Open een WebSocket naar ws://<kassa-pc>:4000/ws om meteen te horen wanneer er iets verandert. De server stuurt eerst {"soort": "welkom"} en daarna een melding bij elke wijziging. Een melding bevat alleen wat er veranderd is; haal de gegevens daarna op via de REST-API.

soortExtra veldenBetekenis
tafels_gewijzigd–

Er is iets aan de tafels veranderd (geopend, verplaatst, afgerekend). Haal de plattegrond opnieuw op.

bestelling_gewijzigdbestellingId

Een bestelling is gewijzigd (regels, korting, gasten …). Haal GET /api/bestellingen/{bestellingId} opnieuw op als je die toont.

bestelling_afgerekendbestellingId

Een bestelling is afgerekend en gesloten.

fiscale_storingmelding

De fiscale module (België: zwarte doos/FDM) meldt een storing. melding bevat de tekst voor het scherm.

catalogus_gewijzigd–

Producten, groepen, opties of voorraad zijn gewijzigd. Haal GET /api/catalogus opnieuw op.

keuken_gewijzigd–

Er staat iets nieuws (of iets minder) op het keukenscherm.

rechten_gewijzigd–

De rechten per rol zijn aangepast. Haal GET /api/rechten opnieuw op.

keuken_klaarbestellingId waar station

Keuken of bar meldt een bestelling klaar; waar is de tafel of het bonnummer, station de keuken of bar.

klantscherm_gewijzigd–

Een kassa heeft een nieuw beeld voor een klantscherm gestuurd. Een klantscherm haalt dan GET /api/klantscherm/{code} (zijn eigen koppelcode) opnieuw op.

thuisbezorgdgebeurtenis tekst bestellingId geluid
webshopgebeurtenis tekst bestellingId geluid
bezorgplatformgebeurtenis tekst bestellingId geluid
apicbasetekst
signaleringnieuw aantal
gang_gevraagdbestellingId gang waar station
vinifytekst
oproepoproep
oproep_statusid status
telefonietekst
printwachtrij_gewijzigd–

Een werkbon kon niet geprint worden (printer uit), is alsnog geprint of is weggegooid. Haal GET /api/printwachtrij opnieuw op.

ladeopen seconden tekst
haccp_gewijzigd–
tap_gewijzigd–
tablet_schermtabletId
tablet_gewijzigd–
oproep_gewijzigd–
kiosk_gewijzigd–
bezorgers_gewijzigd–
te_laatbestellingId nieuw

Offline en dubbel versturen

Tablets kunnen even geen wifi hebben. Zodat een bestelling dan niet dubbel binnenkomt:

  • POST /api/bestellingen accepteert een eigen id (UUID) die de tablet al gebruikte. Komt dezelfde id nog eens binnen, dan krijg je de bestaande bestelling terug.
  • POST /api/bestellingen/{id}/regels accepteert een sleutel: dezelfde sleutel twee keer wordt maar één keer verwerkt.
  • Een POST /api/bestellingen/{id}/bestellen die offline in de wachtrij stond, wordt achteraf verstuurd met { "negeerRegels": true }: de gasten hebben al besteld, dus all-you-can-eat-limieten houden hem dan niet meer tegen.

Algemeen

Gezondheid en status van de kassaserver.

GET/api/gezondheidopenbaar#

Toegang: Openbaar: werkt zonder aanmelden.

Toegang

Openbaar: werkt zonder aanmelden.

Antwoord 200

26 velden tonen
VeldTypeUitleg
schaduwobject
schaduw.op *tekst of null
schaduw.verkopen *ja/nee
licentie *object
licentie.status *tekst

Een van: "geblokkeerd" "actief" "waarschuwing"

licentie.tekst *tekst of null
licentie.per *tekst of null
licentie.geldigTot *tekst of null
licentie.soort *tekst of null
licentie.meldingen *lijst van object
licentie.meldingen[].status *tekst

Een van: "geblokkeerd" "waarschuwing"

licentie.meldingen[].tekst *tekst
licentie.meldingen[].per *tekst of null
updatemeldingja/nee
updateobject of null
update.versie *tekst
update.notitietekst
database *tekst

Een van: "extern" "intern" "mysql"

taaltekst
ok *ja/nee
versie *tekst
vestiging *tekst
land *tekst

Een van: "NL" "BE"

schermen *getal
fiscaalVerplicht *ja/nee
thema *tekst

Een van: "donker" "licht"

Foutmeldingen

423

Fout.

Voorbeeld (curl)
curl "http://kassa:4000/api/gezondheid"

Documentatie

Deze API-documentatie zelf (OpenAPI, Swagger UI en de leesbare HTML-versie) en het database-schema (ERD).

GET/api/docsopenbaar#

Swagger UI: de leesbare API-documentatie

Toegang

Openbaar: werkt zonder aanmelden.

Antwoord 200 · text/html

tekst

Voorbeeld (curl)
curl "http://kassa:4000/api/docs"
GET/api/docs/{bestand}openbaar#

Bestanden van Swagger UI (css/js), uit swagger-ui-dist, en mermaid.min.js voor het ERD

Toegang

Openbaar: werkt zonder aanmelden.

Parameters

NaamWaarTypeUitleg
bestand *padtekst

Antwoord 200 · application/javascript

bestand

Foutmeldingen

404

Bestand niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/docs/<bestand>"
GET/api/docs/erdopenbaar#

ERD (database-schema): diagram van alle tabellen en relaties, live uit de database

Toegang

Openbaar: werkt zonder aanmelden.

Antwoord 200 · text/html

tekst

Voorbeeld (curl)
curl "http://kassa:4000/api/docs/erd"
GET/api/docs/erd.mmdopenbaar#

ERD als Mermaid-tekst (erDiagram), live uit de database die de kassa nu gebruikt

?sleutels=1: per tabel alleen de PK-, FK- en UK-kolommen.

Toegang

Openbaar: werkt zonder aanmelden.

Parameters

NaamWaarTypeUitleg
sleutelszoekterm (?…)tekst

Antwoord 200 · text/plain

tekst

Voorbeeld (curl)
curl "http://kassa:4000/api/docs/erd.mmd"
GET/api/documentatieopenbaar#

Leesbare HTML-documentatie (huisstijl Optimum POS); hetzelfde bestand kan op de website

Toegang

Openbaar: werkt zonder aanmelden.

Antwoord 200 · text/html

tekst

Foutmeldingen

404

api-documentatie.html ontbreekt. Draai "npm run api:docs".

Voorbeeld (curl)
curl "http://kassa:4000/api/documentatie"
GET/api/openapi.jsonopenbaar#

De OpenAPI-specificatie (JSON)

Toegang

Openbaar: werkt zonder aanmelden.

Antwoord 200

alles

Foutmeldingen

404

openapi.json ontbreekt. Draai "npm run api:docs".

Voorbeeld (curl)
curl "http://kassa:4000/api/openapi.json"

Aanmelden

Aanmelden met pincode en afmelden. Geeft het token voor alle andere routes. Ook: nog aangemeld (sessie) en de taal van de medewerker.

POST/api/aanmeldenopenbaar#

Toegang: Openbaar: werkt zonder aanmelden.

Toegang

Openbaar: werkt zonder aanmelden.

Body (JSON)

VeldTypeUitleg
pincodetekst

Antwoord 200

VeldTypeUitleg
gebruiker *object
gebruiker.id *tekst
gebruiker.naam *tekst
gebruiker.rol *tekst

Een van: "bediening" "manager" "beheerder"

gebruiker.taal *tekst of null

Een van: "id" "nl" "am" "ar" "ary" "ary_latn" "bg" "ckb" "cs" "de" "en" "es" "fa" "fr" "hi" "hr" "hu" "it" "ku" "lt" "lv" "pap" "pl" "prs" "ps" "pt" "rif" "ro" "ru" "sk" "so" "sq" "sr" "srn" "syr" "ti" "tr" "uk" "ur" "vi" "zgh" "zh"

vestiging *Vestiging
fiscaalVerplicht *ja/nee
rechten *lijst van tekst
token *tekst

Foutmeldingen

400

Voer een pincode van 4 tot 8 cijfers in.

401

Onbekende pincode.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/aanmelden" \
  -H "Content-Type: application/json" \
  -d '{
  "pincode": "1234"
}'
POST/api/afmelden#

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/afmelden" \
  -H "Authorization: Bearer <token>"
POST/api/mijn-taal#

Taal van de aangemelde medewerker bewaren (vlaggetje rechtsonder naast het ©-knopje): nl, am, ar, ary, ary_…

Taal van de aangemelde medewerker bewaren (vlaggetje rechtsonder naast het ©-knopje): nl, am, ar, ary, ary_latn, bg, ckb, cs, de, en, es, fa, fr, hi, hr, hu, id, it, ku, lt, lv, pap, pl, prs, ps, pt, rif, ro, ru, sk, so, sq, sr, srn, syr, ti, tr, uk, ur, vi, zgh of zh. Na aanmelden staat de kassa dan meteen in die taal.

Body (JSON)

VeldTypeUitleg
taaltekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
taal *tekst

Foutmeldingen

400

Onbekende taal.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/mijn-taal" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "taal": "tekst"
}'
GET/api/sessie#

Nog aangemeld?

Zelfde gegevens als bij aanmelden, zonder nieuw token. De kassa gebruikt dit na het wisselen van taal (de pagina laadt dan opnieuw).

Antwoord 200

VeldTypeUitleg
gebruiker *object
gebruiker.id *tekst
gebruiker.naam *tekst
gebruiker.rol *tekst

Een van: "bediening" "manager" "beheerder"

gebruiker.taal *tekst of null

Een van: "id" "nl" "am" "ar" "ary" "ary_latn" "bg" "ckb" "cs" "de" "en" "es" "fa" "fr" "hi" "hr" "hu" "it" "ku" "lt" "lv" "pap" "pl" "prs" "ps" "pt" "rif" "ro" "ru" "sk" "so" "sq" "sr" "srn" "syr" "ti" "tr" "uk" "ur" "vi" "zgh" "zh"

vestiging *Vestiging
fiscaalVerplicht *ja/nee
rechten *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/sessie" \
  -H "Authorization: Bearer <token>"

Catalogus

Producten, groepen en opties zoals de kassa ze toont.

POST/api/artikelen/{id}/favoriet#

Product als favoriet (snelknop) aan- of uitzetten, vanaf het bestelscherm (lang indrukken)

Product als favoriet (snelknop) aan- of uitzetten, vanaf het bestelscherm (lang indrukken). Alleen als favorieten op "zelf kiezen" staan; recht "Producten beheren".

Toegang

Controleert daarnaast: producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
favorietalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
favoriet *ja/nee

Foutmeldingen

400

Geef aan of het een favoriet is.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/artikelen/<id>/favoriet" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "favoriet": null
}'
POST/api/artikelen/{id}/uitverkocht#

Product op "uitverkocht" zetten (of weer beschikbaar) vanaf het bestelscherm

Product op "uitverkocht" zetten (of weer beschikbaar) vanaf het bestelscherm. Mag iedereen die is aangemeld: de bediening merkt het als eerste als iets op is. Wordt gelogd; alle kassa's werken zich bij.

Toegang

Controleert daarnaast: uitverkocht (Product op "op" zetten (uitverkocht)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
uitverkochtja/nee

Antwoord 200

VeldTypeUitleg
ok *ja/nee
uitverkocht *ja/nee

Foutmeldingen

400

Geef aan of het product uitverkocht is.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/artikelen/<id>/uitverkocht" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "uitverkocht": true
}'
GET/api/catalogus#

Alles wat de kassa nodig heeft om te kunnen bestellen, in één keer

Antwoord 200

VeldTypeUitleg
groepen *lijst van object
artikelen *lijst van object
btw *lijst van object
happyhours *lijst van HappyHour
favorieten *lijst van tekst
dagdelen *lijst van Dagdeel

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/catalogus" \
  -H "Authorization: Bearer <token>"
GET/api/tafels#

Tafelplattegrond met daarop welke tafels bezet zijn en voor hoeveel

Antwoord 200

Type: lijst van object

VeldTypeUitleg
[].tafels *lijst van object
[].id *tekst
[].naam *tekst
[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/tafels" \
  -H "Authorization: Bearer <token>"

Bestellingen

Tafels openen, regels toevoegen, bestellen, splitsen en verplaatsen.

POST/api/bestellingen#

Opent een nieuwe bestelling, of geeft de lopende bestelling van de tafel terug

Opent een nieuwe bestelling, of geeft de lopende bestelling van de tafel terug. Met nieuweGroep: altijd een nieuwe groep aan de tafel erbij.

Body (JSON)

VeldTypeUitleg
tafelIdtekst
typetekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

gastengetal
nieuweGroepja/nee
groepNaamtekst
idtekst

Offline aangemaakt op de tablet: de id die de tablet al gebruikte.

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Onbekende soort bestelling.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Tafel niet gevonden.

409

Deze bestelling bestaat al bij een andere zaak.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "tafelId": "3f2c9a1e-…",
  "type": "ter_plaatse",
  "gasten": 1,
  "nieuweGroep": true
}'
GET/api/bestellingen-zonder-tafel#

Open bestellingen zonder tafel (snelle verkoop aan de balie, afhalen), zodat ze op het tafelscherm terug te…

Open bestellingen zonder tafel (snelle verkoop aan de balie, afhalen), zodat ze op het tafelscherm terug te vinden zijn. Retouren niet.

Antwoord 200

lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/bestellingen-zonder-tafel" \
  -H "Authorization: Bearer <token>"
GET/api/bestellingen/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/bestellingen/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/bestellingen/{id}/afroepen#

Volgende gang afroepen: de keuken krijgt een bon "AFROEP GANG 2" met wat er nu gemaakt moet worden

Volgende gang afroepen: de keuken krijgt een bon "AFROEP GANG 2" met wat er nu gemaakt moet worden. Met gang: die gang (en eerdere wachtende).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
ganggetal

Antwoord 200

36 velden tonen
VeldTypeUitleg
gang *getal
afgeroepen *getal
printFouten *lijst van tekst
werkbonnen *lijst van object
werkbonnen[].printer *tekst
werkbonnen[].regels *getal
zonderPrinter *lijst van tekst
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Gang … wacht niet.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • De database is niet bijgewerkt. Draai npm run db:migrate (migratie 016).
  • Er wacht geen gang meer.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/afroepen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "gang": 1
}'
POST/api/bestellingen/{id}/apart/terug#

Apart afrekenen annuleren (migratie 131): de regels gaan terug naar de rekening waar ze uit kwamen (zonder …

Apart afrekenen annuleren (migratie 131): de regels gaan terug naar de rekening waar ze uit kwamen (zonder event bij de zwarte doos, want er werd ook niets verplaatst). Alleen zolang er op het aparte deel nog niets betaald is.

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/apart/terug" \
  -H "Authorization: Bearer <token>"
POST/api/bestellingen/{id}/bestellen#

"Bestellen": nieuwe regels gaan naar de keuken/bar en krijgen de status besteld

"Bestellen": nieuwe regels gaan naar de keuken/bar en krijgen de status besteld. Daarna kunnen ze niet meer zomaar weg - een annulering wordt dan een storno, en die blijft zichtbaar in het journaal.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
negeerRegelsalles

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/bestellen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "negeerRegels": null
}'
POST/api/bestellingen/{id}/gasten#

Aantal personen van een groep (bestelling) wijzigen

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
gastengetal

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Aantal personen moet tussen 1 en 99 liggen.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Open bestelling niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/gasten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "gasten": 1
}'
POST/api/bestellingen/{id}/groepnaam#

Naam van een groep aan de tafel wijzigen ('' = weer automatisch "groep 2")

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
naamtekst

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Open bestelling niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/groepnaam" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4"
}'
POST/api/bestellingen/{id}/korting#

Korting geven (manager/beheerder): op één regel of op de hele bon, als percentage of vast bedrag, met een r…

Korting geven (manager/beheerder): op één regel of op de hele bon, als percentage of vast bedrag, met een reden. De korting wordt een eigen regel met negatieve prijs per btw-tarief, zodat totaal en btw altijd kloppen.

Toegang

Controleert daarnaast: korting (Korting geven).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
regelIdtekst
procentgetal
bedraggetal
redentekst

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Mogelijke meldingen:

  • Geef een reden voor de korting.
  • Kies een percentage óf een bedrag.
  • Het percentage moet tussen 0 en 100 liggen.
  • Vul een geldig kortingsbedrag in.
  • De korting is hoger dan het bedrag.
  • De korting is te klein.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Mogelijke meldingen:

  • Bestelling niet gevonden.
  • Regel niet gevonden.
409

Mogelijke meldingen:

  • De database is niet bijgewerkt. Draai npm run db:migrate (migratie 017).
  • Deze bestelling is al afgerekend.
  • Er is al (deels) betaald; korting kan dan niet meer.
  • Op wegwerptoeslag of statiegeld kan geen korting.
  • Op een cadeaubon kan geen korting.
  • Op deze regel staat al korting. Haal die eerst weg.
  • Er is niets om korting op te geven.
  • Er staat al zoveel korting op de bon dat deze korting niet meer past.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/korting" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regelId": "3f2c9a1e-…",
  "procent": 1,
  "bedrag": 1250,
  "reden": "tekst"
}'
POST/api/bestellingen/{id}/leeg-sluiten#

Een lege bestelling zonder tafel weggooien (snelle verkoop geopend en toch niets verkocht)

Een lege bestelling zonder tafel weggooien (snelle verkoop geopend en toch niets verkocht). Alleen als er niets op staat en niets betaald is. Met ookTafel ook aan een tafel ("Tafel vrijgeven": gasten weg zonder bestellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
ookTafelja/nee

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Deze bestelling is niet leeg en blijft open.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/leeg-sluiten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "ookTafel": true
}'
POST/api/bestellingen/{id}/regels#

Regels toevoegen

De prijs wordt op de server bepaald, nooit door de client.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
regelslijst van NieuweRegel
sleuteltekst

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldige regels.
  • Geen regels ontvangen.
  • Ongeldig aantal (meer dan 0, hooguit …).
  • Kies een stoel van 1 tot 99.
  • Vul een geldige prijs in.
  • "…" is op (voorraad 0). Kies iets anders.
  • Etiketten scannen staat uit (Instellingen → Weegschaal).
  • Dit etiket hoort bij "…", niet bij dit product.
  • Dit product bestaat niet meer. Vernieuw het scherm en kies opnieuw.
  • De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 025).
401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Deze bestelling is al afgerekend.
  • Deze bestelling is net afgerekend. Open de tafel opnieuw.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/regels" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regels": [
    {
      "artikelId": "3f2c9a1e-…",
      "aantal": 1,
      "optieIds": [
        "tekst"
      ],
      "gang": 1,
      "opmerking": "tekst",
      "menu": {
        "keuzes": []
      }
    }
  ],
  "sleutel": "tekst"
}'
DELETE/api/bestellingen/{id}/regels/{regelId}#

Regel verwijderen (nog niet besteld) of storneren (al naar de keuken)

Toegang

Controleert daarnaast: korting_weghalen (Korting weghalen), storno (Regels schrappen na bestellen (storno)).

Parameters

NaamWaarTypeUitleg
id *padtekst
regelId *padtekst

Body (JSON)

VeldTypeUitleg
redentekst

Antwoord 200

Bestelling of object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Regel niet gevonden.

409

Mogelijke meldingen:

  • Wegwerptoeslag en statiegeld gaan vanzelf mee met de producten. Haal het product weg, of zet de bon op ter plaatse.
  • Dit hoort bij een menu. Tik op de menuregel om het hele menu weg te halen.
Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/bestellingen/<id>/regels/<regelId>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "reden": "tekst"
}'
POST/api/bestellingen/{id}/regels/{regelId}/spv#

SPV inwisselen (migratie 131; UC271): de gast betaalt (een deel) met een single purpose voucher voor een be…

SPV inwisselen (migratie 131; UC271): de gast betaalt (een deel) met een single purpose voucher voor een bepaald product of menu. De kassa zet dat product met een negatief aantal op de rekening (zelfde prijs en btw, bij een menu met de onderdelen); in België gaat die regel bij de verkoop mee als VOUCHER. Niet naar de keuken.

Parameters

NaamWaarTypeUitleg
id *padtekst
regelId *padtekst

Body (JSON)

VeldTypeUitleg
aantalalles

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Hoeveel vouchers? Een heel aantal.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/regels/<regelId>/spv" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aantal": null
}'
POST/api/bestellingen/{id}/regels/verdeel#

Rekening in één keer over meerdere groepen of tafels verdelen (UC242, UC4119bis): elk deel naar een bestaan…

Rekening in één keer over meerdere groepen of tafels verdelen (UC242, UC4119bis): elk deel naar een bestaande groep, een nieuwe groep aan deze tafel of een nieuwe groep aan een andere tafel. Bij de zwarte doos één tafelwissel voor alles. POST /api/bestellingen/:id/regels/verdeel { delen: [{ regels: [{ id, aantal }], naar? | nieuweGroep? | naarTafel?, groepNaam? }] }

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
delenlijst van VerplaatsBody

Antwoord 200

VeldTypeUitleg
aantal *getal
van *Bestelling
naar *lijst van Bestelling
gks2Fouttekst

Foutmeldingen

400

Mogelijke meldingen:

  • Geef 1 tot 10 delen op.
  • Apart afrekenen gaat per deel.
401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/regels/verdeel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "delen": [
    {
      "regels": [
        {}
      ],
      "naar": "tekst",
      "nieuweGroep": true,
      "groepNaam": "Tafel 4"
    }
  ]
}'
POST/api/bestellingen/{id}/regels/verplaats#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: VerplaatsBody

VeldTypeUitleg
regelslijst van object
regels[].id *tekst
regels[].aantal *getal
naartekst
nieuweGroepja/nee
groepNaamtekst
apartja/nee
naarTafeltekst

naar een nieuwe groep aan een andere tafel

Antwoord 200

VeldTypeUitleg
aantal *getal
van *Bestelling
naar *Bestelling
gks2Fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/regels/verplaats" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regels": [
    {
      "id": "3f2c9a1e-…",
      "aantal": 1
    }
  ],
  "naar": "tekst",
  "nieuweGroep": true,
  "groepNaam": "Tafel 4"
}'
POST/api/bestellingen/{id}/samenvoegen#

Rekeningen samenvoegen (UC251, UC252): alles van een of meer andere open rekeningen (ook aan andere tafels)…

Rekeningen samenvoegen (UC251, UC252): alles van een of meer andere open rekeningen (ook aan andere tafels) naar deze rekening. Bij de zwarte doos één tafelwissel voor alles. POST /api/bestellingen/:id/samenvoegen { van: [bestelling-id, ...] }

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
vanalles

Antwoord 200

VeldTypeUitleg
aantal *getal
bestelling *Bestelling
gks2Fouttekst

Foutmeldingen

400

Kies 1 tot 20 rekeningen om samen te voegen.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Mogelijke meldingen:

  • Deze rekening is niet (meer) open.
  • Op de gekozen rekeningen staat niets.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/samenvoegen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "van": null
}'
POST/api/bestellingen/{id}/verplaats#

Tafel verplaatsen of samenvoegen

Op de nieuwe tafel wordt het de volgende groep.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
tafelId *tekst of null

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Mogelijke meldingen:

  • Bestelling niet gevonden.
  • Die tafel bestaat niet (meer).
409

Deze bestelling is al afgerekend.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/verplaats" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "tafelId": "3f2c9a1e-…"
}'
GET/api/tafels/{tafelId}/bestelling#

Parameters

NaamWaarTypeUitleg
tafelId *padtekst

Antwoord 200

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/tafels/<tafelId>/bestelling" \
  -H "Authorization: Bearer <token>"
GET/api/tafels/{tafelId}/bestellingen#

Alle open groepen (rekeningen) aan een tafel

Parameters

NaamWaarTypeUitleg
tafelId *padtekst

Antwoord 200

lijst van TafelGroep

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/tafels/<tafelId>/bestellingen" \
  -H "Authorization: Bearer <token>"
POST/api/tafels/{tafelId}/verplaats#

Hele tafel verplaatsen: alle open groepen (rekeningen) van deze tafel naar een andere tafel, bv

Hele tafel verplaatsen: alle open groepen (rekeningen) van deze tafel naar een andere tafel, bv. van binnen naar het terras. Is de andere tafel bezet, dan komen de groepen erbij (samenvoegen; elke groep houdt zijn eigen rekening).

Parameters

NaamWaarTypeUitleg
tafelId *padtekst

Body (JSON)

VeldTypeUitleg
naartekst

Antwoord 200

VeldTypeUitleg
naar *object
naar.id *tekst
naar.naam *tekst
aantal *getal
samengevoegd *ja/nee

Foutmeldingen

400

Kies een andere tafel.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Die tafel bestaat niet (meer).

409

Aan deze tafel staat niets open.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tafels/<tafelId>/verplaats" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naar": "tekst"
}'

All-you-can-eat

All-you-can-eat bij een groep aan tafel: starten, aantallen wijzigen, stoppen en verspillingstoeslag.

POST/api/bestellingen/{id}/ayce#

Starten, aantallen wijzigen of stoppen

Body: { arrangementen: [{ arrangementId, volwassenen, kinderen }] }: de hele stand van deze groep; een arrangement dat er niet bij staat (of 0 + 0) stopt. Kort (zaak met één arrangement): { volwassenen, kinderen }.

Toegang

Controleert daarnaast: storno (Regels schrappen na bestellen (storno)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
arrangementenalles
volwassenenalles
kinderenalles

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldige keuze van arrangementen.
  • Per arrangement: aantal volwassenen en kinderen 0 tot 99.
  • Elk arrangement mag maar één keer in de keuze staan.
  • Aantal volwassenen en kinderen: 0 tot 99.
  • Kies per arrangement hoeveel volwassenen en kinderen.
  • Dit arrangement bestaat niet (meer). Vernieuw het scherm.
  • Vul in voor hoeveel personen.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • All-you-can-eat staat uit (Instellingen → Zaak).
  • De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 043).
  • Deze bestelling is al afgerekend.
  • Arrangement "…" bestaat niet meer; meer personen kan niet.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/ayce" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "arrangementen": null,
  "volwassenen": null,
  "kinderen": null
}'
POST/api/bestellingen/{id}/ayce/toeslag#

Verspillingstoeslag: { aantal, arrangementId?

} × de toeslag van dat arrangement.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
aantalalles
arrangementIdalles

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Mogelijke meldingen:

  • Aantal: 1 tot 99.
  • Kies bij welk arrangement de toeslag hoort.
401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Er is geen verspillingstoeslag ingesteld (Instellingen → Zaak → All-you-can-eat).
  • De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 043).
  • Deze bestelling is al afgerekend.
  • Bij deze groep loopt geen all-you-can-eat met een verspillingstoeslag.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/ayce/toeslag" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aantal": null,
  "arrangementId": null
}'

Afrekenen

Afrekenen en deelbetalingen.

POST/api/bestellingen/{id}/afrekenen#

Toegang: Controleert daarnaast: op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)), onbetaald (Afsluiten zonder betaling (gast vertrokken zonder te betalen)).

Toegang

Controleert daarnaast: op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)), onbetaald (Afsluiten zonder betaling (gast vertrokken zonder te betalen)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
betalingenlijst van object
betalingen[].methode *tekst

Een van: "contant" "pin" "bon" "online" "overig" "rekening" "maaltijdcheque" "valuta" "kamer" "onbetaald"

betalingen[].bedrag *getal
betalingen[].fooigetal
betalingen[].terminalReftekst
betalingen[].handmatigja/nee

Pin zonder de kassa: al op de terminal zelf gepind (bv. geen internet).

betalingen[].cadeaubonCodetekst

Cadeaubon met saldo: de code (migratie 026).

betalingen[].uitgevertekst

Maaltijdcheque (migratie 114): pluxee, edenred of monizze.

emailtekst

Bon per e-mail (als aan bij Instellingen → Zaak); leeg = niet mailen.

contantBevestigdja/nee

Contant € 3.000 of meer bij afhalen/bezorgen (NL, migratie 072): de medewerker bevestigde dat het mag.

rekeningKlantIdtekst

Op rekening (migratie 085): de zakelijke klant bij de betaling met methode "rekening".

printja/nee

false = geen kassabon printen (kiosk: de bon komt op de printer van de kiosk; opnieuw printen kan via Bonnen).

bonTekstgetal

kiosk: de kassabon ook als tekst terug, op deze breedte (tekens)

kamerobject

Op de kamer (hotelkoppeling, migratie 129): de gast bij de betaling met methode "kamer".

kamer.gastIdtekst
kamer.reserveringIdtekst
kamer.kamertekst
kamer.naamtekst
redentekst

Gast vertrokken zonder te betalen (methode "onbetaald", migratie 131): de reden (komt in het logboek).

Antwoord 200

object

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldige betalingen.
  • Dit e-mailadres klopt niet.
  • Geef minstens één betaling op.
  • Betaalbedragen moeten hele centen zijn.
  • Een negatief bedrag kan alleen bij een negatieve bon (statiegeld terug): één terugbetaling, contant of pin.
  • Het terug te betalen bedrag klopt niet met de bon.
  • Ongeldige fooi (hele centen, hooguit € 500).
  • Op rekening: één bedrag, zonder fooi.
  • Zonder betaling afsluiten: geen andere betaling en geen fooi.
  • Geef een reden (bv. gast vertrokken zonder te betalen).
  • Zonder betaling afsluiten kan alleen voor het hele bedrag dat nog open staat.
  • Op de kamer: één bedrag.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je hebt geen recht om op rekening af te rekenen.

404

Deze bestelling bestaat niet (meer).

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/afrekenen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "betalingen": [
    {
      "methode": "contant",
      "bedrag": 1250,
      "fooi": 1,
      "terminalRef": "tekst",
      "handmatig": true,
      "cadeaubonCode": "tekst"
    }
  ],
  "email": "gast@voorbeeld.nl",
  "contantBevestigd": true,
  "rekeningKlantId": "3f2c9a1e-…"
}'
POST/api/bestellingen/{id}/deelbetaling#

Deelbetaling (rekening splitsen): een deel van het openstaande bedrag betalen, bv

Deelbetaling (rekening splitsen): een deel van het openstaande bedrag betalen, bv. per persoon. De bestelling blijft open; de bon (met alle betalingen erop) komt bij de laatste betaling via het gewone afrekenen. Zonder deelbetalingen verandert er niets aan het afrekenen.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
betalingBetaalregel

Antwoord 200

VeldTypeUitleg
ok *ja/nee
bestelling *Bestelling

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een betaalwijze.
  • Vul een bedrag groter dan 0 in.
  • Ongeldige fooi (hele centen, hooguit € 500).
401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Deze bestelling is al afgerekend.
  • Een retour kan niet in delen.
  • Dit is het hele openstaande bedrag: reken gewoon af.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/deelbetaling" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "betaling": {
    "methode": "contant",
    "bedrag": 1250,
    "fooi": 1,
    "terminalRef": "tekst",
    "handmatig": true,
    "cadeaubonCode": "tekst"
  }
}'
POST/api/bestellingen/{id}/proforma#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: AfrekenResultaat

13 velden tonen
VeldTypeUitleg
ok *ja/nee
fouttekst
bestellingBestelling
ticketNummergetal
bonRegelslijst van tekst
bonTekstlijst van tekst

de kassabon als tekstregels (alleen met bonTekst in het verzoek)

printFouttekst
cadeaubonnenlijst van object

cadeaubonnen die met deze afrekening actief zijn geworden (migratie 026)

cadeaubonnen[].code *tekst
cadeaubonnen[].waarde *getal
mailobject

bon per e-mail: gelukt of de fout (alleen als er een adres was)

mail.verstuurd *ja/nee
mail.fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/proforma" \
  -H "Authorization: Bearer <token>"
GET/api/fiscaal/status#

Staat de fiscale module klaar?

De kassa toont dit als waarschuwing.

Antwoord 200

VeldTypeUitleg
land *tekst

Een van: "NL" "BE"

verplicht *ja/nee
gereed *ja/nee
melding *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/fiscaal/status" \
  -H "Authorization: Bearer <token>"

Productfoto’s

Foto per product: tonen (zonder aanmelden, ook voor het klantscherm), uploaden en verwijderen.

GET/api/artikelen/{id}/fotoopenbaar#

De foto van een product (jpg, png of webp)

Zonder aanmelding, zodat ook het klantscherm hem kan tonen; het adres uit de catalogus heeft ?v=<versie>, dus de browser mag hem lang bewaren. 404 = geen foto.

Toegang

Openbaar: werkt zonder aanmelden.

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

alles

Foutmeldingen

404

Dit product heeft geen foto.

Voorbeeld (curl)
curl "http://kassa:4000/api/artikelen/<id>/foto"
PUT/api/beheer/artikelen/{id}/foto#

Foto van een product zetten of vervangen

Body: { "foto": "data:image/jpeg;base64,..." } (jpg, png of webp, hooguit 512 kB; de schermen verkleinen de foto eerst).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
fotoalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
foto *getal

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/beheer/artikelen/<id>/foto" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "foto": null
}'
DELETE/api/beheer/artikelen/{id}/foto#

Foto van een product weghalen

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
was *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/artikelen/<id>/foto" \
  -H "Authorization: Bearer <token>"

Printwachtrij

Werkbonnen die niet geprint konden worden (printer uit): bekijken, opnieuw printen of weggooien.

GET/api/printwachtrij#

Werkbonnen die nog wachten op de printer (leeg = alles is geprint)

Antwoord 200

VeldTypeUitleg
bonnen *lijst van WachtendeWerkbon

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/printwachtrij" \
  -H "Authorization: Bearer <token>"
POST/api/printwachtrij/{id}/verwijderen#

Een werkbon niet meer printen (bv

de keuken heeft hem al op papier gekregen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
bonnen *lijst van WachtendeWerkbon

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Deze werkbon staat niet (meer) in de wachtrij.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/printwachtrij/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/printwachtrij/opnieuw#

Nu meteen opnieuw printen (ook bonnen waarbij de kassa na een kwartier gestopt is)

Antwoord 200

VeldTypeUitleg
bonnen *lijst van WachtendeWerkbon
gelukt *getal
mislukt *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/printwachtrij/opnieuw" \
  -H "Authorization: Bearer <token>"

Printapparaat

Android-bedienscherm met een eigen printer (Bluetooth, USB, ingebouwd): bonnen ophalen en melden of ze geprint zijn. Met de sleutel van het apparaat (header x-printapparaat), niet met een pincode.

GET/api/printapparaat/opdrachten#

Bonnen ophalen

Staat er niets klaar, dan blijft het verzoek tot 25 seconden open en komt het antwoord zodra er een bon is (?wacht=0: meteen antwoorden).

Parameters

NaamWaarTypeUitleg
wachtzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
opdrachten *lijst van ApparaatOpdracht

Foutmeldingen

401

Mogelijke meldingen:

  • Onbekend printapparaat. Meld dit apparaat opnieuw aan in Instellingen → Printers.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl "http://kassa:4000/api/printapparaat/opdrachten" \
  -H "Authorization: Bearer <token>"
POST/api/printapparaat/opdrachten/{id}#

Resultaat van een bon melden

Body: { ok: true }, of { ok: false, fout: "papier op" }.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
okja/nee
fouttekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
bekend *ja/nee

Foutmeldingen

401

Mogelijke meldingen:

  • Onbekend printapparaat.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/printapparaat/opdrachten/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "ok": true,
  "fout": "tekst"
}'

Klantscherm

Klantscherm op een los apparaat: beeld ophalen met de koppelcode, beeld versturen en loskoppelen.

GET/api/klantscherm/{code}openbaar#

Beeld voor het klantscherm met deze koppelcode (het scherm zelf haalt dit op; geen aanmelding, want er word…

Beeld voor het klantscherm met deze koppelcode (het scherm zelf haalt dit op; geen aanmelding, want er wordt niets bediend). aan = klantscherm staat aan bij de zaak; gekoppeld = er heeft al een kassa naar deze code gestuurd; beeld = wat er nu te zien is (null = rustscherm).

Toegang

Openbaar: werkt zonder aanmelden.

Parameters

NaamWaarTypeUitleg
code *padtekst

Antwoord 200

VeldTypeUitleg
aan *ja/nee
zaak *object
zaak.naam *tekst
zaak.welkom *tekst of null
gekoppeld *ja/nee
beeld *KlantBeeld

Foutmeldingen

400

Ongeldige koppelcode (6 tekens).

Voorbeeld (curl)
curl "http://kassa:4000/api/klantscherm/<code>"
PUT/api/klantscherm/{code}#

Nieuw beeld voor het klantscherm met deze koppelcode (stuurt de kassa vanzelf bij elke wijziging)

Nieuw beeld voor het klantscherm met deze koppelcode (stuurt de kassa vanzelf bij elke wijziging). Body: het beeld (fase, regels, totaal ...). 409 als het klantscherm uit staat bij de zaak.

Parameters

NaamWaarTypeUitleg
code *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldige koppelcode (6 tekens).
  • Ongeldig beeld voor het klantscherm.
401

Niet aangemeld. Voer je pincode opnieuw in.

409

Het klantscherm staat uit (Instellingen → Zaak).

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/klantscherm/<code>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
DELETE/api/klantscherm/{code}#

Klantscherm met deze koppelcode loskoppelen: het toont weer zijn koppelcode

Parameters

NaamWaarTypeUitleg
code *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
was *ja/nee

Foutmeldingen

400

Ongeldige koppelcode (6 tekens).

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/klantscherm/<code>" \
  -H "Authorization: Bearer <token>"
POST/api/klantscherm/deze-pcopenbaar#

Kassa-pc met twee schermen: het klantscherm (Instellingen → Zaak → Klantscherm) de eerste keer vanzelf aanz…

Kassa-pc met twee schermen: het klantscherm (Instellingen → Zaak → Klantscherm) de eerste keer vanzelf aanzetten. Zonder aanmelden, maar alleen vanaf de kassa-pc zelf (127.0.0.1, niet doorgestuurd): het installatiescript en de kassa op http://localhost roepen dit aan zodra ze een tweede scherm zien. Eén keer per zaak: zet iemand het daarna uit, dan blijft het uit. aan = het klantscherm staat nu aan; gezet = het is nu net vanzelf aangezet. Body { rust: true }: niemand aangemeld op de kassa (pincodescherm): het klantscherm van deze pc (code DEZEPC) toont alleen het welkom, nooit meer de rekening van daarvoor. Zet niets aan.

Toegang

Openbaar: werkt zonder aanmelden.

Body (JSON)

VeldTypeUitleg
rustalles

Antwoord 200

object

Foutmeldingen

403

Alleen vanaf de kassa-pc zelf.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/klantscherm/deze-pc" \
  -H "Content-Type: application/json" \
  -d '{
  "rust": null
}'

Pinnen

Pinbetalingen via de Pin Vandaag REST API en het beheer van terminals.

GET/api/beheer/betalen#

Instellingen voor het beheerscherm

De sleutel zelf gaat nooit naar de browser.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
testmodus *ja/nee
terminals *lijst van object
terminals[].id *tekst
terminals[].naam *tekst
terminals[].terminalId *tekst
terminals[].sleutelIngesteld *ja/nee
terminals[].sleutelEinde *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/betalen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/betalen#

apiSleutel alleen meesturen als hij verandert; '' = sleutel wissen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
apiSleuteltekst
testmodusja/nee

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Ongeldige API-sleutel.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/betalen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "apiSleutel": "tekst",
  "testmodus": true
}'
POST/api/beheer/terminals#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Type: TerminalBody

VeldTypeUitleg
naamtekst
terminalIdtekst
apiSleuteltekst

Antwoord 200

object of null

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/terminals" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "terminalId": "3f2c9a1e-…",
  "apiSleutel": "tekst"
}'
POST/api/beheer/terminals/{id}#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: TerminalBody

VeldTypeUitleg
naamtekst
terminalIdtekst
apiSleuteltekst

Antwoord 200

object

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Terminal niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/terminals/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "terminalId": "3f2c9a1e-…",
  "apiSleutel": "tekst"
}'
POST/api/beheer/terminals/{id}/test#

Verbinding testen met de opgeslagen sleutel (of met testmodus)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Terminal niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/terminals/<id>/test" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/terminals/{id}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Terminal niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/terminals/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/bestellingen/{id}/pin#

Lopende of geslaagde-maar-niet-verwerkte pinbetaling van een bestelling

Zo raakt een betaling nooit zoek als de tablet halverwege uitvalt.

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst
terminalNaam *tekst of null
bedrag *getal
status *tekst

Een van: "starten" "started" "pending" "success" "failed"

fout *tekst of null
testmodus *ja/nee
terugbetaling *ja/nee
fooi *getal
verwerkt *ja/nee
aangemaaktOp *datum/tijd

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/bestellingen/<id>/pin" \
  -H "Authorization: Bearer <token>"
POST/api/bestellingen/{id}/pin/start#

Betaling starten op de terminal, voor het openstaande bedrag plus eventuele fooi

Met bedrag (rekening splitsen): alleen dat deel, hooguit het openstaande bedrag.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
terminaltekst
fooigetal
bedraggetal

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst
terminalNaam *tekst of null
bedrag *getal
status *tekst

Een van: "starten" "started" "pending" "success" "failed"

fout *tekst of null
testmodus *ja/nee
terugbetaling *ja/nee
fooi *getal
verwerkt *ja/nee
aangemaaktOp *datum/tijd

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldige fooi (hele centen, hooguit € 500).
  • Ongeldig deelbedrag: groter dan 0 en hooguit het openstaande bedrag.
  • Kies een terminal.
401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • De pinkoppeling is niet ingesteld (Instellingen → Betalen).
  • Deze bestelling is al afgerekend.
  • Er staat niets meer open.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/pin/start" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "terminal": "tekst",
  "fooi": 1,
  "bedrag": 1250
}'
GET/api/pin/{id}#

Status van een pinbetaling (vraagt zo nodig de API)

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst
terminalNaam *tekst of null
bedrag *getal
status *tekst

Een van: "starten" "started" "pending" "success" "failed"

fout *tekst of null
testmodus *ja/nee
terugbetaling *ja/nee
fooi *getal
verwerkt *ja/nee
aangemaaktOp *datum/tijd

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Pinbetaling niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/pin/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/pin/{id}/annuleren#

Lopende betaling op de terminal afbreken

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst
terminalNaam *tekst of null
bedrag *getal
status *tekst

Een van: "starten" "started" "pending" "success" "failed"

fout *tekst of null
testmodus *ja/nee
terugbetaling *ja/nee
fooi *getal
verwerkt *ja/nee
aangemaaktOp *datum/tijd

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Pinbetaling niet gevonden.

409

Deze betaling is al gelukt en kan niet meer geannuleerd worden.

502

Annuleren lukte niet: … Breek de betaling zo nodig af op de terminal zelf.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/pin/<id>/annuleren" \
  -H "Authorization: Bearer <token>"
GET/api/pin/config#

Wat de kassa moet weten om het afrekenscherm op te bouwen (zonder sleutel)

Antwoord 200

VeldTypeUitleg
actief *ja/nee
testmodus *ja/nee
terminals *lijst van object
terminals[].id *tekst
terminals[].naam *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/pin/config" \
  -H "Authorization: Bearer <token>"
GET/api/status#

Heeft de kassaserver internet (nodig voor pinnen via de API)?

Alleen relevant als de pinkoppeling aan staat; testmodus heeft geen internet nodig.

Antwoord 200

VeldTypeUitleg
pinKoppeling *ja/nee
internet *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/status" \
  -H "Authorization: Bearer <token>"

Bonnen

Bonnen opzoeken, kopie printen, mailen en retour (creditbon).

GET/api/bonnen#

Bonnen sinds de laatste dagafsluiting (nieuwste eerst)

?periode=week geeft de laatste 7 dagen; ?zoek=123 zoekt een bonnummer, ongeacht de datum.

Parameters

NaamWaarTypeUitleg
zoekzoekterm (?…)tekst
periodezoekterm (?…)tekst

Antwoord 200

Type: lijst van object

VeldTypeUitleg
[].id *tekst
[].nummer *getal
[].soort *tekst

Een van: "verkoop" "retour" "proforma" "dagrapport"

[].totaal *getal
[].tijdstip *datum/tijd
[].gebruiker *tekst of null
[].waar *tekst
[].betaalwijzen *lijst van tekst
[].retourVan *getal of null
[].teruggegeven *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/bonnen" \
  -H "Authorization: Bearer <token>"
GET/api/bonnen/{id}#

Eén bon met de regels, wat er al is teruggegeven en een eventueel lopende retour

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

49 velden tonen
VeldTypeUitleg
retourReden *tekst of null
regels *lijst van object
regels[].eenheid"kg"
regels[].id *tekst
regels[].naam *tekst
regels[].aantal *getal
regels[].prijsIncl *getal
regels[].opties *lijst van GekozenOptie
regels[].teruggegeven *getal
regels[].korting *ja/nee
regels[].btw *tekst
betalingen *lijst van object
betalingen[].methode *tekst

Een van: "contant" "pin" "bon" "online" "overig" "rekening" "maaltijdcheque" "valuta" "kamer" "onbetaald"

betalingen[].bedrag *getal
betalingen[].fooi *getal
lopendeRetour *object of null
lopendeRetour.bestellingId *tekst
lopendeRetour.totaal *getal
lopendeRetour.pin *object of null
lopendeRetour.pin.id *tekst
lopendeRetour.pin.bestellingId *tekst
lopendeRetour.pin.terminalNaam *tekst of null
lopendeRetour.pin.bedrag *getal
lopendeRetour.pin.status *tekst

Een van: "starten" "started" "pending" "success" "failed"

lopendeRetour.pin.fout *tekst of null
lopendeRetour.pin.testmodus *ja/nee
lopendeRetour.pin.terugbetaling *ja/nee
lopendeRetour.pin.fooi *getal
lopendeRetour.pin.verwerkt *ja/nee
lopendeRetour.pin.aangemaaktOp *datum/tijd
pinKoppeling *ja/nee
pinTerminal *tekst of null

terminal waarop de bon gepind is: standaard voor de terugbetaling

contantAfronden *ja/nee
correcties *lijst van object
correcties[].van *tekst
correcties[].naar *tekst
correcties[].bedrag *getal
correcties[].tijdstip *datum/tijd
verbeterd *ja/nee
id *tekst
nummer *getal
soort *tekst

Een van: "verkoop" "retour" "proforma" "dagrapport"

totaal *getal
tijdstip *datum/tijd
gebruiker *tekst of null
waar *tekst
betaalwijzen *lijst van tekst
retourVan *getal of null
teruggegeven *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bon niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/bonnen/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/bonnen/{id}/betaalcorrectie#

België, GKS 2.0 (M132): betaalwijze van een afgerekende bon corrigeren, bv

contant aangeslagen maar gepind. { van: 'contant'|'pin', naar: 'contant'|'pin' }; het hele bedrag van die betaalwijze gaat over. De bon blijft zoals hij was; de correctie staat bij de zwarte doos en in het logboek. Recht: retour.

Toegang

Controleert daarnaast: retour (Retour doen (creditbon)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
vanalles
naaralles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
van *tekst
naar *tekst
bedrag *getal

Foutmeldingen

400

Kies de oude en de nieuwe betaalwijze.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Bon niet gevonden.

409

Mogelijke meldingen:

  • Dit kan alleen bij een verkoop.
  • Alleen een bon van na het laatste Z-rapport kan gecorrigeerd worden.
  • Op deze bon staat geen betaling met ….
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bonnen/<id>/betaalcorrectie" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "van": null,
  "naar": null
}'
POST/api/bonnen/{id}/kopie#

Kopie printen

De oorspronkelijke bon blijft zoals hij was; op de kopie staat KOPIE.

Toegang

Controleert daarnaast: bon_kopie (Kopie van een bon printen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Bon niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bonnen/<id>/kopie" \
  -H "Authorization: Bearer <token>"
POST/api/bonnen/{id}/mail#

Bon achteraf mailen (migratie 031, als "Bon ook per e-mail" aan staat): dezelfde bon als de kopie, met KOPI…

Bon achteraf mailen (migratie 031, als "Bon ook per e-mail" aan staat): dezelfde bon als de kopie, met KOPIE erop. Recht: kopie van een bon.

Toegang

Controleert daarnaast: bon_kopie (Kopie van een bon printen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
emailalles

Antwoord 200

alles

Foutmeldingen

400

Dit e-mailadres klopt niet.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Bon niet gevonden.

409

Bon per e-mail staat uit of er is geen mailserver ingesteld (Instellingen → Zaak).

502

Mailen lukte niet: …

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bonnen/<id>/mail" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "email": null
}'
POST/api/bonnen/{id}/retour#

Retour starten

Contant, cadeaubon, overig en handmatige pin worden meteen afgerond; pin via de terminal start een terugbetaling die de kassa daarna volgt (GET /api/pin/:id) en afrondt met /api/retouren/:id/afronden.

Toegang

Controleert daarnaast: retour (Retour doen (creditbon)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
regelslijst van object
regels[].id *tekst
regels[].aantal *getal
methodetekst

Een van: "contant" "pin" "bon" "online" "overig" "rekening" "maaltijdcheque" "valuta" "kamer" "onbetaald"

pinHandmatigja/nee
terminaltekst
redentekst

Antwoord 200

object

Foutmeldingen

400

Mogelijke meldingen:

  • Kies hoe het geld wordt terugbetaald.
  • Kies wat er terug komt.
  • Een regel hoort niet bij deze bon.
  • Een korting zelf kan niet retour; die gaat naar verhouding mee.
  • Kies een terminal.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Bon niet gevonden.

409

Mogelijke meldingen:

  • Van een creditbon kan geen retour gedaan worden.
  • Deze bon is niet geldig.
  • Voor deze bon loopt al een retour. Rond die eerst af of annuleer hem.
  • Terug naar de rekening kan alleen bij een verkoop op rekening met een factuur.
  • Van "…" kan nog hooguit … terug.
  • Er valt niets terug te betalen.
  • Er kan niet meer terug naar de rekening dan er van deze bon op rekening stond. Betaal de rest contant of met de pin terug.
  • Op factuur … staat nog € … open; meer kan niet terug naar de rekening. Betaal de rest contant of met de pin terug.
502

… Lukt terugbetalen via de terminal niet (bv. bij CCV), doe het dan op de terminal zelf en kies "Pin, al terugbetaald op de terminal".

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bonnen/<id>/retour" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regels": [
    {
      "id": "3f2c9a1e-…",
      "aantal": 1
    }
  ],
  "methode": "contant",
  "pinHandmatig": true,
  "terminal": "tekst"
}'
POST/api/bonnen/{id}/verbeteren#

Bon verbeteren (migratie 131; UC4116): de prijs van een afgerekende bon klopte niet (bv

50% korting in plaats van 5%). De kassa maakt een nieuwe bon zonder tafel met de oude regels terug (negatief, tegen de prijs die toen betaald is) en dezelfde producten opnieuw tegen de gewone prijs. Daarna de juiste korting geven en het verschil afrekenen (of terugbetalen). De oude bon blijft zoals hij was. Eén keer per bon. Recht: bon verbeteren.

Toegang

Controleert daarnaast: bon_verbeteren (Prijs van een bon verbeteren (nieuwe bon met de juiste prijs)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
bestelling *Bestelling

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Bon niet gevonden.

409

Mogelijke meldingen:

  • Alleen een verkoop kan verbeterd worden.
  • Deze bon is niet geldig.
  • Van deze bon is al iets retour. Verbeter met een retour en een nieuwe verkoop.
  • Op deze bon staat niets om te verbeteren.
  • Deze bon is al verbeterd (zie de nieuwe bon of de open bestelling).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bonnen/<id>/verbeteren" \
  -H "Authorization: Bearer <token>"
POST/api/retouren/{id}/afronden#

Retour afronden nadat de terugbetaling op de terminal gelukt is

Toegang

Controleert daarnaast: retour (Retour doen (creditbon)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
bestellingId *tekst
bedrag *getal
ticketNummergetal
printFouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Deze retour bestaat niet of is al afgerond.

409

De terugbetaling op de terminal is (nog) niet gelukt.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/retouren/<id>/afronden" \
  -H "Authorization: Bearer <token>"
POST/api/retouren/{id}/annuleren#

Retour afbreken zolang er geen geld is teruggegaan

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Mogelijke meldingen:

  • Het geld is al teruggestort op de kaart. Rond de retour af.
  • De terugbetaling loopt nog. Breek hem eerst af.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/retouren/<id>/annuleren" \
  -H "Authorization: Bearer <token>"

Keuken

Keukenscherm (KDS): openstaande werkbonnen en klaar melden.

POST/api/beheer/keuken#

Instellen (Instellingen → Printers → Keukenscherm)

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
doorzetten *ja/nee
volgende *object
extraStations *lijst van tekst
herordenen *ja/nee
gang *tekst

Een van: "uit" "aanvragen" "afroepen"

migratie *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/keuken" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/keuken#

Bonnen voor een station, oudste eerst

?klaar=1: wat het afgelopen uur klaar is gemeld (om terug te halen). station leeg = alles.

Parameters

NaamWaarTypeUitleg
stationzoekterm (?…)tekst
klaarzoekterm (?…)tekst

Antwoord 200

Type: lijst van object

19 velden tonen
VeldTypeUitleg
[].bestellingId *tekst
[].nummer *getal
[].waar *tekst
[].sinds *tekst
[].gangGevraagdobject of null

gang aangevraagd vanaf het keukenscherm (migratie 105)

[].gangGevraagd.gang *getal
[].gangGevraagd.op *tekst
[].regels *lijst van object
[].regels[].id *tekst
[].regels[].naam *tekst
[].regels[].aantal *getal
[].regels[].opties *lijst van tekst
[].regels[].opmerking *tekst of null
[].regels[].gang *getal
[].regels[].wacht *ja/nee
[].regels[].storno *ja/nee
[].regels[].klaar *ja/nee
[].regels[].station *tekst of null

het station van deze regel en of hij van een ander station is doorgezet (migratie 105)

[].regels[].doorgezet *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/keuken" \
  -H "Authorization: Bearer <token>"
POST/api/keuken/doorzetten#

Regels (of een hele bon) naar een ander station zetten: { regelIds, van, naar }

Body (JSON)

VeldTypeUitleg
regelIdsalles
vanalles
naaralles

Antwoord 200

VeldTypeUitleg
aantal *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/keuken/doorzetten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regelIds": null,
  "van": null,
  "naar": null
}'
POST/api/keuken/gang#

Volgende gang vanaf het keukenscherm: { bestellingId, gang, station }

Bij "aanvragen" krijgt de bediening een seintje; bij "afroepen" roept het scherm de gang zelf af (zoals de knop Afroepen in de kassa).

Body (JSON)

VeldTypeUitleg
bestellingIdalles
gangalles
stationalles

Antwoord 200

object

Foutmeldingen

400

Onbekende bestelling.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/keuken/gang" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "bestellingId": null,
  "gang": null,
  "station": null
}'
GET/api/keuken/instelling#

Wat het keukenscherm mag (migratie 105): doorzetten, herordenen, gang aanvragen of afroepen

Antwoord 200

VeldTypeUitleg
doorzetten *ja/nee
volgende *object
extraStations *lijst van tekst
herordenen *ja/nee
gang *tekst

Een van: "uit" "aanvragen" "afroepen"

migratie *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/keuken/instelling" \
  -H "Authorization: Bearer <token>"
POST/api/keuken/klaar#

Regels klaar melden (of terugzetten)

Als daarmee alles van een bestelling voor dit station klaar is, krijgt de bediening een seintje.

Body (JSON)

VeldTypeUitleg
regelIdslijst van tekst
klaarja/nee
stationtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
aantal *getal

Foutmeldingen

400

Geen regels opgegeven.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/keuken/klaar" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regelIds": [
    "tekst"
  ],
  "klaar": true,
  "station": "tekst"
}'
GET/api/keuken/stations#

Welke stations zijn er (namen van printers, groepen en producten met een printer)

Antwoord 200

lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/keuken/stations" \
  -H "Authorization: Bearer <token>"
POST/api/keuken/volgorde#

Volgorde van de bonnen op een station: { station, bestellingIds } (eerste = bovenaan)

Body (JSON)

VeldTypeUitleg
stationalles
bestellingIdsalles

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/keuken/volgorde" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "station": null,
  "bestellingIds": null
}'

Rapporten

X- en Z-rapport, dagafsluiting, omzet per periode en dashboard.

GET/api/rapport/dashboard#

Dashboard (tabblad in Rapport): omzet per uur van een dag tegenover dezelfde dag een week eerder, top 10 pr…

Dashboard (tabblad in Rapport): omzet per uur van een dag tegenover dezelfde dag een week eerder, top 10 producten, gemiddelde besteding per gast en de drukste uren over de laatste 7/28/90 dagen. Alleen lezen. ?datum=JJJJ-MM-DD (standaard vandaag), ?dagen=7|28|90 (standaard 28).

Toegang

Controleert daarnaast: omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
datumzoekterm (?…)tekst
dagenzoekterm (?…)tekst

Antwoord 200

34 velden tonen
VeldTypeUitleg
datum *tekst
vorigeWeekDatum *tekst
isVandaag *ja/nee
dagen *getal
perUur *lijst van object
perUur[].uur *getal
perUur[].omzet *getal
perUur[].vorigeWeek *getal
dag *object
dag.omzet *getal
dag.bonnen *getal
dag.gasten *getal
dag.omzetGasten *getal
vorigeWeek *object
vorigeWeek.omzet *getal
vorigeWeek.bonnen *getal
vorigeWeek.gasten *getal
vorigeWeek.omzetGasten *getal
vorigeWeekTotNu *getal of null
periode *object
periode.gasten *getal
periode.omzet *getal
periode.bonnen *getal
periode.omzetGasten *getal
openDagen *getal
top10 *lijst van object
top10[].naam *tekst
top10[].aantal *getal
top10[].omzet *getal
drukte *lijst van object
drukte[].weekdag *getal
drukte[].uur *getal
drukte[].omzet *getal
drukte[].bonnen *getal

Foutmeldingen

400

Kies een geldige datum.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/dashboard" \
  -H "Authorization: Bearer <token>"
GET/api/rapport/journaal#

Controle van het fiscale journaal: is de hashketen ongebroken?

Antwoord 200

VeldTypeUitleg
geldig *ja/nee
foutBijVolgnummergetal
aantalTickets *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/journaal" \
  -H "Authorization: Bearer <token>"
GET/api/rapport/periode#

Omzetoverzicht over een periode (manager/beheerder): ?van=2026-09-01&tot=2026-09-30 (beide dagen inclusief,…

Omzetoverzicht over een periode (manager/beheerder): ?van=2026-09-01&tot=2026-09-30 (beide dagen inclusief, Nederlandse/Belgische tijd). Zelfde opbouw als het X-rapport, plus omzet per dag en per medewerker.

Toegang

Controleert daarnaast: omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

61 velden tonen
VeldTypeUitleg
van *tekst
tot *tekst
perDag *lijst van object
perDag[].dag *tekst
perDag[].bonnen *getal
perDag[].omzet *getal
perDag[].gasten *getal
perMedewerker *lijst van object
perMedewerker[].naam *tekst
perMedewerker[].bonnen *getal
perMedewerker[].omzet *getal
perMedewerker[].fooi *getal
betaalcorrectieslijst van object
betaalcorrecties[].van *tekst
betaalcorrecties[].naar *tekst
betaalcorrecties[].aantal *getal
betaalcorrecties[].bedrag *getal
valutalijst van object
valuta[].code *tekst
valuta[].aantal *getal
valuta[].valutaBedrag *getal
valuta[].bedrag *getal
valuta[].wisselgeld *getal
opRekeningobject
opRekening.ontvangen *lijst van object
opRekening.ontvangen[].methode *tekst
opRekening.ontvangen[].aantal *getal
opRekening.ontvangen[].bedrag *getal
geldautomaatobject
geldautomaat.contant *getal
geldautomaat.tekort *getal
fooiVerdelingFooiVerdeling
cadeaubonnenobject
cadeaubonnen.aantal *getal
cadeaubonnen.bedrag *getal
vanaf *tekst
aantalBonnen *getal
omzetIncl *getal
perBtw *lijst van object
perBtw[].code *tekst
perBtw[].percentage *getal
perBtw[].basis *getal
perBtw[].btw *getal
perBtw[].totaal *getal
perBetaalwijze *lijst van object
perBetaalwijze[].methode *tekst
perBetaalwijze[].aantal *getal
perBetaalwijze[].bedrag *getal
perBetaalwijze[].fooi *getal
perGroep *lijst van object
perGroep[].groep *tekst
perGroep[].aantal *getal
perGroep[].omzet *getal
aantalStornos *getal
retour *object
retour.aantal *getal
retour.bedrag *getal
gasten *getal
kortingen *object
kortingen.aantal *getal
kortingen.bedrag *getal

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een geldige periode (van tot en met tot).
  • Kies een periode van hooguit ruim een jaar.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/periode" \
  -H "Authorization: Bearer <token>"
GET/api/rapport/x#

X-rapport: tussenstand sinds de vorige dagafsluiting, zonder iets af te sluiten

X-rapport: tussenstand sinds de vorige dagafsluiting, zonder iets af te sluiten. Met ?vanaf=... een eigen beginmoment (zoals voorheen).

Toegang

Controleert daarnaast: xrapport (Tussenstand (X-rapport) bekijken), dagafsluiten (Dag afsluiten (Z-rapport)).

Parameters

NaamWaarTypeUitleg
vanafzoekterm (?…)tekst

Antwoord 200

51 velden tonen
VeldTypeUitleg
kas *object
betaalcorrectieslijst van object
betaalcorrecties[].van *tekst
betaalcorrecties[].naar *tekst
betaalcorrecties[].aantal *getal
betaalcorrecties[].bedrag *getal
valutalijst van object
valuta[].code *tekst
valuta[].aantal *getal
valuta[].valutaBedrag *getal
valuta[].bedrag *getal
valuta[].wisselgeld *getal
opRekeningobject
opRekening.ontvangen *lijst van object
opRekening.ontvangen[].methode *tekst
opRekening.ontvangen[].aantal *getal
opRekening.ontvangen[].bedrag *getal
geldautomaatobject
geldautomaat.contant *getal
geldautomaat.tekort *getal
fooiVerdelingFooiVerdeling
cadeaubonnenobject
cadeaubonnen.aantal *getal
cadeaubonnen.bedrag *getal
vanaf *tekst
tot *tekst
aantalBonnen *getal
omzetIncl *getal
perBtw *lijst van object
perBtw[].code *tekst
perBtw[].percentage *getal
perBtw[].basis *getal
perBtw[].btw *getal
perBtw[].totaal *getal
perBetaalwijze *lijst van object
perBetaalwijze[].methode *tekst
perBetaalwijze[].aantal *getal
perBetaalwijze[].bedrag *getal
perBetaalwijze[].fooi *getal
perGroep *lijst van object
perGroep[].groep *tekst
perGroep[].aantal *getal
perGroep[].omzet *getal
aantalStornos *getal
retour *object
retour.aantal *getal
retour.bedrag *getal
gasten *getal
kortingen *object
kortingen.aantal *getal
kortingen.bedrag *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/x" \
  -H "Authorization: Bearer <token>"
POST/api/rapport/x/print#

X-rapport printen op de bonprinter

Toegang

Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).

Antwoord 200

VeldTypeUitleg
ok *ja/nee
fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/rapport/x/print" \
  -H "Authorization: Bearer <token>"
GET/api/rapport/z#

Eerdere Z-rapporten, nieuwste eerst

Toegang

Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).

Antwoord 200

lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/z" \
  -H "Authorization: Bearer <token>"
POST/api/rapport/z#

Z-rapport: de dag afsluiten

Alles sinds de vorige afsluiting telt mee. Met de telling van de kassalade wordt het kasverschil vastgelegd. Daarna begint een nieuwe periode met het opgegeven startgeld.

Toegang

Controleert daarnaast: dag_afsluiten (Dag afsluiten (Z-rapport)).

Body (JSON)

VeldTypeUitleg
tellinggetal of null
startgeldVolgendegetal
telDetaillijst van object
telDetail[].waardealles
telDetail[].aantalalles

Antwoord 200

64 velden tonen
VeldTypeUitleg
printFouttekst
mailNaar *getal
fiscaleRegelslijst van tekst
kas *object
z *object
z.telDetaillijst van object
z.telDetail[].waarde *getal
z.telDetail[].aantal *getal
z.nummer *getal
z.telling *getal of null
z.verschil *getal of null
z.startgeldVolgende *getal
z.afgeslotenDoor *tekst
betaalcorrectieslijst van object
betaalcorrecties[].van *tekst
betaalcorrecties[].naar *tekst
betaalcorrecties[].aantal *getal
betaalcorrecties[].bedrag *getal
valutalijst van object
valuta[].code *tekst
valuta[].aantal *getal
valuta[].valutaBedrag *getal
valuta[].bedrag *getal
valuta[].wisselgeld *getal
opRekeningobject
opRekening.ontvangen *lijst van object
opRekening.ontvangen[].methode *tekst
opRekening.ontvangen[].aantal *getal
opRekening.ontvangen[].bedrag *getal
geldautomaatobject
geldautomaat.contant *getal
geldautomaat.tekort *getal
fooiVerdelingFooiVerdeling
cadeaubonnenobject
cadeaubonnen.aantal *getal
cadeaubonnen.bedrag *getal
vanaf *tekst
tot *tekst
aantalBonnen *getal
omzetIncl *getal
perBtw *lijst van object
perBtw[].code *tekst
perBtw[].percentage *getal
perBtw[].basis *getal
perBtw[].btw *getal
perBtw[].totaal *getal
perBetaalwijze *lijst van object
perBetaalwijze[].methode *tekst
perBetaalwijze[].aantal *getal
perBetaalwijze[].bedrag *getal
perBetaalwijze[].fooi *getal
perGroep *lijst van object
perGroep[].groep *tekst
perGroep[].aantal *getal
perGroep[].omzet *getal
aantalStornos *getal
retour *object
retour.aantal *getal
retour.bedrag *getal
gasten *getal
kortingen *object
kortingen.aantal *getal
kortingen.bedrag *getal
id *tekst

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldig getelde bedrag.
  • Ongeldig startgeld.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Er staan nog … bestelling(en) open. Reken die eerst af.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/rapport/z" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "telling": 1,
  "startgeldVolgende": 1,
  "telDetail": [
    {
      "waarde": null,
      "aantal": null
    }
  ]
}'
GET/api/rapport/z/{id}#

Toegang: Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).

Toegang

Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: RapportBonGegevens

67 velden tonen
VeldTypeUitleg
vanaf *tekst
tot *tekst
aantalBonnen *getal
omzetIncl *getal
perBtw *lijst van object
perBtw[].code *tekst
perBtw[].percentage *getal
perBtw[].basis *getal
perBtw[].btw *getal
perBtw[].totaal *getal
perBetaalwijze *lijst van object
perBetaalwijze[].methode *tekst
perBetaalwijze[].aantal *getal
perBetaalwijze[].bedrag *getal
perBetaalwijze[].fooi *getal
perGroep *lijst van object
perGroep[].groep *tekst
perGroep[].aantal *getal
perGroep[].omzet *getal
aantalStornos *getal
retourobject

Retouren (creditbonnen) in de periode; bedrag is negatief en zit al in de omzet.

retour.aantal *getal
retour.bedrag *getal
gastengetal

aantal gasten (personen) op de afgerekende bestellingen

kortingenobject

kortingen in de periode; bedrag is negatief en zit al in de omzet

kortingen.aantal *getal
kortingen.bedrag *getal
cadeaubonnenobject

verkochte cadeaubonnen (migratie 026): geen omzet, wel ontvangen geld

cadeaubonnen.aantal *getal
cadeaubonnen.bedrag *getal
opRekeningobject

op rekening (migratie 085): facturen die in de zaak betaald zijn (geen omzet; de omzet was er bij de verkoop)

opRekening.ontvangen *lijst van object
opRekening.ontvangen[].methode *tekst
opRekening.ontvangen[].aantal *getal
opRekening.ontvangen[].bedrag *getal
valutalijst van object

Vreemde valuta (migratie 116): per munt wat de gasten gaven (centen in die munt), in euro afgerekend, en het wisselgeld in euro.

valuta[].code *tekst
valuta[].aantal *getal
valuta[].valutaBedrag *getal
valuta[].bedrag *getal
valuta[].wisselgeld *getal
kasobject
kas.startgeld *getal
kas.contantOntvangen *getal
kas.verwacht *getal
kas.inLadegetal

kasbeheer: geld in/uit de lade buiten verkopen om (ontbreekt bij oude rapporten)

kas.uitLadegetal
kas.mutatieslijst van Kasmutatie
kas.wisselgeldValutagetal

vreemde valuta (migratie 116): wisselgeld in euro uit de lade

zobject
z.nummer *getal
z.telling *getal of null
z.verschil *getal of null
z.startgeldVolgende *getal
z.afgeslotenDoor *tekst
z.telDetaillijst van object

telling per munt/biljet (waarde in centen), als de telhulp is gebruikt

z.telDetail[].waarde *getal
z.telDetail[].aantal *getal
fiscaleRegelslijst van tekst

GKS 2.0 (België): controlegegevens van de zwarte doos voor dit rapport.

fooiVerdelingobject

Fooi per medewerker (migratie 037); ontbreekt als het uit staat of er geen fooi is.

fooiVerdeling.methode *tekst

Een van: "eigen" "uren" "gelijk"

fooiVerdeling.totaal *getal
fooiVerdeling.regels *lijst van object
fooiVerdeling.regels[].naam *tekst
fooiVerdeling.regels[].bedrag *getal
fooiVerdeling.regels[].urengetal
fooiVerdeling.opmerkingtekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Z-rapport niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/z/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/rapport/z/{id}/mail#

Een oud Z-rapport opnieuw mailen naar de beheerder (met "KOPIE" erop)

Toegang

Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
naar *getal
fouttekst

Foutmeldingen

400

Geen e-mailadres voor het Z-rapport ingesteld (Instellingen → Zaak), of geen mailserver in .env.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Z-rapport niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/rapport/z/<id>/mail" \
  -H "Authorization: Bearer <token>"
POST/api/rapport/z/{id}/print#

Een oud Z-rapport opnieuw printen (met "KOPIE" erop)

Toegang

Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Z-rapport niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/rapport/z/<id>/print" \
  -H "Authorization: Bearer <token>"

Kassalade

Kassalade met sensor en lade per medewerker (migratie 070, standaard uit): status van de lade via de bonprinter (DLE EOT 1), meten en instellen, niet afrekenen zolang de lade open staat, lade 1 of 2 per medewerker, testen, en per medewerker startgeld, telling en kasverschil.

GET/api/beheer/lade#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
medewerkers *lijst van object
medewerkers[].id *tekst
medewerkers[].naam *tekst
medewerkers[].lade *getal of null
bonprinter *object
bonprinter.naam *tekst
bonprinter.netwerk *ja/nee
sensor *tekst

Een van: "uit" "hoog_open" "laag_open"

blokkeren *ja/nee
maxOpen *getal
perMedewerker *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/lade" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/lade#

{ sensor, blokkeren, maxOpen, perMedewerker, lades: { <gebruikerId>: 1 | 2 | null } }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
sensoralles
blokkerenalles
maxOpenalles
perMedewerkeralles
ladesalles

Antwoord 200

VeldTypeUitleg
sensor *tekst

Een van: "uit" "hoog_open" "laag_open"

blokkeren *ja/nee
maxOpen *getal
perMedewerker *ja/nee

Foutmeldingen

400

Te lang open: 0 tot 3600 seconden (0 = geen melding).

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/lade" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "sensor": null,
  "blokkeren": null,
  "maxOpen": null,
  "perMedewerker": null
}'
GET/api/beheer/lade/meten#

Meten (instellen van de sensor): wat de bonprinter nu over de lade zegt

Eén keer met de lade dicht en één keer open: het verschil bepaalt de instelling.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
kan *ja/nee
printer *tekst
byte *getal of null
geldig *ja/nee
hoog *ja/nee of null
openBijHoog *ja/nee of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/lade/meten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/lade/test#

Lade 1 of 2 openen om te testen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
ladealles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/lade/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "lade": null
}'
GET/api/kas#

Stand van de kassalade van de lopende dag

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Antwoord 200

VeldTypeUitleg
vanaf *tekst
kas *object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/kas" \
  -H "Authorization: Bearer <token>"
POST/api/kas/lade#

Lade openen zonder verkoop (bv

wisselen). Komt met reden in het logboek.

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Body (JSON)

VeldTypeUitleg
redenalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Vul een reden in.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kas/lade" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "reden": null
}'
GET/api/kas/ladestatus#

Staat de lade open?

{ sensor: is er een sensor ingesteld, open: true/false/null (onbekend) }.

Antwoord 200

VeldTypeUitleg
sensor *ja/nee
blokkeren *ja/nee
open *ja/nee of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/kas/ladestatus" \
  -H "Authorization: Bearer <token>"
GET/api/kas/medewerkers#

Per medewerker: startgeld, contant, geld in/uit, verwacht en de laatste telling (lopende kassasessie)

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Antwoord 200

VeldTypeUitleg
aan *ja/nee
medewerkers *lijst van MedewerkerKas

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/kas/medewerkers" \
  -H "Authorization: Bearer <token>"
POST/api/kas/medewerkers/{id}/startgeld#

Startgeld in de lade van een medewerker (lopende kassasessie)

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
startgeldalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Vul een geldig startgeld in (mag 0,00 zijn).

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

404

Medewerker niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kas/medewerkers/<id>/startgeld" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "startgeld": null
}'
POST/api/kas/medewerkers/{id}/telling#

Telling van de lade van een medewerker: het verschil met verwacht is zijn kasverschil

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
geteldalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
verwacht *getal
geteld *getal
verschil *getal

Foutmeldingen

400

Vul het getelde bedrag in.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

404

Medewerker niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kas/medewerkers/<id>/telling" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "geteld": null
}'
POST/api/kas/mutatie#

Geld in of uit de lade, buiten verkopen om

Opent de lade en print een bonnetje.

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Body (JSON)

VeldTypeUitleg
soorttekst
bedragalles
redenalles
printenja/nee

Antwoord 200

VeldTypeUitleg
ok *ja/nee
printFouttekst

Foutmeldingen

400

Mogelijke meldingen:

  • Kies geld in of geld uit de lade.
  • Vul een bedrag groter dan 0 in.
  • Vul een reden in.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kas/mutatie" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": "tekst",
  "bedrag": null,
  "reden": null,
  "printen": true
}'
POST/api/kas/startgeld#

Startgeld van de lopende dag invullen of corrigeren

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Body (JSON)

VeldTypeUitleg
startgeldalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Vul een geldig startgeld in (mag 0,00 zijn).

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kas/startgeld" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "startgeld": null
}'

Boekhouding

Export naar de boekhouding.

GET/api/beheer/boekhouding#

Grootboekrekeningen bekijken (instellingen_beheren)

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
land *tekst

Een van: "NL" "BE"

dagboek *tekst
rekeningen *lijst van Rekening

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/boekhouding" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/boekhouding#

Grootboekrekeningen en dagboek opslaan

Leeg = standaard.

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
dagboekalles
rekeningenobject

Antwoord 200

VeldTypeUitleg
land *tekst

Een van: "NL" "BE"

dagboek *tekst
rekeningen *lijst van Rekening

Foutmeldingen

400

Ongeldig rekeningnummer "…": alleen cijfers, letters, punt of streepje.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/boekhouding" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "dagboek": null,
  "rekeningen": {}
}'
GET/api/boekhouding/journaal#

Journaal over een periode; zelfde recht als Omzet per periode

Toegang

Controleert daarnaast: omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
van *tekst
tot *tekst
dagboek *tekst
regels *lijst van JournaalRegel
dagen *lijst van object
dagen[].dag *tekst
dagen[].bonnen *getal
dagen[].omzet *getal
dagen[].debet *getal
dagen[].credit *getal
dagen[].sluit *ja/nee
waarschuwingen *lijst van tekst

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een geldige periode (van tot en met tot).
  • Kies een periode van hooguit ruim een jaar.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/boekhouding/journaal" \
  -H "Authorization: Bearer <token>"

Logboek

Logboek van gevoelige acties.

GET/api/logboek#

Toegang: Vereist recht logboek (Logboek bekijken).

Toegang

Vereist recht logboek (Logboek bekijken).

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst
soortenzoekterm (?…)tekst
gebruikerIdzoekterm (?…)tekst

Antwoord 200

32 velden tonen
VeldTypeUitleg
van *tekst
tot *tekst
regels *lijst van object
regels[].id *tekst
regels[].tijd *datum/tijd
regels[].soort *tekst
regels[].gebruikerId *tekst of null
regels[].naam *tekst of null
regels[].details *object
regels[].medewerkerNaam *tekst of null
regels[].tafel *tekst of null
regels[].bestellingNummer *getal of null
meer *ja/nee
perMedewerker *lijst van object
perMedewerker[].gebruikerId *tekst
perMedewerker[].naam *tekst
perMedewerker[].storno *getal
perMedewerker[].stornoBedrag *getal
perMedewerker[].korting *getal
perMedewerker[].kortingBedrag *getal
perMedewerker[].retour *getal
perMedewerker[].retourBedrag *getal
perMedewerker[].ladeOpen *getal
perMedewerker[].geldUit *getal
perMedewerker[].kopie *getal
perMedewerker[].proforma *getal
perMedewerker[].pinHandmatig *getal
aanmeldenMislukt *getal
medewerkers *lijst van object
medewerkers[].id *tekst
medewerkers[].naam *tekst
medewerkers[].actief *ja/nee

Foutmeldingen

400

Kies een geldige periode (van tot en met tot).

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: logboek bekijken. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/logboek" \
  -H "Authorization: Bearer <token>"

Werktijden

In- en uitklokken en het overzicht van werktijden.

GET/api/beheer/werktijden#

Toegang: Alleen voor de rol beheerder.

Toegang

Alleen voor de rol beheerder.

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

object

Foutmeldingen

400

Kies een geldige periode (van tot en met tot).

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/werktijden" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/werktijden#

Dienst achteraf toevoegen (bv

vergeten in te klokken).

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
gebruikerIdtekst
intekst
uittekst
opmerkingtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
id *tekst

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een medewerker.
  • Vul een begin- en eindtijd in.
  • Deze dienst overlapt met een andere dienst van deze medewerker.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/werktijden" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "gebruikerId": "3f2c9a1e-…",
  "in": "tekst",
  "uit": "tekst",
  "opmerking": "tekst"
}'
POST/api/beheer/werktijden/{id}#

Begin- en eindtijd van een dienst corrigeren

uit leeg = nog ingeklokt.

Toegang

Alleen voor de rol beheerder.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
intekst
uittekst of null
opmerkingtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Vul een begintijd in.
  • Ongeldige eindtijd.
  • Vul een eindtijd in; een afgesloten dienst kan niet weer open.
  • Deze dienst overlapt met een andere dienst van deze medewerker.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Deze dienst bestaat niet.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/werktijden/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "in": "tekst",
  "uit": "tekst",
  "opmerking": "tekst"
}'
POST/api/beheer/werktijden/{id}/uitklokken#

Iemand die nog ingeklokt staat (vergeten) nu uitklokken

Toegang

Alleen voor de rol beheerder.

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: KlokUitkomst

VeldTypeUitleg
naam *tekst
ingeklokt *ja/nee
sinds *tekst of null

begin van de (lopende of net afgesloten) dienst

minutengetal

gewerkte minuten van de net afgesloten dienst

alja/nee

was al in- of uitgeklokt: er is niets veranderd

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Mogelijke meldingen:

  • Deze dienst bestaat niet.
  • Deze medewerker is niet (meer) ingeklokt.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/werktijden/<id>/uitklokken" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/werktijden/instelling#

Klokken aan/uit/verplicht voor deze zaak

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
klokkentekst

Antwoord 200

Type: Vestiging

125 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
land *tekst

Een van: "NL" "BE"

btwNummer *tekst of null
vestigingsnummertekst of null

België, GKS 2.0 (migratie 119): vestigingseenheidsnummer (KBO) en juridische naam; alleen in Instellingen → Zaak.

juridischeNaamtekst of null
gksPlichtigja/nee of null

België (migratie 135): GKS-plichtig? null = nog niet gekozen (dan kan de zaak niet afrekenen), true = alleen afrekenen met een werkende zwarte doos (GKS 2.0), false = niet GKS-plichtig (verklaring van de beheerder).

gksVerklaringOptekst of null

Wanneer de keuze (bij "nee": de verklaring) is gedaan (ISO); elk jaar opnieuw te bevestigen.

fiscaalDemoja/nee

Demo- of testzaak: de nagebootste zwarte doos (FISCAL_MODE=mock) mag. Nooit bij een echte zaak.

gksMaaltijdOmzetgetal

Alleen in Instellingen → Zaak (België): maaltijden ter plaatse (btw 12%) in de laatste 12 maanden, excl. btw, in centen.

adres *tekst of null
postcode *tekst of null
plaats *tekst of null
telefoon *tekst of null
emailtekst of null

E-mailadres van de zaak (niet op de bon; o.a. voor het beheerportaal van Pin Voordeel).

gksProductienummer *tekst of null
bonVoetteksttekst of null

Tekst onderaan de kassabon (meerdere regels mogen). null/undefined = STANDAARD_BONVOETTEKST, '' = geen tekst.

bonTaaltekst of null

Taal van de vaste teksten op de kassabon (migratie 052; alleen Latijns schrift, zie packages/printing/src/bontaal.ts). null/undefined = Nederlands. Los van de taal van de schermen.

contantAfrondenja/nee

Contante betalingen afronden op 5 cent (standaard uit).

fooiFooiInstelling

Fooiknoppen bij afrekenen (ontbreekt = STANDAARD_FOOI).

klokkentekst

In- en uitklokken van personeel (ontbreekt = 'uit').

Een van: "uit" "aan" "verplicht"

allergenenja/nee

Allergenen per product tonen en invullen (standaard uit).

happyhourja/nee

Happy hour gebruiken (standaard uit).

menusja/nee

Menu's gebruiken (standaard uit).

dagdelenja/nee

Assortiment per dagdeel en seizoen (migratie 084, standaard uit).

leverwijzeja/nee

Assortiment en prijzen per leverwijze: ter plaatse, afhalen, bezorgen (migratie 084, standaard uit).

cadeaubonBetalenja/nee

"Cadeaubon" als betaalwijze bij afrekenen (ontbreekt = aan, zoals altijd).

cadeaubonSaldoja/nee

Cadeaubonnen verkopen met code en saldo (standaard uit).

voorraadja/nee

Voorraad bijhouden (per product of via ingrediënten; standaard uit).

thematekst

Thema van de schermen (ontbreekt = donker, zoals altijd).

Een van: "donker" "licht"

afrekenknoptekst

Knop "Afrekenen" op het bestelscherm: groot onder de bestelde producten of klein onderin (migratie 054; ontbreekt = groot).

Een van: "groot" "klein"

bonMailenja/nee

Bon per e-mail bij afrekenen (standaard uit).

keukenGeluidja/nee

Piep op de kassa van de bediening als het keukenscherm iets klaar meldt (standaard uit).

zRapportMailtekst

E-mail van de beheerder: Z-rapport na dag afsluiten automatisch mailen (leeg = niet mailen).

fooiVerdelentekst

Fooi per medewerker op X/Z/periode-rapport (ontbreekt = uit).

Een van: "uit" "eigen" "uren" "gelijk"

klantenkaartja/nee

Klantenkaart / spaarpunten (migratie 038; standaard uit).

gastprofielja/nee

Gastprofiel (migratie 115; standaard uit, alleen met de klantenkaart): VIP, dieetwensen en voorkeuren van de klant.

spaarPuntenPerEurogetal

punten per besteedde euro (0 = alleen stempelkaarten)

spaarPuntenNodiggetal

zoveel punten = één beloning

spaarBeloninggetal

beloning in centen korting

marketingSmsja/nee

Sms-marketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met CM_TOKEN).

marketingEmailja/nee

E-mailmarketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met SMTP_HOST).

adresZoekenja/nee

Snel adres invoeren met postcode en huisnummer, Nederland (migratie 057; standaard uit).

importerenja/nee

Importeren uit een andere kassa: producten en klanten uit CSV/Excel (migratie 058; standaard uit).

exactja/nee

Koppeling met Exact Online: dagomzet boeken (migratie 059; standaard uit).

exactIngesteldja/nee

Alleen-lezen: staat de Exact-app in .env (EXACTCLIENTID en EXACTCLIENTSECRET)?

boekhoudpakkettekst

Koppeling met een ander boekhoudpakket: dagomzet zelf boeken in het gekozen pakket ('' = uit; migraties 062/063; standaard uit). Zie boekhoudcatalogus.ts.

Een van: "" "acumulus" "afas" "businesscentral" "horus" "moneybird" "odoo" "quickbooks" "sapb1" "silvasoft" "snelstart" "twinfield" "xero" "yuki" "zoho"

boekhoudpakketInEnvja/nee

Alleen-lezen: ligt het pakket vast in .env (BOEKHOUDPAKKET)? Dan geen keuze bij Instellingen → Boekhouding.

boekhoudpakkettenobject

Alleen-lezen: welke koppelingen kunnen verbinden (pakketten met inloggen alleen met hun app, in .env of bij Instellingen → Boekhouding).

boekhoudpakketten.acumulusja/nee
boekhoudpakketten.afasja/nee
boekhoudpakketten.businesscentralja/nee
boekhoudpakketten.horusja/nee
boekhoudpakketten.moneybirdja/nee
boekhoudpakketten.odooja/nee
boekhoudpakketten.quickbooksja/nee
boekhoudpakketten.sapb1ja/nee
boekhoudpakketten.silvasoftja/nee
boekhoudpakketten.snelstartja/nee
boekhoudpakketten.twinfieldja/nee
boekhoudpakketten.xeroja/nee
boekhoudpakketten.yukija/nee
boekhoudpakketten.zohoja/nee
reserveringenja/nee

Reserveringen (migratie 039; standaard uit).

reserveringVoorafgetal

zoveel minuten vóór de tijd staat de tafel als gereserveerd op de plattegrond

reserveringDuurMingetal

standaard duur van een reservering in minuten

wachtlijstja/nee

Wachtlijst voor walk-ins (migratie 051; standaard uit).

wachtlijstSmsTeksttekst

tekst van de sms "uw tafel is klaar" ({naam}, {zaak}, {personen}); leeg = standaardtekst

smsIngesteldja/nee

Alleen-lezen: is sms ingesteld in .env (CM_TOKEN, CM.com)?

updatemeldingja/nee

Updatemelding in de kassa (migratie 040; standaard uit).

snelleVerkoopja/nee

Knop "Snelle verkoop" (balie, zonder tafel) op het tafelscherm (migratie 041; ontbreekt = aan).

afhalenja/nee

Knop "Afhalen" op het tafelscherm (migratie 041; ontbreekt = aan).

bezorgenja/nee

Bezorgen en tijdvakken in de kassa (migratie 060): knop "Bezorgen" op het tafelscherm (ontbreekt = uit).

bezorgZoneslijst van BezorgZone

Bezorggebieden, de eerste die past geldt; leeg = overal, zonder kosten of minimum. Bedragen in centen.

bezorgTijdMingetal

Minuten tot bezorgd / klaar voor afhalen als het zo snel mogelijk moet.

afhaalTijdMingetal
tijdvakMingetal

Lengte van een tijdvak (minuten) en het maximum aantal bestellingen erin (afhalen + bezorgen; 0 = geen maximum).

perTijdvakgetal
webshopVolgtja/nee

Kassa en webshop gelijk (migratie 061; alles standaard uit = zoals voorheen). webshopVolgt: de webshop gebruikt de bezorggebieden, tijden, het tijdvak, het maximum, de openingstijden en gesloten dagen van de kassa en telt de bestellingen van de kassa mee (de kassa is leidend).

openTijdenOpenTijden

Eigen openingstijden voor afhalen en bezorgen (1 = maandag ... 7 = zondag); null = zoals voorheen.

geslotenDagenlijst van tekst

Gesloten datums (JJJJ-MM-DD) voor afhalen en bezorgen.

vooruitDagengetal

Zoveel dagen vooruit een tijd kiezen (0 = alleen vandaag).

drukteMingetal

Druk: zoveel minuten extra bij "zo snel mogelijk" (kassa en webshop).

bezorgBerichtenja/nee

De klant een sms/e-mail sturen bij aannemen, klaar en onderweg.

webshopPauzeja/nee

Webshop vanuit de kassa even dicht (pauze), met een tekst voor de gast.

webshopPauzeTeksttekst of null
reserverenOnlineReserverenOnline

Online reserveren in de webshop met de regels van de kassa; null = die van de webshop zelf.

cadeaubonOnlineja/nee

Cadeaubonnen verkopen in de webshop (online betaald).

kortingscodesja/nee

Kortingscodes aan de kassa en in de webshop.

mailIngesteldja/nee

Alleen-lezen: is er een mailserver ingesteld in .env (SMTP_HOST)?

favorietentekst

Favorieten/snelknoppen op het bestelscherm (ontbreekt = uit).

Een van: "uit" "auto" "zelf"

tafelStilMinutengetal

Tafeltijd: oranje rand na zoveel minuten zonder bestelling (0 = uit; ontbreekt = 20).

ayceAyceInstelling

All-you-can-eat (migratie 042; ontbreekt = uit).

klantschermja/nee

Klantscherm: scherm naar de klant toe met bestelling en bedrag (migratie 044; ontbreekt = uit).

klantschermWelkomtekst of null

Welkomsttekst op het klantscherm als er niemand afrekent (leeg = "Welkom").

productfotoKnoppenja/nee

Productfoto op de productknoppen van het bestelscherm (migratie 045; ontbreekt = uit).

productfotoKlantschermja/nee

Productfoto bij de regels op het klantscherm (migratie 045; ontbreekt = uit).

weegschaalWeegschaalInstelling

Weegschaal (migratie 047; ontbreekt of aan = false = uit): producten met een prijs per kilo, wegen op een Aclas OS6X en etiketten van een Aclas TS6X scannen.

leeftijdscheckja/nee

Leeftijdscheck alcohol (migratie 072; ontbreekt = uit): 18+ in de webshop en op werkbon/bezorgbon.

wegwerpja/nee

Wegwerptoeslag per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

statiegeldja/nee

Statiegeld per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

contantLimietja/nee

Waarschuwing bij contant € 3.000 of meer voor goederen (NL, migratie 072; ontbreekt = uit).

facturenja/nee

Facturen (UBL/Peppol) voor zakelijke klanten (migratie 072; ontbreekt = uit).

haccpja/nee

Digitale HACCP-registratie: temperaturen en schoonmaak (migratie 073; ontbreekt = uit).

tapja/nee

Tapsysteem / flowmeters (migratie 076): taps op de bon

resplatformja/nee

Reserveringsplatforms (migratie 078): TheFork, Formitable, Zenchef, Resengo, OpenTable

bija/nee

BI en data-export (migratie 079): Power BI, Looker Studio, Excel, datawarehouse

biKetenja/nee

BI voor ketens: het klantportaal mag de gegevens ophalen (migratie 080)

spaarpartnerja/nee

Spaarprogramma van een ander platform: Piggy of Joyn (migratie 081)

reviewsja/nee

Reviews vragen na het bezoek: Google en/of Trustpilot (migratie 081)

reviewbeheerja/nee

Reviewbeheer: Google en Trustpilot in de kassa lezen en beantwoorden (migratie 082)

opRekeningja/nee

Betalen op rekening voor zakelijke klanten, met een factuur (migratie 085; alleen met facturen aan)

opRekeningWebshopja/nee

Op rekening ook in de webshop: zakelijke klanten bestellen online met een eigen klantcode (migratie 108)

ayceWebshopja/nee

All-you-can-eat ook bij bestellen aan tafel via de QR-code van de webshop (migratie 108)

wachtlijstOnlineja/nee

Gasten zetten zichzelf op de wachtlijst via de webshop (migratie 108; alleen met de wachtlijst aan)

teLaatja/nee

Melding bij te lange doorlooptijd van afhalen en bezorgen (migratie 088; ontbreekt = uit)

mailingKoppelingja/nee

Koppeling met Mailchimp of Klaviyo met een gekozen lijst (migratie 089): toestemming voor e-mail vragen

webshopPushja/nee

Pushberichten met aanbiedingen in de webshop: een actie kan als pushbericht (migratie 095; tabblad Marketing)

muziekja/nee

Muziek bedienen vanaf de kassa: knop Muziek in de bovenbalk (migratie 091; ontbreekt = uit)

cameraja/nee

Camerabeelden in de kassa: knop Camera's (migratie 092; ontbreekt = uit; bekijken met het recht camera_bekijken)

tabletja/nee

Tablets als tweede scherm: muziek en camera's met één knop naar een gekoppelde tablet (migratie 094; ontbreekt = uit)

oproepja/nee

Oproepscherm "wordt bereid / klaar" voor afhalers (migratie 096): knop Oproepen in de kassa, ophaalnummer op de kassabon.

bezorgersja/nee

Eigen bezorgers (migratie 097): knop Ritten (rit maken, bezorgerspagina op het portaal, kasafdracht, track & trace).

ritplanningja/nee

Ritplanning (migratie 098; alleen met eigen bezorgers): ritten voorstellen per gebied, met afstand en reistijd.

bezorgersappja/nee

Bezorgersapp (migratie 099; alleen met eigen bezorgers): telefoons koppelen, zelf oppakken, live kaart met alle bezorgers.

Foutmeldingen

400

Kies uit, aan of verplicht.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/werktijden/instelling" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "klokken": "tekst"
}'
GET/api/klok#

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/klok" \
  -H "Authorization: Bearer <token>"
POST/api/klok/in#

Antwoord 200

Type: KlokUitkomst

VeldTypeUitleg
naam *tekst
ingeklokt *ja/nee
sinds *tekst of null

begin van de (lopende of net afgesloten) dienst

minutengetal

gewerkte minuten van de net afgesloten dienst

alja/nee

was al in- of uitgeklokt: er is niets veranderd

Foutmeldingen

400

In- en uitklokken staat uit.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/klok/in" \
  -H "Authorization: Bearer <token>"
POST/api/klok/pas#

Klokken met een pasje (migratie 114, als aanmelden met een pasje aan staat): wisselt tussen in en uit

Body (JSON)

VeldTypeUitleg
pasalles

Antwoord 200

Type: KlokUitkomst

VeldTypeUitleg
naam *tekst
ingeklokt *ja/nee
sinds *tekst of null

begin van de (lopende of net afgesloten) dienst

minutengetal

gewerkte minuten van de net afgesloten dienst

alja/nee

was al in- of uitgeklokt: er is niets veranderd

Foutmeldingen

400

Mogelijke meldingen:

  • In- en uitklokken staat uit.
  • Dit pasje kan de kassa niet lezen.
401

Mogelijke meldingen:

  • Onbekend pasje.
  • Niet aangemeld. Voer je pincode opnieuw in.
409

Aanmelden met een pasje staat uit.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/klok/pas" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "pas": null
}'
POST/api/klok/pincodeopenbaar#

Klokken met alleen de pincode: wisselt tussen in en uit

Toegang

Openbaar: werkt zonder aanmelden.

Body (JSON)

VeldTypeUitleg
pincodetekst

Antwoord 200

Type: KlokUitkomst

VeldTypeUitleg
naam *tekst
ingeklokt *ja/nee
sinds *tekst of null

begin van de (lopende of net afgesloten) dienst

minutengetal

gewerkte minuten van de net afgesloten dienst

alja/nee

was al in- of uitgeklokt: er is niets veranderd

Foutmeldingen

400

Mogelijke meldingen:

  • In- en uitklokken staat uit.
  • Voer een pincode van 4 tot 8 cijfers in.
401

Onbekende pincode.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/klok/pincode" \
  -H "Content-Type: application/json" \
  -d '{
  "pincode": "1234"
}'
GET/api/klok/standopenbaar#

Staat klokken aan?

(Het pincodescherm toont dan de knop "In- / uitklokken".)

Toegang

Openbaar: werkt zonder aanmelden.

Antwoord 200

VeldTypeUitleg
stand *tekst

Een van: "uit" "aan" "verplicht"

Voorbeeld (curl)
curl "http://kassa:4000/api/klok/stand"
POST/api/klok/uit#

Antwoord 200

Type: KlokUitkomst

VeldTypeUitleg
naam *tekst
ingeklokt *ja/nee
sinds *tekst of null

begin van de (lopende of net afgesloten) dienst

minutengetal

gewerkte minuten van de net afgesloten dienst

alja/nee

was al in- of uitgeklokt: er is niets veranderd

Foutmeldingen

400

In- en uitklokken staat uit.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/klok/uit" \
  -H "Authorization: Bearer <token>"

Reserveringen

Reserveringen bekijken en beheren.

GET/api/reserveringen#

Reserveringen van één dag (standaard vandaag), op tijd

Parameters

NaamWaarTypeUitleg
datumzoekterm (?…)tekst

Antwoord 200

lijst van Rij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/reserveringen" \
  -H "Authorization: Bearer <token>"
POST/api/reserveringen#

Body (JSON)

Type: Invoer

VeldTypeUitleg
naamalles
telefoonalles
emailalles
personenalles
datumalles
tijdalles
duurMinalles
tafelIdalles
opmerkingalles
klantIdalles
tochalles

ook opslaan als de tafel dan al gereserveerd is

mailenalles

bevestiging mailen (alleen bij nieuw)

Antwoord 200

21 velden tonen
VeldTypeUitleg
mailobject
mail.ok *ja/nee
mail.fouttekst
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
personen *getal
tijdstip *tekst
datum *tekst
tijd *tekst
duurMin *getal
tafelId *tekst of null
tafelNaam *tekst of null
opmerking *tekst of null
status *tekst
bestellingId *tekst of null
klantId *tekst of null
gemaildOp *tekst of null
platformIdtekst of null

reservering van een platform (migratie 078): id en naam (bv. TheFork)

platformNaamtekst of null

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/reserveringen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "telefoon": null,
  "email": null,
  "personen": null
}'
PUT/api/reserveringen/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: Invoer

VeldTypeUitleg
naamalles
telefoonalles
emailalles
personenalles
datumalles
tijdalles
duurMinalles
tafelIdalles
opmerkingalles
klantIdalles
tochalles

ook opslaan als de tafel dan al gereserveerd is

mailenalles

bevestiging mailen (alleen bij nieuw)

Antwoord 200

18 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
personen *getal
tijdstip *tekst
datum *tekst
tijd *tekst
duurMin *getal
tafelId *tekst of null
tafelNaam *tekst of null
opmerking *tekst of null
status *tekst
bestellingId *tekst of null
klantId *tekst of null
gemaildOp *tekst of null
platformIdtekst of null

reservering van een platform (migratie 078): id en naam (bv. TheFork)

platformNaamtekst of null

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Reservering niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/reserveringen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "telefoon": null,
  "email": null,
  "personen": null
}'
POST/api/reserveringen/{id}/mail#

Bevestiging (opnieuw) mailen

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
reservering *Rij
ok *ja/nee
fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Reservering niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/reserveringen/<id>/mail" \
  -H "Authorization: Bearer <token>"
POST/api/reserveringen/{id}/status#

Status: aangekomen (met de geopende bestelling), no_show, geannuleerd of terug naar gereserveerd

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
statustekst
bestellingIdtekst

Antwoord 200

18 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
personen *getal
tijdstip *tekst
datum *tekst
tijd *tekst
duurMin *getal
tafelId *tekst of null
tafelNaam *tekst of null
opmerking *tekst of null
status *tekst
bestellingId *tekst of null
klantId *tekst of null
gemaildOp *tekst of null
platformIdtekst of null

reservering van een platform (migratie 078): id en naam (bv. TheFork)

platformNaamtekst of null

Foutmeldingen

400

Onbekende status.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Reservering niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/reserveringen/<id>/status" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "tekst",
  "bestellingId": "3f2c9a1e-…"
}'

Wachtlijst

Wachtlijst voor walk-ins: aanmelden, oproepen met een sms (CM.com, CM_TOKEN), plaatsen aan een tafel of weg.

GET/api/wachtlijst#

Wie er nu wacht (op volgorde van aanmelden), plus wie vandaag al geplaatst of weg is

Antwoord 200

lijst van Wachtende

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/wachtlijst" \
  -H "Authorization: Bearer <token>"
POST/api/wachtlijst#

Op de wachtlijst zetten

Body (JSON)

Type: WachtendeInvoer

VeldTypeUitleg
naamalles
telefoonalles
personenalles
wensalles
wachttijdMinalles

Antwoord 200

17 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
personen *getal
wens *tekst of null

bv. terras, kinderstoel

wachttijdMin *getal of null

genoemde verwachte wachttijd (minuten)

status *tekst

Een van: "wacht" "opgeroepen" "geplaatst" "weg"

aangemeldOp *tekst
opgeroepenOp *tekst of null
smsStatus *tekst of null

'verstuurd' of de foutmelding van de laatste sms

smsOp *tekst of null
geplaatstOp *tekst of null
tafelId *tekst of null
tafelNaam *tekst of null
bestellingId *tekst of null
wachtMin *getal

hoe lang (minuten) aan het wachten, of hoe lang gewacht tot geplaatst/weg

bron *tekst

aangemeld aan de deur (kassa) of online via de webshop (migratie 108)

Een van: "webshop" "kassa"

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/wachtlijst" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "telefoon": null,
  "personen": null,
  "wens": null
}'
PUT/api/wachtlijst/{id}#

Gegevens wijzigen (naam, telefoon, personen, wens, wachttijd)

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: WachtendeInvoer

VeldTypeUitleg
naamalles
telefoonalles
personenalles
wensalles
wachttijdMinalles

Antwoord 200

17 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
personen *getal
wens *tekst of null

bv. terras, kinderstoel

wachttijdMin *getal of null

genoemde verwachte wachttijd (minuten)

status *tekst

Een van: "wacht" "opgeroepen" "geplaatst" "weg"

aangemeldOp *tekst
opgeroepenOp *tekst of null
smsStatus *tekst of null

'verstuurd' of de foutmelding van de laatste sms

smsOp *tekst of null
geplaatstOp *tekst of null
tafelId *tekst of null
tafelNaam *tekst of null
bestellingId *tekst of null
wachtMin *getal

hoe lang (minuten) aan het wachten, of hoe lang gewacht tot geplaatst/weg

bron *tekst

aangemeld aan de deur (kassa) of online via de webshop (migratie 108)

Een van: "webshop" "kassa"

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/wachtlijst/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "telefoon": null,
  "personen": null,
  "wens": null
}'
POST/api/wachtlijst/{id}/oproepen#

Oproepen: er is een tafel vrij

Stuurt een sms (als er een telefoonnummer is en CM_TOKEN in .env staat), tenzij sms: false. Nog een keer oproepen = nog een sms.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
tafelIdtekst of null
smsja/nee

Antwoord 200

20 velden tonen
VeldTypeUitleg
smsobject
sms.ok *ja/nee
sms.fouttekst
id *tekst
naam *tekst
telefoon *tekst of null
personen *getal
wens *tekst of null

bv. terras, kinderstoel

wachttijdMin *getal of null

genoemde verwachte wachttijd (minuten)

status *tekst

Een van: "wacht" "opgeroepen" "geplaatst" "weg"

aangemeldOp *tekst
opgeroepenOp *tekst of null
smsStatus *tekst of null

'verstuurd' of de foutmelding van de laatste sms

smsOp *tekst of null
geplaatstOp *tekst of null
tafelId *tekst of null
tafelNaam *tekst of null
bestellingId *tekst of null
wachtMin *getal

hoe lang (minuten) aan het wachten, of hoe lang gewacht tot geplaatst/weg

bron *tekst

aangemeld aan de deur (kassa) of online via de webshop (migratie 108)

Een van: "webshop" "kassa"

Foutmeldingen

400

Onbekende tafel.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Niet gevonden.

409

Deze gast staat niet (meer) te wachten.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/wachtlijst/<id>/oproepen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "tafelId": "3f2c9a1e-…",
  "sms": true
}'
POST/api/wachtlijst/{id}/status#

Status: geplaatst (met de geopende bestelling en tafel), weg, of terug naar wacht

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
statustekst
bestellingIdtekst
tafelIdtekst

Antwoord 200

17 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
personen *getal
wens *tekst of null

bv. terras, kinderstoel

wachttijdMin *getal of null

genoemde verwachte wachttijd (minuten)

status *tekst

Een van: "wacht" "opgeroepen" "geplaatst" "weg"

aangemeldOp *tekst
opgeroepenOp *tekst of null
smsStatus *tekst of null

'verstuurd' of de foutmelding van de laatste sms

smsOp *tekst of null
geplaatstOp *tekst of null
tafelId *tekst of null
tafelNaam *tekst of null
bestellingId *tekst of null
wachtMin *getal

hoe lang (minuten) aan het wachten, of hoe lang gewacht tot geplaatst/weg

bron *tekst

aangemeld aan de deur (kassa) of online via de webshop (migratie 108)

Een van: "webshop" "kassa"

Foutmeldingen

400

Onbekende status.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/wachtlijst/<id>/status" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "tekst",
  "bestellingId": "3f2c9a1e-…",
  "tafelId": "3f2c9a1e-…"
}'

Thuisbezorgd

Thuisbezorgd.nl (JET Connect via het beheerportaal): bestellingen en track & trace, eigen status, afronden, en Instellingen → Bezorgplatforms → Thuisbezorgd (aanmelden, producten, menu, open/dicht).

POST/api/beheer/thuisbezorgd/aanmelden#

Body (JSON)

VeldTypeUitleg
jetRestaurantalles

Antwoord 200

Type: Koppeling

VeldTypeUitleg
status *tekst

Een van: "klaar" "menu" "fout" "uit" "aangevraagd" "configureren" "live"

statusTekst *tekst
locationId *tekst of null
jetRestaurant *tekst of null
menu *object of null
menu.op *tekst
menu.status *tekst of null
menu.fout *tekst of null
laatsteFout *tekst of null
menuGevraagd *ja/nee
testmodus *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/aanmelden" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "jetRestaurant": null
}'
POST/api/beheer/thuisbezorgd/afmelden#

Antwoord 200

Type: Koppeling

VeldTypeUitleg
status *tekst

Een van: "klaar" "menu" "fout" "uit" "aangevraagd" "configureren" "live"

statusTekst *tekst
locationId *tekst of null
jetRestaurant *tekst of null
menu *object of null
menu.op *tekst
menu.status *tekst of null
menu.fout *tekst of null
laatsteFout *tekst of null
menuGevraagd *ja/nee
testmodus *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/afmelden" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/thuisbezorgd/instellingen#

beheer

Body (JSON)

VeldTypeUitleg
aanalles
menuAutoalles
werkbonalles

Antwoord 200

Type: ThuisbezorgdInstelling

VeldTypeUitleg
aan *ja/nee
menuAuto *ja/nee
werkbon *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/instellingen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aan": null,
  "menuAuto": null,
  "werkbon": null
}'
GET/api/beheer/thuisbezorgd/menu#

Voorbeeld van het menu zoals het naar Thuisbezorgd gaat

Antwoord 200

VeldTypeUitleg
menus *lijst van alles
aantal *getal
uitverkocht *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/thuisbezorgd/menu" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/thuisbezorgd/menu#

Antwoord 200

VeldTypeUitleg
ok *ja/nee
aantal *getal
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/menu" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/thuisbezorgd/open#

Zaak open of tijdelijk dicht voor Thuisbezorgd (dicht = tot weerOpenOp, in NL/BE hooguit tot 07:00 de volge…

Zaak open of tijdelijk dicht voor Thuisbezorgd (dicht = tot weerOpenOp, in NL/BE hooguit tot 07:00 de volgende dag).

Body (JSON)

VeldTypeUitleg
openalles
weerOpenOpalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
open *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/open" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "open": null,
  "weerOpenOp": null
}'
GET/api/beheer/thuisbezorgd/producten#

Welke producten bestelbaar zijn via Thuisbezorgd (alle actieve producten, per groep)

Antwoord 200

lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/thuisbezorgd/producten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/thuisbezorgd/producten#

Body (JSON)

VeldTypeUitleg
artikelIdsalles
aanalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
aantal *getal

Foutmeldingen

400

Kies producten en aan of uit.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/producten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "artikelIds": null,
  "aan": null
}'
POST/api/beheer/thuisbezorgd/producten/{id}/omschrijving#

Omschrijving van een product op Thuisbezorgd (hooguit 500 tekens; leeg = geen)

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
omschrijvingalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
omschrijving *tekst of null

Foutmeldingen

400

Omschrijving is tekst.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/producten/<id>/omschrijving" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "omschrijving": null
}'
GET/api/beheer/thuisbezorgd/tijden#

Openingstijden voor Thuisbezorgd (bezorgen en afhalen apart); null = niet van de kassa uit beheren

Antwoord 200

VeldTypeUitleg
tijden *Tijden

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/thuisbezorgd/tijden" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/thuisbezorgd/tijden#

Body (JSON)

VeldTypeUitleg
tijdenalles

Antwoord 200

VeldTypeUitleg
verstuurd *ja/nee
fout *tekst of null
ok *ja/nee
tijden *Tijden

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/tijden" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "tijden": null
}'
POST/api/beheer/thuisbezorgd/vernieuwen#

Antwoord 200

VeldTypeUitleg
status *tekst

Een van: "klaar" "menu" "fout" "uit" "aangevraagd" "configureren" "live"

statusTekst *tekst
locationId *tekst of null
jetRestaurant *tekst of null
menu *object of null
menu.op *tekst
menu.status *tekst of null
menu.fout *tekst of null
laatsteFout *tekst of null
menuGevraagd *ja/nee
testmodus *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/vernieuwen" \
  -H "Authorization: Bearer <token>"
GET/api/thuisbezorgd/bestellingen#

Parameters

NaamWaarTypeUitleg
dagenzoekterm (?…)tekst

Antwoord 200

lijst van TbOverzicht

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/thuisbezorgd/bestellingen" \
  -H "Authorization: Bearer <token>"
POST/api/thuisbezorgd/bestellingen/{id}/afronden#

Online betaald bij Thuisbezorgd: afrekenen als "online" voor het openstaande bedrag (bon in het journaal, z…

Online betaald bij Thuisbezorgd: afrekenen als "online" voor het openstaande bedrag (bon in het journaal, zoals elke verkoop). Contant bij de deur: gewoon afrekenen via de bestelling.

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: AfrekenResultaat

13 velden tonen
VeldTypeUitleg
ok *ja/nee
fouttekst
bestellingBestelling
ticketNummergetal
bonRegelslijst van tekst
bonTekstlijst van tekst

de kassabon als tekstregels (alleen met bonTekst in het verzoek)

printFouttekst
cadeaubonnenlijst van object

cadeaubonnen die met deze afrekening actief zijn geworden (migratie 026)

cadeaubonnen[].code *tekst
cadeaubonnen[].waarde *getal
mailobject

bon per e-mail: gelukt of de fout (alleen als er een adres was)

mail.verstuurd *ja/nee
mail.fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Deze bestelling is geannuleerd.
  • Deze bestelling wordt bij de deur betaald: reken af via de bestelling (contant of pin).
  • Deze bestelling is al afgerekend.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/thuisbezorgd/bestellingen/<id>/afronden" \
  -H "Authorization: Bearer <token>"
POST/api/thuisbezorgd/bestellingen/{id}/status#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
statusalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Onbekende status.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden of geannuleerd.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/thuisbezorgd/bestellingen/<id>/status" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "status": null
}'
GET/api/thuisbezorgd/status#

Stand van de koppeling (voor de knop in de bovenbalk en Instellingen → Zaak)

Antwoord 200

VeldTypeUitleg
portaal *ja/nee
verbonden *ja/nee
fout *tekst of null
laatstOpgehaald *tekst of null
koppeling *Koppeling
lopend *getal
aan *ja/nee
menuAuto *ja/nee
werkbon *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/thuisbezorgd/status" \
  -H "Authorization: Bearer <token>"

Signalering

Fraude- en diefstalsignalering en meldingen bij afwijkingen (migratie 102; Instellingen → Signalering, standaard uit): drempels en kanalen (mail, sms, ntfy, Pushover, Telegram, webhook), testbericht, nu controleren, signalen bekijken en afhandelen.

GET/api/beheer/signalering#

Toegang: Controleert daarnaast: signalering_instellen (Signalering instellen (fraude en afwijkingen: drempels en meldingen)).

Toegang

Controleert daarnaast: signalering_instellen (Signalering instellen (fraude en afwijkingen: drempels en meldingen)).

Antwoord 200

Type: SignaleringBeheer

VeldTypeUitleg
migratie *ja/nee
instelling *SignaleringInstelling
geheimen *object

welke geheimen ingevuld zijn (de waarde komt nooit terug)

geheimen.ntfyToken *ja/nee
geheimen.pushoverToken *ja/nee
geheimen.telegramToken *ja/nee
geheimen.webhookGeheim *ja/nee
mail *ja/nee
sms *ja/nee
laatstOp *tekst of null
open *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/signalering" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/signalering#

Toegang: Controleert daarnaast: signalering_instellen (Signalering instellen (fraude en afwijkingen: drempels en meldingen)).

Toegang

Controleert daarnaast: signalering_instellen (Signalering instellen (fraude en afwijkingen: drempels en meldingen)).

Body (JSON)

Geen velden.

Antwoord 200

Type: SignaleringBeheer

VeldTypeUitleg
migratie *ja/nee
instelling *SignaleringInstelling
geheimen *object

welke geheimen ingevuld zijn (de waarde komt nooit terug)

geheimen.ntfyToken *ja/nee
geheimen.pushoverToken *ja/nee
geheimen.telegramToken *ja/nee
geheimen.webhookGeheim *ja/nee
mail *ja/nee
sms *ja/nee
laatstOp *tekst of null
open *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/signalering" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/signalering/controleer#

Nu controleren (anders elke 5 minuten)

Toegang

Controleert daarnaast: signalering_instellen (Signalering instellen (fraude en afwijkingen: drempels en meldingen)).

Antwoord 200

VeldTypeUitleg
nieuw *getal
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/signalering/controleer" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/signalering/test#

Testbericht via een kanaal (mail, sms, ntfy, pushover, telegram, webhook)

Toegang

Controleert daarnaast: signalering_instellen (Signalering instellen (fraude en afwijkingen: drempels en meldingen)).

Body (JSON)

VeldTypeUitleg
kanaaltekst

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/signalering/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "kanaal": "tekst"
}'
GET/api/signalering#

Toegang: Controleert daarnaast: logboek (Logboek bekijken).

Toegang

Controleert daarnaast: logboek (Logboek bekijken).

Parameters

NaamWaarTypeUitleg
dagenzoekterm (?…)tekst

Antwoord 200

lijst van SignaalRegel

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/signalering" \
  -H "Authorization: Bearer <token>"
POST/api/signalering/{id}/afgehandeld#

Toegang: Controleert daarnaast: logboek (Logboek bekijken).

Toegang

Controleert daarnaast: logboek (Logboek bekijken).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
notitietekst

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/signalering/<id>/afgehandeld" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "notitie": "tekst"
}'
GET/api/signalering/stand#

Voor de knop in de bovenbalk: aan, en het aantal open signalen

Toegang

Controleert daarnaast: logboek (Logboek bekijken).

Antwoord 200

VeldTypeUitleg
aan *ja/nee
open *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/signalering/stand" \
  -H "Authorization: Bearer <token>"

Telefonie

Telefonie: nummerherkenning bij telefonische bestellingen (migratie 106; Instellingen → Telefonie, standaard uit): de melding van de centrale, het toestel, de FRITZ!Box, het modem of de Android-telefoon (webhook met sleutel; ook via het portaal), de beller opzoeken met adres en bestelgeschiedenis, de gesprekken en het beheer (bronnen, lijnen, bewaartermijn, testgesprek).

GET/api/beheer/telefonie#

Antwoord 200

Type: TelefonieBeheer

22 velden tonen
VeldTypeUitleg
migratie *ja/nee
land *tekst

Een van: "NL" "BE"

instelling *TelefonieInstelling
sleutel *tekst of null

de sleutel van de webhook (de beheerder zet hem in de centrale of op het toestel)

amiWachtwoord *ja/nee
adressen *object
adressen.kassa *lijst van tekst
adressen.portaal *tekst of null
verbindingen *object
verbindingen.ami *object of null
verbindingen.ami.verbonden *ja/nee
verbindingen.ami.fout *tekst of null
verbindingen.fritzbox *object of null
verbindingen.fritzbox.verbonden *ja/nee
verbindingen.fritzbox.fout *tekst of null
verbindingen.modem *object of null
verbindingen.modem.verbonden *ja/nee
verbindingen.modem.fout *tekst of null
laatste *object of null
laatste.op *tekst
laatste.bron *tekst
laatste.nummer *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/telefonie" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/telefonie#

Body (JSON)

Geen velden.

Antwoord 200

Type: TelefonieBeheer

22 velden tonen
VeldTypeUitleg
migratie *ja/nee
land *tekst

Een van: "NL" "BE"

instelling *TelefonieInstelling
sleutel *tekst of null

de sleutel van de webhook (de beheerder zet hem in de centrale of op het toestel)

amiWachtwoord *ja/nee
adressen *object
adressen.kassa *lijst van tekst
adressen.portaal *tekst of null
verbindingen *object
verbindingen.ami *object of null
verbindingen.ami.verbonden *ja/nee
verbindingen.ami.fout *tekst of null
verbindingen.fritzbox *object of null
verbindingen.fritzbox.verbonden *ja/nee
verbindingen.fritzbox.fout *tekst of null
verbindingen.modem *object of null
verbindingen.modem.verbonden *ja/nee
verbindingen.modem.fout *tekst of null
laatste *object of null
laatste.op *tekst
laatste.bron *tekst
laatste.nummer *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/telefonie" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/telefonie/test#

Body (JSON)

VeldTypeUitleg
nummertekst

Antwoord 200

VeldTypeUitleg
oproep *Oproep

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/telefonie/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "nummer": "tekst"
}'
GET/api/telefonie/oproep#

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/telefonie/oproep" \
  -H "Authorization: Bearer <token>"
POST/api/telefonie/oproep#

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/telefonie/oproep" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
GET/api/telefonie/oproep/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/telefonie/oproep/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/telefonie/oproep/{id}/afgehandeld#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
bestellingIdtekst

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/telefonie/oproep/<id>/afgehandeld" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "bestellingId": "3f2c9a1e-…"
}'
GET/api/telefonie/oproepen#

Parameters

NaamWaarTypeUitleg
urenzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
aan *ja/nee
oproepen *lijst van OproepRegel

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/telefonie/oproepen" \
  -H "Authorization: Bearer <token>"
GET/api/telefonie/stand#

Antwoord 200

VeldTypeUitleg
aan *ja/nee
melding *ja/nee
zoeken *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/telefonie/stand" \
  -H "Authorization: Bearer <token>"
GET/api/telefonie/zoek#

Parameters

NaamWaarTypeUitleg
nummerzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
beller *Beller

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Opzoeken op telefoonnummer staat uit (Instellingen → Telefonie).

Voorbeeld (curl)
curl "http://kassa:4000/api/telefonie/zoek" \
  -H "Authorization: Bearer <token>"

Vinify

Wijnbeheer met Vinify (migratie 104; Instellingen → Wijnbeheer, standaard uit): de API voor Vinify (wijnen en groepen ophalen, aanmaken en wijzigen, verkopen ophalen; aanmelden met API-sleutel, JWT of handtekening) en het beheer (aanmelden, wijngroepen, push).

GET/api/beheer/vinify#

Antwoord 200

16 velden tonen
VeldTypeUitleg
portaalAdres *tekst of null
migratie *ja/nee
instelling *VinifyInstelling
sleutelIngevuld *ja/nee
secretIngevuld *ja/nee
wachtwoordIngevuld *ja/nee
pushTokenIngevuld *ja/nee
status *tekst
melding *tekst of null
laatstContact *tekst of null
pushOp *tekst of null
pushAantal *getal
wijnen *getal
groepenLijst *lijst van object
groepenLijst[].id *tekst
groepenLijst[].naam *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/vinify" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/vinify#

Body (JSON)

Geen velden.

Antwoord 200

18 velden tonen
VeldTypeUitleg
sleuteltekst
secrettekst
portaalAdres *tekst of null
migratie *ja/nee
instelling *VinifyInstelling
sleutelIngevuld *ja/nee
secretIngevuld *ja/nee
wachtwoordIngevuld *ja/nee
pushTokenIngevuld *ja/nee
status *tekst
melding *tekst of null
laatstContact *tekst of null
pushOp *tekst of null
pushAantal *getal
wijnen *getal
groepenLijst *lijst van object
groepenLijst[].id *tekst
groepenLijst[].naam *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/vinify" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/vinify/push#

Antwoord 200

VeldTypeUitleg
ok *ja/nee
verstuurd *getal
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/vinify/push" \
  -H "Authorization: Bearer <token>"
GET/api/vinify#

Antwoord 200

VeldTypeUitleg
name *tekst
api *tekst
version *getal
endpoints *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/vinify" \
  -H "Authorization: Bearer <token>"
GET/api/vinify/articles#

Antwoord 200

lijst van VinifyArtikel

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/vinify/articles" \
  -H "Authorization: Bearer <token>"
POST/api/vinify/articles#

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/vinify/articles" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/vinify/articles/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: VinifyArtikel

VeldTypeUitleg
id *tekst
vinify_id *tekst of null
name *tekst
price *getal
vat *getal
group_id *tekst of null
group_name *tekst of null
glass *ja/nee
quantity *getal of null
purchase_price *getal of null
active *ja/nee
updated_at *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Wijn niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/vinify/articles/<id>" \
  -H "Authorization: Bearer <token>"
PATCH/api/vinify/articles/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X PATCH "http://kassa:4000/api/vinify/articles/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/vinify/groups#

Antwoord 200

Type: lijst van object

VeldTypeUitleg
[].id *tekst
[].name *tekst
[].wine *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/vinify/groups" \
  -H "Authorization: Bearer <token>"
POST/api/vinify/groups#

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/vinify/groups" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/vinify/token#

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/vinify/token" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/vinify/transactions#

Antwoord 200

lijst van VinifyTransactie

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/vinify/transactions" \
  -H "Authorization: Bearer <token>"

Apicbase

Receptuur en kostprijs met Apicbase (migratie 101; Instellingen → Receptuur, standaard uit): verbinden (token of inloggen), outlet, catalogus en bonnen sturen, kostprijzen ophalen en tonen.

GET/api/apicbase/kostprijzen#

Kostprijs per portie volgens Apicbase, per kassaproduct (ook voor wie de voorraad beheert)

Toegang

Controleert daarnaast: voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Antwoord 200

lijst van Kostprijs

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/apicbase/kostprijzen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/apicbase#

Antwoord 200

14 velden tonen
VeldTypeUitleg
migratie *ja/nee
partnerApp *ja/nee
instelling *ApicbaseInstelling
status *tekst
melding *tekst of null
tokenIngevuld *ja/nee
geheimIngevuld *ja/nee
verbonden *ja/nee
verkopenTot *tekst of null
verkopenOp *tekst of null
verkopenAantal *getal
catalogusOp *tekst of null
kostprijzenOp *tekst of null
openBonnen *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/apicbase" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/apicbase#

Body (JSON)

Geen velden.

Antwoord 200

14 velden tonen
VeldTypeUitleg
migratie *ja/nee
partnerApp *ja/nee
instelling *ApicbaseInstelling
status *tekst
melding *tekst of null
tokenIngevuld *ja/nee
geheimIngevuld *ja/nee
verbonden *ja/nee
verkopenTot *tekst of null
verkopenOp *tekst of null
verkopenAantal *getal
catalogusOp *tekst of null
kostprijzenOp *tekst of null
openBonnen *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/apicbase" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/apicbase/catalogus#

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/apicbase/catalogus" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/apicbase/inloggen#

Adres om in te loggen bij Apicbase (daarna de code plakken)

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/apicbase/inloggen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/apicbase/kostprijzen#

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/apicbase/kostprijzen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/apicbase/outlets#

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/apicbase/outlets" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/apicbase/verkopen#

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/apicbase/verkopen" \
  -H "Authorization: Bearer <token>"

Bezorgplatforms en TheFork

Uber Eats, Deliveroo (België) en HubRise (migratie 100; Instellingen → Bezorgplatforms, standaard uit): overzicht (knop Platforms), accepteren/weigeren en status, afronden, menu en producten, inloggen; en de TheFork-kassakoppeling (Instellingen → Reserveringsplatforms): gast aan een tafel koppelen en de rekening (opnieuw) sturen.

GET/api/beheer/bezorgplatforms#

beheer

Antwoord 200

18 velden tonen
VeldTypeUitleg
thefork *object
thefork.migratie *ja/nee
thefork.portaal *ja/nee
thefork.instelling *object
thefork.instelling.aan *ja/nee
thefork.instelling.customerId *tekst of null

restaurant-id bij TheFork (Customer-id, uuid)

thefork.instelling.tafelOpenen *ja/nee

tafel vanzelf openen bij aankomst

thefork.instelling.rekeningSturen *ja/nee

rekening na het afrekenen naar TheFork

thefork.instelling.notitie *ja/nee

notitie (naam, allergieën, aanbetaling) bij de bestelling

thefork.instelling.status *tekst
thefork.instelling.melding *tekst of null
thefork.instelling.koppelcode *tekst of null
thefork.orders *lijst van TfOrder
migratie *ja/nee
portaal *ja/nee
land *tekst
koppelingen *lijst van PlatformKoppeling
hubriseApp *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bezorgplatforms" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bezorgplatforms/{platform}#

Parameters

NaamWaarTypeUitleg
platform *padtekst

Body (JSON)

Geen velden.

Antwoord 200

19 velden tonen
VeldTypeUitleg
thefork *object
thefork.migratie *ja/nee
thefork.portaal *ja/nee
thefork.instelling *object
thefork.instelling.aan *ja/nee
thefork.instelling.customerId *tekst of null

restaurant-id bij TheFork (Customer-id, uuid)

thefork.instelling.tafelOpenen *ja/nee

tafel vanzelf openen bij aankomst

thefork.instelling.rekeningSturen *ja/nee

rekening na het afrekenen naar TheFork

thefork.instelling.notitie *ja/nee

notitie (naam, allergieën, aanbetaling) bij de bestelling

thefork.instelling.status *tekst
thefork.instelling.melding *tekst of null
thefork.instelling.koppelcode *tekst of null
thefork.orders *lijst van TfOrder
migratie *ja/nee
portaal *ja/nee
land *tekst
koppelingen *lijst van PlatformKoppeling
hubriseApp *ja/nee
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bezorgplatforms/<platform>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/bezorgplatforms/{platform}/inloggen#

Uber Eats: adres om in te loggen en de winkel te koppelen

HubRise: adres om in te loggen (de code daarna plakken).

Parameters

NaamWaarTypeUitleg
platform *padtekst

Antwoord 200

VeldTypeUitleg
url *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bezorgplatforms/<platform>/inloggen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bezorgplatforms/{platform}/menu#

Parameters

NaamWaarTypeUitleg
platform *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
aantal *getal
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bezorgplatforms/<platform>/menu" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/bezorgplatforms/menu#

Voorbeeld van wat er op het menu komt (producten met "bestelbaar via bezorgplatforms")

Antwoord 200

object of PlatformMenu

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bezorgplatforms/menu" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/bezorgplatforms/producten#

Welke producten via de bezorgplatforms (Uber Eats, Deliveroo) bestelbaar zijn (alle actieve producten, per …

Welke producten via de bezorgplatforms (Uber Eats, Deliveroo) bestelbaar zijn (alle actieve producten, per groep).

Antwoord 200

lijst van alles of lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bezorgplatforms/producten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bezorgplatforms/producten#

Body (JSON)

VeldTypeUitleg
artikelIdsalles
aanalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
aantal *getal

Foutmeldingen

400

Kies producten en aan of uit.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Voor de bezorgplatforms is migratie 100 nodig: npm run db:migrate.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bezorgplatforms/producten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "artikelIds": null,
  "aan": null
}'
GET/api/bezorgplatforms/bestellingen#

Parameters

NaamWaarTypeUitleg
dagenzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
thefork *lijst van TfOrder
aan *ja/nee
bestellingen *lijst van POverzicht

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/bezorgplatforms/bestellingen" \
  -H "Authorization: Bearer <token>"
POST/api/bezorgplatforms/bestellingen/{id}/actie#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
actiealles
redenalles

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bezorgplatforms/bestellingen/<id>/actie" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "actie": null,
  "reden": null
}'
POST/api/bezorgplatforms/bestellingen/{id}/afronden#

Online betaald bij het platform: afrekenen als "online" voor het openstaande bedrag (bon in het journaal)

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: AfrekenResultaat

13 velden tonen
VeldTypeUitleg
ok *ja/nee
fouttekst
bestellingBestelling
ticketNummergetal
bonRegelslijst van tekst
bonTekstlijst van tekst

de kassabon als tekstregels (alleen met bonTekst in het verzoek)

printFouttekst
cadeaubonnenlijst van object

cadeaubonnen die met deze afrekening actief zijn geworden (migratie 026)

cadeaubonnen[].code *tekst
cadeaubonnen[].waarde *getal
mailobject

bon per e-mail: gelukt of de fout (alleen als er een adres was)

mail.verstuurd *ja/nee
mail.fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Deze bestelling is geannuleerd of geweigerd.
  • Deze bestelling wordt bij de deur betaald: reken af via de bestelling (contant of pin).
  • Deze bestelling is al afgerekend.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bezorgplatforms/bestellingen/<id>/afronden" \
  -H "Authorization: Bearer <token>"
GET/api/bezorgplatforms/status#

Voor de knop in de bovenbalk: welke platforms aan staan en hoeveel bestellingen lopen

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/bezorgplatforms/status" \
  -H "Authorization: Bearer <token>"
POST/api/thefork/orders/{id}/koppel#

Een gast van TheFork aan een tafel (opent de tafel) of aan een bestaande bestelling koppelen; null = loskop…

Een gast van TheFork aan een tafel (opent de tafel) of aan een bestaande bestelling koppelen; null = loskoppelen.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
bestellingIdalles
tafelIdalles

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/thefork/orders/<id>/koppel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "bestellingId": null,
  "tafelId": null
}'
POST/api/thefork/orders/{id}/rekening#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Deze reservering is nog niet aan een bestelling gekoppeld.

409

De bestelling is nog niet afgerekend.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/thefork/orders/<id>/rekening" \
  -H "Authorization: Bearer <token>"

Weegschaal

Aclas OS6X (wegen aan de kassa, meerdere mogelijk) en TS6X (etiketten scannen, PLU-bestand en versturen); Instellingen → Weegschaal.

GET/api/beheer/weegschaal#

Instellingen van de weegschaal plus wat er op deze kassaserver kan

Antwoord 200

13 velden tonen
VeldTypeUitleg
database *ja/nee
platform *tekst

Een van: "android" "linux" "aix" "darwin" "freebsd" "haiku" "openbsd" "sunos" "win32" "cygwin" "netbsd"

ts6xRechtstreeks *ja/nee
ts6xUitleg *tekst
opTs6x *ja/nee
apparaatModel *tekst of null
sdkMap *tekst
moduleMap *tekst
pluProducten *getal
aan *ja/nee

Producten met een prijs per kilo en wegen (Instellingen → Weegschaal).

handmatig *ja/nee

Gewicht met de hand intikken mag (altijd mogelijk als er geen OS6X is).

os6x *lijst van Os6xInstelling

Aclas OS6X-weegschalen (meerdere kan: elk aan een eigen COM-/USB-poort van de kassaserver of via een eigen netwerkomzetter). Leeg = geen.

ts6x *Ts6xInstelling

Aclas TS6X etiketweegschaal; null = geen.

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/weegschaal" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/weegschaal#

Opslaan. Body (alles optioneel, niet meegestuurd = niet wijzigen): `{ aan, handmatig, os6x: [{ naam, model,…

Opslaan. Body (alles optioneel, niet meegestuurd = niet wijzigen): { aan, handmatig, os6x: [{ naam, model, verbinding, poort, btAdres, baud, host, tcpPoort, protocol, lijn }], ts6x: { model, host, poort, etiketPrefix, etiketInhoud, pluCijfers } | null }. model = model uit ACLASMODELLEN (alle merken uit MERKNAAM; bv. "PS1CX", "TS6X", "Ariva-S", "CS 300", "DS-781"); verbinding = serieel, netwerk, bluetooth of module ("op dit apparaat": de kassa draait op de weegschaal, hooguit één); protocol = opvragen (Toledo 8217), continu, dialog06 of digi (DIGI Type B); lijn = 8N1 (standaard) of 7E1 (Mettler Toledo).

Body (JSON)

VeldTypeUitleg
aanalles
handmatigalles
os6xalles
ts6xalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
weegschaal *WeegschaalInstelling
vestiging *Vestiging

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/weegschaal" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aan": null,
  "handmatig": null,
  "os6x": null,
  "ts6x": null
}'
GET/api/beheer/weegschaal/plu-bestand#

PLU-bestand voor de etiketweegschaal (tab-gescheiden tekst, UTF-8 met BOM, voor Aclas Link of de Aclas Sync…

PLU-bestand voor de etiketweegschaal (tab-gescheiden tekst, UTF-8 met BOM, voor Aclas Link of de Aclas Sync SDK).

Antwoord 200 · text/plain

tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 047).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/weegschaal/plu-bestand" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/weegschaal/test#

Testen: één keer wegen op de gekozen OS6X (leeg = de eerste)

Body (JSON)

VeldTypeUitleg
weegschaalalles

Antwoord 200

VeldTypeUitleg
weegschaal *tekst
gewichtKg *getal
brutoKg *getal
tarraGram *getal
stabiel *ja/nee
bedraggetal

Dialog 06: bedrag en kiloprijs zoals de (geijkte) weegschaal ze rekende

weegschaalPrijsgetal
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/weegschaal/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "weegschaal": null
}'
POST/api/beheer/weegschaal/ts6x/versturen#

De producten per kilo met een PLU-nummer rechtstreeks naar de etiketweegschaal (ook een TS- of AI-weegschaa…

De producten per kilo met een PLU-nummer rechtstreeks naar de etiketweegschaal (ook een TS- of AI-weegschaal of de AI Recognition Plugin van Aclas), met de Aclas Sync SDK (Windows of Linux-pc). Een aanraakweegschaal krijgt ook de afdeling en de productgroepen.

Antwoord 200

VeldTypeUitleg
ok *ja/nee
aantal *getal
groepen *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/weegschaal/ts6x/versturen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/weegschaal/zoeken#

Vanzelf zoeken: draait de kassa op een Aclas pc-/AI-weegschaal (TS6X, TS5EX, iS6X ...) en antwoordt de Acla…

Vanzelf zoeken: draait de kassa op een Aclas pc-/AI-weegschaal (TS6X, TS5EX, iS6X ...) en antwoordt de Aclas Scale Module, en welke weegschalen zitten aan een COM-/USB-poort (alle poorten en snelheden proberen)? Geeft een voorstel voor de instelling; de beheerder hoeft daarna alleen nog aan te zetten (opslaan met POST /api/beheer/weegschaal). opnieuw: true = niet het antwoord van de laatste minuut, echt opnieuw zoeken.

Body (JSON)

VeldTypeUitleg
opnieuwalles

Antwoord 200

Type: ZoekResultaat

VeldTypeUitleg
apparaat *Apparaat
module *ja/nee

de Aclas Scale Module antwoordt (wegen "op dit apparaat" kan)

gevonden *lijst van GevondenWeegschaal
doorzocht *lijst van tekst
voorstel *WeegschaalInstelling

instelling met wat gevonden is erbij (nog niet opgeslagen; de beheerder zet hem aan)

nieuw *ja/nee

iets nieuws gevonden dat nog niet in de instelling stond

tekst *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/weegschaal/zoeken" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "opnieuw": null
}'
POST/api/weegschaal/aiplugin#

Aclas AI Recognition Plugin: herkennen aan (`resume`, het bestelscherm is open) of uit (`suspend`)

Aclas AI Recognition Plugin: herkennen aan (resume, het bestelscherm is open) of uit (suspend). Alleen voor het scherm op de weegschaal zelf (zelfde apparaat als de kassaserver) en als er een AI-weegschaal is ingesteld; anders gebeurt er niets (overgeslagen). ok = false: de plugin antwoordt niet. Het bestelscherm stuurt resume elke 30 seconden zolang het openstaat; blijft dat uit, dan zet de kassaserver de plugin zelf op Suspend.

Body (JSON)

VeldTypeUitleg
actiealles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
overgeslagen *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/weegschaal/aiplugin" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "actie": null
}'
POST/api/weegschaal/etiket#

Body (JSON)

VeldTypeUitleg
codealles

Antwoord 200

Type: EtiketRegel

VeldTypeUitleg
artikelId *tekst
naam *tekst
plu *getal
gewichtKg *getal

gewicht in kg dat op de regel komt

prijsPerKilo *getal
bedrag *getal

bedrag van de regel (prijs per kilo x gewicht), centen

etiketPrijs *getal of null

stond er een prijs op het etiket: die

Foutmeldingen

400

Geen streepjescode ontvangen.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/weegschaal/etiket" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": null
}'
GET/api/weegschaal/gewicht#

Gewicht van de OS6X (via de kassaserver)

weegschaal = naam van de weegschaal die dit scherm gebruikt (leeg = de eerste); artikelId = tarra van dat product eraf. stabiel = false: het gewicht staat nog niet stil, even later opnieuw vragen. Dialog 06: prijs (centen per kilo) gaat naar de weegschaal en het antwoord heeft bedrag, zoals de geijkte weegschaal rekende.

Parameters

NaamWaarTypeUitleg
weegschaalzoekterm (?…)tekst
artikelIdzoekterm (?…)tekst
prijszoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
weegschaal *tekst
gewichtKg *getal
brutoKg *getal
tarraGram *getal
stabiel *ja/nee
bedraggetal

Dialog 06: bedrag en kiloprijs zoals de (geijkte) weegschaal ze rekende

weegschaalPrijsgetal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/weegschaal/gewicht" \
  -H "Authorization: Bearer <token>"

Klanten

Klantenkaart, spaarpunten en stempelkaarten.

GET/api/beheer/klanten#

Klantenlijst met laatste activiteit (beheer)

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Parameters

NaamWaarTypeUitleg
zoekzoekterm (?…)tekst

Antwoord 200

lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/klanten" \
  -H "Authorization: Bearer <token>"
PUT/api/beheer/klanten/{id}#

Toegang: Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: KlantInvoer

VeldTypeUitleg
naamalles
telefoonalles
emailalles
smsToestemmingalles

Marketing (migratie 056): toestemming voor acties per sms / e-mail. Niet meegestuurd = niet wijzigen.

emailToestemmingalles
verjaardagalles

verjaardag zonder jaar, "dd-mm" (leeg = geen). Niet meegestuurd = niet wijzigen.

adresalles

Adres (migratie 057): straat + huisnummer, postcode, plaats. Niet meegestuurd = niet wijzigen; leeg = weg.

postcodealles
plaatsalles
kaartalles

Klantenkaart (migratie 117, beheer): het nummer; leeg = weghalen. Niet meegestuurd = niet wijzigen.

Antwoord 200

19 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
punten *getal
laatstOp *tekst of null
stempels *lijst van object
stempels[].artikelId *tekst
stempels[].naam *tekst
stempels[].nodig *getal
stempels[].stand *getal
smsToestemmingja/nee

Marketing (migratie 056): toestemming voor acties per sms / per e-mail en wanneer gegeven.

emailToestemmingja/nee
toestemmingOptekst of null
verjaardagtekst of null

verjaardag zonder jaar: "dd-mm" (bv. "24-09")

adrestekst of null

Adres (migratie 057; optioneel): straat en huisnummer, postcode, plaats.

postcodetekst of null
plaatstekst of null
kaarttekst of null

Nummer van de klantenkaart (migratie 117; scannen aan de kassa of kiosk); null = geen.

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

404

Klant niet gevonden.

409

Dit telefoonnummer hoort al bij ….

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/beheer/klanten/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "telefoon": null,
  "email": null,
  "smsToestemming": null
}'
DELETE/api/beheer/klanten/{id}#

Verwijderen (AVG): gegevens weg; de historie blijft anoniem bewaard

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

404

Klant niet gevonden.

409

Deze klant hangt aan een open bestelling. Reken die eerst af of koppel los.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/klanten/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/klanten/{id}/correctie#

Punten corrigeren (+ of -), met reden

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
puntengetal
redentekst

Antwoord 200

19 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
punten *getal
laatstOp *tekst of null
stempels *lijst van object
stempels[].artikelId *tekst
stempels[].naam *tekst
stempels[].nodig *getal
stempels[].stand *getal
smsToestemmingja/nee

Marketing (migratie 056): toestemming voor acties per sms / per e-mail en wanneer gegeven.

emailToestemmingja/nee
toestemmingOptekst of null
verjaardagtekst of null

verjaardag zonder jaar: "dd-mm" (bv. "24-09")

adrestekst of null

Adres (migratie 057; optioneel): straat en huisnummer, postcode, plaats.

postcodetekst of null
plaatstekst of null
kaarttekst of null

Nummer van de klantenkaart (migratie 117; scannen aan de kassa of kiosk); null = geen.

Foutmeldingen

400

Mogelijke meldingen:

  • Vul een aantal punten in (bv. 50 of -50).
  • Geef een reden.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

404

Klant niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/klanten/<id>/correctie" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "punten": 1,
  "reden": "tekst"
}'
GET/api/beheer/klanten/{id}/historie#

Historie van één klant

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

404

Klant niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/klanten/<id>/historie" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/stempelkaarten#

Stempelkaarten: welk product, na hoeveel stuks één gratis

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Antwoord 200

lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/stempelkaarten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/stempelkaarten#

Stempelkaart instellen (nodig 2..100) of weghalen (nodig 0)

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Body (JSON)

VeldTypeUitleg
artikelIdtekst
nodiggetal

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een product.
  • Aantal stuks voor een gratis: 2 tot 100.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/stempelkaarten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "artikelId": "3f2c9a1e-…",
  "nodig": 1
}'
POST/api/bestellingen/{id}/klant#

Klant aan een (open) bestelling koppelen of loskoppelen (klantId null)

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
klantIdtekst of null

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Mogelijke meldingen:

  • Bestelling niet gevonden.
  • Klant niet gevonden.
409

Deze bestelling is al afgerekend.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/klant" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "klantId": "3f2c9a1e-…"
}'
POST/api/bestellingen/{id}/spaar#

Inwisselen: punten → korting (soort 'punten'), of een volle stempelkaart → dat product gratis (soort 'stemp…

Inwisselen: punten → korting (soort 'punten'), of een volle stempelkaart → dat product gratis (soort 'stempel', het product moet op de bon staan). Er gaat pas iets van het saldo af bij het afrekenen.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
soorttekst
artikelIdtekst

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Kies punten of een stempelkaart.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Mogelijke meldingen:

  • Bestelling niet gevonden.
  • Klant niet gevonden.
  • Geen stempelkaart voor dit product.
409

Mogelijke meldingen:

  • Deze bestelling is al afgerekend.
  • Er is al (deels) betaald; inwisselen kan dan niet meer.
  • Koppel eerst een klant.
  • Niet genoeg punten: … van de ….
  • Er staat nog niets op de bon om korting op te geven.
  • De stempelkaart … is nog niet vol (…/…).
  • Zet eerst … op de bon; die wordt dan gratis.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/spaar" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": "tekst",
  "artikelId": "3f2c9a1e-…"
}'
GET/api/klanten#

Zoeken op naam of (een deel van) het telefoonnummer

Parameters

NaamWaarTypeUitleg
zoekzoekterm (?…)tekst

Antwoord 200

lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/klanten" \
  -H "Authorization: Bearer <token>"
POST/api/klanten#

Nieuwe klant (aan de kassa)

Body (JSON)

Type: KlantInvoer

VeldTypeUitleg
naamalles
telefoonalles
emailalles
smsToestemmingalles

Marketing (migratie 056): toestemming voor acties per sms / e-mail. Niet meegestuurd = niet wijzigen.

emailToestemmingalles
verjaardagalles

verjaardag zonder jaar, "dd-mm" (leeg = geen). Niet meegestuurd = niet wijzigen.

adresalles

Adres (migratie 057): straat + huisnummer, postcode, plaats. Niet meegestuurd = niet wijzigen; leeg = weg.

postcodealles
plaatsalles
kaartalles

Klantenkaart (migratie 117, beheer): het nummer; leeg = weghalen. Niet meegestuurd = niet wijzigen.

Antwoord 200

19 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
punten *getal
laatstOp *tekst of null
stempels *lijst van object
stempels[].artikelId *tekst
stempels[].naam *tekst
stempels[].nodig *getal
stempels[].stand *getal
smsToestemmingja/nee

Marketing (migratie 056): toestemming voor acties per sms / per e-mail en wanneer gegeven.

emailToestemmingja/nee
toestemmingOptekst of null
verjaardagtekst of null

verjaardag zonder jaar: "dd-mm" (bv. "24-09")

adrestekst of null

Adres (migratie 057; optioneel): straat en huisnummer, postcode, plaats.

postcodetekst of null
plaatstekst of null
kaarttekst of null

Nummer van de klantenkaart (migratie 117; scannen aan de kassa of kiosk); null = geen.

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Dit telefoonnummer hoort al bij ….

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/klanten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "telefoon": null,
  "email": null,
  "smsToestemming": null
}'
GET/api/klanten/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: KlantInfo

19 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
punten *getal
laatstOp *tekst of null
stempels *lijst van object
stempels[].artikelId *tekst
stempels[].naam *tekst
stempels[].nodig *getal
stempels[].stand *getal
smsToestemmingja/nee

Marketing (migratie 056): toestemming voor acties per sms / per e-mail en wanneer gegeven.

emailToestemmingja/nee
toestemmingOptekst of null
verjaardagtekst of null

verjaardag zonder jaar: "dd-mm" (bv. "24-09")

adrestekst of null

Adres (migratie 057; optioneel): straat en huisnummer, postcode, plaats.

postcodetekst of null
plaatstekst of null
kaarttekst of null

Nummer van de klantenkaart (migratie 117; scannen aan de kassa of kiosk); null = geen.

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Klant niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/klanten/<id>" \
  -H "Authorization: Bearer <token>"

Marketing

Sms- en e-mailmarketing naar klanten met toestemming: acties, verjaardag en "we missen u" (CM.com en de mailserver), optioneel met een persoonlijke kortingscode per klant (een keer te gebruiken, met Kortingscodes aan).

GET/api/beheer/marketing#

Overzicht: welke kanalen aan staan, hoeveel klanten toestemming gaven (per kanaal) en alle acties (nieuwste…

Overzicht: welke kanalen aan staan, hoeveel klanten toestemming gaven (per kanaal) en alle acties (nieuwste eerst).

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Antwoord 200

41 velden tonen
VeldTypeUitleg
kanalen *object
kanalen.sms *ja/nee
kanalen.email *ja/nee
toestemming *object
toestemming.sms *getal
toestemming.email *getal
toestemming.klanten *getal
maxPerKeer *getal
kortingscodes *ja/nee
diensten *lijst van object
diensten[].dienst *tekst

Een van: "mailchimp" "klaviyo"

diensten[].naam *tekst
migratie090 *ja/nee
push *object
push.migratie *ja/nee
push.aan *ja/nee
push.aantal *getal
mailserver *ja/nee
campagnes *lijst van object
campagnes[].codes *object
campagnes[].codes.uitgegeven *getal
campagnes[].codes.gebruikt *getal
campagnes[].id *tekst
campagnes[].naam *tekst
campagnes[].soort *tekst

Een van: "eenmalig" "verjaardag" "terugkomen"

campagnes[].kanaal *tekst

Een van: "sms" "email"

campagnes[].onderwerp *tekst of null
campagnes[].tekst *tekst
campagnes[].dagen *getal of null

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen

campagnes[].minPunten *getal of null

eenmalig: minimaal zoveel punten (leeg = iedereen)

campagnes[].actief *ja/nee

automatische berichten: aan/uit

campagnes[].status *tekst

Een van: "verstuurd" "concept" "bezig"

campagnes[].onderbroken *ja/nee

status 'bezig' maar er wordt niet (meer) verstuurd, bv. na een herstart: verder versturen kan

campagnes[].verstuurdOp *tekst of null
campagnes[].aantalVerstuurd *getal
campagnes[].aantalMislukt *getal
campagnes[].aangemaaktOp *tekst
campagnes[].gewijzigdOp *tekst of null
campagnes[].code *CampagneCode

persoonlijke kortingscode bij elk bericht (migratie 068); null = geen

campagnes[].via *tekst

wie verstuurt (migratie 090): de kassa, of Mailchimp/Klaviyo

Een van: "kassa" "push" "mailchimp" "klaviyo"

campagnes[].fout *tekst of null

waarom versturen via Mailchimp/Klaviyo niet lukte (de actie is dan weer een concept)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/marketing" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/marketing#

Nieuwe actie (eenmalig = concept; verjaardag/terugkomen = automatisch, aan als actief)

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Body (JSON)

Type: CampagneInvoer

VeldTypeUitleg
naamalles
soortalles

'eenmalig' | 'verjaardag' | 'terugkomen'

kanaalalles

'sms' | 'email'

onderwerpalles

alleen e-mail

tekstalles

{naam}, {zaak} en {punten} worden ingevuld

dagenalles

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen (verplicht)

minPuntenalles

eenmalig: minimaal zoveel punten (leeg = iedereen)

actiefalles

automatische berichten: aan/uit

codeobject of null

persoonlijke kortingscode (migratie 068): { soort, waarde, minimum, dagen, kassa, webshop }; leeg/null = geen

code.soortalles
code.waardealles
code.minimumalles
code.dagenalles
code.kassaalles
code.webshopalles
viaalles

wie verstuurt (migratie 090): 'kassa' (standaard), 'mailchimp' of 'klaviyo' (alleen eenmalig per e-mail); 'push' (migratie 095)

Antwoord 200

19 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
soort *tekst

Een van: "eenmalig" "verjaardag" "terugkomen"

kanaal *tekst

Een van: "sms" "email"

onderwerp *tekst of null
tekst *tekst
dagen *getal of null

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen

minPunten *getal of null

eenmalig: minimaal zoveel punten (leeg = iedereen)

actief *ja/nee

automatische berichten: aan/uit

status *tekst

Een van: "verstuurd" "concept" "bezig"

onderbroken *ja/nee

status 'bezig' maar er wordt niet (meer) verstuurd, bv. na een herstart: verder versturen kan

verstuurdOp *tekst of null
aantalVerstuurd *getal
aantalMislukt *getal
aangemaaktOp *tekst
gewijzigdOp *tekst of null
code *CampagneCode

persoonlijke kortingscode bij elk bericht (migratie 068); null = geen

via *tekst

wie verstuurt (migratie 090): de kassa, of Mailchimp/Klaviyo

Een van: "kassa" "push" "mailchimp" "klaviyo"

fout *tekst of null

waarom versturen via Mailchimp/Klaviyo niet lukte (de actie is dan weer een concept)

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/marketing" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "soort": null,
  "kanaal": null,
  "onderwerp": null
}'
PUT/api/beheer/marketing/{id}#

Actie wijzigen: een eenmalige alleen zolang hij nog niet verstuurd is

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: CampagneInvoer

VeldTypeUitleg
naamalles
soortalles

'eenmalig' | 'verjaardag' | 'terugkomen'

kanaalalles

'sms' | 'email'

onderwerpalles

alleen e-mail

tekstalles

{naam}, {zaak} en {punten} worden ingevuld

dagenalles

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen (verplicht)

minPuntenalles

eenmalig: minimaal zoveel punten (leeg = iedereen)

actiefalles

automatische berichten: aan/uit

codeobject of null

persoonlijke kortingscode (migratie 068): { soort, waarde, minimum, dagen, kassa, webshop }; leeg/null = geen

code.soortalles
code.waardealles
code.minimumalles
code.dagenalles
code.kassaalles
code.webshopalles
viaalles

wie verstuurt (migratie 090): 'kassa' (standaard), 'mailchimp' of 'klaviyo' (alleen eenmalig per e-mail); 'push' (migratie 095)

Antwoord 200

19 velden tonen
VeldTypeUitleg
id *tekst
naam *tekst
soort *tekst

Een van: "eenmalig" "verjaardag" "terugkomen"

kanaal *tekst

Een van: "sms" "email"

onderwerp *tekst of null
tekst *tekst
dagen *getal of null

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen

minPunten *getal of null

eenmalig: minimaal zoveel punten (leeg = iedereen)

actief *ja/nee

automatische berichten: aan/uit

status *tekst

Een van: "verstuurd" "concept" "bezig"

onderbroken *ja/nee

status 'bezig' maar er wordt niet (meer) verstuurd, bv. na een herstart: verder versturen kan

verstuurdOp *tekst of null
aantalVerstuurd *getal
aantalMislukt *getal
aangemaaktOp *tekst
gewijzigdOp *tekst of null
code *CampagneCode

persoonlijke kortingscode bij elk bericht (migratie 068); null = geen

via *tekst

wie verstuurt (migratie 090): de kassa, of Mailchimp/Klaviyo

Een van: "kassa" "push" "mailchimp" "klaviyo"

fout *tekst of null

waarom versturen via Mailchimp/Klaviyo niet lukte (de actie is dan weer een concept)

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

404

Niet gevonden.

409

Deze actie is al verstuurd en kan niet meer veranderen. Maak een nieuwe.

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/beheer/marketing/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "soort": null,
  "kanaal": null,
  "onderwerp": null
}'
DELETE/api/beheer/marketing/{id}#

Actie weghalen (niet terwijl hij aan het versturen is)

Wat al verstuurd is, gaat mee weg uit het overzicht.

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

404

Niet gevonden.

409

Deze actie is nog aan het versturen.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/marketing/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/marketing/{id}/versturen#

Eenmalige actie versturen (op de achtergrond; status "bezig", daarna "verstuurd")

Eenmalige actie versturen (op de achtergrond; status "bezig", daarna "verstuurd"). Ook voor "Verder versturen" na een onderbreking: wie al een bericht kreeg, krijgt er geen tweede. Geeft het aantal ontvangers.

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

20 velden tonen
VeldTypeUitleg
ontvangers *getal
id *tekst
naam *tekst
soort *tekst

Een van: "eenmalig" "verjaardag" "terugkomen"

kanaal *tekst

Een van: "sms" "email"

onderwerp *tekst of null
tekst *tekst
dagen *getal of null

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen

minPunten *getal of null

eenmalig: minimaal zoveel punten (leeg = iedereen)

actief *ja/nee

automatische berichten: aan/uit

status *tekst

Een van: "verstuurd" "concept" "bezig"

onderbroken *ja/nee

status 'bezig' maar er wordt niet (meer) verstuurd, bv. na een herstart: verder versturen kan

verstuurdOp *tekst of null
aantalVerstuurd *getal
aantalMislukt *getal
aangemaaktOp *tekst
gewijzigdOp *tekst of null
code *CampagneCode

persoonlijke kortingscode bij elk bericht (migratie 068); null = geen

via *tekst

wie verstuurt (migratie 090): de kassa, of Mailchimp/Klaviyo

Een van: "kassa" "push" "mailchimp" "klaviyo"

fout *tekst of null

waarom versturen via Mailchimp/Klaviyo niet lukte (de actie is dan weer een concept)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

404

Niet gevonden.

409

Mogelijke meldingen:

  • Automatische berichten gaan vanzelf (zet ze aan of uit).
  • … is niet gekoppeld (Instellingen → Zaak → Mailchimp en Klaviyo: verbinden en een lijst kiezen).
  • Deze actie is al aan het versturen.
  • Deze actie is al verstuurd.
502

De betaalterminal of een externe dienst gaf een fout.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/marketing/<id>/versturen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/marketing/ontvangers#

Hoeveel klanten een eenmalige actie zouden krijgen (toestemming voor het kanaal, eventueel niet geweest sin…

Hoeveel klanten een eenmalige actie zouden krijgen (toestemming voor het kanaal, eventueel niet geweest sinds x dagen / minimaal x punten), plus een voorbeeld van het bericht en het aantal sms-delen.

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Body (JSON)

Type: CampagneInvoer

VeldTypeUitleg
naamalles
soortalles

'eenmalig' | 'verjaardag' | 'terugkomen'

kanaalalles

'sms' | 'email'

onderwerpalles

alleen e-mail

tekstalles

{naam}, {zaak} en {punten} worden ingevuld

dagenalles

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen (verplicht)

minPuntenalles

eenmalig: minimaal zoveel punten (leeg = iedereen)

actiefalles

automatische berichten: aan/uit

codeobject of null

persoonlijke kortingscode (migratie 068): { soort, waarde, minimum, dagen, kassa, webshop }; leeg/null = geen

code.soortalles
code.waardealles
code.minimumalles
code.dagenalles
code.kassaalles
code.webshopalles
viaalles

wie verstuurt (migratie 090): 'kassa' (standaard), 'mailchimp' of 'klaviyo' (alleen eenmalig per e-mail); 'push' (migratie 095)

Antwoord 200

object

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/marketing/ontvangers" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "soort": null,
  "kanaal": null,
  "onderwerp": null
}'
POST/api/beheer/marketing/test#

Testbericht naar een eigen nummer of adres ({naam} = "Test", {punten} = 120)

Toegang

Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Body (JSON)

VeldTypeUitleg
naamalles
soortalles

'eenmalig' | 'verjaardag' | 'terugkomen'

kanaalalles

'sms' | 'email'

onderwerpalles

alleen e-mail

tekstalles

{naam}, {zaak} en {punten} worden ingevuld

dagenalles

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen (verplicht)

minPuntenalles

eenmalig: minimaal zoveel punten (leeg = iedereen)

actiefalles

automatische berichten: aan/uit

codeobject of null

persoonlijke kortingscode (migratie 068): { soort, waarde, minimum, dagen, kassa, webshop }; leeg/null = geen

code.soortalles
code.waardealles
code.minimumalles
code.dagenalles
code.kassaalles
code.webshopalles
viaalles

wie verstuurt (migratie 090): 'kassa' (standaard), 'mailchimp' of 'klaviyo' (alleen eenmalig per e-mail); 'push' (migratie 095)

naartekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldig telefoonnummer.
  • Ongeldig e-mailadres.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Een test van een pushbericht: zet op je eigen telefoon in de webshop "Aanbiedingen als melding" aan; dan krijg je de actie zelf ook.
  • Een test sturen gaat via de mailserver van de kassa (SMTP_HOST in .env); stuur anders een test vanuit Mailchimp of Klaviyo.
502

De betaalterminal of een externe dienst gaf een fout.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/marketing/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "soort": null,
  "kanaal": null,
  "onderwerp": null
}'

Adres

Snel adres invoeren: straat en plaats bij een Nederlandse postcode en huisnummer (PDOK).

GET/api/adres#

Adres bij postcode en huisnummer (met letter of toevoeging, bv

12A of 12-1). Geeft alle adressen op dat nummer, de gevraagde toevoeging eerst.

Parameters

NaamWaarTypeUitleg
postcodezoekterm (?…)tekst
huisnummerzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
adressen *lijst van GevondenAdres

Foutmeldingen

400

Mogelijke meldingen:

  • Vul een Nederlandse postcode in, bv. 1234 AB.
  • Vul een huisnummer in, bv. 12 of 12A.
401

Niet aangemeld. Voer je pincode opnieuw in.

404

Geen adres gevonden bij deze postcode en dit huisnummer.

409

Adres opzoeken staat uit (Instellingen → Zaak).

502

De betaalterminal of een externe dienst gaf een fout.

Voorbeeld (curl)
curl "http://kassa:4000/api/adres" \
  -H "Authorization: Bearer <token>"

Bezorgen

Bezorgen en tijdvakken in de kassa: bezorggebied en tijdvakken opvragen (ook een latere dag), een bezorg- of afhaalbestelling met tijd aannemen, de klant een bericht sturen (klaar, onderweg), toch afhalen en de bezorgkosten herberekenen.

POST/api/bezorgen/{id}/afhalen#

Toch afhalen (bv

onder het minimum van de zone, of de klant komt zelf): de bezorgkosten vervallen.

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Deze bestelling kan niet (meer) op afhalen: geen bezorgbestelling, al (deels) betaald of afgerekend.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bezorgen/<id>/afhalen" \
  -H "Authorization: Bearer <token>"
POST/api/bezorgen/{id}/bericht#

Bericht naar de klant: klaar of onderweg (migratie 061; sms en/of e-mail)

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
soortalles

Antwoord 200

VeldTypeUitleg
via *lijst van tekst
bestelling *Bestelling

Foutmeldingen

400

Kies klaar of onderweg.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Berichten aan de klant staan uit (Instellingen → Zaak → Bezorgen en tijdvakken).
  • Er is niets verstuurd: geen telefoonnummer of e-mailadres, of sms/e-mail is niet ingesteld (CMTOKEN of SMTPHOST in .env).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bezorgen/<id>/bericht" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": null
}'
POST/api/bezorgen/{id}/kosten#

Bezorgkosten nu opnieuw berekenen (het bestelscherm doet dit na elke wijziging vanzelf)

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bezorgen/<id>/kosten" \
  -H "Authorization: Bearer <token>"
POST/api/bezorgen/bestelling#

Nieuwe bezorg- of afhaalbestelling met tijd

Bezorgen: naam, telefoon en adres verplicht, adres moet in een bezorggebied vallen. gewenstOp leeg = zo snel mogelijk.

Body (JSON)

VeldTypeUitleg
soorttekst
naamalles
telefoonalles
postcodealles
huisnummeralles
straatalles
plaatsalles
gewenstOpalles
opmerkingalles
emailalles

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Mogelijke meldingen:

  • Kies bezorgen of afhalen.
  • Dit telefoonnummer klopt niet.
  • Dit e-mailadres klopt niet.
  • Vul de naam van de klant in.
  • Vul een telefoonnummer in (voor de bezorger).
  • Vul een geldige postcode in, bv. 1234 AB.
  • Vul een huisnummer in, bv. 12 of 12A.
  • Vul de straat en de plaats in.
  • Ongeldige tijd.
  • Op deze dag zijn we gesloten.
  • Deze tijd is te vroeg. Kies een later tijdvak.
401

Niet aangemeld. Voer je pincode opnieuw in.

409

Mogelijke meldingen:

  • Vandaag zit elk tijdvak vol. Kies een andere oplossing of verhoog het maximum per tijdvak.
  • Dit tijdvak is net vol geraakt. Kies een ander tijdvak.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bezorgen/bestelling" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": "tekst",
  "naam": null,
  "telefoon": null,
  "postcode": null
}'
GET/api/bezorgen/kaart#

Voor de kaart bij Instellingen → Zaak (bezorggebieden): de ligging van de zaak, of null

Antwoord 200

VeldTypeUitleg
zaak *object of null
zaak.lat *getal
zaak.lon *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/bezorgen/kaart" \
  -H "Authorization: Bearer <token>"
GET/api/bezorgen/opties#

Wat kan er: bij bezorgen de zone van het adres (of buiten het bezorggebied), en de tijdvakken van vandaag m…

Wat kan er: bij bezorgen de zone van het adres (of buiten het bezorggebied), en de tijdvakken van vandaag met hoe vol ze zijn. soort = bezorgen | afhalen.

Parameters

NaamWaarTypeUitleg
soortzoekterm (?…)tekst
postcodezoekterm (?…)tekst
huisnummerzoekterm (?…)tekst
straatzoekterm (?…)tekst
plaatszoekterm (?…)tekst
datumzoekterm (?…)tekst

Antwoord 200

object

Foutmeldingen

400

Vul een geldige postcode in, bv. 1234 AB.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/bezorgen/opties" \
  -H "Authorization: Bearer <token>"

Importeren

Producten en klanten overnemen uit een andere kassa (CSV of Excel).

POST/api/beheer/importeren#

Importeren

Producten: groepen die nog niet bestaan worden gemaakt; btw op percentage (of hoog/laag), anders btwStandaard. Klanten: punten erbij als correctie "Geïmporteerd"; toestemming voor sms/e-mail gaat NIET mee (AVG). bestaand: 'overslaan' (standaard) of 'bijwerken' (zelfde code/naam of telefoon/e-mail).

Toegang

Controleert daarnaast: productenbeheren (Producten, groepen en keuzeopties beheren), klantenbeheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Body (JSON)

VeldTypeUitleg
soortalles
bestandBestand
koppelingalles
btwStandaardalles
bestaandalles

Antwoord 200

Type: Uitkomst

VeldTypeUitleg
nieuw *getal
bijgewerkt *getal
overgeslagen *getal
groepenNieuw *getal
meldingen *lijst van tekst

hooguit 50 regels "regel 12: ..."

Foutmeldingen

400

Mogelijke meldingen:

  • Kies producten of klanten.
  • Kies welke kolom de naam is.
  • Kies welke kolom de prijs is.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Zet eerst de klantenkaart aan (Instellingen → Zaak).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/importeren" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": null,
  "bestand": {
    "naam": null,
    "tekst": null,
    "base64": null
  },
  "koppeling": null,
  "btwStandaard": null
}'
POST/api/beheer/importeren/voorbeeld#

Voorbeeld: kolomnamen, welke kolom bij welk veld hoort (herkend op naam), de eerste 10 regels zoals ze geïm…

Voorbeeld: kolomnamen, welke kolom bij welk veld hoort (herkend op naam), de eerste 10 regels zoals ze geïmporteerd worden en het aantal regels.

Toegang

Controleert daarnaast: productenbeheren (Producten, groepen en keuzeopties beheren), klantenbeheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).

Body (JSON)

VeldTypeUitleg
soortalles
bestandBestand
koppelingalles

Antwoord 200

VeldTypeUitleg
kop *lijst van tekst
koppeling *object
velden *lijst van tekst
aantal *getal
regels *lijst van Regel

Foutmeldingen

400

Kies producten of klanten.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/importeren/voorbeeld" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": null,
  "bestand": {
    "naam": null,
    "tekst": null,
    "base64": null
  },
  "koppeling": null
}'

Exact Online

Koppeling met Exact Online: app invullen, verbinden (OAuth) en de dagomzet als memoriaal boeken. Kiezen gaat via Boekhoudpakket (kiezen).

GET/api/beheer/exact#

Status: ingesteld in .env, aan, verbonden (administratie), startdatum, laatste fout en de laatste 31 dagen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

13 velden tonen
VeldTypeUitleg
ingesteld *ja/nee
aan *ja/nee
verbonden *ja/nee
administratie *tekst of null
startdatum *tekst of null
laatsteFout *tekst of null
redirectUri *tekst
app *object
app.clientId *tekst
app.redirectUri *tekst
app.clientSecretIngevuld *ja/nee
envVelden *object
boekingen *lijst van alles of lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/exact" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/exact/app#

App van Exact Online opslaan: client-ID, clientgeheim (leeg = houden) en redirect URI; velden in .env worde…

App van Exact Online opslaan: client-ID, clientgeheim (leeg = houden) en redirect URI; velden in .env worden genegeerd.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
veldenobject

Antwoord 200

VeldTypeUitleg
ok *ja/nee
ingesteld *ja/nee

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/exact/app" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "velden": {}
}'
POST/api/beheer/exact/boeken#

Nu boeken: alle afgelopen dagen die nog niet in Exact staan (ook dagen met een fout opnieuw)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
geboekt *lijst van tekst
leeg *lijst van tekst
foutobject
fout.dag *tekst
fout.melding *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Verbind eerst met Exact Online.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/exact/boeken" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/exact/ontkoppelen#

Verbinding verbreken (tokens weg; wat al geboekt is blijft in de lijst)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/exact/ontkoppelen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/exact/startdatum#

Vanaf welke dag boeken (eerdere dagen heeft de boekhouder al)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
startdatumtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
startdatum *tekst

Foutmeldingen

400

Kies een geldige datum.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Verbind eerst met Exact Online.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/exact/startdatum" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "startdatum": "2026-10-02"
}'
POST/api/beheer/exact/verbinden#

Adres om bij Exact Online in te loggen en de kassa toegang te geven (10 minuten geldig)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
url *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/exact/verbinden" \
  -H "Authorization: Bearer <token>"
GET/api/exact/terugopenbaar#

Toegang: Openbaar: werkt zonder aanmelden.

Toegang

Openbaar: werkt zonder aanmelden.

Parameters

NaamWaarTypeUitleg
codezoekterm (?…)tekst
statezoekterm (?…)tekst
errorzoekterm (?…)tekst
error_descriptionzoekterm (?…)tekst

Antwoord 200 · text/html

tekst

Foutmeldingen

400

Ongeldige invoer.

Voorbeeld (curl)
curl "http://kassa:4000/api/exact/terug"

Boekhoudpakket

Eén keuze voor het boekhoudpakket (uit, Exact Online of een ander pakket) en de koppeling met een ander boekhoudpakket (Acumulus, AFAS Profit, Business Central, Horus, Moneybird, Odoo, QuickBooks Online, SAP Business One, Silvasoft, SnelStart, Twinfield, Xero, Yuki, Zoho Books; alleen in het land waar het pakket werkt): verbinden (sleutels, of inloggen met OAuth bij Horus, QuickBooks, Twinfield, Xero en Zoho) en de dagomzet als memoriaal boeken.

GET/api/beheer/boekhoudpakket#

Status: gekozen pakket, welke te kiezen zijn, verbonden (administratie), ingevulde velden zonder sleutels, …

Status: gekozen pakket, welke te kiezen zijn, verbonden (administratie), ingevulde velden zonder sleutels, of het met inloggen gaat (oauth), of het in dit land kan, startdatum, laatste fout en de laatste 31 dagen.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

40 velden tonen
VeldTypeUitleg
pakket *tekst
naam *tekst of null
ingesteld *object
ingesteld.acumulus *ja/nee
ingesteld.afas *ja/nee
ingesteld.businesscentral *ja/nee
ingesteld.horus *ja/nee
ingesteld.moneybird *ja/nee
ingesteld.odoo *ja/nee
ingesteld.quickbooks *ja/nee
ingesteld.sapb1 *ja/nee
ingesteld.silvasoft *ja/nee
ingesteld.snelstart *ja/nee
ingesteld.twinfield *ja/nee
ingesteld.xero *ja/nee
ingesteld.yuki *ja/nee
ingesteld.zoho *ja/nee
oauth *ja/nee
inLand *ja/nee
verbonden *ja/nee
administratie *tekst of null
velden *object
startdatum *tekst of null
laatsteFout *tekst of null
redirectUri *tekst
envVelden *object
pakketInEnv *ja/nee
keuze *tekst
exactIngesteld *ja/nee
app *object of null
app.clientId *tekst
app.redirectUri *tekst
app.clientSecretIngevuld *ja/nee
snelstartAbonnementInEnv *ja/nee
boekingen *lijst van object
boekingen[].dag *tekst
boekingen[].status *tekst
boekingen[].boekstuk *tekst of null
boekingen[].fout *tekst of null
boekingen[].geboektOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/boekhoudpakket" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/boekhoudpakket/app#

App van een pakket met inloggen (OAuth) opslaan: client-ID, clientgeheim (leeg = houden) en redirect URI (l…

App van een pakket met inloggen (OAuth) opslaan: client-ID, clientgeheim (leeg = houden) en redirect URI (leeg = op de kassa-pc zelf). Velden die in .env staan, worden genegeerd.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
veldenobject

Antwoord 200

VeldTypeUitleg
ok *ja/nee
ingesteld *ja/nee

Foutmeldingen

400

… gebruikt geen app: vul de gegevens in en tik op Verbinden.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/boekhoudpakket/app" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "velden": {}
}'
POST/api/beheer/boekhoudpakket/boeken#

Nu boeken: alle afgelopen dagen die nog niet in het pakket staan (ook dagen met een fout opnieuw)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
geboekt *lijst van tekst
leeg *lijst van tekst
foutobject
fout.dag *tekst
fout.melding *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Verbind eerst met het boekhoudpakket.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/boekhoudpakket/boeken" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/boekhoudpakket/kiezen#

Het boekhoudpakket kiezen (Instellingen → Boekhouding; migratie 065): uit (''), exact (Exact Online) of een…

Het boekhoudpakket kiezen (Instellingen → Boekhouding; migratie 065): uit (''), exact (Exact Online) of een live koppeling uit de catalogus. Eén keuze: Exact Online en een ander pakket staan nooit samen aan. Alleen pakketten voor het land van de zaak; niet als BOEKHOUDPAKKET in .env staat.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
pakketalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
keuze *tekst

Foutmeldingen

400

Kies een pakket uit de lijst, of uit.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/boekhoudpakket/kiezen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "pakket": null
}'
POST/api/beheer/boekhoudpakket/ontkoppelen#

Verbinding verbreken (sleutels en tokens weg; wat al geboekt is blijft in de lijst)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/boekhoudpakket/ontkoppelen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/boekhoudpakket/startdatum#

Vanaf welke dag boeken (eerdere dagen heeft de boekhouder al)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
startdatumtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
startdatum *tekst

Foutmeldingen

400

Kies een geldige datum.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Verbind eerst met het boekhoudpakket.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/boekhoudpakket/startdatum" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "startdatum": "2026-10-02"
}'
POST/api/beheer/boekhoudpakket/verbinden#

Verbinden. Pakketten met ingevulde gegevens: de velden worden bij het pakket gecontroleerd → { administrati…

Verbinden. Pakketten met ingevulde gegevens: de velden worden bij het pakket gecontroleerd → { administratie }. OAuth-pakketten (Horus, QuickBooks, Twinfield, Xero, Zoho): adres om in te loggen (10 minuten geldig) → { url }; het optionele veld van LIVE_VELDEN (bv. kantoor, organisatie, dossier) kiest vooraf de administratie.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
veldenobject

Antwoord 200

object

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/boekhoudpakket/verbinden" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "velden": {}
}'
GET/api/boekhoudpakket/{pakket}/terugopenbaar#

Toegang: Openbaar: werkt zonder aanmelden.

Toegang

Openbaar: werkt zonder aanmelden.

Parameters

NaamWaarTypeUitleg
pakket *padtekst

Antwoord 200 · text/html

tekst

Foutmeldingen

400

Ongeldige invoer.

Voorbeeld (curl)
curl "http://kassa:4000/api/boekhoudpakket/<pakket>/terug"

Salaris en planning

Salarisadministratie en personeelsplanning (migratie 066): salarispakket of sociaal secretariaat en planningssysteem kiezen (per land; .env gaat voor), personeelsnummers, uren en omzet per medewerker en omzet per dag en uur voor de bestanden, en de omzet live naar Deputy, Dyflexis of Shiftbase.

GET/api/beheer/salarisplanning#

Status van salaris en planning: gekozen pakket (of vast in .env), velden zonder geheimen, welke velden in .…

Status van salaris en planning: gekozen pakket (of vast in .env), velden zonder geheimen, welke velden in .env staan, personeelsnummers en medewerkers (salaris), laatste keer verstuurd en laatste fout (planning).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

23 velden tonen
VeldTypeUitleg
land *tekst

Een van: "NL" "BE"

klokken *tekst

Een van: "uit" "aan" "verplicht"

medewerkers *lijst van alles of lijst van object
salaris *object
salaris.nummersobject
salaris.pakket *tekst
salaris.naam *tekst of null
salaris.pakketInEnv *ja/nee
salaris.velden *object
salaris.envVelden *object
salaris.laatsteSync *tekst of null
salaris.laatsteFout *tekst of null
salaris.verbonden *ja/nee
planning *object
planning.nummersobject
planning.pakket *tekst
planning.naam *tekst of null
planning.pakketInEnv *ja/nee
planning.velden *object
planning.envVelden *object
planning.laatsteSync *tekst of null
planning.laatsteFout *tekst of null
planning.verbonden *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/salarisplanning" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/salarisplanning/gegevens#

Uren (per medewerker per dag) en omzet (per dag en uur) van een periode, voor de bestanden

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
van *tekst
tot *tekst
uren *lijst van UrenRegel
omzet *lijst van OmzetRegel

Foutmeldingen

400

Kies een geldige periode (van tot en met tot).

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/salarisplanning/gegevens" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/salarisplanning/koppeling#

Keuze, velden en (salaris) personeelsnummers opslaan

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
soortalles
pakketalles
veldenobject
nummersobject

Antwoord 200

VeldTypeUitleg
ok *ja/nee
pakket *tekst

Foutmeldingen

400

Kies salaris of planning.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/salarisplanning/koppeling" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": null,
  "pakket": null,
  "velden": {},
  "nummers": {}
}'
POST/api/beheer/salarisplanning/planning/verbinden#

Live planningssysteem (Dyflexis, Shiftbase): verbinden/controleren

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
ok *true
melding *tekst

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/salarisplanning/planning/verbinden" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/salarisplanning/planning/versturen#

Nu de omzet versturen (anders elk uur vanzelf)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
ok *ja/nee
dagen *getal

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kies eerst Deputy, Dyflexis of Shiftbase als planningssysteem.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/salarisplanning/planning/versturen" \
  -H "Authorization: Bearer <token>"

Auditfile kassa (XAA)

XML Auditfile Afrekensystemen 3.2 van de Belastingdienst over een periode: stamgegevens, gebeurtenissen en alle bonnen met regels, btw en betalingen; ondertekend (XML Signature) als XAASLEUTEL en XAACERTIFICAAT in .env staan. Rapport → Omzet per periode.

GET/api/rapport/xaa#

De auditfile van een periode (?van=JJJJ-MM-DD&tot=JJJJ-MM-DD, beide inclusief, hooguit ruim een jaar): { in…

De auditfile van een periode (?van=JJJJ-MM-DD&tot=JJJJ-MM-DD, beide inclusief, hooguit ruim een jaar): { inhoud, naam, ondertekend, bonnen, gebeurtenissen }. Met certificaat ondertekend in een envelop.

Toegang

Controleert daarnaast: omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
bonnen *getal
gebeurtenissen *getal
inhoud *tekst
naam *tekst
ondertekend *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een geldige periode (van tot en met tot).
  • Kies een periode van hooguit ruim een jaar.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/xaa" \
  -H "Authorization: Bearer <token>"
GET/api/rapport/xaa/status#

Wordt de auditfile ondertekend (XAA_SLEUTEL en XAA_CERTIFICAAT in .env)?

Toegang

Controleert daarnaast: omzet_periode (Omzet per periode).

Antwoord 200

VeldTypeUitleg
ondertekenen *ja/nee
certificaat *tekst of null
geldigTot *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/xaa/status" \
  -H "Authorization: Bearer <token>"

Cadeaubonnen

Cadeaubonnen verkopen, inwisselen en beheren.

GET/api/beheer/cadeaubonnen#

Toegang: Vereist recht cadeaubonnen_beheren (Cadeaubonnen beheren (saldo corrigeren, blokkeren)).

Toegang

Vereist recht cadeaubonnen_beheren (Cadeaubonnen beheren (saldo corrigeren, blokkeren)).

Parameters

NaamWaarTypeUitleg
zoekzoekterm (?…)tekst

Antwoord 200

13 velden tonen
VeldTypeUitleg
cadeaubonnen *lijst van object
cadeaubonnen[].id *tekst
cadeaubonnen[].code *tekst
cadeaubonnen[].codeLeesbaar *tekst
cadeaubonnen[].beginwaarde *getal
cadeaubonnen[].saldo *getal
cadeaubonnen[].actief *ja/nee
cadeaubonnen[].geblokkeerd *ja/nee
cadeaubonnen[].aangemaaktOp *datum/tijd
cadeaubonnen[].geactiveerdOp *datum/tijd of null
openstaand *object
openstaand.aantal *getal
openstaand.saldo *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: cadeaubonnen beheren (saldo corrigeren, blokkeren). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/cadeaubonnen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/cadeaubonnen/{id}#

Toegang: Vereist recht cadeaubonnen_beheren (Cadeaubonnen beheren (saldo corrigeren, blokkeren)).

Toegang

Vereist recht cadeaubonnen_beheren (Cadeaubonnen beheren (saldo corrigeren, blokkeren)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

18 velden tonen
VeldTypeUitleg
cadeaubon *object
cadeaubon.id *tekst
cadeaubon.code *tekst
cadeaubon.codeLeesbaar *tekst
cadeaubon.beginwaarde *getal
cadeaubon.saldo *getal
cadeaubon.actief *ja/nee
cadeaubon.geblokkeerd *ja/nee
cadeaubon.aangemaaktOp *datum/tijd
cadeaubon.geactiveerdOp *datum/tijd of null
mutaties *lijst van object
mutaties[].soort *tekst
mutaties[].bedrag *getal
mutaties[].saldoNa *getal
mutaties[].omschrijving *tekst of null
mutaties[].door *tekst of null
mutaties[].tijd *tekst
mutaties[].bestelnummer *getal of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: cadeaubonnen beheren (saldo corrigeren, blokkeren). Vraag een beheerder.

404

Cadeaubon niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/cadeaubonnen/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/cadeaubonnen/{id}/blokkeren#

Blokkeren (kwijt, gestolen) of weer vrijgeven

Toegang

Vereist recht cadeaubonnen_beheren (Cadeaubonnen beheren (saldo corrigeren, blokkeren)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
geblokkeerdalles
redenalles

Antwoord 200

VeldTypeUitleg
cadeaubon *object
cadeaubon.id *tekst
cadeaubon.code *tekst
cadeaubon.codeLeesbaar *tekst
cadeaubon.beginwaarde *getal
cadeaubon.saldo *getal
cadeaubon.actief *ja/nee
cadeaubon.geblokkeerd *ja/nee
cadeaubon.aangemaaktOp *datum/tijd
cadeaubon.geactiveerdOp *datum/tijd of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: cadeaubonnen beheren (saldo corrigeren, blokkeren). Vraag een beheerder.

404

Cadeaubon niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/cadeaubonnen/<id>/blokkeren" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "geblokkeerd": null,
  "reden": null
}'
POST/api/beheer/cadeaubonnen/{id}/saldo#

Saldo corrigeren (met reden, komt in de geschiedenis en het logboek)

Toegang

Vereist recht cadeaubonnen_beheren (Cadeaubonnen beheren (saldo corrigeren, blokkeren)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
saldoalles
redenalles

Antwoord 200

VeldTypeUitleg
cadeaubon *object
cadeaubon.id *tekst
cadeaubon.code *tekst
cadeaubon.codeLeesbaar *tekst
cadeaubon.beginwaarde *getal
cadeaubon.saldo *getal
cadeaubon.actief *ja/nee
cadeaubon.geblokkeerd *ja/nee
cadeaubon.aangemaaktOp *datum/tijd
cadeaubon.geactiveerdOp *datum/tijd of null

Foutmeldingen

400

Mogelijke meldingen:

  • Vul een geldig saldo in.
  • Geef een reden op.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: cadeaubonnen beheren (saldo corrigeren, blokkeren). Vraag een beheerder.

404

Cadeaubon niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/cadeaubonnen/<id>/saldo" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "saldo": null,
  "reden": null
}'
POST/api/bestellingen/{id}/cadeaubon#

Cadeaubon verkopen: komt als regel op de bestelling (btw-code BON, geen omzet, gaat niet naar de keuken). A…

Cadeaubon verkopen: komt als regel op de bestelling (btw-code BON, geen omzet, gaat niet naar de keuken). Actief na het afrekenen.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
bedragalles
codealles

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een bedrag van € 1 tot € 1.000.
  • Een code heeft 4 tot 32 letters of cijfers.
401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Deze bestelling is al afgerekend.
  • Op een retour kan geen cadeaubon.
  • Deze code is al in gebruik.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/cadeaubon" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "bedrag": null,
  "code": null
}'
GET/api/cadeaubonnen/code/{code}#

Saldo van een bon (bij afrekenen of als de klant ernaar vraagt)

Parameters

NaamWaarTypeUitleg
code *padtekst

Antwoord 200

VeldTypeUitleg
cadeaubon *object
cadeaubon.id *tekst
cadeaubon.code *tekst
cadeaubon.codeLeesbaar *tekst
cadeaubon.beginwaarde *getal
cadeaubon.saldo *getal
cadeaubon.actief *ja/nee
cadeaubon.geblokkeerd *ja/nee
cadeaubon.aangemaaktOp *datum/tijd
cadeaubon.geactiveerdOp *datum/tijd of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Deze cadeaubon bestaat niet.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/cadeaubonnen/code/<code>" \
  -H "Authorization: Bearer <token>"
GET/api/cadeaubonnen/nieuwe-code#

Voorstel voor een nieuwe code (de gebruiker mag ook een voorgedrukte kaart scannen)

Antwoord 200

VeldTypeUitleg
code *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/cadeaubonnen/nieuwe-code" \
  -H "Authorization: Bearer <token>"

Kortingscodes

Kortingscodes (Instellingen → Zaak, standaard uit): beheren (procent of bedrag, minimum, geldig van/tot, hoe vaak, aan de kassa en/of in de webshop) en een code op de bon zetten.

GET/api/beheer/kortingscodes#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Antwoord 200

VeldTypeUitleg
aan *ja/nee
codes *lijst van Kortingscode

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/kortingscodes" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/kortingscodes#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

Type: CodeInvoer

VeldTypeUitleg
codealles
omschrijvingalles
soortalles
waardealles
minimumalles
geldigVanalles
geldigTotalles
maxGebruikalles
aanKassaalles
inWebshopalles
actiefalles

Antwoord 200

13 velden tonen
VeldTypeUitleg
id *tekst
code *tekst
omschrijving *tekst of null
soort *tekst

Een van: "procent" "bedrag"

waarde *getal

procent: 1-100; bedrag: centen

minimum *getal
geldigVan *tekst of null
geldigTot *tekst of null
maxGebruik *getal of null
gebruikt *getal
aanKassa *ja/nee
inWebshop *ja/nee
actief *ja/nee

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

409

De code … bestaat al.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/kortingscodes" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": null,
  "omschrijving": null,
  "soort": null,
  "waarde": null
}'
PUT/api/beheer/kortingscodes/{id}#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: CodeInvoer

VeldTypeUitleg
codealles
omschrijvingalles
soortalles
waardealles
minimumalles
geldigVanalles
geldigTotalles
maxGebruikalles
aanKassaalles
inWebshopalles
actiefalles

Antwoord 200

13 velden tonen
VeldTypeUitleg
id *tekst
code *tekst
omschrijving *tekst of null
soort *tekst

Een van: "procent" "bedrag"

waarde *getal

procent: 1-100; bedrag: centen

minimum *getal
geldigVan *tekst of null
geldigTot *tekst of null
maxGebruik *getal of null
gebruikt *getal
aanKassa *ja/nee
inWebshop *ja/nee
actief *ja/nee

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Kortingscode niet gevonden.

409

Mogelijke meldingen:

  • De code … bestaat al.
  • Deze code is al gebruikt; de code zelf kan niet meer veranderen. Maak een nieuwe.
Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/beheer/kortingscodes/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": null,
  "omschrijving": null,
  "soort": null,
  "waarde": null
}'
DELETE/api/beheer/kortingscodes/{id}#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
uitgezet *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Kortingscode niet gevonden.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/kortingscodes/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/bestellingen/{id}/kortingscode#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
codealles

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

400

Vul een kortingscode in.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • De database is niet bijgewerkt. Draai npm run db:migrate.
  • Deze bestelling is al afgerekend.
  • Er is al (deels) betaald; een kortingscode kan dan niet meer.
  • Er staat al een kortingscode op deze bon. Haal die eerst weg.
  • Er staat nog niets op de bon om korting op te geven.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/kortingscode" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": null
}'

Voorraad

Voorraad, ingrediënten, ontvangst en telling.

POST/api/beheer/ingredienten#

Ingrediënt toevoegen of wijzigen (naam, eenheid, meldniveau, actief)

Toegang

Vereist één van de rechten: voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Body (JSON)

VeldTypeUitleg
naamalles
eenheidalles
minimumalles
actiefalles
aanvullenTotalles
leverancieralles
leverancierIdalles
bestelcodealles
bestelEanalles
bestelPeralles
bestelEenheidalles
inkoopprijsalles

Antwoord 200

16 velden tonen
VeldTypeUitleg
ingredienten *lijst van object
ingredienten[].id *tekst
ingredienten[].naam *tekst
ingredienten[].eenheid *tekst
ingredienten[].voorraad *getal
ingredienten[].minimum *getal of null
ingredienten[].actief *ja/nee
ingredienten[].gebruikt *getal
ingredienten[].aanvullenTot *getal of null
ingredienten[].leverancier *tekst of null
ingredienten[].leverancierId *tekst of null
ingredienten[].bestelcode *tekst of null
ingredienten[].bestelEan *tekst of null
ingredienten[].bestelPer *getal
ingredienten[].bestelEenheid *tekst of null
ingredienten[].inkoopprijs *getal of null

Foutmeldingen

400

Mogelijke meldingen:

  • Geef het ingrediënt een naam.
  • Ongeldig meldniveau.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Ingrediënt niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Er is al een ingrediënt "…".
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/ingredienten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "eenheid": null,
  "minimum": null,
  "actief": null
}'
POST/api/beheer/ingredienten/{id}#

Ingrediënt toevoegen of wijzigen (naam, eenheid, meldniveau, actief)

Toegang

Vereist één van de rechten: voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
naamalles
eenheidalles
minimumalles
actiefalles
aanvullenTotalles
leverancieralles
leverancierIdalles
bestelcodealles
bestelEanalles
bestelPeralles
bestelEenheidalles
inkoopprijsalles

Antwoord 200

16 velden tonen
VeldTypeUitleg
ingredienten *lijst van object
ingredienten[].id *tekst
ingredienten[].naam *tekst
ingredienten[].eenheid *tekst
ingredienten[].voorraad *getal
ingredienten[].minimum *getal of null
ingredienten[].actief *ja/nee
ingredienten[].gebruikt *getal
ingredienten[].aanvullenTot *getal of null
ingredienten[].leverancier *tekst of null
ingredienten[].leverancierId *tekst of null
ingredienten[].bestelcode *tekst of null
ingredienten[].bestelEan *tekst of null
ingredienten[].bestelPer *getal
ingredienten[].bestelEenheid *tekst of null
ingredienten[].inkoopprijs *getal of null

Foutmeldingen

400

Mogelijke meldingen:

  • Geef het ingrediënt een naam.
  • Ongeldig meldniveau.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Ingrediënt niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Er is al een ingrediënt "…".
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/ingredienten/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "eenheid": null,
  "minimum": null,
  "actief": null
}'
GET/api/beheer/voorraad#

Alle producten die voorraad bijhouden, en alle ingrediënten

Toegang

Vereist één van de rechten: voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Antwoord 200

24 velden tonen
VeldTypeUitleg
producten *lijst van object
producten[].id *tekst
producten[].naam *tekst
producten[].groep *tekst of null
producten[].soort *tekst

Een van: "product" "ingredienten"

producten[].voorraad *getal
producten[].minimum *getal of null
producten[].beschikbaar *getal of null
ingredienten *lijst van object
ingredienten[].id *tekst
ingredienten[].naam *tekst
ingredienten[].eenheid *tekst
ingredienten[].voorraad *getal
ingredienten[].minimum *getal of null
ingredienten[].actief *ja/nee
ingredienten[].gebruikt *getal
ingredienten[].aanvullenTot *getal of null
ingredienten[].leverancier *tekst of null
ingredienten[].leverancierId *tekst of null
ingredienten[].bestelcode *tekst of null
ingredienten[].bestelEan *tekst of null
ingredienten[].bestelPer *getal
ingredienten[].bestelEenheid *tekst of null
ingredienten[].inkoopprijs *getal of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Voorraad bijhouden staat uit (Instellingen → Zaak).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/voorraad" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/voorraad/artikel/{id}#

Toegang: Vereist één van de rechten: productenbeheren (Producten, groepen en keuzeopties beheren), voorraadbeheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Toegang

Vereist één van de rechten: productenbeheren (Producten, groepen en keuzeopties beheren), voorraadbeheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

30 velden tonen
VeldTypeUitleg
soort *tekst
voorraad *getal
minimum *getal of null
aanvullenTot *getal of null
leverancier *tekst of null
leverancierId *tekst of null
bestelcode *tekst of null
bestelEan *tekst of null
bestelPer *getal
bestelEenheid *tekst of null
inkoopprijs *getal of null
recept *lijst van object
recept[].ingredientId *tekst
recept[].hoeveelheid *getal
ingredienten *lijst van object
ingredienten[].id *tekst
ingredienten[].naam *tekst
ingredienten[].eenheid *tekst
ingredienten[].voorraad *getal
ingredienten[].minimum *getal of null
ingredienten[].actief *ja/nee
ingredienten[].gebruikt *getal
ingredienten[].aanvullenTot *getal of null
ingredienten[].leverancier *tekst of null
ingredienten[].leverancierId *tekst of null
ingredienten[].bestelcode *tekst of null
ingredienten[].bestelEan *tekst of null
ingredienten[].bestelPer *getal
ingredienten[].bestelEenheid *tekst of null
ingredienten[].inkoopprijs *getal of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Product niet gevonden.

409

Voorraad bijhouden staat uit (Instellingen → Zaak).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/voorraad/artikel/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/voorraad/artikel/{id}#

Toegang: Vereist één van de rechten: productenbeheren (Producten, groepen en keuzeopties beheren), voorraadbeheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Toegang

Vereist één van de rechten: productenbeheren (Producten, groepen en keuzeopties beheren), voorraadbeheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
soortalles
minimumalles
receptalles
aanvullenTotalles
leverancieralles
leverancierIdalles
bestelcodealles
bestelEanalles
bestelPeralles
bestelEenheidalles
inkoopprijsalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldig meldniveau.
  • Vul bij elk ingrediënt een hoeveelheid groter dan 0 in.
  • Een ingrediënt staat er twee keer in.
  • Kies minstens één ingrediënt voor het recept.
  • Een ingrediënt bestaat niet (meer).
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Product niet gevonden.

409

Voorraad bijhouden staat uit (Instellingen → Zaak).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/voorraad/artikel/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": null,
  "minimum": null,
  "recept": null,
  "aanvullenTot": null
}'
GET/api/beheer/voorraad/bestellijst#

Wat moet er besteld worden?

Producten (per product) en ingrediënten die op of onder hun meldniveau zitten (zonder meldniveau: op 0 of minder). Voorstel = aanvullen tot - stand (leeg als "aanvullen tot" niet is ingesteld). Met ?alles=1 alles wat voorraad bijhoudt (om ook iets extra te bestellen).

Toegang

Vereist één van de rechten: voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
alleszoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
regels *lijst van object
bijgehouden *object
bijgehouden.producten *getal
bijgehouden.viaIngredienten *getal
bijgehouden.ingredienten *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Voorraad bijhouden staat uit (Instellingen → Zaak).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/voorraad/bestellijst" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/voorraad/bestellijst/print#

Bestellijst printen op de bonprinter (per leverancier)

Toegang

Vereist één van de rechten: voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Body (JSON)

VeldTypeUitleg
regelsalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Er staat niets met een aantal op de bestellijst.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Voorraad bijhouden staat uit (Instellingen → Zaak).

502

Printen lukte niet: …

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/voorraad/bestellijst/print" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regels": null
}'
GET/api/beheer/voorraad/geschiedenis#

Geschiedenis (laatste 300), eventueel van één product of ingrediënt

Toegang

Vereist één van de rechten: voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
artikelIdzoekterm (?…)tekst
ingredientIdzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
mutaties *lijst van object
mutaties[].tijd *tekst
mutaties[].soort *tekst
mutaties[].hoeveelheid *getal
mutaties[].voorraadNa *getal
mutaties[].reden *tekst of null
mutaties[].wat *tekst
mutaties[].eenheid *tekst of null
mutaties[].door *tekst of null
mutaties[].bestelnummer *getal of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Voorraad bijhouden staat uit (Instellingen → Zaak).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/voorraad/geschiedenis" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/voorraad/mutatie#

Ontvangst (+), telling (nieuwe stand) of afboeken (-, bv

breuk of derving) voor een product of een ingrediënt.

Toegang

Vereist één van de rechten: voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Body (JSON)

VeldTypeUitleg
artikelIdalles
ingredientIdalles
soortalles
hoeveelheidalles
redenalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
voorraad *getal

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een product of een ingrediënt.
  • Kies ontvangst, telling of afboeken.
  • Vul een geldige hoeveelheid in.
  • Geef een reden op (bv. breuk, over datum).
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Niet gevonden.

409

Voorraad bijhouden staat uit (Instellingen → Zaak).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/voorraad/mutatie" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "artikelId": null,
  "ingredientId": null,
  "soort": null,
  "hoeveelheid": null
}'
GET/api/beheer/voorraad/optiegroep/{groepId}#

Ingrediënten per keuze van een keuzegroep (bv

Extra: kaas = 1 plak kaas). Migratie 028.

Toegang

Vereist één van de rechten: productenbeheren (Producten, groepen en keuzeopties beheren), voorraadbeheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
groepId *padtekst

Antwoord 200

22 velden tonen
VeldTypeUitleg
opties *lijst van object
opties[].id *tekst
opties[].naam *tekst
opties[].recept *lijst van object
opties[].recept[].ingredientId *tekst
opties[].recept[].hoeveelheid *getal
ingredienten *lijst van object
ingredienten[].id *tekst
ingredienten[].naam *tekst
ingredienten[].eenheid *tekst
ingredienten[].voorraad *getal
ingredienten[].minimum *getal of null
ingredienten[].actief *ja/nee
ingredienten[].gebruikt *getal
ingredienten[].aanvullenTot *getal of null
ingredienten[].leverancier *tekst of null
ingredienten[].leverancierId *tekst of null
ingredienten[].bestelcode *tekst of null
ingredienten[].bestelEan *tekst of null
ingredienten[].bestelPer *getal
ingredienten[].bestelEenheid *tekst of null
ingredienten[].inkoopprijs *getal of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Keuzegroep niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Draai eerst "npm run db:migrate" (migratie 028).
Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/voorraad/optiegroep/<groepId>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/voorraad/optiegroep/{groepId}#

Alle keuzes van een keuzegroep in één keer opslaan: { opties: [{ id, recept }] }

Toegang

Vereist één van de rechten: productenbeheren (Producten, groepen en keuzeopties beheren), voorraadbeheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
groepId *padtekst

Body (JSON)

VeldTypeUitleg
optiesalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Vul bij "…" een hoeveelheid groter dan 0 in.
  • Bij "…" staat een ingrediënt twee keer.
  • Een ingrediënt bestaat niet (meer).
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

404

Keuzegroep niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Draai eerst "npm run db:migrate" (migratie 028).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/voorraad/optiegroep/<groepId>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "opties": null
}'

Geldautomaat

Gesloten geldsysteem / geldautomaat (migratie 070; Instellingen → Betalen, standaard uit; .env GELDSYSTEEM gaat voor): CashDro, Cashmatic, Azkoyen Cashlogy, CashKeeper, Glory CASHINFINITY (beta), extern (Cikam, ImaCash, CashGuard ...) en een proefautomaat. Betalen bij de automaat (starten, voortgang, annuleren) en daarna afrekenen met de transactie; stand, uitbetalen, bijvullen en afromen; instellen en testen; de koppeling voor externe software met de kop X-Geldsysteem-Sleutel (openstaande opdrachten ophalen en het resultaat melden).

GET/api/beheer/geldsysteem#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
merk *tekst
verplicht *ja/nee
gegevens *object
laatsteFout *tekst of null
inEnv *ja/nee
envVelden *object
merken *lijst van object
merken[].code *tekst

Een van: "cashdro" "cashmatic" "cashlogy" "cashkeeper" "glory" "extern" "proef"

merken[].naam *tekst
merken[].velden *lijst van PakketVeld
merken[].functies *GeldFuncties
catalogus *lijst van GeldSysteemInfo

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/geldsysteem" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/geldsysteem#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
merkalles
veldenobject
verplichtalles

Antwoord 200

VeldTypeUitleg
merk *tekst
verplicht *ja/nee
gegevens *object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/geldsysteem" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "merk": null,
  "velden": {},
  "verplicht": null
}'
POST/api/beheer/geldsysteem/test#

Verbinding met de automaat testen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
ok *ja/nee
melding *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/geldsysteem/test" \
  -H "Authorization: Bearer <token>"
GET/api/bestellingen/{id}/geld#

Lopende of geslaagde (nog niet verwerkte) betaling bij de automaat van een bestelling

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

alles of null of object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/bestellingen/<id>/geld" \
  -H "Authorization: Bearer <token>"
POST/api/bestellingen/{id}/geld/start#

Betalen bij de automaat: het openstaande bedrag (contant afgerond als dat aan staat) of een deel, plus fooi

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
fooialles
bedragalles
contantBevestigdalles

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst of null
soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

bedrag *getal
ingeworpen *getal
uitbetaald *getal
nietUitbetaald *getal
status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

fout *tekst of null
verwerkt *ja/nee
aangemaaktOp *tekst

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldige fooi (hele centen, hooguit € 500).
  • Ongeldig deelbedrag: groter dan 0 en hooguit het openstaande bedrag.
401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Deze bestelling is al afgerekend.
  • Er staat niets meer open.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/geld/start" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "fooi": null,
  "bedrag": null,
  "contantBevestigd": null
}'
GET/api/geld/{id}#

Voortgang (vraagt zo nodig de automaat)

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst of null
soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

bedrag *getal
ingeworpen *getal
uitbetaald *getal
nietUitbetaald *getal
status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

fout *tekst of null
verwerkt *ja/nee
aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Onbekende opdracht voor de geldautomaat.

Voorbeeld (curl)
curl "http://kassa:4000/api/geld/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/geld/{id}/annuleren#

Afbreken: de automaat geeft het ingeworpen geld terug

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst of null
soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

bedrag *getal
ingeworpen *getal
uitbetaald *getal
nietUitbetaald *getal
status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

fout *tekst of null
verwerkt *ja/nee
aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Onbekende opdracht voor de geldautomaat.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/geld/<id>/annuleren" \
  -H "Authorization: Bearer <token>"
POST/api/geldsysteem/bijvullen#

Bijvullen: wisselgeld in de automaat doen (stoppen = annuleren)

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst of null
soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

bedrag *getal
ingeworpen *getal
uitbetaald *getal
nietUitbetaald *getal
status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

fout *tekst of null
verwerkt *ja/nee
aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/geldsysteem/bijvullen" \
  -H "Authorization: Bearer <token>"
GET/api/geldsysteem/config#

Wat het afrekenscherm moet weten (zonder adressen of wachtwoorden)

Antwoord 200

VeldTypeUitleg
actief *ja/nee
merk *tekst of null

Een van: "cashdro" "cashmatic" "cashlogy" "cashkeeper" "glory" "extern" "proef"

naam *tekst of null
verplicht *ja/nee
functies *GeldFuncties

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/geldsysteem/config" \
  -H "Authorization: Bearer <token>"
POST/api/geldsysteem/extern/{id}#

Voortgang of resultaat melden: { status: bezig|geslaagd|geannuleerd|mislukt, ingeworpen, uitbetaald, nietUi…

Voortgang of resultaat melden: { status: bezig|geslaagd|geannuleerd|mislukt, ingeworpen, uitbetaald, nietUitbetaald, fout?, externId? } (bedragen in centen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

13 velden tonen
VeldTypeUitleg
ok *ja/nee
opdracht *object
opdracht.id *tekst
opdracht.bestellingId *tekst of null
opdracht.soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

opdracht.bedrag *getal
opdracht.ingeworpen *getal
opdracht.uitbetaald *getal
opdracht.nietUitbetaald *getal
opdracht.status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

opdracht.fout *tekst of null
opdracht.verwerkt *ja/nee
opdracht.aangemaaktOp *tekst

Foutmeldingen

401

Mogelijke meldingen:

  • Onbekende of ontbrekende sleutel (X-Geldsysteem-Sleutel).
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/geldsysteem/extern/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/geldsysteem/extern/open#

Opdrachten die de koppelsoftware moet uitvoeren; annuleren = true: afbreken en geld teruggeven

Antwoord 200

VeldTypeUitleg
opdrachten *lijst van object
opdrachten[].id *tekst
opdrachten[].status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

opdrachten[].soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

opdrachten[].aangemaaktOp *tekst
opdrachten[].bedrag *getal
opdrachten[].annuleren *ja/nee

Foutmeldingen

401

Mogelijke meldingen:

  • Onbekende of ontbrekende sleutel (X-Geldsysteem-Sleutel).
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl "http://kassa:4000/api/geldsysteem/extern/open" \
  -H "Authorization: Bearer <token>"
POST/api/geldsysteem/legen#

Afromen: de automaat legen tot het wisselgeldniveau (het geld gaat naar de kluis of cassette)

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst of null
soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

bedrag *getal
ingeworpen *getal
uitbetaald *getal
nietUitbetaald *getal
status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

fout *tekst of null
verwerkt *ja/nee
aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/geldsysteem/legen" \
  -H "Authorization: Bearer <token>"
GET/api/geldsysteem/telling#

Stand van de automaat (per munt en biljet als de automaat dat kan)

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Antwoord 200

Type: GeldTelling

VeldTypeUitleg
totaal *getal
delen *lijst van object
delen[].waarde *getal
delen[].aantal *getal
delen[].biljet *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/geldsysteem/telling" \
  -H "Authorization: Bearer <token>"
GET/api/geldsysteem/transacties#

Laatste opdrachten aan de automaat (voor de kas)

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Antwoord 200

VeldTypeUitleg
transacties *lijst van object
transacties[].id *tekst
transacties[].bestellingId *tekst of null
transacties[].soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

transacties[].bedrag *getal
transacties[].ingeworpen *getal
transacties[].uitbetaald *getal
transacties[].nietUitbetaald *getal
transacties[].status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

transacties[].fout *tekst of null
transacties[].verwerkt *ja/nee
transacties[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/geldsysteem/transacties" \
  -H "Authorization: Bearer <token>"
POST/api/geldsysteem/uitbetalen#

Geld uitbetalen uit de automaat (bv

wisselgeld voor de lade of een terugbetaling), met reden.

Toegang

Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Body (JSON)

VeldTypeUitleg
bedragalles
redenalles

Antwoord 200

VeldTypeUitleg
id *tekst
bestellingId *tekst of null
soort *tekst

Een van: "betaling" "uitbetaling" "bijvullen" "legen"

bedrag *getal
ingeworpen *getal
uitbetaald *getal
nietUitbetaald *getal
status *tekst

Een van: "geannuleerd" "starten" "mislukt" "bezig" "geslaagd"

fout *tekst of null
verwerkt *ja/nee
aangemaaktOp *tekst

Foutmeldingen

400

Mogelijke meldingen:

  • Vul een bedrag groter dan 0 in.
  • Vul een reden in.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/geldsysteem/uitbetalen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "bedrag": null,
  "reden": null
}'

Bestellen bij leveranciers

Bestellen bij leveranciers (migratie 069; Instellingen → Voorraad, standaard uit, alleen met Voorraad bijhouden): leveranciers (uit de lijst van Nederlandse en Belgische groothandels, drankenhandels, brouwers en versleveranciers, of eigen), bestelvoorstel (meldniveau, aanvullen tot, verpakking, onderweg), inkooporders maken en versturen per e-mail (met CSV, Excel, UBL, EANCOM of cXML als bijlage), als bestand, via cXML of een webhook, of geprint; ontvangen boekt de voorraad bij; automatisch bestellen op vaste besteldagen.

GET/api/beheer/inkoop#

Instelling, leveranciers en de lijst met bekende leveranciers voor het land van de zaak

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Antwoord 200

23 velden tonen
VeldTypeUitleg
instelling *object
instelling.aan *ja/nee
instelling.voorraad *ja/nee
instelling.gln *tekst of null
instelling.mail *ja/nee
leveranciers *lijst van object
leveranciers[].uitEnv *lijst van tekst
leveranciers[].envCode *tekst of null
leveranciers[].envVoorvoegsel *tekst of null
leveranciers[].uploadPubliekeSleutel *tekst of null
catalogus *lijst van CatalogusLeverancier
groepen *lijst van object
groepen[].code *tekst

Een van: "platform" "overig" "groothandel" "foodservice" "dranken" "brouwer" "vers" "nonfood"

groepen[].naam *tekst
bestanden *lijst van object
bestanden[].code *tekst
bestanden[].naam *tekst
wijzen *lijst van tekst
protocollen *lijst van object
protocollen[].code *tekst

Een van: "sftp" "ftps" "ftps-impliciet" "ftp"

protocollen[].naam *tekst
protocollen[].poort *getal
aanvraagSoorten *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/inkoop" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/inkoop/automatisch#

Nu kijken of er automatisch besteld moet worden (anders gebeurt dat elke 5 minuten vanzelf)

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Antwoord 200

VeldTypeUitleg
resultaat *lijst van object
resultaat[].leverancier *tekst
resultaat[].nummergetal
resultaat[].status *tekst
resultaat[].fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/automatisch" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/inkoop/instelling#

Bestellen bij leveranciers aan/uit en het eigen GLN

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Body (JSON)

VeldTypeUitleg
aanalles
glnalles

Antwoord 200

VeldTypeUitleg
instelling *object
instelling.aan *ja/nee
instelling.voorraad *ja/nee
instelling.gln *tekst of null
instelling.mail *ja/nee

Foutmeldingen

400

Een GLN heeft 13 cijfers.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Zet eerst Voorraad bijhouden aan (Instellingen → Zaak).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/instelling" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aan": null,
  "gln": null
}'
POST/api/beheer/inkoop/leveranciers#

leveranciers

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
leverancier *object
leverancier.uitEnv *lijst van tekst
leverancier.envCode *tekst of null
leverancier.envVoorvoegsel *tekst of null
leverancier.uploadPubliekeSleutel *tekst of null
leveranciers *lijst van object
leveranciers[].uitEnv *lijst van tekst
leveranciers[].envCode *tekst of null
leveranciers[].envVoorvoegsel *tekst of null
leveranciers[].uploadPubliekeSleutel *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/leveranciers" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/inkoop/leveranciers/{id}#

leveranciers

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
leverancier *object
leverancier.uitEnv *lijst van tekst
leverancier.envCode *tekst of null
leverancier.envVoorvoegsel *tekst of null
leverancier.uploadPubliekeSleutel *tekst of null
leveranciers *lijst van object
leveranciers[].uitEnv *lijst van tekst
leveranciers[].envCode *tekst of null
leveranciers[].envVoorvoegsel *tekst of null
leveranciers[].uploadPubliekeSleutel *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/leveranciers/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE/api/beheer/inkoop/leveranciers/{id}#

Toegang: Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
leveranciers *lijst van object
leveranciers[].uitEnv *lijst van tekst
leveranciers[].envCode *tekst of null
leveranciers[].envVoorvoegsel *tekst of null
leveranciers[].uploadPubliekeSleutel *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

404

Leverancier niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/inkoop/leveranciers/<id>" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/inkoop/leveranciers/{id}/aanvraag#

Koppeling aanvragen: voorstel voor de mail (?soort=cxml|edi|ubl|api)

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst
soortzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
aan *tekst of null
onderwerp *tekst
tekst *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

404

Niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/inkoop/leveranciers/<id>/aanvraag" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/inkoop/leveranciers/{id}/aanvraag#

Koppeling aanvragen: { aan, onderwerp, tekst } versturen (kopie en antwoorden naar de zaak)

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
aanalles
onderwerpalles
tekstalles

Antwoord 200

VeldTypeUitleg
leverancier *object of null
leverancier.uitEnv *lijst van tekst
leverancier.envCode *tekst of null
leverancier.envVoorvoegsel *tekst of null
leverancier.uploadPubliekeSleutel *tekst of null
ok *true
melding *tekst
aangevraagd *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
502

Mailen lukte niet: …

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/leveranciers/<id>/aanvraag" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aan": null,
  "onderwerp": null,
  "tekst": null
}'
POST/api/beheer/inkoop/leveranciers/{id}/sleutel#

Upload: nieuw SSH-sleutelpaar { soort: 'ed25519' | 'rsa' }; geeft de publieke sleutel voor de leverancier

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
soortalles

Antwoord 200

VeldTypeUitleg
publiek *tekst
leverancier *object of null
leverancier.uitEnv *lijst van tekst
leverancier.envCode *tekst of null
leverancier.envVoorvoegsel *tekst of null
leverancier.uploadPubliekeSleutel *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

404

Niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/leveranciers/<id>/sleutel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "soort": null
}'
POST/api/beheer/inkoop/leveranciers/{id}/test#

Upload: inloggen op de server van de leverancier testen (legt bij SFTP de vingerafdruk vast)

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
leverancier *object of null
leverancier.uitEnv *lijst van tekst
leverancier.envCode *tekst of null
leverancier.envVoorvoegsel *tekst of null
leverancier.uploadPubliekeSleutel *tekst of null
ok *ja/nee
melding *tekst
vingerafdruktekst of null
vastgelegdja/nee

vingerafdruk nu vastgelegd (SFTP, eerste keer)

mapBestaatja/nee of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/leveranciers/<id>/test" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/inkoop/orders#

Toegang: Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
statuszoekterm (?…)tekst
leverancierIdzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
orders *lijst van Order

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/inkoop/orders" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/inkoop/orders#

Nieuwe bestelling (concept): { leverancierId, regels: [{ soort, id, aantal }], opmerking?, leverdatum? }

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Body (JSON)

VeldTypeUitleg
leverancierIdalles
regelsalles
opmerkingalles
leverdatumalles

Antwoord 200

VeldTypeUitleg
order *Order

Foutmeldingen

400

Kies een leverancier.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/orders" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "leverancierId": null,
  "regels": null,
  "opmerking": null,
  "leverdatum": null
}'
GET/api/beheer/inkoop/orders/{id}#

Toegang: Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
order *Order

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/inkoop/orders/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/inkoop/orders/{id}#

Concept aanpassen

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
regelsalles
opmerkingalles
leverdatumalles

Antwoord 200

VeldTypeUitleg
order *Order

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/orders/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regels": null,
  "opmerking": null,
  "leverdatum": null
}'
POST/api/beheer/inkoop/orders/{id}/annuleren#

Toegang: Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
order *Order

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/orders/<id>/annuleren" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/inkoop/orders/{id}/bestand#

De bestelling als bestand (CSV, Excel, Care4Fresh, UBL, EANCOM of cXML zonder het geheim): { naam, type, in…

De bestelling als bestand (CSV, Excel, Care4Fresh, UBL, EANCOM of cXML zonder het geheim): { naam, type, inhoud } (tekst) of { naam, type, base64 } (Excel).

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst
soortzoekterm (?…)tekst

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/inkoop/orders/<id>/bestand" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/inkoop/orders/{id}/ontvangen#

Ontvangen: { regels: { <regelId>: aantal } } (leeg = zoals besteld)

Boekt de voorraad bij.

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
regelsalles

Antwoord 200

VeldTypeUitleg
order *Order

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/orders/<id>/ontvangen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "regels": null
}'
POST/api/beheer/inkoop/orders/{id}/versturen#

Versturen (op de manier van de leverancier, of { wijze } voor deze keer)

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
wijzealles

Antwoord 200

Type: VerstuurResultaat

VeldTypeUitleg
ok *ja/nee
fouttekst
meldingtekst
order *Order

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/inkoop/orders/<id>/versturen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "wijze": null
}'
GET/api/beheer/inkoop/voorstel#

Bestelvoorstel per leverancier; ?alles=1 ook wat (nog) niet nodig is

Toegang

Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Parameters

NaamWaarTypeUitleg
alleszoekterm (?…)tekst
leverancierIdzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
leveranciers *lijst van object
leveranciers[].leverancier *object
leveranciers[].leverancier.id *tekst
leveranciers[].leverancier.naam *tekst
leveranciers[].leverancier.wijze *tekst

Een van: "webhook" "email" "bestand" "cxml" "upload" "printen"

leveranciers[].leverancier.minimumBedrag *getal
leveranciers[].leverancier.actief *ja/nee
leveranciers[].regels *lijst van VoorstelRegel

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.

409

Mogelijke meldingen:

  • Voorraad bijhouden staat uit (Instellingen → Zaak).
  • Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/inkoop/voorstel" \
  -H "Authorization: Bearer <token>"

Instellingen

Printers (netwerk, USB, serieel, Bluetooth, systeemprinter, ingebouwd; ESC/POS of Star), printers zoeken, printapparaten (bedienschermen met een printer) en printertoewijzing.

POST/api/instellingen/artikelen/{id}/printer#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
printertekst of null

Antwoord 200

VeldTypeUitleg
ok *ja/nee
printer *tekst of null

Foutmeldingen

400

Deze printer bestaat niet.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/artikelen/<id>/printer" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "printer": "tekst"
}'
POST/api/instellingen/artikelgroepen/{id}/printer#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
printertekst of null

Antwoord 200

VeldTypeUitleg
ok *ja/nee
printer *tekst of null

Foutmeldingen

400

Deze printer bestaat niet.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Artikelgroep niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/artikelgroepen/<id>/printer" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "printer": "tekst"
}'
GET/api/instellingen/bonprinter#

Welke printer print kassabon en pro forma (en opent de kassalade)?

null = geen.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
printer *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/instellingen/bonprinter" \
  -H "Authorization: Bearer <token>"
POST/api/instellingen/bonprinter#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
printertekst of null

Antwoord 200

VeldTypeUitleg
printer *tekst of null

Foutmeldingen

400

Deze printer bestaat niet.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/bonprinter" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "printer": "tekst"
}'
GET/api/instellingen/klantportaal#

Klantportaal (beheerportaal van Pin Voordeel): kan deze kassa een koppelcode maken?

Klantportaal (beheerportaal van Pin Voordeel): kan deze kassa een koppelcode maken? Alleen als de kassa aan het portaal gekoppeld is (PORTAALURL en PORTAALSLEUTEL in .env).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
ingesteld *ja/nee
url *tekst of null
code *object of null
code.code *tekst
code.geldigTot *tekst of null
code.url *tekst of null
code.registreerUrl *tekst of null
code.gekoppeld *lijst van object
code.gekoppeld[].naam *tekst
code.gekoppeld[].email *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/instellingen/klantportaal" \
  -H "Authorization: Bearer <token>"
POST/api/instellingen/klantportaal/koppelcode#

Koppelcode voor het klantportaal: de eigenaar logt in op het portaal (of maakt daar een account aan) en vul…

Koppelcode voor het klantportaal: de eigenaar logt in op het portaal (of maakt daar een account aan) en vult deze code in; daarna ziet hij deze kassa online. Eenmalig te gebruiken; 24 uur geldig (KOPPELCODE_UREN in het portaal), of minstens zo lang als de licentie van de kassa. Een nieuwe code vervangt de vorige.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
code *tekst
geldigTot *tekst of null
url *tekst of null
registreerUrl *tekst of null
gekoppeld *lijst van object
gekoppeld[].naam *tekst
gekoppeld[].email *tekst

Foutmeldingen

400

Deze kassa is niet gekoppeld aan het beheerportaal (PORTAALURL en PORTAALSLEUTEL in .env).

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

502

Het beheerportaal is niet bereikbaar. Controleer de internetverbinding en probeer het opnieuw.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/klantportaal/koppelcode" \
  -H "Authorization: Bearer <token>"
GET/api/instellingen/printapparaten#

Printapparaten: Android-bedienschermen met de HorecaPOS-app waar zelf een printer aan hangt (Bluetooth, USB…

Printapparaten: Android-bedienschermen met de HorecaPOS-app waar zelf een printer aan hangt (Bluetooth, USB, ingebouwd). Zie lib/printapparaat.ts.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
apparaten *lijst van PrintapparaatGegevens

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/instellingen/printapparaten" \
  -H "Authorization: Bearer <token>"
POST/api/instellingen/printapparaten#

Dit apparaat (het bedienscherm waarop de beheerder nu werkt) aanmelden als printapparaat

Geeft één keer de sleutel terug; de app bewaart hem en haalt daarmee zijn bonnen op.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
naamtekst
platformtekst

Antwoord 200

VeldTypeUitleg
id *tekst
sleutel *tekst
naam *tekst

Foutmeldingen

400

Geef het apparaat een naam, bijvoorbeeld "Terras" of "Handterminal 1".

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/printapparaten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "platform": "tekst"
}'
POST/api/instellingen/printapparaten/{id}#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
naamtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
apparaten *lijst van PrintapparaatGegevens

Foutmeldingen

400

Geef het apparaat een naam.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Dit printapparaat bestaat niet (meer).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/printapparaten/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4"
}'
POST/api/instellingen/printapparaten/{id}/verwijderen#

Printapparaat afmelden

Printers die eraan hingen, print daarna de kassaserver zelf.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
apparaten *lijst van PrintapparaatGegevens

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Dit printapparaat bestaat niet (meer).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/printapparaten/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/instellingen/printerkoppelingen#

Welke printer hoort bij welke groep en welk product?

groep.printer: null = geen werkbon product.printer: null = zoals de groep, '' = geen werkbon

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
groepen *lijst van object
groepen[].id *tekst
groepen[].naam *tekst
groepen[].printer *tekst of null
artikelen *lijst van object
artikelen[].id *tekst
artikelen[].naam *tekst
artikelen[].groepId *tekst of null
artikelen[].printer *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/instellingen/printerkoppelingen" \
  -H "Authorization: Bearer <token>"
GET/api/instellingen/printers#

Alle printers van deze vestiging: wat in de database staat en printers waar een groep of product nog naar v…

Alle printers van deze vestiging: wat in de database staat en printers waar een groep of product nog naar verwijst. Een nieuwe zaak heeft er geen. Per printer ook hoeveel groepen en producten hem gebruiken.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

Type: lijst van object

14 velden tonen
VeldTypeUitleg
[].naam *tekst
[].host *tekst
[].poort *getal
[].breedte *getal
[].bron *tekst

Een van: "database" "geen"

[].taal *tekst
[].verbinding *tekst

Een van: "serieel" "netwerk" "bluetooth" "usb" "systeem" "ingebouwd"

[].adres *tekst
[].baud *getal
[].protocol *tekst

Een van: "escpos" "star"

[].apparaat *tekst of null
[].gebruik *object
[].gebruik.groepen *getal
[].gebruik.artikelen *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/instellingen/printers" \
  -H "Authorization: Bearer <token>"
POST/api/instellingen/printers/{naam}#

Printer opslaan of toevoegen

Zonder IP-adres verschijnen de bonnen van deze printer in het servervenster.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
naam *padtekst

Body (JSON)

Type: PrinterInvoer

VeldTypeUitleg
hosttekst
poortgetal
breedtegetal
taaltekst

Taal van de werkbon: 'medewerker' (taal van wie bestelt) of een vaste taal (nl, de, en ...); weglaten = niet wijzigen.

verbindingtekst

Hoe de printer aangesloten is (migratie 053); weglaten = netwerk (de oude manier).

adrestekst

usb / serieel / bluetooth / systeem: poort, adres of printernaam

baudgetal

serieel: snelheid (baud), standaard 9600

protocoltekst

escpos (standaard) of star

apparaattekst of null

id van het printapparaat (Android-bedienscherm) waar de printer aan hangt; null/leeg = de kassaserver

Antwoord 200

VeldTypeUitleg
naam *tekst
host *tekst
poort *getal
breedte *getal
bron *tekst

Een van: "database" "geen"

taal *tekst
verbinding *tekst

Een van: "serieel" "netwerk" "bluetooth" "usb" "systeem" "ingebouwd"

adres *tekst
baud *getal
protocol *tekst

Een van: "escpos" "star"

apparaat *tekst of null

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldige printernaam.
  • Dit printapparaat bestaat niet (meer). Meld het bedienscherm opnieuw aan.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/printers/<naam>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "host": "tekst",
  "poort": 1,
  "breedte": 1,
  "taal": "tekst"
}'
POST/api/instellingen/printers/{naam}/test#

Testbon printen

Met een IP-adres (of bij een andere verbinding: de verbinding) in de body wordt dát getest (handig vóór het opslaan), anders de huidige instelling.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
naam *padtekst

Body (JSON)

Type: PrinterInvoer

VeldTypeUitleg
hosttekst
poortgetal
breedtegetal
taaltekst

Taal van de werkbon: 'medewerker' (taal van wie bestelt) of een vaste taal (nl, de, en ...); weglaten = niet wijzigen.

verbindingtekst

Hoe de printer aangesloten is (migratie 053); weglaten = netwerk (de oude manier).

adrestekst

usb / serieel / bluetooth / systeem: poort, adres of printernaam

baudgetal

serieel: snelheid (baud), standaard 9600

protocoltekst

escpos (standaard) of star

apparaattekst of null

id van het printapparaat (Android-bedienscherm) waar de printer aan hangt; null/leeg = de kassaserver

Antwoord 200

VeldTypeUitleg
ok *ja/nee
fouttekst
meldingtekst

Foutmeldingen

400

Ongeldige printernaam.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/printers/<naam>/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "host": "tekst",
  "poort": 1,
  "breedte": 1,
  "taal": "tekst"
}'
POST/api/instellingen/printers/{naam}/verwijderen#

Printer verwijderen

Kan niet zolang hij de kassabon print of door een groep/product gebruikt wordt.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
naam *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Ongeldige printernaam.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Printer "…" print de kassabon. Kies daar eerst een andere printer (of geen).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/instellingen/printers/<naam>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/instellingen/printers/zoeken#

Printers zoeken die de kassaserver zelf ziet: USB (Linux /dev/usb/lp*), COM- en seriële poorten, printers v…

Printers zoeken die de kassaserver zelf ziet: USB (Linux /dev/usb/lp*), COM- en seriële poorten, printers van Windows/CUPS en op Android ingebouwd, USB en gekoppeld Bluetooth. Plus welke verbindingen hier kunnen. Netwerkprinters zoekt hij niet.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

Type: PrinterZoekResultaat

VeldTypeUitleg
platform *tekst

Een van: "android" "windows" "linux" "macos" "anders"

gevonden *lijst van GevondenPrinter
verbindingen *lijst van tekst

wat hier kan: welke verbindingen deze kassa(server) zelf kan gebruiken

meldingtekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/instellingen/printers/zoeken" \
  -H "Authorization: Bearer <token>"
GET/api/instellingen/printerverbindingen#

Welke verbindingen kan de kassaserver op dit besturingssysteem gebruiken (zonder te zoeken)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
verbindingen *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/instellingen/printerverbindingen" \
  -H "Authorization: Bearer <token>"

Productbeheer

Producten, groepen, keuzeopties en volgorde beheren.

POST/api/beheer/artikelen#

producten

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

Type: ArtikelInvoer

VeldTypeUitleg
naamtekst
naamBontekst of null
codetekst of null
groepIdtekst
prijsInclgetal
btwTerPlaatsetekst
btwAfhalentekst of null
uitverkochtja/nee
kleurtekst of null

#rrggbb, of leeg/null = zoals de productgroep

allergenenalles

allergeencodes; niet meegestuurd = niet wijzigen (migratie 024)

perKiloalles

Weegschaal (migratie 047): prijs per kilo (prijsIncl is dan per kilo), PLU-nummer (null = geen) en tarra in gram. Niet meegestuurd = niet wijzigen.

plualles
tarraGramalles
openPrijsalles

Migratie 129: open prijs (de prijs vul je in bij het aanslaan), voorschot (later te verrekenen) en mag terug (statiegeld terugnemen met een negatief aantal). Niet meegestuurd = niet wijzigen.

voorschotalles
magTerugalles
spvalles

Migratie 131: product is een single purpose voucher (SPV, bon voor één bepaald product of menu).

alcoholalles

Wettelijk (migratie 072): bevat alcohol (leeftijdscheck), wegwerptoeslag en statiegeld per stuk (centen), soort voor de btw-assistent. Niet meegestuurd = niet wijzigen.

wegwerpalles
statiegeldalles
btwSoortalles
prijsAfhalenalles

Leverwijze (migratie 084): eigen prijs bij afhalen en bezorgen (centen; null of leeg = de gewone prijs) en waar het product niet verkocht wordt. Niet meegestuurd = niet wijzigen.

prijsBezorgenalles
nietBijalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
id *tekst

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

409

PLU … hoort al bij "…". Kies een ander nummer.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/artikelen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "naamBon": "Tafel 4",
  "code": "tekst",
  "groepId": "3f2c9a1e-…"
}'
POST/api/beheer/artikelen/{id}#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: ArtikelInvoer

VeldTypeUitleg
naamtekst
naamBontekst of null
codetekst of null
groepIdtekst
prijsInclgetal
btwTerPlaatsetekst
btwAfhalentekst of null
uitverkochtja/nee
kleurtekst of null

#rrggbb, of leeg/null = zoals de productgroep

allergenenalles

allergeencodes; niet meegestuurd = niet wijzigen (migratie 024)

perKiloalles

Weegschaal (migratie 047): prijs per kilo (prijsIncl is dan per kilo), PLU-nummer (null = geen) en tarra in gram. Niet meegestuurd = niet wijzigen.

plualles
tarraGramalles
openPrijsalles

Migratie 129: open prijs (de prijs vul je in bij het aanslaan), voorschot (later te verrekenen) en mag terug (statiegeld terugnemen met een negatief aantal). Niet meegestuurd = niet wijzigen.

voorschotalles
magTerugalles
spvalles

Migratie 131: product is een single purpose voucher (SPV, bon voor één bepaald product of menu).

alcoholalles

Wettelijk (migratie 072): bevat alcohol (leeftijdscheck), wegwerptoeslag en statiegeld per stuk (centen), soort voor de btw-assistent. Niet meegestuurd = niet wijzigen.

wegwerpalles
statiegeldalles
btwSoortalles
prijsAfhalenalles

Leverwijze (migratie 084): eigen prijs bij afhalen en bezorgen (centen; null of leeg = de gewone prijs) en waar het product niet verkocht wordt. Niet meegestuurd = niet wijzigen.

prijsBezorgenalles
nietBijalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Product niet gevonden.

409

PLU … hoort al bij "…". Kies een ander nummer.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/artikelen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "naamBon": "Tafel 4",
  "code": "tekst",
  "groepId": "3f2c9a1e-…"
}'
POST/api/beheer/artikelen/{id}/verwijderen#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/artikelen/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/catalogus#

Alles voor het beheerscherm: groepen, producten (in volgorde) en btw-tarieven

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Antwoord 200

VeldTypeUitleg
groepen *lijst van object
artikelen *lijst van object
btw *lijst van object
wettelijk *object
wettelijk.leeftijdscheck *ja/nee
wettelijk.wegwerp *ja/nee
wettelijk.statiegeld *ja/nee
leverwijze *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/catalogus" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/groepen#

groepen

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

Type: GroepInvoer

VeldTypeUitleg
naamtekst
kleurtekst
nietBijalles

leverwijze (migratie 084): waar deze groep niet verkocht wordt; niet meegestuurd = niet wijzigen

Antwoord 200

object of null

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/groepen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "kleur": "tekst",
  "nietBij": null
}'
POST/api/beheer/groepen/{id}#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: GroepInvoer

VeldTypeUitleg
naamtekst
kleurtekst
nietBijalles

leverwijze (migratie 084): waar deze groep niet verkocht wordt; niet meegestuurd = niet wijzigen

Antwoord 200

object

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Productgroep niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/groepen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "kleur": "tekst",
  "nietBij": null
}'
POST/api/beheer/groepen/{id}/verwijderen#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Productgroep niet gevonden.

409

Deze groep heeft nog … product(en). Verwijder of verplaats die eerst.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/groepen/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/optiegroepen#

Keuzegroepen van een product (?artikelId=) of productgroep (?groepId=)

Bij een product ook die van zijn productgroep (alleen ter info).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
artikelIdzoekterm (?…)tekst
groepIdzoekterm (?…)tekst

Antwoord 200

object

Foutmeldingen

400

Geef een product of productgroep op.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Mogelijke meldingen:

  • Product niet gevonden.
  • Productgroep niet gevonden.
Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/optiegroepen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/optiegroepen#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

Type: OptiegroepInvoer

VeldTypeUitleg
artikelIdtekst

bij nieuw: bij welk product óf welke productgroep

groepIdtekst
naamtekst
minimumgetal
maximumgetal

0 = onbeperkt

optieslijst van object

in volgorde; met id = bestaande optie wijzigen, zonder id = nieuw

opties[].idtekst
opties[].naamtekst
opties[].prijsDeltagetal

Antwoord 200

VeldTypeUitleg
id *tekst

Foutmeldingen

400

Kies een product óf een productgroep.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/optiegroepen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "artikelId": "3f2c9a1e-…",
  "groepId": "3f2c9a1e-…",
  "naam": "Tafel 4",
  "minimum": 1
}'
POST/api/beheer/optiegroepen/{id}#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: OptiegroepInvoer

VeldTypeUitleg
artikelIdtekst

bij nieuw: bij welk product óf welke productgroep

groepIdtekst
naamtekst
minimumgetal
maximumgetal

0 = onbeperkt

optieslijst van object

in volgorde; met id = bestaande optie wijzigen, zonder id = nieuw

opties[].idtekst
opties[].naamtekst
opties[].prijsDeltagetal

Antwoord 200

VeldTypeUitleg
id *tekst

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Keuzegroep niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/optiegroepen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "artikelId": "3f2c9a1e-…",
  "groepId": "3f2c9a1e-…",
  "naam": "Tafel 4",
  "minimum": 1
}'
POST/api/beheer/optiegroepen/{id}/verwijderen#

Verwijderen mag gewoon: bestelregels bewaren de gekozen opties (naam en prijs) zelf, dus oude bonnen en het…

Verwijderen mag gewoon: bestelregels bewaren de gekozen opties (naam en prijs) zelf, dus oude bonnen en het journaal blijven kloppen.

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Keuzegroep niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/optiegroepen/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/volgorde/artikelen#

Nieuwe volgorde van de producten in één groep (na slepen)

Een product dat uit een andere groep hierheen gesleept is, verhuist mee.

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

VeldTypeUitleg
groepIdtekst
idsalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Ongeldige volgorde.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Productgroep niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/volgorde/artikelen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "groepId": "3f2c9a1e-…",
  "ids": null
}'
POST/api/beheer/volgorde/groepen#

Nieuwe volgorde van de groepen (na slepen)

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

VeldTypeUitleg
idsalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Ongeldige volgorde.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/volgorde/groepen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": null
}'
POST/api/beheer/volgorde/optiegroepen#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

VeldTypeUitleg
idsalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Ongeldige volgorde.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Keuzegroep niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/volgorde/optiegroepen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": null
}'

Acties

Happy hour en menu's beheren.

GET/api/beheer/dagdelen#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Antwoord 200

VeldTypeUitleg
dagdelen *lijst van Dagdeel

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/dagdelen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/dagdelen#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

Type: DagdeelInvoer

VeldTypeUitleg
naamalles
dagenalles
vanalles
totalles
seizoenVanalles
seizoenTotalles
groepIdsalles
artikelIdsalles
actiefalles

Antwoord 200

VeldTypeUitleg
dagdelen *lijst van Dagdeel

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/dagdelen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "dagen": null,
  "van": null,
  "tot": null
}'
POST/api/beheer/dagdelen/{id}#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: DagdeelInvoer

VeldTypeUitleg
naamalles
dagenalles
vanalles
totalles
seizoenVanalles
seizoenTotalles
groepIdsalles
artikelIdsalles
actiefalles

Antwoord 200

VeldTypeUitleg
dagdelen *lijst van Dagdeel

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Dagdeel niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/dagdelen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "dagen": null,
  "van": null,
  "tot": null
}'
POST/api/beheer/dagdelen/{id}/verwijderen#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
dagdelen *lijst van Dagdeel

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Dagdeel niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/dagdelen/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/happyhours#

happy hour

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Antwoord 200

VeldTypeUitleg
happyhours *lijst van HappyHour

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/happyhours" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/happyhours#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

Type: HappyHourInvoer

VeldTypeUitleg
naamalles
dagenalles
vanalles
totalles
soortalles
waardealles
groepIdsalles
artikelIdsalles
actiefalles
seizoenVanalles
seizoenTotalles

Antwoord 200

VeldTypeUitleg
happyhours *lijst van HappyHour

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

409

De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 084).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/happyhours" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "dagen": null,
  "van": null,
  "tot": null
}'
POST/api/beheer/happyhours/{id}#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: HappyHourInvoer

VeldTypeUitleg
naamalles
dagenalles
vanalles
totalles
soortalles
waardealles
groepIdsalles
artikelIdsalles
actiefalles
seizoenVanalles
seizoenTotalles

Antwoord 200

VeldTypeUitleg
happyhours *lijst van HappyHour

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Happy hour niet gevonden.

409

De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 084).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/happyhours/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null,
  "dagen": null,
  "van": null,
  "tot": null
}'
POST/api/beheer/happyhours/{id}/verwijderen#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
happyhours *lijst van HappyHour

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Happy hour niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/happyhours/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/menu/{artikelId}#

menu's

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
artikelId *padtekst

Antwoord 200

VeldTypeUitleg
onderdelen *lijst van MenuOnderdeel

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Product niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/menu/<artikelId>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/menu/{artikelId}#

Alle onderdelen van een menu in één keer opslaan (leeg = geen menu meer)

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
artikelId *padtekst

Body (JSON)

VeldTypeUitleg
onderdelenlijst van object
onderdelen[].naamalles
onderdelen[].soortalles
onderdelen[].artikelIdsalles
onderdelen[].groepIdalles
onderdelen[].aantalalles
onderdelen[].gangalles
onderdelen[].menuprijsalles

Antwoord 200

VeldTypeUitleg
onderdelen *lijst van MenuOnderdeel

Foutmeldingen

400

Mogelijke meldingen:

  • Hooguit 12 onderdelen per menu.
  • Onderdeel …: ongeldig.
  • Onderdeel …: geef het een naam (bv. Voorgerecht).
  • …: aantal 1 tot 20.
  • …: gang 1 tot 9.
  • …: kies het product.
  • …: kies een productgroep of producten om uit te kiezen.
  • …: ongeldig deel van de menuprijs.
  • Een menu kan geen ander menu bevatten.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Product niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/menu/<artikelId>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "onderdelen": [
    {
      "naam": null,
      "soort": null,
      "artikelIds": null,
      "groepId": null
    }
  ]
}'

Plattegronden

Ruimtes en tafels beheren.

GET/api/beheer/plattegronden#

Alle plattegronden met hun tafels; per tafel ook of er een bestelling open staat

Toegang

Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Antwoord 200

18 velden tonen
VeldTypeUitleg
maat *object
maat.breedte *1600
maat.hoogte *1000
ruimtes *lijst van object
ruimtes[].tafels *lijst van object
ruimtes[].tafels[].id *tekst of null
ruimtes[].tafels[].naam *tekst
ruimtes[].tafels[].x *getal
ruimtes[].tafels[].y *getal
ruimtes[].tafels[].breedte *getal
ruimtes[].tafels[].hoogte *getal
ruimtes[].tafels[].vorm *tekst

Een van: "rond" "vierkant"

ruimtes[].tafels[].plaatsen *getal
ruimtes[].tafels[].ruimteId *tekst
ruimtes[].tafels[].bezet *ja/nee
ruimtes[].id *tekst
ruimtes[].naam *tekst
ruimtes[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/plattegronden" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/ruimtes#

Toegang: Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Toegang

Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Body (JSON)

VeldTypeUitleg
naamtekst

Antwoord 200

object of null

Foutmeldingen

400

Geef de plattegrond een naam, bv. "Zaal" of "Terras".

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/ruimtes" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4"
}'
POST/api/beheer/ruimtes/{id}#

Toegang: Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Toegang

Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
naamtekst

Antwoord 200

object

Foutmeldingen

400

Geef de plattegrond een naam.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.

404

Plattegrond niet gevonden.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/ruimtes/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4"
}'
POST/api/beheer/ruimtes/{id}/tafels#

Alle tafels van één plattegrond opslaan zoals ze in de editor staan

Tafels zonder id zijn nieuw; bestaande tafels die ontbreken worden verwijderd.

Toegang

Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
tafelslijst van TafelInvoer

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Ongeldige tafellijst.
  • Tafel "…" staat twee keer op deze plattegrond.
  • Tafel "…" bestaat al op …. Kies een ander nummer.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.

404

Plattegrond niet gevonden.

409

Tafel … heeft nog een open bestelling en kan niet weg. Reken die eerst af.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/ruimtes/<id>/tafels" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "tafels": [
    {
      "id": "3f2c9a1e-…",
      "naam": "Tafel 4",
      "x": 1,
      "y": 1
    }
  ]
}'
POST/api/beheer/ruimtes/{id}/verwijderen#

Toegang: Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Toegang

Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.

404

Plattegrond niet gevonden.

409

Op … staan nog bestellingen open (tafel …). Reken die eerst af.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/ruimtes/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/volgorde/ruimtes#

Toegang: Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Toegang

Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).

Body (JSON)

VeldTypeUitleg
idsalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Ongeldige volgorde.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/volgorde/ruimtes" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": null
}'

Zaak

Gegevens en instellingen van de zaak.

POST/api/beheer/gks-plicht#

België (migratie 135): is de zaak GKS-plichtig?

Ja = afrekenen alleen met een werkende zwarte doos (GKS 2.0). Nee = zonder zwarte doos, alleen met de verklaring van de beheerder (verklaring: true); elk jaar opnieuw te bevestigen (dezelfde vraag nog eens). De keuze komt in het logboek.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
plichtigalles
verklaringalles

Antwoord 200

125 velden tonen
VeldTypeUitleg
gksMaaltijdOmzetgetal

Alleen in Instellingen → Zaak (België): maaltijden ter plaatse (btw 12%) in de laatste 12 maanden, excl. btw, in centen.

vestigingsnummer *tekst of null
juridischeNaam *tekst of null
id *tekst
naam *tekst
land *tekst

Een van: "NL" "BE"

btwNummer *tekst of null
gksPlichtigja/nee of null

België (migratie 135): GKS-plichtig? null = nog niet gekozen (dan kan de zaak niet afrekenen), true = alleen afrekenen met een werkende zwarte doos (GKS 2.0), false = niet GKS-plichtig (verklaring van de beheerder).

gksVerklaringOptekst of null

Wanneer de keuze (bij "nee": de verklaring) is gedaan (ISO); elk jaar opnieuw te bevestigen.

fiscaalDemoja/nee

Demo- of testzaak: de nagebootste zwarte doos (FISCAL_MODE=mock) mag. Nooit bij een echte zaak.

adres *tekst of null
postcode *tekst of null
plaats *tekst of null
telefoon *tekst of null
emailtekst of null

E-mailadres van de zaak (niet op de bon; o.a. voor het beheerportaal van Pin Voordeel).

gksProductienummer *tekst of null
bonVoetteksttekst of null

Tekst onderaan de kassabon (meerdere regels mogen). null/undefined = STANDAARD_BONVOETTEKST, '' = geen tekst.

bonTaaltekst of null

Taal van de vaste teksten op de kassabon (migratie 052; alleen Latijns schrift, zie packages/printing/src/bontaal.ts). null/undefined = Nederlands. Los van de taal van de schermen.

contantAfrondenja/nee

Contante betalingen afronden op 5 cent (standaard uit).

fooiFooiInstelling

Fooiknoppen bij afrekenen (ontbreekt = STANDAARD_FOOI).

klokkentekst

In- en uitklokken van personeel (ontbreekt = 'uit').

Een van: "uit" "aan" "verplicht"

allergenenja/nee

Allergenen per product tonen en invullen (standaard uit).

happyhourja/nee

Happy hour gebruiken (standaard uit).

menusja/nee

Menu's gebruiken (standaard uit).

dagdelenja/nee

Assortiment per dagdeel en seizoen (migratie 084, standaard uit).

leverwijzeja/nee

Assortiment en prijzen per leverwijze: ter plaatse, afhalen, bezorgen (migratie 084, standaard uit).

cadeaubonBetalenja/nee

"Cadeaubon" als betaalwijze bij afrekenen (ontbreekt = aan, zoals altijd).

cadeaubonSaldoja/nee

Cadeaubonnen verkopen met code en saldo (standaard uit).

voorraadja/nee

Voorraad bijhouden (per product of via ingrediënten; standaard uit).

thematekst

Thema van de schermen (ontbreekt = donker, zoals altijd).

Een van: "donker" "licht"

afrekenknoptekst

Knop "Afrekenen" op het bestelscherm: groot onder de bestelde producten of klein onderin (migratie 054; ontbreekt = groot).

Een van: "groot" "klein"

bonMailenja/nee

Bon per e-mail bij afrekenen (standaard uit).

keukenGeluidja/nee

Piep op de kassa van de bediening als het keukenscherm iets klaar meldt (standaard uit).

zRapportMailtekst

E-mail van de beheerder: Z-rapport na dag afsluiten automatisch mailen (leeg = niet mailen).

fooiVerdelentekst

Fooi per medewerker op X/Z/periode-rapport (ontbreekt = uit).

Een van: "uit" "eigen" "uren" "gelijk"

klantenkaartja/nee

Klantenkaart / spaarpunten (migratie 038; standaard uit).

gastprofielja/nee

Gastprofiel (migratie 115; standaard uit, alleen met de klantenkaart): VIP, dieetwensen en voorkeuren van de klant.

spaarPuntenPerEurogetal

punten per besteedde euro (0 = alleen stempelkaarten)

spaarPuntenNodiggetal

zoveel punten = één beloning

spaarBeloninggetal

beloning in centen korting

marketingSmsja/nee

Sms-marketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met CM_TOKEN).

marketingEmailja/nee

E-mailmarketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met SMTP_HOST).

adresZoekenja/nee

Snel adres invoeren met postcode en huisnummer, Nederland (migratie 057; standaard uit).

importerenja/nee

Importeren uit een andere kassa: producten en klanten uit CSV/Excel (migratie 058; standaard uit).

exactja/nee

Koppeling met Exact Online: dagomzet boeken (migratie 059; standaard uit).

exactIngesteldja/nee

Alleen-lezen: staat de Exact-app in .env (EXACTCLIENTID en EXACTCLIENTSECRET)?

boekhoudpakkettekst

Koppeling met een ander boekhoudpakket: dagomzet zelf boeken in het gekozen pakket ('' = uit; migraties 062/063; standaard uit). Zie boekhoudcatalogus.ts.

Een van: "" "acumulus" "afas" "businesscentral" "horus" "moneybird" "odoo" "quickbooks" "sapb1" "silvasoft" "snelstart" "twinfield" "xero" "yuki" "zoho"

boekhoudpakketInEnvja/nee

Alleen-lezen: ligt het pakket vast in .env (BOEKHOUDPAKKET)? Dan geen keuze bij Instellingen → Boekhouding.

boekhoudpakkettenobject

Alleen-lezen: welke koppelingen kunnen verbinden (pakketten met inloggen alleen met hun app, in .env of bij Instellingen → Boekhouding).

boekhoudpakketten.acumulusja/nee
boekhoudpakketten.afasja/nee
boekhoudpakketten.businesscentralja/nee
boekhoudpakketten.horusja/nee
boekhoudpakketten.moneybirdja/nee
boekhoudpakketten.odooja/nee
boekhoudpakketten.quickbooksja/nee
boekhoudpakketten.sapb1ja/nee
boekhoudpakketten.silvasoftja/nee
boekhoudpakketten.snelstartja/nee
boekhoudpakketten.twinfieldja/nee
boekhoudpakketten.xeroja/nee
boekhoudpakketten.yukija/nee
boekhoudpakketten.zohoja/nee
reserveringenja/nee

Reserveringen (migratie 039; standaard uit).

reserveringVoorafgetal

zoveel minuten vóór de tijd staat de tafel als gereserveerd op de plattegrond

reserveringDuurMingetal

standaard duur van een reservering in minuten

wachtlijstja/nee

Wachtlijst voor walk-ins (migratie 051; standaard uit).

wachtlijstSmsTeksttekst

tekst van de sms "uw tafel is klaar" ({naam}, {zaak}, {personen}); leeg = standaardtekst

smsIngesteldja/nee

Alleen-lezen: is sms ingesteld in .env (CM_TOKEN, CM.com)?

updatemeldingja/nee

Updatemelding in de kassa (migratie 040; standaard uit).

snelleVerkoopja/nee

Knop "Snelle verkoop" (balie, zonder tafel) op het tafelscherm (migratie 041; ontbreekt = aan).

afhalenja/nee

Knop "Afhalen" op het tafelscherm (migratie 041; ontbreekt = aan).

bezorgenja/nee

Bezorgen en tijdvakken in de kassa (migratie 060): knop "Bezorgen" op het tafelscherm (ontbreekt = uit).

bezorgZoneslijst van BezorgZone

Bezorggebieden, de eerste die past geldt; leeg = overal, zonder kosten of minimum. Bedragen in centen.

bezorgTijdMingetal

Minuten tot bezorgd / klaar voor afhalen als het zo snel mogelijk moet.

afhaalTijdMingetal
tijdvakMingetal

Lengte van een tijdvak (minuten) en het maximum aantal bestellingen erin (afhalen + bezorgen; 0 = geen maximum).

perTijdvakgetal
webshopVolgtja/nee

Kassa en webshop gelijk (migratie 061; alles standaard uit = zoals voorheen). webshopVolgt: de webshop gebruikt de bezorggebieden, tijden, het tijdvak, het maximum, de openingstijden en gesloten dagen van de kassa en telt de bestellingen van de kassa mee (de kassa is leidend).

openTijdenOpenTijden

Eigen openingstijden voor afhalen en bezorgen (1 = maandag ... 7 = zondag); null = zoals voorheen.

geslotenDagenlijst van tekst

Gesloten datums (JJJJ-MM-DD) voor afhalen en bezorgen.

vooruitDagengetal

Zoveel dagen vooruit een tijd kiezen (0 = alleen vandaag).

drukteMingetal

Druk: zoveel minuten extra bij "zo snel mogelijk" (kassa en webshop).

bezorgBerichtenja/nee

De klant een sms/e-mail sturen bij aannemen, klaar en onderweg.

webshopPauzeja/nee

Webshop vanuit de kassa even dicht (pauze), met een tekst voor de gast.

webshopPauzeTeksttekst of null
reserverenOnlineReserverenOnline

Online reserveren in de webshop met de regels van de kassa; null = die van de webshop zelf.

cadeaubonOnlineja/nee

Cadeaubonnen verkopen in de webshop (online betaald).

kortingscodesja/nee

Kortingscodes aan de kassa en in de webshop.

mailIngesteldja/nee

Alleen-lezen: is er een mailserver ingesteld in .env (SMTP_HOST)?

favorietentekst

Favorieten/snelknoppen op het bestelscherm (ontbreekt = uit).

Een van: "uit" "auto" "zelf"

tafelStilMinutengetal

Tafeltijd: oranje rand na zoveel minuten zonder bestelling (0 = uit; ontbreekt = 20).

ayceAyceInstelling

All-you-can-eat (migratie 042; ontbreekt = uit).

klantschermja/nee

Klantscherm: scherm naar de klant toe met bestelling en bedrag (migratie 044; ontbreekt = uit).

klantschermWelkomtekst of null

Welkomsttekst op het klantscherm als er niemand afrekent (leeg = "Welkom").

productfotoKnoppenja/nee

Productfoto op de productknoppen van het bestelscherm (migratie 045; ontbreekt = uit).

productfotoKlantschermja/nee

Productfoto bij de regels op het klantscherm (migratie 045; ontbreekt = uit).

weegschaalWeegschaalInstelling

Weegschaal (migratie 047; ontbreekt of aan = false = uit): producten met een prijs per kilo, wegen op een Aclas OS6X en etiketten van een Aclas TS6X scannen.

leeftijdscheckja/nee

Leeftijdscheck alcohol (migratie 072; ontbreekt = uit): 18+ in de webshop en op werkbon/bezorgbon.

wegwerpja/nee

Wegwerptoeslag per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

statiegeldja/nee

Statiegeld per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

contantLimietja/nee

Waarschuwing bij contant € 3.000 of meer voor goederen (NL, migratie 072; ontbreekt = uit).

facturenja/nee

Facturen (UBL/Peppol) voor zakelijke klanten (migratie 072; ontbreekt = uit).

haccpja/nee

Digitale HACCP-registratie: temperaturen en schoonmaak (migratie 073; ontbreekt = uit).

tapja/nee

Tapsysteem / flowmeters (migratie 076): taps op de bon

resplatformja/nee

Reserveringsplatforms (migratie 078): TheFork, Formitable, Zenchef, Resengo, OpenTable

bija/nee

BI en data-export (migratie 079): Power BI, Looker Studio, Excel, datawarehouse

biKetenja/nee

BI voor ketens: het klantportaal mag de gegevens ophalen (migratie 080)

spaarpartnerja/nee

Spaarprogramma van een ander platform: Piggy of Joyn (migratie 081)

reviewsja/nee

Reviews vragen na het bezoek: Google en/of Trustpilot (migratie 081)

reviewbeheerja/nee

Reviewbeheer: Google en Trustpilot in de kassa lezen en beantwoorden (migratie 082)

opRekeningja/nee

Betalen op rekening voor zakelijke klanten, met een factuur (migratie 085; alleen met facturen aan)

opRekeningWebshopja/nee

Op rekening ook in de webshop: zakelijke klanten bestellen online met een eigen klantcode (migratie 108)

ayceWebshopja/nee

All-you-can-eat ook bij bestellen aan tafel via de QR-code van de webshop (migratie 108)

wachtlijstOnlineja/nee

Gasten zetten zichzelf op de wachtlijst via de webshop (migratie 108; alleen met de wachtlijst aan)

teLaatja/nee

Melding bij te lange doorlooptijd van afhalen en bezorgen (migratie 088; ontbreekt = uit)

mailingKoppelingja/nee

Koppeling met Mailchimp of Klaviyo met een gekozen lijst (migratie 089): toestemming voor e-mail vragen

webshopPushja/nee

Pushberichten met aanbiedingen in de webshop: een actie kan als pushbericht (migratie 095; tabblad Marketing)

muziekja/nee

Muziek bedienen vanaf de kassa: knop Muziek in de bovenbalk (migratie 091; ontbreekt = uit)

cameraja/nee

Camerabeelden in de kassa: knop Camera's (migratie 092; ontbreekt = uit; bekijken met het recht camera_bekijken)

tabletja/nee

Tablets als tweede scherm: muziek en camera's met één knop naar een gekoppelde tablet (migratie 094; ontbreekt = uit)

oproepja/nee

Oproepscherm "wordt bereid / klaar" voor afhalers (migratie 096): knop Oproepen in de kassa, ophaalnummer op de kassabon.

bezorgersja/nee

Eigen bezorgers (migratie 097): knop Ritten (rit maken, bezorgerspagina op het portaal, kasafdracht, track & trace).

ritplanningja/nee

Ritplanning (migratie 098; alleen met eigen bezorgers): ritten voorstellen per gebied, met afstand en reistijd.

bezorgersappja/nee

Bezorgersapp (migratie 099; alleen met eigen bezorgers): telefoons koppelen, zelf oppakken, live kaart met alle bezorgers.

Foutmeldingen

400

Mogelijke meldingen:

  • Alleen voor een zaak in België.
  • Kies of de zaak GKS-plichtig is: ja of nee.
  • Zonder zwarte doos alleen met de verklaring dat de zaak niet GKS-plichtig is.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/gks-plicht" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "plichtig": null,
  "verklaring": null
}'
GET/api/beheer/vestiging#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

125 velden tonen
VeldTypeUitleg
gksMaaltijdOmzetgetal

Alleen in Instellingen → Zaak (België): maaltijden ter plaatse (btw 12%) in de laatste 12 maanden, excl. btw, in centen.

vestigingsnummer *tekst of null
juridischeNaam *tekst of null
id *tekst
naam *tekst
land *tekst

Een van: "NL" "BE"

btwNummer *tekst of null
gksPlichtigja/nee of null

België (migratie 135): GKS-plichtig? null = nog niet gekozen (dan kan de zaak niet afrekenen), true = alleen afrekenen met een werkende zwarte doos (GKS 2.0), false = niet GKS-plichtig (verklaring van de beheerder).

gksVerklaringOptekst of null

Wanneer de keuze (bij "nee": de verklaring) is gedaan (ISO); elk jaar opnieuw te bevestigen.

fiscaalDemoja/nee

Demo- of testzaak: de nagebootste zwarte doos (FISCAL_MODE=mock) mag. Nooit bij een echte zaak.

adres *tekst of null
postcode *tekst of null
plaats *tekst of null
telefoon *tekst of null
emailtekst of null

E-mailadres van de zaak (niet op de bon; o.a. voor het beheerportaal van Pin Voordeel).

gksProductienummer *tekst of null
bonVoetteksttekst of null

Tekst onderaan de kassabon (meerdere regels mogen). null/undefined = STANDAARD_BONVOETTEKST, '' = geen tekst.

bonTaaltekst of null

Taal van de vaste teksten op de kassabon (migratie 052; alleen Latijns schrift, zie packages/printing/src/bontaal.ts). null/undefined = Nederlands. Los van de taal van de schermen.

contantAfrondenja/nee

Contante betalingen afronden op 5 cent (standaard uit).

fooiFooiInstelling

Fooiknoppen bij afrekenen (ontbreekt = STANDAARD_FOOI).

klokkentekst

In- en uitklokken van personeel (ontbreekt = 'uit').

Een van: "uit" "aan" "verplicht"

allergenenja/nee

Allergenen per product tonen en invullen (standaard uit).

happyhourja/nee

Happy hour gebruiken (standaard uit).

menusja/nee

Menu's gebruiken (standaard uit).

dagdelenja/nee

Assortiment per dagdeel en seizoen (migratie 084, standaard uit).

leverwijzeja/nee

Assortiment en prijzen per leverwijze: ter plaatse, afhalen, bezorgen (migratie 084, standaard uit).

cadeaubonBetalenja/nee

"Cadeaubon" als betaalwijze bij afrekenen (ontbreekt = aan, zoals altijd).

cadeaubonSaldoja/nee

Cadeaubonnen verkopen met code en saldo (standaard uit).

voorraadja/nee

Voorraad bijhouden (per product of via ingrediënten; standaard uit).

thematekst

Thema van de schermen (ontbreekt = donker, zoals altijd).

Een van: "donker" "licht"

afrekenknoptekst

Knop "Afrekenen" op het bestelscherm: groot onder de bestelde producten of klein onderin (migratie 054; ontbreekt = groot).

Een van: "groot" "klein"

bonMailenja/nee

Bon per e-mail bij afrekenen (standaard uit).

keukenGeluidja/nee

Piep op de kassa van de bediening als het keukenscherm iets klaar meldt (standaard uit).

zRapportMailtekst

E-mail van de beheerder: Z-rapport na dag afsluiten automatisch mailen (leeg = niet mailen).

fooiVerdelentekst

Fooi per medewerker op X/Z/periode-rapport (ontbreekt = uit).

Een van: "uit" "eigen" "uren" "gelijk"

klantenkaartja/nee

Klantenkaart / spaarpunten (migratie 038; standaard uit).

gastprofielja/nee

Gastprofiel (migratie 115; standaard uit, alleen met de klantenkaart): VIP, dieetwensen en voorkeuren van de klant.

spaarPuntenPerEurogetal

punten per besteedde euro (0 = alleen stempelkaarten)

spaarPuntenNodiggetal

zoveel punten = één beloning

spaarBeloninggetal

beloning in centen korting

marketingSmsja/nee

Sms-marketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met CM_TOKEN).

marketingEmailja/nee

E-mailmarketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met SMTP_HOST).

adresZoekenja/nee

Snel adres invoeren met postcode en huisnummer, Nederland (migratie 057; standaard uit).

importerenja/nee

Importeren uit een andere kassa: producten en klanten uit CSV/Excel (migratie 058; standaard uit).

exactja/nee

Koppeling met Exact Online: dagomzet boeken (migratie 059; standaard uit).

exactIngesteldja/nee

Alleen-lezen: staat de Exact-app in .env (EXACTCLIENTID en EXACTCLIENTSECRET)?

boekhoudpakkettekst

Koppeling met een ander boekhoudpakket: dagomzet zelf boeken in het gekozen pakket ('' = uit; migraties 062/063; standaard uit). Zie boekhoudcatalogus.ts.

Een van: "" "acumulus" "afas" "businesscentral" "horus" "moneybird" "odoo" "quickbooks" "sapb1" "silvasoft" "snelstart" "twinfield" "xero" "yuki" "zoho"

boekhoudpakketInEnvja/nee

Alleen-lezen: ligt het pakket vast in .env (BOEKHOUDPAKKET)? Dan geen keuze bij Instellingen → Boekhouding.

boekhoudpakkettenobject

Alleen-lezen: welke koppelingen kunnen verbinden (pakketten met inloggen alleen met hun app, in .env of bij Instellingen → Boekhouding).

boekhoudpakketten.acumulusja/nee
boekhoudpakketten.afasja/nee
boekhoudpakketten.businesscentralja/nee
boekhoudpakketten.horusja/nee
boekhoudpakketten.moneybirdja/nee
boekhoudpakketten.odooja/nee
boekhoudpakketten.quickbooksja/nee
boekhoudpakketten.sapb1ja/nee
boekhoudpakketten.silvasoftja/nee
boekhoudpakketten.snelstartja/nee
boekhoudpakketten.twinfieldja/nee
boekhoudpakketten.xeroja/nee
boekhoudpakketten.yukija/nee
boekhoudpakketten.zohoja/nee
reserveringenja/nee

Reserveringen (migratie 039; standaard uit).

reserveringVoorafgetal

zoveel minuten vóór de tijd staat de tafel als gereserveerd op de plattegrond

reserveringDuurMingetal

standaard duur van een reservering in minuten

wachtlijstja/nee

Wachtlijst voor walk-ins (migratie 051; standaard uit).

wachtlijstSmsTeksttekst

tekst van de sms "uw tafel is klaar" ({naam}, {zaak}, {personen}); leeg = standaardtekst

smsIngesteldja/nee

Alleen-lezen: is sms ingesteld in .env (CM_TOKEN, CM.com)?

updatemeldingja/nee

Updatemelding in de kassa (migratie 040; standaard uit).

snelleVerkoopja/nee

Knop "Snelle verkoop" (balie, zonder tafel) op het tafelscherm (migratie 041; ontbreekt = aan).

afhalenja/nee

Knop "Afhalen" op het tafelscherm (migratie 041; ontbreekt = aan).

bezorgenja/nee

Bezorgen en tijdvakken in de kassa (migratie 060): knop "Bezorgen" op het tafelscherm (ontbreekt = uit).

bezorgZoneslijst van BezorgZone

Bezorggebieden, de eerste die past geldt; leeg = overal, zonder kosten of minimum. Bedragen in centen.

bezorgTijdMingetal

Minuten tot bezorgd / klaar voor afhalen als het zo snel mogelijk moet.

afhaalTijdMingetal
tijdvakMingetal

Lengte van een tijdvak (minuten) en het maximum aantal bestellingen erin (afhalen + bezorgen; 0 = geen maximum).

perTijdvakgetal
webshopVolgtja/nee

Kassa en webshop gelijk (migratie 061; alles standaard uit = zoals voorheen). webshopVolgt: de webshop gebruikt de bezorggebieden, tijden, het tijdvak, het maximum, de openingstijden en gesloten dagen van de kassa en telt de bestellingen van de kassa mee (de kassa is leidend).

openTijdenOpenTijden

Eigen openingstijden voor afhalen en bezorgen (1 = maandag ... 7 = zondag); null = zoals voorheen.

geslotenDagenlijst van tekst

Gesloten datums (JJJJ-MM-DD) voor afhalen en bezorgen.

vooruitDagengetal

Zoveel dagen vooruit een tijd kiezen (0 = alleen vandaag).

drukteMingetal

Druk: zoveel minuten extra bij "zo snel mogelijk" (kassa en webshop).

bezorgBerichtenja/nee

De klant een sms/e-mail sturen bij aannemen, klaar en onderweg.

webshopPauzeja/nee

Webshop vanuit de kassa even dicht (pauze), met een tekst voor de gast.

webshopPauzeTeksttekst of null
reserverenOnlineReserverenOnline

Online reserveren in de webshop met de regels van de kassa; null = die van de webshop zelf.

cadeaubonOnlineja/nee

Cadeaubonnen verkopen in de webshop (online betaald).

kortingscodesja/nee

Kortingscodes aan de kassa en in de webshop.

mailIngesteldja/nee

Alleen-lezen: is er een mailserver ingesteld in .env (SMTP_HOST)?

favorietentekst

Favorieten/snelknoppen op het bestelscherm (ontbreekt = uit).

Een van: "uit" "auto" "zelf"

tafelStilMinutengetal

Tafeltijd: oranje rand na zoveel minuten zonder bestelling (0 = uit; ontbreekt = 20).

ayceAyceInstelling

All-you-can-eat (migratie 042; ontbreekt = uit).

klantschermja/nee

Klantscherm: scherm naar de klant toe met bestelling en bedrag (migratie 044; ontbreekt = uit).

klantschermWelkomtekst of null

Welkomsttekst op het klantscherm als er niemand afrekent (leeg = "Welkom").

productfotoKnoppenja/nee

Productfoto op de productknoppen van het bestelscherm (migratie 045; ontbreekt = uit).

productfotoKlantschermja/nee

Productfoto bij de regels op het klantscherm (migratie 045; ontbreekt = uit).

weegschaalWeegschaalInstelling

Weegschaal (migratie 047; ontbreekt of aan = false = uit): producten met een prijs per kilo, wegen op een Aclas OS6X en etiketten van een Aclas TS6X scannen.

leeftijdscheckja/nee

Leeftijdscheck alcohol (migratie 072; ontbreekt = uit): 18+ in de webshop en op werkbon/bezorgbon.

wegwerpja/nee

Wegwerptoeslag per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

statiegeldja/nee

Statiegeld per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

contantLimietja/nee

Waarschuwing bij contant € 3.000 of meer voor goederen (NL, migratie 072; ontbreekt = uit).

facturenja/nee

Facturen (UBL/Peppol) voor zakelijke klanten (migratie 072; ontbreekt = uit).

haccpja/nee

Digitale HACCP-registratie: temperaturen en schoonmaak (migratie 073; ontbreekt = uit).

tapja/nee

Tapsysteem / flowmeters (migratie 076): taps op de bon

resplatformja/nee

Reserveringsplatforms (migratie 078): TheFork, Formitable, Zenchef, Resengo, OpenTable

bija/nee

BI en data-export (migratie 079): Power BI, Looker Studio, Excel, datawarehouse

biKetenja/nee

BI voor ketens: het klantportaal mag de gegevens ophalen (migratie 080)

spaarpartnerja/nee

Spaarprogramma van een ander platform: Piggy of Joyn (migratie 081)

reviewsja/nee

Reviews vragen na het bezoek: Google en/of Trustpilot (migratie 081)

reviewbeheerja/nee

Reviewbeheer: Google en Trustpilot in de kassa lezen en beantwoorden (migratie 082)

opRekeningja/nee

Betalen op rekening voor zakelijke klanten, met een factuur (migratie 085; alleen met facturen aan)

opRekeningWebshopja/nee

Op rekening ook in de webshop: zakelijke klanten bestellen online met een eigen klantcode (migratie 108)

ayceWebshopja/nee

All-you-can-eat ook bij bestellen aan tafel via de QR-code van de webshop (migratie 108)

wachtlijstOnlineja/nee

Gasten zetten zichzelf op de wachtlijst via de webshop (migratie 108; alleen met de wachtlijst aan)

teLaatja/nee

Melding bij te lange doorlooptijd van afhalen en bezorgen (migratie 088; ontbreekt = uit)

mailingKoppelingja/nee

Koppeling met Mailchimp of Klaviyo met een gekozen lijst (migratie 089): toestemming voor e-mail vragen

webshopPushja/nee

Pushberichten met aanbiedingen in de webshop: een actie kan als pushbericht (migratie 095; tabblad Marketing)

muziekja/nee

Muziek bedienen vanaf de kassa: knop Muziek in de bovenbalk (migratie 091; ontbreekt = uit)

cameraja/nee

Camerabeelden in de kassa: knop Camera's (migratie 092; ontbreekt = uit; bekijken met het recht camera_bekijken)

tabletja/nee

Tablets als tweede scherm: muziek en camera's met één knop naar een gekoppelde tablet (migratie 094; ontbreekt = uit)

oproepja/nee

Oproepscherm "wordt bereid / klaar" voor afhalers (migratie 096): knop Oproepen in de kassa, ophaalnummer op de kassabon.

bezorgersja/nee

Eigen bezorgers (migratie 097): knop Ritten (rit maken, bezorgerspagina op het portaal, kasafdracht, track & trace).

ritplanningja/nee

Ritplanning (migratie 098; alleen met eigen bezorgers): ritten voorstellen per gebied, met afstand en reistijd.

bezorgersappja/nee

Bezorgersapp (migratie 099; alleen met eigen bezorgers): telefoons koppelen, zelf oppakken, live kaart met alle bezorgers.

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/vestiging" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/vestiging#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Type: VestigingInvoer

VeldTypeUitleg
naamtekst
vestigingsnummeralles

België, GKS 2.0 (migratie 119): vestigingseenheidsnummer (KBO, 10 cijfers) en juridische naam. Niet meegestuurd = niet wijzigen.

juridischeNaamalles
adrestekst of null
postcodetekst of null
plaatstekst of null
telefoontekst of null
emailtekst of null

E-mailadres van de zaak (niet op de bon). Niet meegestuurd = niet wijzigen.

btwNummertekst of null
bonVoetteksttekst of null

Tekst onderaan de bon; '' = geen tekst. Niet meegestuurd = niet wijzigen.

bonTaalalles

Taal van de kassabon (migratie 052): 'nl' (standaard) of een andere taal in Latijns schrift. Niet meegestuurd = niet wijzigen.

contantAfrondenja/nee

Contant afronden op 5 cent. Niet meegestuurd = niet wijzigen.

fooiobject

Fooiknoppen bij afrekenen. Niet meegestuurd = niet wijzigen.

fooi.aanalles
fooi.procentenalles
fooi.afrondenalles
fooi.betaalwijzenalles
klokkenalles

In- en uitklokken: 'uit' | 'aan' | 'verplicht'. Niet meegestuurd = niet wijzigen.

allergenenalles

Allergenen per product aan/uit. Niet meegestuurd = niet wijzigen.

happyhouralles

Happy hour en menu's aan/uit. Niet meegestuurd = niet wijzigen.

menusalles
dagdelenalles

Assortiment per dagdeel en per leverwijze (migratie 084). Niet meegestuurd = niet wijzigen.

leverwijzealles
cadeaubonBetalenalles

Cadeaubon als betaalwijze / cadeaubonnen met saldo (migratie 026). Niet meegestuurd = niet wijzigen.

cadeaubonSaldoalles
voorraadalles

Voorraad bijhouden aan/uit (migratie 027). Niet meegestuurd = niet wijzigen.

themaalles

Thema van de schermen: 'donker' | 'licht' (migratie 029). Niet meegestuurd = niet wijzigen.

afrekenknopalles

Knop "Afrekenen" op het bestelscherm: 'groot' | 'klein' (migratie 054). Niet meegestuurd = niet wijzigen.

bonMailenalles

Bon per e-mail aan/uit (migratie 031). Niet meegestuurd = niet wijzigen.

keukenGeluidalles

Piep op de kassa bij klaar van het keukenscherm (migratie 035). Niet meegestuurd = niet wijzigen.

zRapportMailalles

E-mail van de beheerder voor het Z-rapport (migratie 036); leeg = niet mailen. Niet meegestuurd = niet wijzigen.

fooiVerdelenalles

Fooi per medewerker: 'uit' | 'eigen' | 'uren' | 'gelijk' (migratie 037). Niet meegestuurd = niet wijzigen.

klantenkaartalles

Klantenkaart / spaarpunten (migratie 038). Niet meegestuurd = niet wijzigen.

spaarPuntenPerEuroalles
spaarPuntenNodigalles
spaarBeloningalles
marketingSmsalles

Sms-marketing / e-mailmarketing (migratie 056), elk apart; alleen met de klantenkaart. Niet meegestuurd = niet wijzigen.

marketingEmailalles
adresZoekenalles

Adres opzoeken met postcode en huisnummer (migratie 057). Niet meegestuurd = niet wijzigen.

importerenalles

Importeren uit een andere kassa (migratie 058). Niet meegestuurd = niet wijzigen.

leeftijdscheckalles

Wettelijk (migratie 072): leeftijdscheck alcohol, wegwerptoeslag, statiegeld en de waarschuwing bij contant € 3.000 of meer (die drie alleen in Nederland), facturen (UBL/Peppol). Niet meegestuurd = niet wijzigen.

wegwerpalles
statiegeldalles
contantLimietalles
facturenalles
haccpalles

Digitale HACCP-registratie (migratie 073). Niet meegestuurd = niet wijzigen.

tapalles
resplatformalles

Reserveringsplatforms (migratie 078). Niet meegestuurd = niet wijzigen.

bialles

BI en data-export (migratie 079). Niet meegestuurd = niet wijzigen.

biKetenalles

BI voor ketens via het klantportaal (migratie 080). Niet meegestuurd = niet wijzigen.

spaarpartneralles

Spaarprogramma van een ander platform en reviews (migratie 081). Niet meegestuurd = niet wijzigen.

reviewsalles
reviewbeheeralles

Reviewbeheer: Google en Trustpilot lezen en beantwoorden (migratie 082). Niet meegestuurd = niet wijzigen.

opRekeningalles

Betalen op rekening voor zakelijke klanten (migratie 085; alleen met facturen aan). Niet meegestuurd = niet wijzigen.

opRekeningWebshopalles
ayceWebshopalles
wachtlijstOnlinealles
exactalles

Koppeling met Exact Online (migratie 059); aanzetten alleen met de app in .env. Niet meegestuurd = niet wijzigen.

boekhoudpakketalles

Koppeling met AFAS, SnelStart, Twinfield of Yuki (migratie 062): '' = uit. Twinfield alleen met de app in .env. Niet meegestuurd = niet wijzigen.

reserveringenalles

Reserveringen (migratie 039). Niet meegestuurd = niet wijzigen.

reserveringVoorafalles
reserveringDuurMinalles
wachtlijstalles

Wachtlijst voor walk-ins (migratie 051). Niet meegestuurd = niet wijzigen.

wachtlijstSmsTekstalles

tekst van de sms "uw tafel is klaar"; leeg = standaardtekst

updatemeldingalles

Updatemelding (migratie 040). Niet meegestuurd = niet wijzigen.

snelleVerkoopalles

Knoppen Snelle verkoop en Afhalen op het tafelscherm (migratie 041). Niet meegestuurd = niet wijzigen.

afhalenalles
favorietenalles

Favorieten: 'uit' | 'auto' | 'zelf' (migratie 032). Niet meegestuurd = niet wijzigen.

tafelStilMinutenalles

Tafeltijd: oranje rand na zoveel minuten, 0 = uit (migratie 034). Niet meegestuurd = niet wijzigen.

aycealles

All-you-can-eat (migraties 042/043): { aan, arrangementen: [{ id?, naam, prijsVolwassen, prijsKind, btwCode, groepen, artikelen, minuten, rondeMax, rondeMinuten, toeslag }] }. Niet meegestuurd = niet wijzigen.

klantschermalles

Klantscherm aan/uit en welkomsttekst (migratie 044). Niet meegestuurd = niet wijzigen.

klantschermWelkomalles
productfotoKnoppenalles

Productfoto op de knoppen van het bestelscherm / op het klantscherm (migratie 045). Niet meegestuurd = niet wijzigen.

productfotoKlantschermalles
bezorgenalles

Bezorgen en tijdvakken in de kassa (migratie 060): knop "Bezorgen" aan/uit, bezorggebieden [{ naam, soort: 'postcode' | 'straal', postcodes, straalKm, minimum, kosten, gratisVanaf, extraMin, uit }] (bedragen in centen), bezorg- en afhaaltijd, tijdvak en maximum per tijdvak (0 = geen). Niet meegestuurd = niet wijzigen.

bezorgZonesalles
bezorgTijdMinalles
afhaalTijdMinalles
tijdvakMinalles
perTijdvakalles
webshopVolgtalles

Kassa en webshop gelijk (migratie 061). Niet meegestuurd = niet wijzigen. webshopVolgt, openTijden ({ afhalen, bezorgen } per weekdag of null), geslotenDagen, vooruitDagen (0-14), drukteMin (0-240), bezorgBerichten; webshopPauze(+Tekst); reserverenOnline ({ maxPersonen, vooruitDagen, slotMin, minVoorafMin, tijden } of null); cadeaubonOnline; kortingscodes.

openTijdenalles
geslotenDagenalles
vooruitDagenalles
drukteMinalles
bezorgBerichtenalles
webshopPauzealles
webshopPauzeTekstalles
reserverenOnlinealles
cadeaubonOnlinealles
kortingscodesalles

Antwoord 200

125 velden tonen
VeldTypeUitleg
gksMaaltijdOmzetgetal

Alleen in Instellingen → Zaak (België): maaltijden ter plaatse (btw 12%) in de laatste 12 maanden, excl. btw, in centen.

vestigingsnummer *tekst of null
juridischeNaam *tekst of null
id *tekst
naam *tekst
land *tekst

Een van: "NL" "BE"

btwNummer *tekst of null
gksPlichtigja/nee of null

België (migratie 135): GKS-plichtig? null = nog niet gekozen (dan kan de zaak niet afrekenen), true = alleen afrekenen met een werkende zwarte doos (GKS 2.0), false = niet GKS-plichtig (verklaring van de beheerder).

gksVerklaringOptekst of null

Wanneer de keuze (bij "nee": de verklaring) is gedaan (ISO); elk jaar opnieuw te bevestigen.

fiscaalDemoja/nee

Demo- of testzaak: de nagebootste zwarte doos (FISCAL_MODE=mock) mag. Nooit bij een echte zaak.

adres *tekst of null
postcode *tekst of null
plaats *tekst of null
telefoon *tekst of null
emailtekst of null

E-mailadres van de zaak (niet op de bon; o.a. voor het beheerportaal van Pin Voordeel).

gksProductienummer *tekst of null
bonVoetteksttekst of null

Tekst onderaan de kassabon (meerdere regels mogen). null/undefined = STANDAARD_BONVOETTEKST, '' = geen tekst.

bonTaaltekst of null

Taal van de vaste teksten op de kassabon (migratie 052; alleen Latijns schrift, zie packages/printing/src/bontaal.ts). null/undefined = Nederlands. Los van de taal van de schermen.

contantAfrondenja/nee

Contante betalingen afronden op 5 cent (standaard uit).

fooiFooiInstelling

Fooiknoppen bij afrekenen (ontbreekt = STANDAARD_FOOI).

klokkentekst

In- en uitklokken van personeel (ontbreekt = 'uit').

Een van: "uit" "aan" "verplicht"

allergenenja/nee

Allergenen per product tonen en invullen (standaard uit).

happyhourja/nee

Happy hour gebruiken (standaard uit).

menusja/nee

Menu's gebruiken (standaard uit).

dagdelenja/nee

Assortiment per dagdeel en seizoen (migratie 084, standaard uit).

leverwijzeja/nee

Assortiment en prijzen per leverwijze: ter plaatse, afhalen, bezorgen (migratie 084, standaard uit).

cadeaubonBetalenja/nee

"Cadeaubon" als betaalwijze bij afrekenen (ontbreekt = aan, zoals altijd).

cadeaubonSaldoja/nee

Cadeaubonnen verkopen met code en saldo (standaard uit).

voorraadja/nee

Voorraad bijhouden (per product of via ingrediënten; standaard uit).

thematekst

Thema van de schermen (ontbreekt = donker, zoals altijd).

Een van: "donker" "licht"

afrekenknoptekst

Knop "Afrekenen" op het bestelscherm: groot onder de bestelde producten of klein onderin (migratie 054; ontbreekt = groot).

Een van: "groot" "klein"

bonMailenja/nee

Bon per e-mail bij afrekenen (standaard uit).

keukenGeluidja/nee

Piep op de kassa van de bediening als het keukenscherm iets klaar meldt (standaard uit).

zRapportMailtekst

E-mail van de beheerder: Z-rapport na dag afsluiten automatisch mailen (leeg = niet mailen).

fooiVerdelentekst

Fooi per medewerker op X/Z/periode-rapport (ontbreekt = uit).

Een van: "uit" "eigen" "uren" "gelijk"

klantenkaartja/nee

Klantenkaart / spaarpunten (migratie 038; standaard uit).

gastprofielja/nee

Gastprofiel (migratie 115; standaard uit, alleen met de klantenkaart): VIP, dieetwensen en voorkeuren van de klant.

spaarPuntenPerEurogetal

punten per besteedde euro (0 = alleen stempelkaarten)

spaarPuntenNodiggetal

zoveel punten = één beloning

spaarBeloninggetal

beloning in centen korting

marketingSmsja/nee

Sms-marketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met CM_TOKEN).

marketingEmailja/nee

E-mailmarketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met SMTP_HOST).

adresZoekenja/nee

Snel adres invoeren met postcode en huisnummer, Nederland (migratie 057; standaard uit).

importerenja/nee

Importeren uit een andere kassa: producten en klanten uit CSV/Excel (migratie 058; standaard uit).

exactja/nee

Koppeling met Exact Online: dagomzet boeken (migratie 059; standaard uit).

exactIngesteldja/nee

Alleen-lezen: staat de Exact-app in .env (EXACTCLIENTID en EXACTCLIENTSECRET)?

boekhoudpakkettekst

Koppeling met een ander boekhoudpakket: dagomzet zelf boeken in het gekozen pakket ('' = uit; migraties 062/063; standaard uit). Zie boekhoudcatalogus.ts.

Een van: "" "acumulus" "afas" "businesscentral" "horus" "moneybird" "odoo" "quickbooks" "sapb1" "silvasoft" "snelstart" "twinfield" "xero" "yuki" "zoho"

boekhoudpakketInEnvja/nee

Alleen-lezen: ligt het pakket vast in .env (BOEKHOUDPAKKET)? Dan geen keuze bij Instellingen → Boekhouding.

boekhoudpakkettenobject

Alleen-lezen: welke koppelingen kunnen verbinden (pakketten met inloggen alleen met hun app, in .env of bij Instellingen → Boekhouding).

boekhoudpakketten.acumulusja/nee
boekhoudpakketten.afasja/nee
boekhoudpakketten.businesscentralja/nee
boekhoudpakketten.horusja/nee
boekhoudpakketten.moneybirdja/nee
boekhoudpakketten.odooja/nee
boekhoudpakketten.quickbooksja/nee
boekhoudpakketten.sapb1ja/nee
boekhoudpakketten.silvasoftja/nee
boekhoudpakketten.snelstartja/nee
boekhoudpakketten.twinfieldja/nee
boekhoudpakketten.xeroja/nee
boekhoudpakketten.yukija/nee
boekhoudpakketten.zohoja/nee
reserveringenja/nee

Reserveringen (migratie 039; standaard uit).

reserveringVoorafgetal

zoveel minuten vóór de tijd staat de tafel als gereserveerd op de plattegrond

reserveringDuurMingetal

standaard duur van een reservering in minuten

wachtlijstja/nee

Wachtlijst voor walk-ins (migratie 051; standaard uit).

wachtlijstSmsTeksttekst

tekst van de sms "uw tafel is klaar" ({naam}, {zaak}, {personen}); leeg = standaardtekst

smsIngesteldja/nee

Alleen-lezen: is sms ingesteld in .env (CM_TOKEN, CM.com)?

updatemeldingja/nee

Updatemelding in de kassa (migratie 040; standaard uit).

snelleVerkoopja/nee

Knop "Snelle verkoop" (balie, zonder tafel) op het tafelscherm (migratie 041; ontbreekt = aan).

afhalenja/nee

Knop "Afhalen" op het tafelscherm (migratie 041; ontbreekt = aan).

bezorgenja/nee

Bezorgen en tijdvakken in de kassa (migratie 060): knop "Bezorgen" op het tafelscherm (ontbreekt = uit).

bezorgZoneslijst van BezorgZone

Bezorggebieden, de eerste die past geldt; leeg = overal, zonder kosten of minimum. Bedragen in centen.

bezorgTijdMingetal

Minuten tot bezorgd / klaar voor afhalen als het zo snel mogelijk moet.

afhaalTijdMingetal
tijdvakMingetal

Lengte van een tijdvak (minuten) en het maximum aantal bestellingen erin (afhalen + bezorgen; 0 = geen maximum).

perTijdvakgetal
webshopVolgtja/nee

Kassa en webshop gelijk (migratie 061; alles standaard uit = zoals voorheen). webshopVolgt: de webshop gebruikt de bezorggebieden, tijden, het tijdvak, het maximum, de openingstijden en gesloten dagen van de kassa en telt de bestellingen van de kassa mee (de kassa is leidend).

openTijdenOpenTijden

Eigen openingstijden voor afhalen en bezorgen (1 = maandag ... 7 = zondag); null = zoals voorheen.

geslotenDagenlijst van tekst

Gesloten datums (JJJJ-MM-DD) voor afhalen en bezorgen.

vooruitDagengetal

Zoveel dagen vooruit een tijd kiezen (0 = alleen vandaag).

drukteMingetal

Druk: zoveel minuten extra bij "zo snel mogelijk" (kassa en webshop).

bezorgBerichtenja/nee

De klant een sms/e-mail sturen bij aannemen, klaar en onderweg.

webshopPauzeja/nee

Webshop vanuit de kassa even dicht (pauze), met een tekst voor de gast.

webshopPauzeTeksttekst of null
reserverenOnlineReserverenOnline

Online reserveren in de webshop met de regels van de kassa; null = die van de webshop zelf.

cadeaubonOnlineja/nee

Cadeaubonnen verkopen in de webshop (online betaald).

kortingscodesja/nee

Kortingscodes aan de kassa en in de webshop.

mailIngesteldja/nee

Alleen-lezen: is er een mailserver ingesteld in .env (SMTP_HOST)?

favorietentekst

Favorieten/snelknoppen op het bestelscherm (ontbreekt = uit).

Een van: "uit" "auto" "zelf"

tafelStilMinutengetal

Tafeltijd: oranje rand na zoveel minuten zonder bestelling (0 = uit; ontbreekt = 20).

ayceAyceInstelling

All-you-can-eat (migratie 042; ontbreekt = uit).

klantschermja/nee

Klantscherm: scherm naar de klant toe met bestelling en bedrag (migratie 044; ontbreekt = uit).

klantschermWelkomtekst of null

Welkomsttekst op het klantscherm als er niemand afrekent (leeg = "Welkom").

productfotoKnoppenja/nee

Productfoto op de productknoppen van het bestelscherm (migratie 045; ontbreekt = uit).

productfotoKlantschermja/nee

Productfoto bij de regels op het klantscherm (migratie 045; ontbreekt = uit).

weegschaalWeegschaalInstelling

Weegschaal (migratie 047; ontbreekt of aan = false = uit): producten met een prijs per kilo, wegen op een Aclas OS6X en etiketten van een Aclas TS6X scannen.

leeftijdscheckja/nee

Leeftijdscheck alcohol (migratie 072; ontbreekt = uit): 18+ in de webshop en op werkbon/bezorgbon.

wegwerpja/nee

Wegwerptoeslag per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

statiegeldja/nee

Statiegeld per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

contantLimietja/nee

Waarschuwing bij contant € 3.000 of meer voor goederen (NL, migratie 072; ontbreekt = uit).

facturenja/nee

Facturen (UBL/Peppol) voor zakelijke klanten (migratie 072; ontbreekt = uit).

haccpja/nee

Digitale HACCP-registratie: temperaturen en schoonmaak (migratie 073; ontbreekt = uit).

tapja/nee

Tapsysteem / flowmeters (migratie 076): taps op de bon

resplatformja/nee

Reserveringsplatforms (migratie 078): TheFork, Formitable, Zenchef, Resengo, OpenTable

bija/nee

BI en data-export (migratie 079): Power BI, Looker Studio, Excel, datawarehouse

biKetenja/nee

BI voor ketens: het klantportaal mag de gegevens ophalen (migratie 080)

spaarpartnerja/nee

Spaarprogramma van een ander platform: Piggy of Joyn (migratie 081)

reviewsja/nee

Reviews vragen na het bezoek: Google en/of Trustpilot (migratie 081)

reviewbeheerja/nee

Reviewbeheer: Google en Trustpilot in de kassa lezen en beantwoorden (migratie 082)

opRekeningja/nee

Betalen op rekening voor zakelijke klanten, met een factuur (migratie 085; alleen met facturen aan)

opRekeningWebshopja/nee

Op rekening ook in de webshop: zakelijke klanten bestellen online met een eigen klantcode (migratie 108)

ayceWebshopja/nee

All-you-can-eat ook bij bestellen aan tafel via de QR-code van de webshop (migratie 108)

wachtlijstOnlineja/nee

Gasten zetten zichzelf op de wachtlijst via de webshop (migratie 108; alleen met de wachtlijst aan)

teLaatja/nee

Melding bij te lange doorlooptijd van afhalen en bezorgen (migratie 088; ontbreekt = uit)

mailingKoppelingja/nee

Koppeling met Mailchimp of Klaviyo met een gekozen lijst (migratie 089): toestemming voor e-mail vragen

webshopPushja/nee

Pushberichten met aanbiedingen in de webshop: een actie kan als pushbericht (migratie 095; tabblad Marketing)

muziekja/nee

Muziek bedienen vanaf de kassa: knop Muziek in de bovenbalk (migratie 091; ontbreekt = uit)

cameraja/nee

Camerabeelden in de kassa: knop Camera's (migratie 092; ontbreekt = uit; bekijken met het recht camera_bekijken)

tabletja/nee

Tablets als tweede scherm: muziek en camera's met één knop naar een gekoppelde tablet (migratie 094; ontbreekt = uit)

oproepja/nee

Oproepscherm "wordt bereid / klaar" voor afhalers (migratie 096): knop Oproepen in de kassa, ophaalnummer op de kassabon.

bezorgersja/nee

Eigen bezorgers (migratie 097): knop Ritten (rit maken, bezorgerspagina op het portaal, kasafdracht, track & trace).

ritplanningja/nee

Ritplanning (migratie 098; alleen met eigen bezorgers): ritten voorstellen per gebied, met afstand en reistijd.

bezorgersappja/nee

Bezorgersapp (migratie 099; alleen met eigen bezorgers): telefoons koppelen, zelf oppakken, live kaart met alle bezorgers.

Foutmeldingen

400

Mogelijke meldingen:

  • De naam van de zaak mag niet leeg zijn.
  • Tafeltijd: vul 0 (uit) tot 240 minuten in.
  • Punten per euro: 0 tot 100.
  • Punten voor een beloning: 1 tot 100.000.
  • Beloning: € 0,01 tot € 1.000.
  • Reserveringen: minuten vooraf 0 tot 720.
  • Reserveringen: duur 15 tot 720 minuten.
  • Sms-tekst wachtlijst: hooguit 300 tekens.
  • Z-rapport mailen: hooguit 3 e-mailadressen.
  • Z-rapport mailen: "…" is geen geldig e-mailadres.
  • Welkomsttekst klantscherm: hooguit … tekens.
  • "…" is geen geldig e-mailadres.
  • Vestigingseenheidsnummer: 10 cijfers, beginnend met 2 tot 8 (zie de KBO).
  • Wachtlijst: kan alleen aan als de sms is ingesteld (CM_TOKEN in .env).
  • Marketing: zet eerst de klantenkaart aan (daar komen de klanten vandaan).
  • Sms-marketing: kan alleen aan als de sms is ingesteld (CM_TOKEN in .env).
  • Exact Online: kan alleen aan als de app is ingesteld (Instellingen → Boekhouding, of EXACTCLIENTID en EXACTCLIENTSECRET in .env).
  • Boekhoudpakket: ligt vast in de .env van de kassa (BOEKHOUDPAKKET).
  • Boekhoudpakket: kies een pakket uit de lijst, of uit.
  • … werkt niet in ….
  • E-mailmarketing: kan alleen aan als de mailserver is ingesteld (SMTP_HOST in .env).
  • Ongeldig btw-nummer. Voorbeelden: NL123456789B01 of BE0123456789.
  • In België is het btw-nummer verplicht op het kasticket.
  • De tekst onderaan de bon is te lang (maximaal … regels en … tekens).
  • Deze taal kan niet op de kassabon (een bonprinter kent alleen Latijns schrift).
  • In- en uitklokken: kies uit, aan of verplicht.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Mogelijke meldingen:

  • De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 043).
  • De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 052).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/vestiging" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "vestigingsnummer": null,
  "juridischeNaam": null,
  "adres": "tekst"
}'

Personeel

Medewerkers, rollen en pincodes (alleen beheerder).

GET/api/beheer/personeel#

Alle medewerkers, actieve eerst

Toegang

Alleen voor de rol beheerder.

Antwoord 200

VeldTypeUitleg
land *tekst

Een van: "NL" "BE"

medewerkers *lijst van object
medewerkers[].id *tekst
medewerkers[].naam *tekst
medewerkers[].rol *tekst

Een van: "bediening" "manager" "beheerder"

medewerkers[].actief *ja/nee
medewerkers[].rijksregisternummerIngesteld *ja/nee
medewerkers[].taal *tekst of null
medewerkers[].pasIngesteld *ja/nee
pasAan *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Alleen een beheerder mag het personeel beheren.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/personeel" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/personeel#

Toegang: Alleen voor de rol beheerder.

Toegang

Alleen voor de rol beheerder.

Body (JSON)

Type: MedewerkerInvoer

VeldTypeUitleg
naamtekst
roltekst
pincodetekst

Alleen meesturen om te wijzigen.

actiefja/nee
rijksregisternummertekst of null

België: rijksregisternummer voor de personeelsregistratie (optioneel).

taaltekst of null

Taal van de schermen voor deze medewerker (migratie 048); null = taal van het apparaat.

pastekst of null

Pasje (migratie 114): het nummer zoals de lezer het gaf om te koppelen, null = weghalen. Niet meesturen = niet wijzigen.

Antwoord 200

VeldTypeUitleg
id *tekst
naam *tekst
rol *tekst

Een van: "bediening" "manager" "beheerder"

actief *ja/nee
rijksregisternummerIngesteld *ja/nee
taal *tekst of null
pasIngesteld *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Vul een naam in.
  • Onbekende taal.
  • Kies een rol.
  • De pincode moet 4 tot 8 cijfers zijn.
  • Een rijksregisternummer heeft 11 cijfers.
  • Dit rijksregisternummer klopt niet; controleer de cijfers.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Alleen een beheerder mag het personeel beheren.

409

Deze pincode wordt al door een andere medewerker gebruikt. Kies een andere.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/personeel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "rol": "tekst",
  "pincode": "1234",
  "actief": true
}'
POST/api/beheer/personeel/{id}#

Toegang: Alleen voor de rol beheerder.

Toegang

Alleen voor de rol beheerder.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Type: MedewerkerInvoer

VeldTypeUitleg
naamtekst
roltekst
pincodetekst

Alleen meesturen om te wijzigen.

actiefja/nee
rijksregisternummertekst of null

België: rijksregisternummer voor de personeelsregistratie (optioneel).

taaltekst of null

Taal van de schermen voor deze medewerker (migratie 048); null = taal van het apparaat.

pastekst of null

Pasje (migratie 114): het nummer zoals de lezer het gaf om te koppelen, null = weghalen. Niet meesturen = niet wijzigen.

Antwoord 200

VeldTypeUitleg
id *tekst
naam *tekst
rol *tekst

Een van: "bediening" "manager" "beheerder"

actief *ja/nee
rijksregisternummerIngesteld *ja/nee
taal *tekst of null
pasIngesteld *ja/nee

Foutmeldingen

400

Mogelijke meldingen:

  • Onbekende taal.
  • Vul een naam in.
  • Kies een rol.
  • De pincode moet 4 tot 8 cijfers zijn.
  • Een rijksregisternummer heeft 11 cijfers.
  • Dit rijksregisternummer klopt niet; controleer de cijfers.
  • Dit pasje kan de kassa niet lezen. Houd het nog eens tegen de lezer.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Alleen een beheerder mag het personeel beheren.

404

Medewerker niet gevonden.

409

Mogelijke meldingen:

  • Dit pasje is al gekoppeld aan …. Haal het daar eerst weg.
  • Dit is de laatste actieve beheerder. Maak eerst iemand anders beheerder.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/personeel/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": "Tafel 4",
  "rol": "tekst",
  "pincode": "1234",
  "actief": true
}'

Rechten

Rechten per rol.

GET/api/beheer/rechten#

Toegang: Alleen voor de rol beheerder.

Toegang

Alleen voor de rol beheerder.

Antwoord 200

VeldTypeUitleg
rechten *lijst van object
rechten[].code *tekst
rechten[].naam *tekst
rechten[].groep *tekst
rechten[].standaard *object
rechten[].standaard.bediening *ja/nee
rechten[].standaard.manager *ja/nee
rechten[].bediening *ja/nee
rechten[].manager *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Alleen een beheerder mag de rechten wijzigen.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/rechten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/rechten#

Eén of meer rechten aan/uit zetten

Gelijk aan de standaard = rij weg.

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
wijzigingenlijst van object
wijzigingen[].roltekst
wijzigingen[].rechttekst
wijzigingen[].aanja/nee

Antwoord 200

VeldTypeUitleg
rechten *lijst van object
rechten[].code *tekst
rechten[].naam *tekst
rechten[].groep *tekst
rechten[].standaard *object
rechten[].standaard.bediening *ja/nee
rechten[].standaard.manager *ja/nee
rechten[].bediening *ja/nee
rechten[].manager *ja/nee

Foutmeldingen

400

Ongeldige wijziging van rechten.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Alleen een beheerder mag de rechten wijzigen.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/rechten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "wijzigingen": [
    {
      "rol": "tekst",
      "recht": "tekst",
      "aan": true
    }
  ]
}'
POST/api/beheer/rechten/standaard#

Alles terug naar de standaard

Toegang

Alleen voor de rol beheerder.

Antwoord 200

VeldTypeUitleg
rechten *lijst van object
rechten[].code *tekst
rechten[].naam *tekst
rechten[].groep *tekst
rechten[].standaard *object
rechten[].standaard.bediening *ja/nee
rechten[].standaard.manager *ja/nee
rechten[].bediening *ja/nee
rechten[].manager *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Alleen een beheerder mag de rechten wijzigen.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/rechten/standaard" \
  -H "Authorization: Bearer <token>"
GET/api/rechten#

Rechten van de aangemelde medewerker (welke knoppen de kassa toont)

Antwoord 200

VeldTypeUitleg
rechten *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/rechten" \
  -H "Authorization: Bearer <token>"

Configuratie

Configuratie exporteren en importeren (overzetten naar een tweede zaak).

GET/api/beheer/configuratie/export#

Exporteren: ?onderdelen=producten,plattegronden,instellingen

Toegang

Alleen voor de rol beheerder.

Parameters

NaamWaarTypeUitleg
onderdelenzoekterm (?…)tekst

Antwoord 200

Rij2

Foutmeldingen

400

Kies wat je wilt exporteren: producten, plattegronden en/of instellingen.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/configuratie/export" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/configuratie/import#

Importeren: { pincode, onderdelen: [...], bestand: {...} }

Vervangt de gekozen onderdelen.

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
pincodealles
onderdelenalles
bestandalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
onderdelen *lijst van tekst
telling *ImportTelling
backup *tekst

Foutmeldingen

400

Mogelijke meldingen:

  • Voer je eigen pincode in om het importeren te bevestigen.
  • Kies wat je uit dit bestand wilt importeren.
  • Het bestand klopt niet; er is niets geïmporteerd. (…)
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Deze pincode klopt niet. Voer je eigen pincode in (van de aangemelde beheerder).

409

Mogelijke meldingen:

  • Er staan nog … open bestelling(en). Reken die eerst af of sluit ze, en importeer daarna.
  • Er loopt al een import. Wacht even.
  • Er is niets geïmporteerd: de back-up vooraf lukte niet. …
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/configuratie/import" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "pincode": null,
  "onderdelen": null,
  "bestand": null
}'

Back-ups

Back-ups maken, downloaden en terugzetten (alleen beheerder).

GET/api/beheer/backups#

Overzicht: alle back-ups (nieuwste eerst) en wie een handmatige back-up maakte

Toegang

Alleen voor de rol beheerder.

Antwoord 200

16 velden tonen
VeldTypeUitleg
map *tekst
bewaar *getal
bezig *ja/nee
backups *lijst van object
backups[].inPortaalja/nee
backups[].door *tekst of null
backups[].naam *tekst
backups[].gemaaktOp *tekst
backups[].grootteKb *getal
portaal *object
portaal.aan *ja/nee
portaal.android *ja/nee
portaal.laatsteVerzonden *object of null
portaal.laatsteVerzonden.naam *tekst
portaal.laatsteVerzonden.op *tekst
portaal.fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/backups" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/backups#

Nu een back-up maken

Duurt meestal enkele seconden.

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
bevestigalles

Antwoord 200

object

Foutmeldingen

400

Bevestig dat je nu een back-up wilt maken.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/backups" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "bevestig": null
}'
POST/api/beheer/backups/herstel#

Een back-up terugzetten: { bestand, pincode }

Alleen de beheerder, met opnieuw de eigen pincode. Niet in België (fiscale module/zwarte doos). Vooraf automatisch een veiligheidsback-up; daarna wordt iedereen afgemeld.

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
bestandalles
pincodealles

Antwoord 200

object

Foutmeldingen

400

Mogelijke meldingen:

  • Voer je eigen pincode in om het terugzetten te bevestigen.
  • Kies een back-up uit de lijst.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Deze pincode klopt niet. Voer je eigen pincode in (van de aangemelde beheerder).

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/backups/herstel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "bestand": null,
  "pincode": null
}'
GET/api/beheer/backups/portaal#

Back-ups in het beheerportaal (alleen als back-ups daarheen gaan; standaard Android)

Toegang

Alleen voor de rol beheerder.

Antwoord 200

VeldTypeUitleg
backups *lijst van PortaalBackup

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Back-ups gaan niet naar het beheerportaal op deze kassa.

502

De betaalterminal of een externe dienst gaf een fout.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/backups/portaal" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/backups/portaal/ophalen#

Een back-up uit het portaal ophalen naar dit apparaat: { naam }

Daarna staat hij in de lijst en zet de beheerder hem terug zoals elke back-up (met pincode).

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
naamalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee
bestand *BackupBestand

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Mogelijke meldingen:

  • Back-ups gaan niet naar het beheerportaal op deze kassa.
  • Er loopt al een back-up of herstel. Wacht even.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/backups/portaal/ophalen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "naam": null
}'
POST/api/beheer/backups/portaal/versturen#

Nu versturen wat nog niet in het portaal staat (anders gebeurt dat elk uur vanzelf)

Toegang

Alleen voor de rol beheerder.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Back-ups gaan niet naar het beheerportaal op deze kassa.

502

Versturen mislukt: …

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/backups/portaal/versturen" \
  -H "Authorization: Bearer <token>"

Database

Externe of ingebouwde database, omschakelen (alleen beheerder).

GET/api/beheer/database#

Welke database nu, en wat er is ingesteld

Toegang

Alleen voor de rol beheerder.

Antwoord 200

Type: DatabaseOverzicht

30 velden tonen
VeldTypeUitleg
modus *tekst

Een van: "extern" "intern" "mysql"

merk *tekst

Merk en versie van de database die nu draait (PGlite, PostgreSQL, MySQL of MariaDB).

Een van: "PGlite" "PostgreSQL" "MySQL" "MariaDB"

versie *tekst of null
vast *ja/nee

De keuze staat vast in .env (DATABASE_MODUS): niet om te schakelen vanuit de kassa.

bron *tekst

Een van: "bestand" "env" "standaard"

extern *object

url: adres zonder wachtwoord; ingesteld: er is een adres; uitEnv: het adres staat in .env (DATABASE_URL) en gaat voor, dus geen invulvelden; wachtwoord: er is een wachtwoord bewaard (leeg laten in het scherm = dat wachtwoord houden).

extern.url *tekst
extern.ingesteld *ja/nee
extern.uitEnv *ja/nee
extern.wachtwoord *ja/nee
intern *object
intern.map *tekst
intern.bestaat *ja/nee
intern.beschikbaar *ja/nee
mysql *object

MySQL/MariaDB, precies zoals extern: MYSQL_URL in .env gaat voor (uitEnv, geen invulvelden), anders het adres uit dit scherm (data/database.json). map = de werkkopie waarin de kassa rekent; velden = het adres in losse velden om het scherm voor te vullen (zonder wachtwoord).

mysql.url *tekst
mysql.ingesteld *ja/nee
mysql.uitEnv *ja/nee
mysql.wachtwoord *ja/nee
mysql.map *tekst
mysql.beschikbaar *ja/nee
mysql.velden *object of null
mysql.velden.server *tekst
mysql.velden.poort *tekst
mysql.velden.database *tekst
mysql.velden.gebruiker *tekst
mysql.velden.wachtwoordIngesteld *ja/nee
tabellen *getal
rijen *getal
bezig *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/database" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/database/omschakelen#

Omschakelen: { doel: 'intern' | 'extern' | 'mysql', url?, mysql?, pincode }

Alleen de beheerder, met opnieuw de eigen pincode. Alle gegevens gaan mee (alle richtingen).

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
doelalles
urlalles
mysqlalles
pincodealles

Antwoord 200

object

Foutmeldingen

400

Mogelijke meldingen:

  • Kies mysql (MySQL/MariaDB), intern (ingebouwd, PGlite) of extern (PostgreSQL).
  • Voer je eigen pincode in om het omschakelen te bevestigen.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Deze pincode klopt niet. Voer je eigen pincode in (van de aangemelde beheerder).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/database/omschakelen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "doel": null,
  "url": null,
  "mysql": null,
  "pincode": null
}'
POST/api/beheer/database/test#

Verbinding testen (zonder iets te veranderen): { url?, soort?, mysql?

}. soort 'mysql' = MySQL/MariaDB (adres als url of in losse velden: mysql = { server, poort, database, gebruiker, wachtwoord }), anders (of 'extern') PostgreSQL.

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
urlalles
soortalles
mysqlalles

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/database/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "url": null,
  "soort": null,
  "mysql": null
}'
POST/api/intern/backup#

Antwoord 200

VeldTypeUitleg
ok *true
bestand *BackupBestand

Foutmeldingen

401

Mogelijke meldingen:

  • Alleen voor de kassa-pc zelf.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/intern/backup" \
  -H "Authorization: Bearer <token>"
POST/api/intern/stop#

Netjes stoppen (scripts/kassa-service.mjs, vóór een update): de database eerst sluiten

Netjes stoppen (scripts/kassa-service.mjs, vóór een update): de database eerst sluiten. Op Windows kan een proces geen SIGTERM ontvangen; dit doet hetzelfde als Ctrl+C (zie index.ts).

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Mogelijke meldingen:

  • Alleen voor de kassa-pc zelf.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/intern/stop" \
  -H "Authorization: Bearer <token>"

Op rekening

Betalen op rekening voor zakelijke klanten (migratie 085/086): klanten, openstaande facturen en betalingen ontvangen (contant, pin, cadeaubon of overgemaakt).

GET/api/beheer/rekeningklanten#

Alle zakelijke klanten op rekening (ook inactieve), met openstaand, aantal open facturen en wat over de ver…

Alle zakelijke klanten op rekening (ook inactieve), met openstaand, aantal open facturen en wat over de vervaldatum is.

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Antwoord 200

VeldTypeUitleg
klanten *lijst van RekeningKlant
bijgewerkt *ja/nee
kanalen *object
kanalen.email *ja/nee
kanalen.billit *ja/nee
kanalen.http *ja/nee
kanalen.billitSandbox *ja/nee
kanalen.storecove *ja/nee
kanalen.banqup *ja/nee
kanalen.banqupSandbox *ja/nee
webshop *ja/nee
klantcodes *object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/rekeningklanten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/rekeningklanten#

{ afnemer: { naam, adres, postcode, plaats, land, btwNummer, kvk, peppolId, email }, limiet (centen of null…

{ afnemer: { naam, adres, postcode, plaats, land, btwNummer, kvk, peppolId, email }, limiet (centen of null), betaaltermijn (dagen of null), versturen, notitie, actief, verzamelfactuur (één factuur voor alle bonnen, bv. per maand; migratie 132) }

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
klant *RekeningKlant

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/rekeningklanten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/beheer/rekeningklanten/{id}#

Eén klant met zijn facturen op rekening

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
klant *RekeningKlant
facturen *lijst van FactuurRij
tegoed *ja/nee
stortingen *lijst van object
stortingen[].methode *tekst
stortingen[].bedrag *getal
stortingen[].door *tekst of null
stortingen[].op *tekst
verzamelfactuur *ja/nee
posten *lijst van RekeningPost

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

404

Klant niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/rekeningklanten/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/rekeningklanten/{id}#

Wijzigen; niet meegestuurd = laten

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
klant *RekeningKlant

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/rekeningklanten/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/rekeningklanten/{id}/klantcode#

Klantcode voor de webshop (migratie 108): nieuwe code maken (de oude vervalt)

De code staat alleen in dit antwoord (de kassa bewaart de hash); geef hem door aan de klant.

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
klantcode *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/rekeningklanten/<id>/klantcode" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/rekeningklanten/{id}/klantcode/verwijderen#

Klantcode weghalen: deze klant kan niet meer online op rekening bestellen

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/rekeningklanten/<id>/klantcode/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/rekeningklanten/{id}/verwijderen#

Verwijderen; heeft de klant facturen, dan wordt hij inactief en blijft alles bewaard

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
verwijderd *ja/nee
klant *RekeningKlant

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/rekeningklanten/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/oprekening#

Voor het afrekenscherm: staat op rekening aan, en de actieve klanten met wat er open staat en hun grens

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Antwoord 200

VeldTypeUitleg
aan *ja/nee
klanten *lijst van RekeningKlant

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/oprekening" \
  -H "Authorization: Bearer <token>"
GET/api/oprekening/facturen#

Openstaande facturen op rekening (nieuwste eerst), om een betaling in de zaak te ontvangen

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Antwoord 200

VeldTypeUitleg
facturen *lijst van FactuurRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/oprekening/facturen" \
  -H "Authorization: Bearer <token>"
POST/api/oprekening/facturen/{id}/betaling#

Betaling van een factuur op rekening: { methode: 'contant'|'pin'|'bon'|'bank', bedrag (centen), cadeaubonCo…

Betaling van een factuur op rekening: { methode: 'contant'|'pin'|'bon'|'bank', bedrag (centen), cadeaubonCode? }. Contant: geld in de lade (komt op X en Z) en de lade gaat open. Pin: op de terminal gepind. Bank: overgemaakt (alleen vastleggen, migratie 086). Geen nieuwe kassabon.

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
factuur *FactuurRij
betalingen *lijst van object
betalingen[].methode *tekst
betalingen[].bedrag *getal
betalingen[].door *tekst of null
betalingen[].op *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

409

Betalen op rekening staat uit (Instellingen → Facturen).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oprekening/facturen/<id>/betaling" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/oprekening/facturen/{id}/betalingen#

Betalingen van een factuur op rekening (methode, bedrag, door wie, wanneer)

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
betalingen *lijst van object
betalingen[].methode *tekst
betalingen[].bedrag *getal
betalingen[].door *tekst of null
betalingen[].op *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/oprekening/facturen/<id>/betalingen" \
  -H "Authorization: Bearer <token>"
POST/api/oprekening/klanten/{id}/tegoed#

Tegoed op de rekening van een klant zetten (geld vooraf): { methode: 'contant'|'pin', bedrag (centen) }. Co…

Tegoed op de rekening van een klant zetten (geld vooraf): { methode: 'contant'|'pin', bedrag (centen) }. Contant: geld in de lade (de lade gaat open). Pin: op de terminal gepind. Bij de volgende verkoop op rekening gaat het tegoed eerst van de factuur af. In België: geld in (signMoneyInOut) bij de zwarte doos.

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
klant *RekeningKlant
stortingen *lijst van object
stortingen[].methode *tekst
stortingen[].bedrag *getal
stortingen[].door *tekst of null
stortingen[].op *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oprekening/klanten/<id>/tegoed" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/oprekening/klanten/{id}/verzamelfactuur#

Verzamelfactuur maken voor alle bonnen van deze klant die nog niet op een factuur staan (bv

aan het eind van de maand; UC4121, UC4122). Versturen als dat bij de klant zo is ingesteld. In België: signInvoice met alle bonnen.

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
factuur *FactuurRij
verstuurd *ja/nee
fouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

409

Betalen op rekening staat uit (Instellingen → Facturen).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oprekening/klanten/<id>/verzamelfactuur" \
  -H "Authorization: Bearer <token>"
GET/api/oprekening/posten#

Bonnen op rekening die nog niet op een (verzamel)factuur staan (klanten met verzamelfactuur, migratie 132)

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Antwoord 200

VeldTypeUitleg
posten *lijst van RekeningPost

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/oprekening/posten" \
  -H "Authorization: Bearer <token>"
POST/api/oprekening/posten/{id}/betaling#

Betaling van een bon op rekening die nog niet op een factuur staat (verzamelfactuur): { methode, bedrag, ca…

Betaling van een bon op rekening die nog niet op een factuur staat (verzamelfactuur): { methode, bedrag, cadeaubonCode? }, zoals bij een factuur. In België: betaalcorrectie op de bon (UC4118).

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
post *RekeningPost

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

409

Betalen op rekening staat uit (Instellingen → Facturen).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oprekening/posten/<id>/betaling" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

Mailchimp en Klaviyo

Koppeling met Mailchimp en Klaviyo (migratie 089): klanten met toestemming op de lijst, afmeldingen terug, bonnen als gebeurtenis.

GET/api/beheer/mailing#

Per dienst: verbonden (hoe), gekozen lijst, aantal aangemeld, laatste keer en fout; terugadres voor inloggen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

23 velden tonen
VeldTypeUitleg
migratie *ja/nee
klantenkaart *ja/nee
toestemming *getal
redirect *tekst
diensten *lijst van object
diensten[].dienst *tekst

Een van: "mailchimp" "klaviyo"

diensten[].naam *tekst
diensten[].verbonden *ja/nee
diensten[].via *tekst of null
diensten[].sleutelUitEnv *ja/nee
diensten[].inloggenMogelijk *ja/nee
diensten[].app *object
diensten[].app.uitEnv *ja/nee
diensten[].app.clientId *tekst
diensten[].app.geheimIngevuld *ja/nee
diensten[].redirect *tekst
diensten[].redirectUitEnv *ja/nee
diensten[].lijst *object of null
diensten[].lijst.id *tekst
diensten[].lijst.naam *tekst
diensten[].laatstOp *tekst of null
diensten[].fout *tekst of null
diensten[].aangemeld *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/mailing" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/mailing/{dienst}/app#

{ clientId, clientGeheim (leeg = houden, null = wissen), terugadres }: de app voor inloggen (OAuth)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
dienst *padtekst

Body (JSON)

Geen velden.

Antwoord 200

23 velden tonen
VeldTypeUitleg
migratie *ja/nee
klantenkaart *ja/nee
toestemming *getal
redirect *tekst
diensten *lijst van object
diensten[].dienst *tekst

Een van: "mailchimp" "klaviyo"

diensten[].naam *tekst
diensten[].verbonden *ja/nee
diensten[].via *tekst of null
diensten[].sleutelUitEnv *ja/nee
diensten[].inloggenMogelijk *ja/nee
diensten[].app *object
diensten[].app.uitEnv *ja/nee
diensten[].app.clientId *tekst
diensten[].app.geheimIngevuld *ja/nee
diensten[].redirect *tekst
diensten[].redirectUitEnv *ja/nee
diensten[].lijst *object of null
diensten[].lijst.id *tekst
diensten[].lijst.naam *tekst
diensten[].laatstOp *tekst of null
diensten[].fout *tekst of null
diensten[].aangemeld *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Onbekende dienst.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/mailing/<dienst>/app" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/mailing/{dienst}/bijwerken#

Nu bijwerken (anders elke 5 minuten): afmeldingen, klanten en bonnen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
dienst *padtekst

Antwoord 200

28 velden tonen
VeldTypeUitleg
migratie *ja/nee
klantenkaart *ja/nee
toestemming *getal
redirect *tekst
diensten *lijst van object
diensten[].dienst *tekst

Een van: "mailchimp" "klaviyo"

diensten[].naam *tekst
diensten[].verbonden *ja/nee
diensten[].via *tekst of null
diensten[].sleutelUitEnv *ja/nee
diensten[].inloggenMogelijk *ja/nee
diensten[].app *object
diensten[].app.uitEnv *ja/nee
diensten[].app.clientId *tekst
diensten[].app.geheimIngevuld *ja/nee
diensten[].redirect *tekst
diensten[].redirectUitEnv *ja/nee
diensten[].lijst *object of null
diensten[].lijst.id *tekst
diensten[].lijst.naam *tekst
diensten[].laatstOp *tekst of null
diensten[].fout *tekst of null
diensten[].aangemeld *getal
afgemeld *getal
aangemeld *getal
uitgeschreven *getal
bonnen *getal
meer *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Onbekende dienst.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/mailing/<dienst>/bijwerken" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/mailing/{dienst}/lijst#

{ id, naam }: deze lijst gebruiken (leeg = geen lijst: dan gebeurt er niets)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
dienst *padtekst

Body (JSON)

Geen velden.

Antwoord 200

23 velden tonen
VeldTypeUitleg
migratie *ja/nee
klantenkaart *ja/nee
toestemming *getal
redirect *tekst
diensten *lijst van object
diensten[].dienst *tekst

Een van: "mailchimp" "klaviyo"

diensten[].naam *tekst
diensten[].verbonden *ja/nee
diensten[].via *tekst of null
diensten[].sleutelUitEnv *ja/nee
diensten[].inloggenMogelijk *ja/nee
diensten[].app *object
diensten[].app.uitEnv *ja/nee
diensten[].app.clientId *tekst
diensten[].app.geheimIngevuld *ja/nee
diensten[].redirect *tekst
diensten[].redirectUitEnv *ja/nee
diensten[].lijst *object of null
diensten[].lijst.id *tekst
diensten[].lijst.naam *tekst
diensten[].laatstOp *tekst of null
diensten[].fout *tekst of null
diensten[].aangemeld *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Onbekende dienst.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/mailing/<dienst>/lijst" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/beheer/mailing/{dienst}/lijsten#

De lijsten (Mailchimp: audiences) om uit te kiezen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
dienst *padtekst

Antwoord 200

VeldTypeUitleg
lijsten *lijst van object
lijsten[].id *tekst
lijsten[].naam *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Onbekende dienst.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/mailing/<dienst>/lijsten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/mailing/{dienst}/ontkoppelen#

Ontkoppelen: in de kassa weg; in Mailchimp/Klaviyo blijft alles staan

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
dienst *padtekst

Antwoord 200

23 velden tonen
VeldTypeUitleg
migratie *ja/nee
klantenkaart *ja/nee
toestemming *getal
redirect *tekst
diensten *lijst van object
diensten[].dienst *tekst

Een van: "mailchimp" "klaviyo"

diensten[].naam *tekst
diensten[].verbonden *ja/nee
diensten[].via *tekst of null
diensten[].sleutelUitEnv *ja/nee
diensten[].inloggenMogelijk *ja/nee
diensten[].app *object
diensten[].app.uitEnv *ja/nee
diensten[].app.clientId *tekst
diensten[].app.geheimIngevuld *ja/nee
diensten[].redirect *tekst
diensten[].redirectUitEnv *ja/nee
diensten[].lijst *object of null
diensten[].lijst.id *tekst
diensten[].lijst.naam *tekst
diensten[].laatstOp *tekst of null
diensten[].fout *tekst of null
diensten[].aangemeld *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Onbekende dienst.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/mailing/<dienst>/ontkoppelen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/mailing/{dienst}/sleutel#

{ sleutel }: API-sleutel (gecontroleerd bij de dienst); null = wissen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
dienst *padtekst

Body (JSON)

Geen velden.

Antwoord 200

23 velden tonen
VeldTypeUitleg
migratie *ja/nee
klantenkaart *ja/nee
toestemming *getal
redirect *tekst
diensten *lijst van object
diensten[].dienst *tekst

Een van: "mailchimp" "klaviyo"

diensten[].naam *tekst
diensten[].verbonden *ja/nee
diensten[].via *tekst of null
diensten[].sleutelUitEnv *ja/nee
diensten[].inloggenMogelijk *ja/nee
diensten[].app *object
diensten[].app.uitEnv *ja/nee
diensten[].app.clientId *tekst
diensten[].app.geheimIngevuld *ja/nee
diensten[].redirect *tekst
diensten[].redirectUitEnv *ja/nee
diensten[].lijst *object of null
diensten[].lijst.id *tekst
diensten[].lijst.naam *tekst
diensten[].laatstOp *tekst of null
diensten[].fout *tekst of null
diensten[].aangemeld *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Onbekende dienst.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/mailing/<dienst>/sleutel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/mailing/{dienst}/verbinden#

Inloggen starten (OAuth, met de app in .env); geeft { url } om te openen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
dienst *padtekst

Antwoord 200

VeldTypeUitleg
url *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Onbekende dienst.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/mailing/<dienst>/verbinden" \
  -H "Authorization: Bearer <token>"
GET/api/mailing/terugopenbaar#

Toegang: Openbaar: werkt zonder aanmelden.

Toegang

Openbaar: werkt zonder aanmelden.

Antwoord 200 · text/html

tekst

Foutmeldingen

400

Ongeldige invoer.

Voorbeeld (curl)
curl "http://kassa:4000/api/mailing/terug"

Camera's

Camerabeelden in de kassa (migratie 092): alle camera's op één pagina (Hikvision, Dahua, Axis, Reolink, Synology, UniFi Protect, ONVIF, eigen webadres), foto of live; de beelden met de sleutel uit GET /api/camera (?t=).

GET/api/beheer/camera#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

25 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
ffmpeg *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

soorten[].naam *tekst
soorten[].kanalen *ja/nee
soorten[].ophalen *ja/nee
systemen *lijst van object
systemen[].id *tekst
systemen[].naam *tekst
systemen[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

systemen[].adres *tekst of null
systemen[].https *ja/nee
systemen[].gebruiker *tekst of null
systemen[].wachtwoordIngevuld *ja/nee
systemen[].url *tekst of null
systemen[].urlSoort *tekst of null

Een van: "foto" "mjpeg" "rtsp"

systemen[].beeld *tekst

Een van: "live" "foto"

systemen[].verversen *getal
systemen[].cameras *lijst van object
systemen[].cameras[].id *tekst
systemen[].cameras[].naam *tekst
systemen[].cameras[].toon *ja/nee
systemen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/camera" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/camera#

{ aan: true/false }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

25 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
ffmpeg *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

soorten[].naam *tekst
soorten[].kanalen *ja/nee
soorten[].ophalen *ja/nee
systemen *lijst van object
systemen[].id *tekst
systemen[].naam *tekst
systemen[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

systemen[].adres *tekst of null
systemen[].https *ja/nee
systemen[].gebruiker *tekst of null
systemen[].wachtwoordIngevuld *ja/nee
systemen[].url *tekst of null
systemen[].urlSoort *tekst of null

Een van: "foto" "mjpeg" "rtsp"

systemen[].beeld *tekst

Een van: "live" "foto"

systemen[].verversen *getal
systemen[].cameras *lijst van object
systemen[].cameras[].id *tekst
systemen[].cameras[].naam *tekst
systemen[].cameras[].toon *ja/nee
systemen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/camera" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/camera/systemen#

Nieuw camerasysteem: { naam, soort, adres, https, gebruiker, wachtwoord, url, urlSoort, beeld, verversen, k…

Nieuw camerasysteem: { naam, soort, adres, https, gebruiker, wachtwoord, url, urlSoort, beeld, verversen, kanalen, cameras }.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

26 velden tonen
VeldTypeUitleg
id *tekst
migratie *ja/nee
aan *ja/nee
ffmpeg *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

soorten[].naam *tekst
soorten[].kanalen *ja/nee
soorten[].ophalen *ja/nee
systemen *lijst van object
systemen[].id *tekst
systemen[].naam *tekst
systemen[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

systemen[].adres *tekst of null
systemen[].https *ja/nee
systemen[].gebruiker *tekst of null
systemen[].wachtwoordIngevuld *ja/nee
systemen[].url *tekst of null
systemen[].urlSoort *tekst of null

Een van: "foto" "mjpeg" "rtsp"

systemen[].beeld *tekst

Een van: "live" "foto"

systemen[].verversen *getal
systemen[].cameras *lijst van object
systemen[].cameras[].id *tekst
systemen[].cameras[].naam *tekst
systemen[].cameras[].toon *ja/nee
systemen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/camera/systemen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
PUT/api/beheer/camera/systemen/{id}#

Wijzigen (wachtwoord leeg = houden, null = wissen)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

26 velden tonen
VeldTypeUitleg
id *tekst
migratie *ja/nee
aan *ja/nee
ffmpeg *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

soorten[].naam *tekst
soorten[].kanalen *ja/nee
soorten[].ophalen *ja/nee
systemen *lijst van object
systemen[].id *tekst
systemen[].naam *tekst
systemen[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

systemen[].adres *tekst of null
systemen[].https *ja/nee
systemen[].gebruiker *tekst of null
systemen[].wachtwoordIngevuld *ja/nee
systemen[].url *tekst of null
systemen[].urlSoort *tekst of null

Een van: "foto" "mjpeg" "rtsp"

systemen[].beeld *tekst

Een van: "live" "foto"

systemen[].verversen *getal
systemen[].cameras *lijst van object
systemen[].cameras[].id *tekst
systemen[].cameras[].naam *tekst
systemen[].cameras[].toon *ja/nee
systemen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/beheer/camera/systemen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE/api/beheer/camera/systemen/{id}#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

25 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
ffmpeg *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

soorten[].naam *tekst
soorten[].kanalen *ja/nee
soorten[].ophalen *ja/nee
systemen *lijst van object
systemen[].id *tekst
systemen[].naam *tekst
systemen[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

systemen[].adres *tekst of null
systemen[].https *ja/nee
systemen[].gebruiker *tekst of null
systemen[].wachtwoordIngevuld *ja/nee
systemen[].url *tekst of null
systemen[].urlSoort *tekst of null

Een van: "foto" "mjpeg" "rtsp"

systemen[].beeld *tekst

Een van: "live" "foto"

systemen[].verversen *getal
systemen[].cameras *lijst van object
systemen[].cameras[].id *tekst
systemen[].cameras[].naam *tekst
systemen[].cameras[].toon *ja/nee
systemen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/camera/systemen/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/camera/systemen/{id}/ophalen#

Synology, UniFi en ONVIF: de camera's ophalen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

26 velden tonen
VeldTypeUitleg
aantal *getal
migratie *ja/nee
aan *ja/nee
ffmpeg *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

soorten[].naam *tekst
soorten[].kanalen *ja/nee
soorten[].ophalen *ja/nee
systemen *lijst van object
systemen[].id *tekst
systemen[].naam *tekst
systemen[].soort *tekst

Een van: "url" "web" "hikvision" "dahua" "axis" "reolink" "synology" "unifi" "onvif"

systemen[].adres *tekst of null
systemen[].https *ja/nee
systemen[].gebruiker *tekst of null
systemen[].wachtwoordIngevuld *ja/nee
systemen[].url *tekst of null
systemen[].urlSoort *tekst of null

Een van: "foto" "mjpeg" "rtsp"

systemen[].beeld *tekst

Een van: "live" "foto"

systemen[].verversen *getal
systemen[].cameras *lijst van object
systemen[].cameras[].id *tekst
systemen[].cameras[].naam *tekst
systemen[].cameras[].toon *ja/nee
systemen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/camera/systemen/<id>/ophalen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/camera/systemen/{id}/test#

Kan de kassa de eerste camera bereiken?

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *true
bytes *getal
live *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/camera/systemen/<id>/test" \
  -H "Authorization: Bearer <token>"
GET/api/camera#

Alle camera's en webpagina's, met de sleutel voor de beelden (12 uur geldig, zolang je aangemeld bent)

Toegang

Vereist recht camera_bekijken.

Antwoord 200

VeldTypeUitleg
sleutel *tekst
tegels *lijst van object
tegels[].systeem *tekst
tegels[].systeemNaam *tekst
tegels[].camera *tekst
tegels[].naam *tekst
tegels[].live *ja/nee
tegels[].verversen *getal
paginas *lijst van object
paginas[].id *tekst
paginas[].naam *tekst
paginas[].url *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: dit. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/camera" \
  -H "Authorization: Bearer <token>"
GET/api/camera/beeld/{systeem}/{camera}#

Een foto (JPEG) van de camera; niet bewaren in de browser

Parameters

NaamWaarTypeUitleg
systeem *padtekst
camera *padtekst

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Niet aangemeld. Open de camera's opnieuw.
  • Niet aangemeld. Voer je pincode opnieuw in.
403

Geen recht.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/camera/beeld/<systeem>/<camera>" \
  -H "Authorization: Bearer <token>"
GET/api/camera/live/{systeem}/{camera}#

Live beeld (MJPEG-stroom), tot de pagina sluit

Parameters

NaamWaarTypeUitleg
systeem *padtekst
camera *padtekst

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Niet aangemeld. Open de camera's opnieuw.
  • Niet aangemeld. Voer je pincode opnieuw in.
403

Geen recht.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/camera/live/<systeem>/<camera>" \
  -H "Authorization: Bearer <token>"

Muziek

Muziek bedienen vanaf de kassa (migratie 091): afspelen, pauze, volgende, vorige en volume van Soundtrack, Sonos, BluOS, VLC of een eigen muziekcomputer; bronnen instellen.

GET/api/beheer/muziek#

Aan/uit, de soorten koppelingen en de bronnen (zonder token of wachtwoord)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

16 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

soorten[].naam *tekst
bronnen *lijst van object
bronnen[].id *tekst
bronnen[].naam *tekst
bronnen[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

bronnen[].adres *tekst of null
bronnen[].sleutelIngevuld *ja/nee
bronnen[].zone *object of null
bronnen[].zone.id *tekst
bronnen[].zone.naam *tekst
bronnen[].commandos *object
bronnen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/muziek" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/muziek#

{ aan: true/false }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

16 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

soorten[].naam *tekst
bronnen *lijst van object
bronnen[].id *tekst
bronnen[].naam *tekst
bronnen[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

bronnen[].adres *tekst of null
bronnen[].sleutelIngevuld *ja/nee
bronnen[].zone *object of null
bronnen[].zone.id *tekst
bronnen[].zone.naam *tekst
bronnen[].commandos *object
bronnen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/muziek" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/muziek/bronnen#

Nieuwe bron: { naam, soort, adres, sleutel, zone: { id, naam }, commandos, volgorde }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

16 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

soorten[].naam *tekst
bronnen *lijst van object
bronnen[].id *tekst
bronnen[].naam *tekst
bronnen[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

bronnen[].adres *tekst of null
bronnen[].sleutelIngevuld *ja/nee
bronnen[].zone *object of null
bronnen[].zone.id *tekst
bronnen[].zone.naam *tekst
bronnen[].commandos *object
bronnen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/muziek/bronnen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
PUT/api/beheer/muziek/bronnen/{id}#

Bron wijzigen (sleutel leeg = houden, null = wissen)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

16 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

soorten[].naam *tekst
bronnen *lijst van object
bronnen[].id *tekst
bronnen[].naam *tekst
bronnen[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

bronnen[].adres *tekst of null
bronnen[].sleutelIngevuld *ja/nee
bronnen[].zone *object of null
bronnen[].zone.id *tekst
bronnen[].zone.naam *tekst
bronnen[].commandos *object
bronnen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/beheer/muziek/bronnen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE/api/beheer/muziek/bronnen/{id}#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

16 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
soorten *lijst van object
soorten[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

soorten[].naam *tekst
bronnen *lijst van object
bronnen[].id *tekst
bronnen[].naam *tekst
bronnen[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

bronnen[].adres *tekst of null
bronnen[].sleutelIngevuld *ja/nee
bronnen[].zone *object of null
bronnen[].zone.id *tekst
bronnen[].zone.naam *tekst
bronnen[].commandos *object
bronnen[].volgorde *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/muziek/bronnen/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/muziek/bronnen/{id}/test#

Kan de kassa de bron bereiken?

Geeft wat er nu speelt.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *true
status *MuziekStatus

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/muziek/bronnen/<id>/test" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/muziek/soundtrack/zones#

Soundtrack: de geluidszones bij { sleutel } (of { bron } voor het opgeslagen token)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
zones *lijst van object
zones[].id *tekst
zones[].naam *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/muziek/soundtrack/zones" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/muziek#

De bronnen voor het paneel (bv

Bar, Terras) en wat ze kunnen.

Antwoord 200

VeldTypeUitleg
bronnen *lijst van object
bronnen[].urltekst of null
bronnen[].id *tekst
bronnen[].naam *tekst
bronnen[].soort *tekst

Een van: "http" "soundtrack" "sonos" "bluos" "vlc" "web"

bronnen[].kan *Mogelijk

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/muziek" \
  -H "Authorization: Bearer <token>"
POST/api/muziek/{id}/{actie}#

Knop: afspelen, pauze, volgende, vorige, harder, zachter; of volume met { volume: 0-100 }

Parameters

NaamWaarTypeUitleg
id *padtekst
actie *padtekst

Body (JSON)

VeldTypeUitleg
volumealles

Antwoord 200

Type: MuziekStatus

VeldTypeUitleg
speelt *ja/nee of null

speelt er muziek (null = onbekend)

titel *tekst of null
artiest *tekst of null
volume *getal of null

0-100 (null = onbekend)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/muziek/<id>/<actie>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "volume": null
}'
POST/api/muziek/{id}/lijst#

Een lijst kiezen en afspelen: { id }

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

Type: MuziekStatus

VeldTypeUitleg
speelt *ja/nee of null

speelt er muziek (null = onbekend)

titel *tekst of null
artiest *tekst of null
volume *getal of null

0-100 (null = onbekend)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/muziek/<id>/lijst" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/muziek/{id}/lijsten#

Andere muziek om te kiezen: Sonos-favorieten en -afspeellijsten, BluOS-voorkeuzes

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
lijsten *lijst van object
lijsten[].id *tekst
lijsten[].naam *tekst
lijsten[].soort *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/muziek/<id>/lijsten" \
  -H "Authorization: Bearer <token>"
GET/api/muziek/{id}/playlist#

De playlist (wachtrij): { nu: index of null, nummers: [{ id, titel, artiest }] } (Sonos, BluOS, VLC)

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: Playlist

VeldTypeUitleg
nu *getal of null
nummers *lijst van Nummer

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/muziek/<id>/playlist" \
  -H "Authorization: Bearer <token>"
POST/api/muziek/{id}/playlist#

De playlist aanpassen: { actie: speel | weg | omhoog | omlaag | leeg, nummer }

Geeft de nieuwe playlist.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

Type: Playlist

VeldTypeUitleg
nu *getal of null
nummers *lijst van Nummer

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/muziek/<id>/playlist" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/muziek/{id}/status#

Wat er nu speelt: { speelt, titel, artiest, volume (0-100) }; onbekend = null

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: MuziekStatus

VeldTypeUitleg
speelt *ja/nee of null

speelt er muziek (null = onbekend)

titel *tekst of null
artiest *tekst of null
volume *getal of null

0-100 (null = onbekend)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/muziek/<id>/status" \
  -H "Authorization: Bearer <token>"

Eigen bezorgers

Eigen bezorgers (migratie 097): ritten maken met wisselgeld, vertrekken (de klant krijgt bericht, met track & trace een volglink), bezorgd melden en de kasafdracht. De bezorger en de klant gebruiken een pagina op het beheerportaal. Bezorgersapp (migratie 099): telefoons koppelen, zelf oppakken, zelf vertrekken en de live kaart (GET /api/ritten/kaart).

GET/api/beheer/bezorgers#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
portaal *ja/nee
aan *ja/nee
wisselgeld *getal

standaard wisselgeld per rit (centen)

volgen *ja/nee

track & trace: volgpagina voor de klant

locatie *ja/nee

de bezorger live op de kaart (alleen met volgen)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bezorgers" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bezorgers#

{ aan, wisselgeld, volgen, locatie } (alles optioneel)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
portaal *ja/nee
aan *ja/nee
wisselgeld *getal

standaard wisselgeld per rit (centen)

volgen *ja/nee

track & trace: volgpagina voor de klant

locatie *ja/nee

de bezorger live op de kaart (alleen met volgen)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bezorgers" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/beheer/bezorgersapp#

Bezorgersapp (migratie 099): { migratie, portaal, bezorgers, aan, zelfOppakken, vertrek, kaart, koppelingen…

Bezorgersapp (migratie 099): { migratie, portaal, bezorgers, aan, zelfOppakken, vertrek, kaart, koppelingen, medewerkers }.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
portaal *ja/nee
bezorgers *ja/nee
koppelingen *lijst van Koppeling2
medewerkers *lijst van object
medewerkers[].id *tekst
medewerkers[].naam *tekst
aan *ja/nee
zelfOppakken *ja/nee

bezorgers mogen zelf bezorgbestellingen oppakken in de app

vertrek *ja/nee

bezorgers mogen zelf vertrekken in de app

kaart *ja/nee

live kaart in de kassa met de bezorgers die aan het werk zijn

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bezorgersapp" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bezorgersapp#

{ aan?, zelfOppakken?, vertrek?, kaart?

}.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
portaal *ja/nee
bezorgers *ja/nee
koppelingen *lijst van Koppeling2
medewerkers *lijst van object
medewerkers[].id *tekst
medewerkers[].naam *tekst
aan *ja/nee
zelfOppakken *ja/nee

bezorgers mogen zelf bezorgbestellingen oppakken in de app

vertrek *ja/nee

bezorgers mogen zelf vertrekken in de app

kaart *ja/nee

live kaart in de kassa met de bezorgers die aan het werk zijn

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bezorgersapp" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/bezorgersapp/koppelingen#

Telefoon van een bezorger koppelen: { gebruikerId, toestel?

} → { koppeling, link (QR-code), appLink }. Een oudere koppeling van die medewerker vervalt.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
koppeling *Koppeling2
link *tekst
appLink *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bezorgersapp/koppelingen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE/api/beheer/bezorgersapp/koppelingen/{id}#

Koppeling intrekken: de telefoon ziet meteen niets meer

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/bezorgersapp/koppelingen/<id>" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/ritplanning#

Ritplanning (migratie 098): { aan, maxStops, maxMin, snelheid, venster, perStop, dienst, url, sleutelIngest…

Ritplanning (migratie 098): { aan, maxStops, maxMin, snelheid, venster, perStop, dienst, url, sleutelIngesteld }. Met het recht "Ritplanning instellen" (standaard ook de manager) of "Zaak, betalen en printers instellen".

Toegang

Controleert daarnaast: ritplanninginstellen (Ritplanning instellen (adressen per rit, reistijd, tijdvenster, snelheid)), instellingenbeheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
alles *ja/nee
migratie *ja/nee
sleutelIngesteld *ja/nee
url *tekst of null
aan *ja/nee
maxStops *getal
maxMin *getal
snelheid *getal
venster *getal
perStop *getal
dienst *tekst

Een van: "schatting" "osrm" "openrouteservice"

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/ritplanning" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/ritplanning#

{ aan?, maxStops?, maxMin?, snelheid?, venster?, perStop?, dienst?, url?, sleutel?

} (sleutel '' = weghalen). Met "Ritplanning instellen": alleen maxStops, maxMin, snelheid, venster en perStop; aan/uit en de routedienst alleen met "Zaak, betalen en printers instellen".

Toegang

Controleert daarnaast: instellingenbeheren (Zaak, betalen en printers instellen), ritplanninginstellen (Ritplanning instellen (adressen per rit, reistijd, tijdvenster, snelheid)).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
alles *ja/nee
migratie *ja/nee
sleutelIngesteld *ja/nee
url *tekst of null
aan *ja/nee
maxStops *getal
maxMin *getal
snelheid *getal
venster *getal
perStop *getal
dienst *tekst

Een van: "schatting" "osrm" "openrouteservice"

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/ritplanning" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/ritplanning/test#

Routedienst testen: { ok, bron, km, min, fout }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
ok *ja/nee
bron *tekst

Een van: "schatting" "osrm" "openrouteservice"

km *getal
min *getal
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/ritplanning/test" \
  -H "Authorization: Bearer <token>"
GET/api/ritten#

Voor de kassa (knop Ritten): { aan, volgen, locatie, wisselgeld, portaal, bezorgers, open, ritten }

Antwoord 200

13 velden tonen
VeldTypeUitleg
aan *ja/nee
volgen *ja/nee
locatie *ja/nee
wisselgeld *getal
portaal *ja/nee
planning *ja/nee
app *ja/nee

bezorgersapp (migratie 099): app aan, en de live kaart met alle bezorgers

kaart *ja/nee
bezorgers *lijst van object
bezorgers[].id *tekst
bezorgers[].naam *tekst
open *lijst van Stop
ritten *lijst van Rit

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/ritten" \
  -H "Authorization: Bearer <token>"
POST/api/ritten#

Nieuwe rit: { bestellingIds, bezorgerId, wisselgeld?

} → { rit, link } (link = voor de telefoon van de bezorger).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
rit *Rit
link *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/ritten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/ritten/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: Rit

22 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
bezorgerId *tekst of null
bezorger *tekst
status *tekst

Een van: "geannuleerd" "klaar" "onderweg" "terug" "afgerekend"

wisselgeld *getal
aangemaaktOp *tekst
vertrokkenOp *tekst of null
terugOp *tekst of null
afgerekendOp *tekst of null
contantVerwacht *getal of null
contantGeteld *getal of null
verschil *getal of null
locatie *object of null
locatie.lat *getal
locatie.lon *getal
locatie.op *tekst
afstandKm *getal of null

ritplanning (migratie 098): geplande afstand en reistijd (heen, adressen, terug)

reistijdMin *getal of null
viaApp *ja/nee

bezorgersapp (migratie 099): de bezorger heeft de bestellingen zelf opgepakt in de app

stops *lijst van Stop
contantTeInnen *getal

contant te innen (nog niet afgerekend), voor de kasafdracht

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Rit niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/ritten/<id>" \
  -H "Authorization: Bearer <token>"
PUT/api/ritten/{id}#

Andere bestellingen of volgorde, of ander wisselgeld (voor vertrek): { bestellingIds, wisselgeld?

}.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
rit *Rit

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/ritten/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE/api/ritten/{id}#

Rit opheffen (alleen voor vertrek)

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/ritten/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/ritten/{id}/afrekenen#

Kasafdracht: { stops: [{ bestellingId, betaling: 'contant' | 'pin' | 'vooraf' | 'terug' }], geteld } → { ri…

Kasafdracht: { stops: [{ bestellingId, betaling: 'contant' | 'pin' | 'vooraf' | 'terug' }], geteld } → { rit }.

Toegang

Controleert daarnaast: kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
rit *Rit
printFouttekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/ritten/<id>/afrekenen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/ritten/{id}/bezorgd#

Eén bestelling bezorgd (vanaf de kassa): { bestellingId, betaling: 'contant' | 'pin' | 'vooraf' }

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

22 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
bezorgerId *tekst of null
bezorger *tekst
status *tekst

Een van: "geannuleerd" "klaar" "onderweg" "terug" "afgerekend"

wisselgeld *getal
aangemaaktOp *tekst
vertrokkenOp *tekst of null
terugOp *tekst of null
afgerekendOp *tekst of null
contantVerwacht *getal of null
contantGeteld *getal of null
verschil *getal of null
locatie *object of null
locatie.lat *getal
locatie.lon *getal
locatie.op *tekst
afstandKm *getal of null

ritplanning (migratie 098): geplande afstand en reistijd (heen, adressen, terug)

reistijdMin *getal of null
viaApp *ja/nee

bezorgersapp (migratie 099): de bezorger heeft de bestellingen zelf opgepakt in de app

stops *lijst van Stop
contantTeInnen *getal

contant te innen (nog niet afgerekend), voor de kasafdracht

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/ritten/<id>/bezorgd" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/ritten/{id}/link#

Nieuwe link (QR-code) voor de telefoon van de bezorger: { link }

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
link *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/ritten/<id>/link" \
  -H "Authorization: Bearer <token>"
POST/api/ritten/{id}/vertrek#

Vertrekken: wisselgeld uit de lade, "onderweg" naar de klanten → { rit, berichten }

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
rit *Rit
berichten *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/ritten/<id>/vertrek" \
  -H "Authorization: Bearer <token>"
POST/api/ritten/{id}/volgorde#

Ritplanning: de beste volgorde voor een rit die nog niet vertrokken is → { volgorde, afstandKm, reistijdMin…

Ritplanning: de beste volgorde voor een rit die nog niet vertrokken is → { volgorde, afstandKm, reistijdMin, bron }.

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
volgorde *lijst van tekst
afstandKm *getal
reistijdMin *getal
bron *tekst

Een van: "schatting" "osrm" "openrouteservice"

fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/ritten/<id>/volgorde" \
  -H "Authorization: Bearer <token>"
GET/api/ritten/kaart#

Bezorgersapp (migratie 099): live kaart met alle bezorgers → { aan, zaak, bezorgers: [{ naam, lat, lon, op,…

Bezorgersapp (migratie 099): live kaart met alle bezorgers → { aan, zaak, bezorgers: [{ naam, lat, lon, op, rit, status, viaApp }], stops }.

Antwoord 200

Type: Kaart

16 velden tonen
VeldTypeUitleg
aan *ja/nee
zaak *KaartPunt
bezorgers *lijst van object
bezorgers[].id *tekst
bezorgers[].naam *tekst
bezorgers[].lat *getal
bezorgers[].lon *getal
bezorgers[].op *tekst
bezorgers[].rit *getal of null
bezorgers[].status *tekst of null
bezorgers[].viaApp *ja/nee
stops *lijst van object

adressen van de ritten die onderweg zijn (nog niet bezorgd)

stops[].lat *getal
stops[].lon *getal
stops[].nummer *getal
stops[].rit *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/ritten/kaart" \
  -H "Authorization: Bearer <token>"
GET/api/ritten/voorstel#

Ritplanning (migratie 098): voorstel voor ritten → { voorstellen: [{ stops, afstandKm, reistijdMin, aankoms…

Ritplanning (migratie 098): voorstel voor ritten → { voorstellen: [{ stops, afstandKm, reistijdMin, aankomst }], zonderLigging, bron, fout }.

Antwoord 200

VeldTypeUitleg
voorstellen *lijst van Voorstel
zonderLigging *lijst van tekst
bron *tekst

Een van: "schatting" "osrm" "openrouteservice"

fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/ritten/voorstel" \
  -H "Authorization: Bearer <token>"

Oproepscherm

Oproepscherm "wordt bereid / klaar" voor afhalers (migratie 096): het scherm zelf (/oproep) haalt de nummers op zonder aanmelding; de kassa zet met de hand klaar, terug of opgehaald.

GET/api/beheer/oproep#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
migratie112 *ja/nee
portaal *ja/nee
aan *ja/nee
minuten *getal
balie *ja/nee
naam *ja/nee
geluid *ja/nee
bezorgers *ja/nee

Ook bestellingen die een bezorger van een platform ophaalt (migratie 109; standaard uit).

stem *ja/nee

Een nieuw klaar nummer voorlezen (migratie 112; standaard uit).

stemTaal *tekst

Een van: "nl" "ar" "de" "en" "es" "fr" "it" "pl" "pt" "tr"

statusQr *ja/nee

QR-code op de kassabon: de bestelstatus op de telefoon, via het beheerportaal (migratie 112; standaard uit).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/oproep" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/oproep#

{ aan, minuten, balie, naam, geluid } (alles optioneel)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
migratie112 *ja/nee
portaal *ja/nee
aan *ja/nee
minuten *getal
balie *ja/nee
naam *ja/nee
geluid *ja/nee
bezorgers *ja/nee

Ook bestellingen die een bezorger van een platform ophaalt (migratie 109; standaard uit).

stem *ja/nee

Een nieuw klaar nummer voorlezen (migratie 112; standaard uit).

stemTaal *tekst

Een van: "nl" "ar" "de" "en" "es" "fr" "it" "pl" "pt" "tr"

statusQr *ja/nee

QR-code op de kassabon: de bestelstatus op de telefoon, via het beheerportaal (migratie 112; standaard uit).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/oproep" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/oproep#

Voor het scherm: { aan, zaak, geluid, bereid: [{ nummer, naam?

}], klaar: [{ nummer, naam?, klaarOp }] }.

Antwoord 200

13 velden tonen
VeldTypeUitleg
aan *ja/nee
zaak *tekst
geluid *ja/nee
stemtekst

Een van: "nl" "ar" "de" "en" "es" "fr" "it" "pl" "pt" "tr"

bereid *lijst van object
bereid[].nummer *tekst
bereid[].naamtekst
bereid[].bezorgertekst
klaar *lijst van object
klaar[].nummer *tekst
klaar[].naamtekst
klaar[].bezorgertekst
klaar[].klaarOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/oproep" \
  -H "Authorization: Bearer <token>"
POST/api/oproep/{id}#

Met de hand: { stand: 'klaar' | 'bereid' | 'weg' | null } (null = weer vanzelf, bv

na "Opgehaald" ongedaan maken).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
aan *ja/nee
minuten *getal
bereid *lijst van OproepRij
klaar *lijst van OproepRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oproep/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/oproep/overzicht#

Voor de kassa (knop Oproepen): { aan, minuten, bereid, klaar } met bestelnummer, naam en bron

Antwoord 200

VeldTypeUitleg
aan *ja/nee
minuten *getal
bereid *lijst van OproepRij
klaar *lijst van OproepRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/oproep/overzicht" \
  -H "Authorization: Bearer <token>"

Tablets

Tablets als tweede scherm (migratie 094): een tablet koppelen (op de tablet: /tablet), en vanaf de kassa de muziek of de camera's met één knop naar die tablet sturen.

GET/api/beheer/tablets#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
tablets *lijst van TabletRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/tablets" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/tablets#

{ aan: true/false }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
tablets *lijst van TabletRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tablets" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
PUT/api/beheer/tablets/{id}#

Andere naam: { naam }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
tablets *lijst van TabletRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X PUT "http://kassa:4000/api/beheer/tablets/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE/api/beheer/tablets/{id}#

Weghalen (de tablet moet dan opnieuw gekoppeld worden)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
tablets *lijst van TabletRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X DELETE "http://kassa:4000/api/beheer/tablets/<id>" \
  -H "Authorization: Bearer <token>"
GET/api/tablets#

De gekoppelde tablets voor de knoppen "Naar …": { aan, tablets: [{ id, naam, online, scherm }] }

Antwoord 200

VeldTypeUitleg
aan *ja/nee
tablets *lijst van TabletRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/tablets" \
  -H "Authorization: Bearer <token>"
POST/api/tablets/{id}/ontkoppelen#

Op de tablet: deze tablet ontkoppelen ({ sleutel })

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tablets/<id>/ontkoppelen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/tablets/{id}/sluiten#

Op de tablet: terug naar wachten ({ sleutel })

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tablets/<id>/sluiten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/tablets/{id}/stand#

De tablet vraagt wat hij moet tonen: { sleutel } → { naam, scherm, bron, versie }

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
naam *tekst
scherm *tekst of null

Een van: "muziek" "camera"

bron *tekst of null
versie *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tablets/<id>/stand" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/tablets/{id}/sturen#

Vanaf de kassa: { scherm: 'muziek' | 'camera' | null, bron } naar de tablet sturen

Toegang

Controleert daarnaast: camera_bekijken.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
ok *true
naam *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Mogelijke meldingen:

  • Muziek bedienen staat uit (Instellingen → Zaak → Schermen en bediening).
  • Camerabeelden staan uit (Instellingen → Zaak → Schermen en bediening).
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tablets/<id>/sturen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/tablets/koppelen#

Deze tablet koppelen: { naam } → { id, naam, sleutel } (de sleutel bewaart de tablet zelf)

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
id *tekst
naam *tekst
sleutel *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tablets/koppelen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

Tweede scherm

Het adres van de kassaschermen in het netwerk van de zaak (IP-adres en poort), voor een tweede scherm op een tablet of telefoon: muziek (/muziek) en camera's (/camera).

GET/api/schermadres#

{ adressen: ['http://192.168.1.20:3000', …] }: hier opent een tablet in hetzelfde netwerk de schermen

Antwoord 200

VeldTypeUitleg
adressen *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/schermadres" \
  -H "Authorization: Bearer <token>"

Te laat

Melding bij te lange doorlooptijd (migratie 088): te late afhaal- en bezorgbestellingen, excuus aan de klant met eventueel een tegoedbon.

GET/api/beheer/telaat#

De instelling, en wat er ingesteld is om een excuus te kunnen sturen (sms, e-mail, kortingscodes)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
instelling *TeLaatInstelling
migratie *ja/nee
sms *ja/nee
mail *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/telaat" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/telaat#

{ aan, minuten, bericht: uit|vragen|automatisch, tegoed: { soort, waarde, dagen } | null, tekst }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
instelling *TeLaatInstelling

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/telaat" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/telaat#

Te late bestellingen van de afgelopen 24 uur (open eerst), en wat er kan (excuus, tegoedbon)

Antwoord 200

VeldTypeUitleg
aan *ja/nee
bericht *tekst

Een van: "uit" "automatisch" "vragen"

tegoed *ja/nee
meldingen *lijst van TeLaatMelding

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/telaat" \
  -H "Authorization: Bearer <token>"
POST/api/telaat/{id}/afgehandeld#

Afgehandeld: weg uit de open meldingen

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
aan *ja/nee
bericht *tekst

Een van: "uit" "automatisch" "vragen"

tegoed *ja/nee
meldingen *lijst van TeLaatMelding

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/telaat/<id>/afgehandeld" \
  -H "Authorization: Bearer <token>"
POST/api/telaat/{id}/excuus#

Excuus naar de klant (sms en/of e-mail), met de tegoedbon als die is ingesteld

Toegang

Controleert daarnaast: korting (Korting geven).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
aan *ja/nee
bericht *tekst

Een van: "uit" "automatisch" "vragen"

tegoed *ja/nee
meldingen *lijst van TeLaatMelding
via *lijst van tekst
code *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/telaat/<id>/excuus" \
  -H "Authorization: Bearer <token>"

Bank (op rekening)

Bankafschrift inlezen (CAMT.053, MT940, CODA) en de bankkoppeling via Enable Banking (migratie 087): bijschrijvingen afboeken bij facturen op rekening.

GET/api/bank/terugopenbaar#

Toegang: Openbaar: werkt zonder aanmelden.

Toegang

Openbaar: werkt zonder aanmelden.

Antwoord 200 · text/html

tekst

Foutmeldingen

400

Ongeldige invoer.

Voorbeeld (curl)
curl "http://kassa:4000/api/bank/terug"
GET/api/beheer/bankkoppeling#

Bankkoppeling: app ingesteld (uit .env of niet), terugadres, gekoppeld, bank, rekeningen, geldig tot, autom…

Bankkoppeling: app ingesteld (uit .env of niet), terugadres, gekoppeld, bank, rekeningen, geldig tot, automatisch, laatste keer en fout.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

21 velden tonen
VeldTypeUitleg
bijgewerkt *ja/nee
opRekening *ja/nee
app *object
app.ingesteld *ja/nee
app.uitEnv *ja/nee
app.appId *tekst of null
redirect *tekst
redirectUitEnv *ja/nee
terugadres *tekst of null
verbonden *ja/nee
verlopen *ja/nee
bank *object of null
bank.naam *tekst
bank.land *tekst of null
rekeningen *lijst van object
rekeningen[].iban *tekst of null
rekeningen[].naam *tekst of null
geldigTot *tekst of null
automatisch *ja/nee
laatstOpgehaald *tekst of null
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bankkoppeling" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bankkoppeling/app#

{ appId, sleutel }: de app bij Enable Banking (sleutel = inhoud van het .pem-bestand; leeg = houden, null =…

{ appId, sleutel }: de app bij Enable Banking (sleutel = inhoud van het .pem-bestand; leeg = houden, null = wissen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

21 velden tonen
VeldTypeUitleg
bijgewerkt *ja/nee
opRekening *ja/nee
app *object
app.ingesteld *ja/nee
app.uitEnv *ja/nee
app.appId *tekst of null
redirect *tekst
redirectUitEnv *ja/nee
terugadres *tekst of null
verbonden *ja/nee
verlopen *ja/nee
bank *object of null
bank.naam *tekst
bank.land *tekst of null
rekeningen *lijst van object
rekeningen[].iban *tekst of null
rekeningen[].naam *tekst of null
geldigTot *tekst of null
automatisch *ja/nee
laatstOpgehaald *tekst of null
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bankkoppeling/app" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/beheer/bankkoppeling/banken#

?land=NL|BE: de banken die via Enable Banking te koppelen zijn

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
landzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
banken *lijst van object
banken[].naam *tekst
banken[].land *tekst
banken[].logo *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bankkoppeling/banken" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bankkoppeling/instellingen#

{ automatisch }: zeker bij een factuur zelf afboeken (standaard uit)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

21 velden tonen
VeldTypeUitleg
bijgewerkt *ja/nee
opRekening *ja/nee
app *object
app.ingesteld *ja/nee
app.uitEnv *ja/nee
app.appId *tekst of null
redirect *tekst
redirectUitEnv *ja/nee
terugadres *tekst of null
verbonden *ja/nee
verlopen *ja/nee
bank *object of null
bank.naam *tekst
bank.land *tekst of null
rekeningen *lijst van object
rekeningen[].iban *tekst of null
rekeningen[].naam *tekst of null
geldigTot *tekst of null
automatisch *ja/nee
laatstOpgehaald *tekst of null
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bankkoppeling/instellingen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/bankkoppeling/ontkoppelen#

Ontkoppelen (de toestemming bij de bank intrekken); de bijschrijvingen blijven

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

21 velden tonen
VeldTypeUitleg
bijgewerkt *ja/nee
opRekening *ja/nee
app *object
app.ingesteld *ja/nee
app.uitEnv *ja/nee
app.appId *tekst of null
redirect *tekst
redirectUitEnv *ja/nee
terugadres *tekst of null
verbonden *ja/nee
verlopen *ja/nee
bank *object of null
bank.naam *tekst
bank.land *tekst of null
rekeningen *lijst van object
rekeningen[].iban *tekst of null
rekeningen[].naam *tekst of null
geldigTot *tekst of null
automatisch *ja/nee
laatstOpgehaald *tekst of null
fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bankkoppeling/ontkoppelen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bankkoppeling/ophalen#

Nu de bijschrijvingen ophalen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
nieuw *getal
geboekt *getal
voorstel *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bankkoppeling/ophalen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bankkoppeling/verbinden#

{ bank, land }: inloggen bij de bank starten; geeft { url } om te openen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
url *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bankkoppeling/verbinden" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/oprekening/bank#

Bijschrijvingen (open eerst, met voorstel), en of er een bank gekoppeld is

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Antwoord 200

VeldTypeUitleg
transacties *lijst van BankTransactie
koppeling *object
koppeling.verbonden *ja/nee
koppeling.verlopen *ja/nee
koppeling.bank *object of null
koppeling.bank.naam *tekst
koppeling.bank.land *tekst of null
koppeling.laatstOpgehaald *tekst of null
koppeling.automatisch *ja/nee
koppeling.fout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/oprekening/bank" \
  -H "Authorization: Bearer <token>"
POST/api/oprekening/bank/{id}/boeken#

{ factuurId?

}: deze bijschrijving afboeken bij die factuur (leeg = het voorstel), als "Overgemaakt (bank)" op de bankdatum.

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
transacties *lijst van BankTransactie
transactie *BankTransactie

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oprekening/bank/<id>/boeken" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/oprekening/bank/{id}/heropenen#

Een genegeerde bijschrijving weer open zetten

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
transacties *lijst van BankTransactie

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oprekening/bank/<id>/heropenen" \
  -H "Authorization: Bearer <token>"
POST/api/oprekening/bank/{id}/negeren#

Hoort niet bij een factuur op rekening

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
transacties *lijst van BankTransactie

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oprekening/bank/<id>/negeren" \
  -H "Authorization: Bearer <token>"
POST/api/oprekening/bank/afschrift#

Bankafschrift inlezen: { inhoud } = de tekst van het bestand (CAMT.053-XML, MT940 of CODA)

Alleen bijschrijvingen; dubbele regels worden overgeslagen. Zeker bij een factuur en "automatisch" aan: meteen afgeboekt.

Toegang

Vereist recht op_rekening (Op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
transacties *lijst van BankTransactie
bron *tekst

Een van: "camt" "mt940" "coda" "enablebanking"

gelezen *getal
nieuw *getal
geboekt *getal
voorstel *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/oprekening/bank/afschrift" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

hotel

GET/api/beheer/hotel#

Toegang: Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

32 velden tonen
VeldTypeUitleg
migratie *ja/nee
instelling *object
instelling.aan *ja/nee
instelling.leverancier *tekst of null

Een van: "mews" "apaleo" "cloudbeds" "demo" "amadeus" "bookingexperts" "clock" "eviivo" "guestline" "hotelogix" "infor" "littlehotelier" "opera" "protel" "roomraccoon" "shiji" "stayntouch" "vips" "sirvoy"

instelling.omgeving *tekst

test- of echte omgeving (Mews demo, Cloudbeds sandbox ...)

Een van: "test" "productie"

instelling.serviceId *tekst of null

Mews: service (restaurant/bar) en boekhoudcategorie; apaleo: property-id en subrekening; Cloudbeds: property-id

instelling.categorieId *tekst of null
instelling.propertyId *tekst of null
instelling.basisUrl *tekst of null

eigen adres van de API (bv. de OHIP-gateway van OPERA, de server van VIPS of Infor); leeg = het standaardadres

instelling.btwCodes *object

Mews: btw-code per percentage (bv. {"21":"BE-2017-S","12":"BE-2017-R2"}); apaleo: vatType per percentage

instelling.omschrijving *tekst

omschrijving op de hotelrekening, {bon} = bonnummer

instelling.zelfbediening *Zelfbediening

de gast zet zelf op zijn kamer: op de kiosk en/of in de webshop (standaard uit), tot dit bedrag per bestelling (centen)

status *tekst
melding *tekst of null
ingevuld *object
webhook *ja/nee

Sirvoy: is er een webhook-adres gemaakt (de sleutel zelf is alleen bij het maken te zien)

migratie134 *ja/nee

migratie 134 gedraaid (nodig voor Sirvoy)

portaalWebhook *tekst of null

Sirvoy: webhook-adres via het beheerportaal (zonder ?sleutel=), null = de kassa hangt niet aan het portaal

portaalVerbonden *ja/nee
catalogus *lijst van HotelCatalogusItem
boekingen *lijst van object
boekingen[].id *alles
boekingen[].leverancier *alles
boekingen[].kamer *alles
boekingen[].gast *alles
boekingen[].bedrag *alles
boekingen[].status *alles
boekingen[].fout *object of null
boekingen[].externId *object of null
boekingen[].op *tekst
boekingen[].regels *lijst van HotelBoekregel of null
boekingen[].bon *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/hotel" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/hotel#

Toegang: Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

32 velden tonen
VeldTypeUitleg
migratie *ja/nee
instelling *object
instelling.aan *ja/nee
instelling.leverancier *tekst of null

Een van: "mews" "apaleo" "cloudbeds" "demo" "amadeus" "bookingexperts" "clock" "eviivo" "guestline" "hotelogix" "infor" "littlehotelier" "opera" "protel" "roomraccoon" "shiji" "stayntouch" "vips" "sirvoy"

instelling.omgeving *tekst

test- of echte omgeving (Mews demo, Cloudbeds sandbox ...)

Een van: "test" "productie"

instelling.serviceId *tekst of null

Mews: service (restaurant/bar) en boekhoudcategorie; apaleo: property-id en subrekening; Cloudbeds: property-id

instelling.categorieId *tekst of null
instelling.propertyId *tekst of null
instelling.basisUrl *tekst of null

eigen adres van de API (bv. de OHIP-gateway van OPERA, de server van VIPS of Infor); leeg = het standaardadres

instelling.btwCodes *object

Mews: btw-code per percentage (bv. {"21":"BE-2017-S","12":"BE-2017-R2"}); apaleo: vatType per percentage

instelling.omschrijving *tekst

omschrijving op de hotelrekening, {bon} = bonnummer

instelling.zelfbediening *Zelfbediening

de gast zet zelf op zijn kamer: op de kiosk en/of in de webshop (standaard uit), tot dit bedrag per bestelling (centen)

status *tekst
melding *tekst of null
ingevuld *object
webhook *ja/nee

Sirvoy: is er een webhook-adres gemaakt (de sleutel zelf is alleen bij het maken te zien)

migratie134 *ja/nee

migratie 134 gedraaid (nodig voor Sirvoy)

portaalWebhook *tekst of null

Sirvoy: webhook-adres via het beheerportaal (zonder ?sleutel=), null = de kassa hangt niet aan het portaal

portaalVerbonden *ja/nee
catalogus *lijst van HotelCatalogusItem
boekingen *lijst van object
boekingen[].id *alles
boekingen[].leverancier *alles
boekingen[].kamer *alles
boekingen[].gast *alles
boekingen[].bedrag *alles
boekingen[].status *alles
boekingen[].fout *object of null
boekingen[].externId *object of null
boekingen[].op *tekst
boekingen[].regels *lijst van HotelBoekregel of null
boekingen[].bon *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/hotel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/hotel/boekingen/{id}/ingevoerd#

Toegang: Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
ingevoerdalles

Antwoord 200

32 velden tonen
VeldTypeUitleg
migratie *ja/nee
instelling *object
instelling.aan *ja/nee
instelling.leverancier *tekst of null

Een van: "mews" "apaleo" "cloudbeds" "demo" "amadeus" "bookingexperts" "clock" "eviivo" "guestline" "hotelogix" "infor" "littlehotelier" "opera" "protel" "roomraccoon" "shiji" "stayntouch" "vips" "sirvoy"

instelling.omgeving *tekst

test- of echte omgeving (Mews demo, Cloudbeds sandbox ...)

Een van: "test" "productie"

instelling.serviceId *tekst of null

Mews: service (restaurant/bar) en boekhoudcategorie; apaleo: property-id en subrekening; Cloudbeds: property-id

instelling.categorieId *tekst of null
instelling.propertyId *tekst of null
instelling.basisUrl *tekst of null

eigen adres van de API (bv. de OHIP-gateway van OPERA, de server van VIPS of Infor); leeg = het standaardadres

instelling.btwCodes *object

Mews: btw-code per percentage (bv. {"21":"BE-2017-S","12":"BE-2017-R2"}); apaleo: vatType per percentage

instelling.omschrijving *tekst

omschrijving op de hotelrekening, {bon} = bonnummer

instelling.zelfbediening *Zelfbediening

de gast zet zelf op zijn kamer: op de kiosk en/of in de webshop (standaard uit), tot dit bedrag per bestelling (centen)

status *tekst
melding *tekst of null
ingevuld *object
webhook *ja/nee

Sirvoy: is er een webhook-adres gemaakt (de sleutel zelf is alleen bij het maken te zien)

migratie134 *ja/nee

migratie 134 gedraaid (nodig voor Sirvoy)

portaalWebhook *tekst of null

Sirvoy: webhook-adres via het beheerportaal (zonder ?sleutel=), null = de kassa hangt niet aan het portaal

portaalVerbonden *ja/nee
catalogus *lijst van HotelCatalogusItem
boekingen *lijst van object
boekingen[].id *alles
boekingen[].leverancier *alles
boekingen[].kamer *alles
boekingen[].gast *alles
boekingen[].bedrag *alles
boekingen[].status *alles
boekingen[].fout *object of null
boekingen[].externId *object of null
boekingen[].op *tekst
boekingen[].regels *lijst van HotelBoekregel of null
boekingen[].bon *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/hotel/boekingen/<id>/ingevoerd" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "ingevoerd": null
}'
POST/api/beheer/hotel/boekingen/{id}/opnieuw#

Toegang: Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *true
externId *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/hotel/boekingen/<id>/opnieuw" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/hotel/test#

Toegang: Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
melding *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/hotel/test" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/hotel/webhook#

Toegang: Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
sleutel *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/hotel/webhook" \
  -H "Authorization: Bearer <token>"
GET/api/hotel#

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/hotel" \
  -H "Authorization: Bearer <token>"
GET/api/hotel/gasten#

Parameters

NaamWaarTypeUitleg
zoekzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
gasten *lijst van HotelGast

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/hotel/gasten" \
  -H "Authorization: Bearer <token>"
GET/api/hotel/sirvoy#

Parameters

NaamWaarTypeUitleg
sleutelzoekterm (?…)tekst

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/hotel/sirvoy" \
  -H "Authorization: Bearer <token>"
POST/api/hotel/sirvoy#

Parameters

NaamWaarTypeUitleg
sleutelzoekterm (?…)tekst

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/hotel/sirvoy" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'

voorschot

POST/api/bestellingen/{id}/voorschot#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
bonalles

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Deze bestelling is al afgerekend.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/voorschot" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "bon": null
}'
GET/api/voorschotten/{bon}#

Parameters

NaamWaarTypeUitleg
bon *padtekst

Antwoord 200

VeldTypeUitleg
bon *getal
regels *lijst van object
regels[].naam *tekst
regels[].aantal *getal
regels[].verrekend *getal
regels[].prijsIncl *getal
regels[].btwCode *tekst
open *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/voorschotten/<bon>" \
  -H "Authorization: Bearer <token>"

kassaopties

GET/api/beheer/kassaopties#

Toegang: Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

13 velden tonen
VeldTypeUitleg
opties *KassaOpties
nietGetest *object
nietGetest.onbetaaldtekst
nietGetest.gastentekst
nietGetest.optellentekst
nietGetest.meenementekst
nietGetest.stoeltekst
nietGetest.terugnementekst
nietGetest.voorschottekst
nietGetest.spvtekst
nietGetest.aparttekst
nietGetest.verbeterentekst
nietGetest.zonderwerkbontekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/kassaopties" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/kassaopties#

Toegang: Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

13 velden tonen
VeldTypeUitleg
opties *KassaOpties
nietGetest *object
nietGetest.onbetaaldtekst
nietGetest.gastentekst
nietGetest.optellentekst
nietGetest.meenementekst
nietGetest.stoeltekst
nietGetest.terugnementekst
nietGetest.voorschottekst
nietGetest.spvtekst
nietGetest.aparttekst
nietGetest.verbeterentekst
nietGetest.zonderwerkbontekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/kassaopties" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/kassaopties#

Antwoord 200

Type: KassaOpties

VeldTypeUitleg
onbetaald *ja/nee
gasten *ja/nee
optellen *ja/nee
meenemen *ja/nee
stoel *ja/nee
terugnemen *ja/nee
voorschot *ja/nee
spv *ja/nee
apart *ja/nee
verbeteren *ja/nee
zonderwerkbon *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/kassaopties" \
  -H "Authorization: Bearer <token>"

webshop

POST/api/beheer/webshop/instellingen#

beheer

Body (JSON)

VeldTypeUitleg
werkbonalles

Antwoord 200

Type: WebshopInstelling

VeldTypeUitleg
werkbon *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/webshop/instellingen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "werkbon": null
}'
POST/api/beheer/webshop/menu#

Menu nu naar de webshop sturen (gebeurt ook vanzelf na een wijziging in de producten)

Antwoord 200

VeldTypeUitleg
ok *ja/nee
aantal *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/webshop/menu" \
  -H "Authorization: Bearer <token>"
GET/api/webshop/bestellingen#

Parameters

NaamWaarTypeUitleg
dagenzoekterm (?…)tekst

Antwoord 200

lijst van WsOverzicht

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/webshop/bestellingen" \
  -H "Authorization: Bearer <token>"
POST/api/webshop/bestellingen/{id}/afronden#

Online betaald in de webshop: afrekenen als "online" voor het openstaande bedrag, met de fooi van de gast (…

Online betaald in de webshop: afrekenen als "online" voor het openstaande bedrag, met de fooi van de gast (bon in het journaal, zoals elke verkoop). Op rekening besteld (migratie 108): afrekenen op rekening, met meteen de factuur (of als post bij een klant met verzamelfactuur, migratie 132). Op de kamer besteld (migratie 133, hotelkoppeling): afrekenen op de kamer en de bon op de hotelrekening. Contant of pin bij afhalen/bezorgen: gewoon afrekenen via de bestelling. België (GKS 2.0): fooi, op rekening en op de kamer alleen als ze getest zijn (zoals aan de kassa).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

object of AfrekenResultaat

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden.

409

Mogelijke meldingen:

  • Deze bestelling is geannuleerd.
  • Deze bestelling wordt bij afhalen of bezorgen betaald: reken af via de bestelling (contant of pin).
  • Deze bestelling is al afgerekend.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/webshop/bestellingen/<id>/afronden" \
  -H "Authorization: Bearer <token>"
POST/api/webshop/bestellingen/{id}/annuleren#

Annuleren door de zaak (bv

product op): de regels vervallen, online betaald = de webshop betaalt terug.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
redenalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Niet gevonden of al afgerekend (dan via een retour).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/webshop/bestellingen/<id>/annuleren" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "reden": null
}'
POST/api/webshop/bestellingen/{id}/status#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
statusalles

Antwoord 200

VeldTypeUitleg
ok *ja/nee

Foutmeldingen

400

Onbekende status.

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Bestelling niet gevonden of geannuleerd.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/webshop/bestellingen/<id>/status" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "status": null
}'
POST/api/webshop/pauze#

Webshop even pauzeren en/of druk melden (migratie 061)

Pauze: de gast kan niet bestellen en ziet de tekst. Druk: zoveel minuten extra bij "zo snel mogelijk" (webshop én bestellingen aan de kassa). Gaat met het menu mee.

Body (JSON)

VeldTypeUitleg
aanalles
tekstalles
drukteMinalles

Antwoord 200

VeldTypeUitleg
pauze *ja/nee
pauzeTekst *tekst of null
drukteMin *getal

Foutmeldingen

400

Druk: kies 0 tot 240 minuten extra.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

De database is niet bijgewerkt. Draai npm run db:migrate (migratie 061).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/webshop/pauze" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aan": null,
  "tekst": null,
  "drukteMin": null
}'
GET/api/webshop/status#

Stand van de webshop (voor de knop in de bovenbalk en Instellingen → Zaak)

Antwoord 200

14 velden tonen
VeldTypeUitleg
aan *ja/nee
url *tekst of null
tafels *ja/nee
reserveren *ja/nee
portaal *ja/nee
verbonden *ja/nee
fout *tekst of null
laatstOpgehaald *tekst of null
menuOp *tekst of null
lopend *getal
pauzeja/nee
pauzeTekst *tekst of null
drukteMingetal
werkbon *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/webshop/status" \
  -H "Authorization: Bearer <token>"

wettelijk

GET/api/beheer/btw-assistent#

Alle producten met hun btw, de (geraden) soort, het advies en de planning

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Antwoord 200

VeldTypeUitleg
land *tekst

Een van: "NL" "BE"

tarieven *lijst van Tarief
producten *lijst van AssistentProduct
ontbreekt *lijst van getal
planning *lijst van BtwPlanning

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/btw-assistent" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/btw-assistent#

{ producten: [{ artikelId, soort }], vanaf?: 'JJJJ-MM-DD' } — soort opslaan en de tarieven volgens het advi…

{ producten: [{ artikelId, soort }], vanaf?: 'JJJJ-MM-DD' } — soort opslaan en de tarieven volgens het advies zetten.

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

VeldTypeUitleg
productenalles
vanafalles

Antwoord 200

VeldTypeUitleg
ok *true
gewijzigd *getal
gepland *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/btw-assistent" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "producten": null,
  "vanaf": null
}'
GET/api/beheer/btw-planning#

Geplande en (laatste 180 dagen) uitgevoerde btw-wijzigingen

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Antwoord 200

VeldTypeUitleg
planning *lijst van BtwPlanning

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/btw-planning" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/btw-planning#

Nieuwe wijziging: { soort: 'product', artikelId, kolom: 'ter_plaatse'|'afhalen', tariefId, vanaf } of { soo…

Nieuwe wijziging: { soort: 'product', artikelId, kolom: 'ter_plaatse'|'afhalen', tariefId, vanaf } of { soort: 'percentage', tariefId, nieuwPercentage, vanaf } (alleen Nederland).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
ok *ja/nee
planning *lijst van BtwPlanning

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/btw-planning" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/btw-planning/{id}/annuleren#

Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Toegang

Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *ja/nee
planning *lijst van BtwPlanning

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.

404

Geplande wijziging niet gevonden (of al uitgevoerd).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/btw-planning/<id>/annuleren" \
  -H "Authorization: Bearer <token>"

facturen

GET/api/beheer/facturen#

Facturen, nieuwste eerst; ?zoek= nummer, klant of bonnummer

Toegang

Vereist recht omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
zoekzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
facturen *lijst van FactuurRij
kanalen *object
kanalen.email *ja/nee
kanalen.billit *ja/nee
kanalen.http *ja/nee
kanalen.billitSandbox *ja/nee
kanalen.storecove *ja/nee
kanalen.banqup *ja/nee
kanalen.banqupSandbox *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/facturen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/facturen#

{ ticketId, afnemer: { naam, adres, postcode, plaats, land, btwNummer, kvk, peppolId, email, referentie }, …

{ ticketId, afnemer: { naam, adres, postcode, plaats, land, btwNummer, kvk, peppolId, email, referentie }, notitie? }

Toegang

Vereist recht omzet_periode (Omzet per periode).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
factuur *FactuurRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/facturen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/beheer/facturen/{id}#

Toegang: Vereist recht omzet_periode (Omzet per periode).

Toegang

Vereist recht omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
factuur *FactuurRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

404

Factuur niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/facturen/<id>" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/facturen/{id}/bestand#

?soort=ubl (XML, Peppol BIS 3) of html: { naam, type, inhoud }

Toegang

Vereist recht omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
id *padtekst
soortzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
naam *tekst
type *tekst
inhoud *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

404

Factuur niet gevonden.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/facturen/<id>/bestand" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/facturen/{id}/versturen#

{ via?: 'email'|'billit'|'storecove'|'banqup'|'http'|'download', aan?: e-mailadres } — leeg = de standaard …

{ via?: 'email'|'billit'|'storecove'|'banqup'|'http'|'download', aan?: e-mailadres } — leeg = de standaard verzendwijze.

Toegang

Vereist recht omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
factuur *FactuurRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/facturen/<id>/versturen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/beheer/facturen/afnemers#

Eerdere klanten, om snel te kiezen

Toegang

Vereist recht omzet_periode (Omzet per periode).

Antwoord 200

VeldTypeUitleg
afnemers *lijst van FactuurAfnemer

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/facturen/afnemers" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/facturen/bon/{ticketId}#

Voorstel bij een bon: regels, btw, totaal en of er al een factuur is

Toegang

Vereist recht omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
ticketId *padtekst

Antwoord 200

VeldTypeUitleg
bonnummer *getal
regels *lijst van FactuurRegel
btw *lijst van FactuurBtw
totaal *getal
bestaand *object of null
bestaand.id *tekst
bestaand.nummer *tekst
foutalles
codealles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/facturen/bon/<ticketId>" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/facturen/instellingen#

Gegevens op de factuur en welke verzendwijzen er zijn (Billit, Storecove, Banqup en HTTP: in .env of in de …

Gegevens op de factuur en welke verzendwijzen er zijn (Billit, Storecove, Banqup en HTTP: in .env of in de app).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
gegevens *FactuurGegevens
kanalen *object
kanalen.email *ja/nee
kanalen.billit *ja/nee
kanalen.http *ja/nee
kanalen.billitSandbox *ja/nee
kanalen.storecove *ja/nee
kanalen.banqup *ja/nee
kanalen.banqupSandbox *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/facturen/instellingen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/facturen/instellingen#

{ kvk, iban, bic, peppolId, betaaltermijn, voorvoegsel, verzendwijze, kopie, notitie } — niet meegestuurd =…

{ kvk, iban, bic, peppolId, betaaltermijn, voorvoegsel, verzendwijze, kopie, notitie } — niet meegestuurd = niet wijzigen.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
gegevens *FactuurGegevens
kanalen *object
kanalen.email *ja/nee
kanalen.billit *ja/nee
kanalen.http *ja/nee
kanalen.billitSandbox *ja/nee
kanalen.storecove *ja/nee
kanalen.banqup *ja/nee
kanalen.banqupSandbox *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/facturen/instellingen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/beheer/facturen/peppol#

Peppol-diensten (Billit, Storecove, Banqup, eigen adres): per dienst per veld { waarde, ingevuld, uitEnv }.…

Peppol-diensten (Billit, Storecove, Banqup, eigen adres): per dienst per veld { waarde, ingevuld, uitEnv }. Geheime velden (sleutels, headers) zonder waarde.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

13 velden tonen
VeldTypeUitleg
diensten *object
diensten.http *object
diensten.billit *object
diensten.storecove *object
diensten.banqup *object
kanalen *object
kanalen.email *ja/nee
kanalen.billit *ja/nee
kanalen.http *ja/nee
kanalen.billitSandbox *ja/nee
kanalen.storecove *ja/nee
kanalen.banqup *ja/nee
kanalen.banqupSandbox *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/facturen/peppol" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/facturen/peppol#

{ billit?: { apiKey, partyId, sandbox }, storecove?: { apiKey, legalEntityId, url }, banqup?: { clientId, c…

{ billit?: { apiKey, partyId, sandbox }, storecove?: { apiKey, legalEntityId, url }, banqup?: { clientId, clientSecret, spaceId, sandbox, url }, http?: { url, headers } } Niet meegestuurd = niet wijzigen; velden uit .env worden genegeerd; leeg geheim = houden, null = wissen.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

13 velden tonen
VeldTypeUitleg
diensten *object
diensten.http *object
diensten.billit *object
diensten.storecove *object
diensten.banqup *object
kanalen *object
kanalen.email *ja/nee
kanalen.billit *ja/nee
kanalen.http *ja/nee
kanalen.billitSandbox *ja/nee
kanalen.storecove *ja/nee
kanalen.banqup *ja/nee
kanalen.banqupSandbox *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/facturen/peppol" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

haccp

GET/api/beheer/haccp#

Alle meetpunten en taken (ook om in te stellen)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

20 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/haccp" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/haccp/overzicht#

?van=JJJJ-MM-DD&tot=JJJJ-MM-DD (hooguit 366 dagen): registraties, afwijkingen, gemiste dagen en CSV

Toegang

Vereist recht omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
van *tekst
tot *tekst
registraties *lijst van HaccpRegistratie
afwijkingen *getal
gemist *lijst van object
gemist[].naam *tekst
gemist[].dagen *lijst van tekst
csv *tekst

Foutmeldingen

400

Mogelijke meldingen:

  • Kies een geldige periode.
  • Kies een periode van hooguit een jaar.
401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/haccp/overzicht" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/haccp/punten#

{ naam, soort, minTemp, maxTemp, frequentie }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

20 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/haccp/punten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/haccp/punten/{id}#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

20 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/haccp/punten/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/haccp/punten/{id}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

20 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Meetpunt niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/haccp/punten/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/haccp/standaard#

De standaardlijst toevoegen (koeling, vriezer, warmhouden, kerntemperatuur, ontvangst; schoonmaak en contro…

De standaardlijst toevoegen (koeling, vriezer, warmhouden, kerntemperatuur, ontvangst; schoonmaak en controles).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

23 velden tonen
VeldTypeUitleg
toegevoegd *object
toegevoegd.punten *getal
toegevoegd.taken *getal
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/haccp/standaard" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/haccp/taken#

{ naam, ruimte, instructie, frequentie, weekdag }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

20 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/haccp/taken" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/haccp/taken/{id}#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

20 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/haccp/taken/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/haccp/taken/{id}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

20 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Taak niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/haccp/taken/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/haccp#

Meetpunten, taken, wat er vandaag nog moet en de registraties van vandaag

Antwoord 200

22 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst
open *lijst van HaccpOpen
vandaag *lijst van HaccpRegistratie

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/haccp" \
  -H "Authorization: Bearer <token>"
POST/api/haccp/registraties#

{ puntId, waarde, actie?, opmerking?

} of { taakId, gedaan?, actie?, opmerking? }; bij een afwijking is actie verplicht.

Body (JSON)

Geen velden.

Antwoord 200

24 velden tonen
VeldTypeUitleg
punten *lijst van object
punten[].id *tekst
punten[].naam *tekst
punten[].soort *tekst

Een van: "overig" "ontvangst" "koeling" "vriezer" "warmhouden" "kerntemperatuur" "terugkoelen"

punten[].minTemp *getal of null
punten[].maxTemp *getal of null
punten[].frequentie *tekst

Een van: "dagelijks" "2x_dag" "wekelijks" "bij_gebruik"

punten[].volgorde *getal
punten[].actief *ja/nee
punten[].aangemaaktOp *tekst
taken *lijst van object
taken[].id *tekst
taken[].naam *tekst
taken[].ruimte *tekst of null
taken[].instructie *tekst of null
taken[].frequentie *tekst

Een van: "dagelijks" "wekelijks" "maandelijks"

taken[].weekdag *getal of null

wekelijks: 1 = maandag ... 7 = zondag; null = ergens in de week

taken[].volgorde *getal
taken[].actief *ja/nee
taken[].aangemaaktOp *tekst
open *lijst van HaccpOpen
vandaag *lijst van HaccpRegistratie
registratie *HaccpRegistratie
afwijking *ja/nee

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/haccp/registraties" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

tap

GET/api/beheer/tap#

Bronnen (zonder sleutels), kranen en de lijst met merken en voorinstellingen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
bronnen *lijst van TapBron
kranen *lijst van TapKraan
merken *lijst van TapMerk

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/tap" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/tap/bronnen#

{ naam, merk, koppeling: webhook|tcp|serieel|map, instellingen, actief }; de sleutel komt alleen nu terug

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
bron *TapBron
sleuteltekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/bronnen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/tap/bronnen/{id}#

Idem wijzigen; { nieuweSleutel: true } maakt een nieuwe sleutel (de oude werkt dan niet meer)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
bron *TapBron
sleuteltekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/bronnen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/tap/bronnen/{id}/koppelen#

Kegboard: { besluit: toestaan|weigeren|verbreken } voor het bord dat zich bij deze bron meldde

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
bron *TapBron

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/bronnen/<id>/koppelen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/tap/bronnen/{id}/map-lezen#

Map nu lezen (bij koppeling map)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
gelezen *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Bron niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/bronnen/<id>/map-lezen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/tap/bronnen/{id}/test#

Test-tap (zoals de tapcomputer hem zou sturen): { kraan, ml?, porties?, tafel?

}.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

Type: Ontvangen

VeldTypeUitleg
ontvangen *getal
geboekt *getal
dubbel *getal
onbekend *getal
fouten *getal

Foutmeldingen

400

Vul een kraan (of PLU) en eventueel ml in.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Bron niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/bronnen/<id>/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/tap/bronnen/{id}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
bronnen *lijst van TapBron
kranen *lijst van TapKraan

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Bron niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/bronnen/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/tap/kranen#

{ bronId, code, naam, artikelId, modus: portie|liter, portieMl, drempel }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
kranen *lijst van TapKraan
kraan *TapKraan

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/kranen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/tap/kranen/{id}#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
kranen *lijst van TapKraan
kraan *TapKraan

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/kranen/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/tap/kranen/{id}/test-vrijgave#

Gedoseerd tappen testen: één glas vrijgeven zonder bon (in het logboek)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *true
id *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/kranen/<id>/test-vrijgave" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/tap/kranen/{id}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
kranen *lijst van TapKraan

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Kraan niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tap/kranen/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/tap/overzicht#

Getapt, op de bon, afgekeurd, geannuleerd en nog open per kraan: ?van&tot (JJJJ-MM-DD); met CSV

Toegang

Vereist recht omzet_periode (Omzet per periode).

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
kranen *lijst van TapOverzichtRij
totaal *object
totaal.taps *getal
totaal.getaptMl *getal
totaal.geboektMl *getal
totaal.afgekeurdMl *getal
totaal.openMl *getal
totaal.geannuleerdMl *getal

op een bon gezet maar daarna geannuleerd (storno): wel getapt, niet verkocht

totaal.afgekeurdPerReden *object
csv *tekst

Foutmeldingen

400

Kies een geldige periode (van en tot, hooguit een jaar).

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/tap/overzicht" \
  -H "Authorization: Bearer <token>"
POST/api/tap/afkeuren#

{ tapIds: [...], reden: spoelen|breuk|proeven|personeel|gratis|overig, toelichting?

}

Toegang

Vereist recht storno (Regels schrappen na bestellen (storno)).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
taps *lijst van TapRij
afgekeurd *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: regels schrappen na bestellen (storno). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tap/afkeuren" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/tap/boeken#

{ tapIds: [...], bestellingId }: taps op deze bestelling zetten

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
taps *lijst van TapRij
geboekt *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tap/boeken" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/tap/bron/{id}/taps#

Taps melden: één tap, een lijst of { taps: [...] } (hooguit 500)

Per tap: kraan (of tap/plu), ml (of cl/liter/volume+eenheid) of porties, id (voorkomt dubbel boeken), tijdstip, tafel, bediening.

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
fouten *getal
ontvangen *getal
geboekt *getal
dubbel *getal
onbekend *getal

Foutmeldingen

400

Geen taps gevonden (verwacht JSON met kraan en ml, of een lijst daarvan).

401

Mogelijke meldingen:

  • Onbekende bron of verkeerde sleutel.
  • Niet aangemeld. Voer je pincode opnieuw in.
409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tap/bron/<id>/taps" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
GET/api/tap/bron/{id}/verkopen#

Verkopen voor analysesystemen (BarTrack, Dashbar ...): ?van&tot (JJJJ-MM-DD), hooguit 366 dagen

Parameters

NaamWaarTypeUitleg
id *padtekst
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
verkopen *lijst van object

Foutmeldingen

400

Kies een geldige periode (van en tot, hooguit een jaar).

401

Mogelijke meldingen:

  • Onbekende bron of verkeerde sleutel.
  • Niet aangemeld. Voer je pincode opnieuw in.
409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/tap/bron/<id>/verkopen" \
  -H "Authorization: Bearer <token>"
POST/api/tap/kegboard/{id}#

Kegboard event protocol v1: { v: 1, device, boot_id, sent_uptime_ms, events: [...] }

Zonder geldige sleutel 401 met { pairing: { state } }; met sleutel { commands: [...] }. Tapsysteem uit: 503 (het bord bewaart de berichten en probeert het later opnieuw).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tap/kegboard/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
GET/api/tap/open#

Taps die nog niet op een bon staan

Antwoord 200

VeldTypeUitleg
taps *lijst van TapRij

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/tap/open" \
  -H "Authorization: Bearer <token>"
GET/api/tap/vrijgaven#

Gedoseerd tappen: vrijgaven die lopen en die van het laatste uur

Antwoord 200

VeldTypeUitleg
vrijgaven *lijst van TapVrijgave

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/tap/vrijgaven" \
  -H "Authorization: Bearer <token>"
POST/api/tap/vrijgaven/{id}/opnieuw#

Opnieuw vrijgeven: alleen als er nog niets getapt is

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
vrijgaven *lijst van TapVrijgave

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tap/vrijgaven/<id>/opnieuw" \
  -H "Authorization: Bearer <token>"
POST/api/tap/vrijgaven/{id}/stoppen#

Kraan weer dicht (bv

vergist).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
vrijgaven *lijst van TapVrijgave

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tap/vrijgaven/<id>/stoppen" \
  -H "Authorization: Bearer <token>"

reserveringplatform

GET/api/beheer/reserveringsplatforms#

Gekoppelde platforms (zonder geheimen) en welke platforms in het land van de zaak werken

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
platforms *lijst van ResPlatformBron
beschikbaar *lijst van ResPlatform
alle *lijst van ResPlatform
land *tekst

Een van: "NL" "BE"

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/reserveringsplatforms" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/reserveringsplatforms#

{ platform, naam, actief, instellingen: { restaurantUuid, clientId, terugUrl }, geheimen: { clientSecret, t…

{ platform, naam, actief, instellingen: { restaurantUuid, clientId, terugUrl }, geheimen: { clientSecret, terugSleutel } }; de sleutel komt alleen nu terug.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
platform *ResPlatformBron
sleuteltekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reserveringsplatforms" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/reserveringsplatforms/{id}#

Idem wijzigen; geheimen leeg = houden, null = wissen; { nieuweSleutel: true } = nieuwe webhook-sleutel

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
platform *ResPlatformBron
sleuteltekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reserveringsplatforms/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/reserveringsplatforms/{id}/ophalen#

TheFork: nu ophalen (vandaag tot en met 14 dagen vooruit)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

Type: ResOntvangen

VeldTypeUitleg
nieuw *getal
bijgewerkt *getal
opTafel *getal
fouten *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Platform niet gevonden.

409

Ophalen kan alleen bij TheFork; de andere platforms sturen zelf naar de kassa.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reserveringsplatforms/<id>/ophalen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/reserveringsplatforms/{id}/test#

Test-reservering (zoals het platform hem zou sturen): { naam, personen, datum, tijd, tafel?

}.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

Type: ResOntvangen

VeldTypeUitleg
nieuw *getal
bijgewerkt *getal
opTafel *getal
fouten *getal

Foutmeldingen

400

Vul een naam, het aantal personen, een datum en een tijd in.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Platform niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reserveringsplatforms/<id>/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/reserveringsplatforms/{id}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
platforms *lijst van ResPlatformBron

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Platform niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reserveringsplatforms/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/reserveringen/platform/{id}#

Reserveringen van een platform: één reservering, een lijst, of { reservations | bookings: [...] }; per rese…

Reserveringen van een platform: één reservering, een lijst, of { reservations | bookings: [...] }; per reservering id, personen, tijd (of datum + tijd), naam, telefoon, e-mail, tafel, opmerking, status. TheFork: het seintje van de webhook ({ entityType, eventType, uuid }); de kassa haalt de reservering op. Staat het uit: 503 (het platform probeert het later opnieuw).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
fouten *getal
nieuw *getal
bijgewerkt *getal
opTafel *getal

Foutmeldingen

401

Mogelijke meldingen:

  • Onbekend platform of verkeerde sleutel.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/reserveringen/platform/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'

bi

GET/api/beheer/bi#

Koppelingen (zonder geheimen), de pakketten, de gegevens en het adres via het portaal

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
koppelingen *lijst van BiKoppeling
diensten *lijst van BiDienst
datasets *lijst van BiDatasetDef
periodes *lijst van "vandaag"
portaalAdres *tekst of null
portaalVerbonden *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bi" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bi#

{ dienst, manier, naam, actief, instellingen, geheimen }; de leessleutel (api) komt alleen nu terug

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
koppeling *BiKoppeling
sleuteltekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bi" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/bi/{id}#

Wijzigen; geheimen leeg = houden, null = wissen; { nieuweSleutel: true } = nieuwe leessleutel

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
koppeling *BiKoppeling
sleuteltekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bi/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/bi/{id}/test#

Testen: push = voorbeeldbon versturen en daarna wat er klaarstaat; bestand = nu exporteren

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

object

Foutmeldingen

400

Bij een API-koppeling haalt het BI-pakket zelf op: kopieer het adres en de sleutel.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Koppeling niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bi/<id>/test" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/bi/{id}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
koppelingen *lijst van BiKoppeling

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Koppeling niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/bi/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/bi/download/{dataset}#

Zelf downloaden (CSV/JSON) voor een periode: { naam, type, inhoud }

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
dataset *padtekst
vanzoekterm (?…)tekst
totzoekterm (?…)tekst
periodezoekterm (?…)tekst
formaatzoekterm (?…)tekst
scheidingzoekterm (?…)tekst
sleutelzoekterm (?…)tekst

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Onbekende gegevens.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bi/download/<dataset>" \
  -H "Authorization: Bearer <token>"
GET/api/beheer/bi/powerbi#

Kant-en-klaar Power BI-sjabloon (.pbit, lib/powerbi.ts) → { naam, type, base64 }

Het adres via het portaal staat er al in (als de kassa aan het klantportaal hangt); bij het openen vraagt Power BI de leessleutel.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
naam *tekst
type *tekst
base64 *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/bi/powerbi" \
  -H "Authorization: Bearer <token>"
GET/api/bi#

Welke gegevens er zijn (met kolommen), en welke periodes

Antwoord 200

VeldTypeUitleg
datasets *lijst van object
datasets[].adres *tekst
datasets[].code *tekst

Een van: "betalingen" "regels" "producten" "bonnen" "dagomzet" "uuromzet" "stornos" "medewerkers" "werktijden"

datasets[].naam *tekst
datasets[].omschrijving *tekst
datasets[].periode *ja/nee

false = stamgegevens (geen periode)

datasets[].kolommen *lijst van BiKolom
periodes *lijst van "vandaag"
voorbeeld *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/bi" \
  -H "Authorization: Bearer <token>"
GET/api/bi/{dataset}#

Eén dataset: ?van=&tot= (JJJJ-MM-DD) of ?periode= (standaard 30d), ?formaat=json|csv, ?scheiding=;

Parameters

NaamWaarTypeUitleg
dataset *padtekst
vanzoekterm (?…)tekst
totzoekterm (?…)tekst
periodezoekterm (?…)tekst
formaatzoekterm (?…)tekst
scheidingzoekterm (?…)tekst
sleutelzoekterm (?…)tekst

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Onbekende gegevens. Zie GET /api/bi voor de lijst.

Voorbeeld (curl)
curl "http://kassa:4000/api/bi/<dataset>" \
  -H "Authorization: Bearer <token>"

spaarreview

GET/api/beheer/sparen-reviews#

Instellingen (zonder geheimen) en welke spaarprogramma's in het land van de zaak werken

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

30 velden tonen
VeldTypeUitleg
beschikbaar *lijst van SpaarPlatformDef
alle *lijst van SpaarPlatformDef
spaarpartner *ja/nee
reviews *ja/nee
land *tekst
spaar *object

het eerste spaarprogramma (zoals voor migratie 107)

spaar.platform *tekst of null

Een van: "piggy" "joyn"

spaar.manier *tekst

Een van: "api" "qr"

spaar.instellingen *object
spaar.geheimIngevuld *object
spaar.opBon *ja/nee
platformen *lijst van object

migratie 107: alle spaarprogramma's (meer tegelijk)

platformen[].platform *tekst

Een van: "piggy" "joyn"

platformen[].naam *tekst
platformen[].manier *tekst

Een van: "api" "qr"

platformen[].instellingen *object
platformen[].geheimIngevuld *object
meerTegelijk *ja/nee

kan de kassa meer spaarprogramma's tegelijk (migratie 107)

review *object
review.google *tekst
review.trustpilot *tekst
review.trustpilotBcc *tekst
review.naUur *getal
review.dagen *getal
review.opBon *ja/nee
review.links *lijst van ReviewLink
mailIngesteld *ja/nee
wachtend *getal

reviewmails die nog wachten en die de afgelopen 30 dagen verstuurd zijn

verstuurd30 *getal
laatsteFout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/sparen-reviews" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/sparen-reviews#

{ spaar: { platform: 'piggy'|'joyn'|null, manier: 'qr'|'api', instellingen, geheimen, opBon }, review: { go…

{ spaar: { platform: 'piggy'|'joyn'|null, manier: 'qr'|'api', instellingen, geheimen, opBon }, review: { google, trustpilot, trustpilotBcc, naUur, dagen, opBon } }; geheimen leeg = houden, null = wissen.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

30 velden tonen
VeldTypeUitleg
beschikbaar *lijst van SpaarPlatformDef
alle *lijst van SpaarPlatformDef
spaarpartner *ja/nee
reviews *ja/nee
land *tekst
spaar *object

het eerste spaarprogramma (zoals voor migratie 107)

spaar.platform *tekst of null

Een van: "piggy" "joyn"

spaar.manier *tekst

Een van: "api" "qr"

spaar.instellingen *object
spaar.geheimIngevuld *object
spaar.opBon *ja/nee
platformen *lijst van object

migratie 107: alle spaarprogramma's (meer tegelijk)

platformen[].platform *tekst

Een van: "piggy" "joyn"

platformen[].naam *tekst
platformen[].manier *tekst

Een van: "api" "qr"

platformen[].instellingen *object
platformen[].geheimIngevuld *object
meerTegelijk *ja/nee

kan de kassa meer spaarprogramma's tegelijk (migratie 107)

review *object
review.google *tekst
review.trustpilot *tekst
review.trustpilotBcc *tekst
review.naUur *getal
review.dagen *getal
review.opBon *ja/nee
review.links *lijst van ReviewLink
mailIngesteld *ja/nee
wachtend *getal

reviewmails die nog wachten en die de afgelopen 30 dagen verstuurd zijn

verstuurd30 *getal
laatsteFout *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/sparen-reviews" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/sparen-reviews/test-sparen#

Voorbeeld-spaarlink (€ 10) om te controleren of de gegevens kloppen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
platformtekst

Antwoord 200

VeldTypeUitleg
url *tekst of null
melding *tekst
platform *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/sparen-reviews/test-sparen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "platform": "tekst"
}'
GET/api/beheer/sparen-reviews/voorbeeld#

Voorbeeld van de reviewmail (onderwerp en tekst) in de taal van de bon

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
onderwerp *tekst
tekst *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/sparen-reviews/voorbeeld" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/sparen-reviews/wachtende-wissen#

Wachtende reviewmails niet meer versturen (de e-mailadressen gaan meteen weg)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
gewist *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/sparen-reviews/wachtende-wissen" \
  -H "Authorization: Bearer <token>"

reviewbeheer

GET/api/beheer/reviewbeheer#

Koppelingen (zonder geheimen), de platforms, het terugadres voor Google en welke apps van de leverancier he…

Koppelingen (zonder geheimen), de platforms, het terugadres voor Google en welke apps van de leverancier het portaal heeft.

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
aan *ja/nee
koppelingen *lijst van ReviewKoppeling
platforms *lijst van ReviewPlatformDef
redirectUri *tekst
portaal *object
portaal.google *ja/nee
portaal.trustpilot *ja/nee
portaal.redirectUri *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/reviewbeheer" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/reviewbeheer#

{ platform, manier, actief, instellingen, geheimen }; geheimen leeg = houden, null = wissen

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

Type: ReviewKoppeling

17 velden tonen
VeldTypeUitleg
id *tekst
platform *tekst

Een van: "google" "trustpilot"

manier *tekst

Een van: "oauth" "places" "business" "publiek"

actief *ja/nee
instellingen *object
geheimIngevuld *object

per geheim veld: ingevuld (de waarde nooit)

inEnv *lijst van tekst

velden die al in .env staan (die ziet de beheerder niet)

verbonden *ja/nee
locaties *lijst van object

Google: vestigingen in het bedrijfsprofiel om uit te kiezen

locaties[].naam *tekst
locaties[].titel *tekst
kanAntwoorden *ja/nee
laatsteSync *tekst of null
laatsteFout *tekst of null
redirectUri *tekst of null
bron *tekst

'portaal' = app van de leverancier (inloggen via het klantportaal), 'eigen' = eigen app of sleutel

Een van: "eigen" "portaal"

wachtOpInlog *ja/nee

de kassa wacht op het inloggen (via het portaal)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reviewbeheer" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/reviewbeheer/{platform}/ophalen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
platform *padtekst

Antwoord 200

VeldTypeUitleg
nieuw *getal
bijgewerkt *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Koppeling niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reviewbeheer/<platform>/ophalen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/reviewbeheer/{platform}/verbinden#

Inloggen bij Google of Trustpilot (via het portaal: app van de leverancier; de kassa wacht daarna zelf op d…

Inloggen bij Google of Trustpilot (via het portaal: app van de leverancier; de kassa wacht daarna zelf op de inlog).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
platform *padtekst

Antwoord 200

VeldTypeUitleg
url *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Koppeling niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reviewbeheer/<platform>/verbinden" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/reviewbeheer/{platform}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
platform *padtekst

Antwoord 200

VeldTypeUitleg
koppelingen *lijst van ReviewKoppeling

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

404

Koppeling niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reviewbeheer/<platform>/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/reviewbeheer/google/verbinden#

Google: adres om in te loggen (op de kassa-pc openen, of het terugadres van GOOGLE_REVIEWS_REDIRECT_URI)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
url *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/reviewbeheer/google/verbinden" \
  -H "Authorization: Bearer <token>"
GET/api/reviews#

Reviews (nieuwste eerst) met samenvatting; filters: platform, zonderAntwoord=true, sterren=1..5, ongelezen=…

Reviews (nieuwste eerst) met samenvatting; filters: platform, zonderAntwoord=true, sterren=1..5, ongelezen=true.

Toegang

Vereist recht reviews_beantwoorden (Reviews lezen en beantwoorden (Google, Trustpilot)).

Antwoord 200

15 velden tonen
VeldTypeUitleg
reviews *lijst van ReviewRegel
samenvatting *object
samenvatting.aantal *getal
samenvatting.gemiddeld *getal of null
samenvatting.perSter *lijst van getal
samenvatting.zonderAntwoord *getal
samenvatting.ongelezen *getal
koppelingen *lijst van object
koppelingen[].platform *tekst
koppelingen[].manier *tekst
koppelingen[].kanAntwoorden *ja/nee
koppelingen[].laatsteSync *tekst of null
koppelingen[].laatsteFout *tekst of null
koppelingen[].gemiddeld *tekst of null
koppelingen[].totaal *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/reviews" \
  -H "Authorization: Bearer <token>"
POST/api/reviews/{id}/antwoord#

{ tekst }: antwoord van de zaak plaatsen of wijzigen op Google of Trustpilot

Toegang

Vereist recht reviews_beantwoorden (Reviews lezen en beantwoorden (Google, Trustpilot)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
tekstalles

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/reviews/<id>/antwoord" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "tekst": null
}'
POST/api/reviews/{id}/antwoord/verwijderen#

Toegang: Vereist recht reviews_beantwoorden (Reviews lezen en beantwoorden (Google, Trustpilot)).

Toegang

Vereist recht reviews_beantwoorden (Reviews lezen en beantwoorden (Google, Trustpilot)).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
ok *true

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/reviews/<id>/antwoord/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/reviews/gelezen#

{ ids: [...] } als gelezen markeren

Toegang

Vereist recht reviews_beantwoorden (Reviews lezen en beantwoorden (Google, Trustpilot)).

Body (JSON)

VeldTypeUitleg
idsalles

Antwoord 200

VeldTypeUitleg
gemarkeerd *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/reviews/gelezen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": null
}'
GET/api/reviews/google/terugopenbaar#

Toegang: Openbaar: werkt zonder aanmelden.

Toegang

Openbaar: werkt zonder aanmelden.

Parameters

NaamWaarTypeUitleg
codezoekterm (?…)tekst
statezoekterm (?…)tekst
errorzoekterm (?…)tekst

Antwoord 200 · text/html

tekst

Foutmeldingen

400

Ongeldige invoer.

Voorbeeld (curl)
curl "http://kassa:4000/api/reviews/google/terug"
POST/api/reviews/ophalen#

Nu ophalen bij alle gekoppelde platforms

Toegang

Vereist recht reviews_beantwoorden (Reviews lezen en beantwoorden (Google, Trustpilot)).

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/reviews/ophalen" \
  -H "Authorization: Bearer <token>"

kiosk

GET/api/beheer/kiosk#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

20 velden tonen
VeldTypeUitleg
migratie *ja/nee
aan *ja/nee
instelling *KioskInstelling
apparaten *lijst van KioskApparaat
migratie110 *ja/nee

migratie 110 (betalen aan de kassa) gedraaid

migratie111 *ja/nee

migratie 111 (bestelstatus op de telefoon) gedraaid

terminals *lijst van object
terminals[].id *tekst
terminals[].naam *tekst
groepen *lijst van object
groepen[].id *tekst
groepen[].naam *tekst
pin *object
pin.aan *ja/nee
pin.testmodus *ja/nee
adressen *object

adressen voor de kiosk-app: in het netwerk van de zaak (http) en via het beheerportaal (https, als de kassa verbonden is)

adressen.lan *lijst van tekst
adressen.portaal *tekst of null
tegoed *ja/nee

oplaadbaar tegoed staat aan (nodig voor opwaarderen op de kiosk)

land *tekst

land van de zaak (BE: waarschuwing bij de noodmodus van de kiosk-app)

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/kiosk" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/kiosk#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/kiosk" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/kiosk/apparaten#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/kiosk/apparaten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/kiosk/apparaten/{id}#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/kiosk/apparaten/<id>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/beheer/kiosk/apparaten/{id}/koppelcode#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/kiosk/apparaten/<id>/koppelcode" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/kiosk/apparaten/{id}/verwijderen#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/kiosk/apparaten/<id>/verwijderen" \
  -H "Authorization: Bearer <token>"
POST/api/kiosk/bestellingen#

Parameters

NaamWaarTypeUitleg
breedtezoekterm (?…)tekst

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/bestellingen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/kiosk/bestellingen/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst
breedtezoekterm (?…)tekst

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl "http://kassa:4000/api/kiosk/bestellingen/<id>" \
  -H "Authorization: Bearer <token>"
POST/api/kiosk/bestellingen/{id}/annuleren#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/bestellingen/<id>/annuleren" \
  -H "Authorization: Bearer <token>"
POST/api/kiosk/bestellingen/{id}/betalen#

Parameters

NaamWaarTypeUitleg
id *padtekst
breedtezoekterm (?…)tekst

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/bestellingen/<id>/betalen" \
  -H "Authorization: Bearer <token>"
POST/api/kiosk/bestellingen/{id}/kamer#

Op de kamer (hotelkoppeling, zelfbediening): { kamer, achternaam } → afgerekend op de kamer, of een fout

Parameters

NaamWaarTypeUitleg
id *padtekst
breedtezoekterm (?…)tekst

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/bestellingen/<id>/kamer" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/kiosk/bestellingen/{id}/kassa#

Parameters

NaamWaarTypeUitleg
id *padtekst
breedtezoekterm (?…)tekst

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/bestellingen/<id>/kassa" \
  -H "Authorization: Bearer <token>"
POST/api/kiosk/koppelen#

Koppelen: { code } → { sleutel, naam } (de pagina bewaart de sleutel op het apparaat)

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

429

Te veel pogingen. Probeer het over 10 minuten opnieuw.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/koppelen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/kiosk/menu#

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl "http://kassa:4000/api/kiosk/menu" \
  -H "Authorization: Bearer <token>"
POST/api/kiosk/noodbestellingen#

Noodmodus van de kiosk-app: noodbestellingen in de kassa zetten { bestellingen } → { verwerkt, resultaten }

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/noodbestellingen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/kiosk/opwaarderen#

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/opwaarderen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/api/kiosk/scan#

Barcodescanner (optioneel): { code } → { soort: product | kortingscode | klant | cadeaubon | onbekend, ... }

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/scan" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/kiosk/start#

Wat de kiosk moet weten om te starten: naam, aan/uit, instellingen (zonder groepen), talen en de zaak

Antwoord 200

24 velden tonen
VeldTypeUitleg
naam *tekst
aan *ja/nee
melding *tekst of null
instelling *object
instelling.bon *tekst

Waar de kassabon komt: printer van de kiosk(-app), bonprinter van de kassa, of geen bon.

Een van: "kassa" "geen" "kiosk"

instelling.meenemen *ja/nee

De gast kan kiezen voor meenemen (afhalen). Minstens één van beide.

instelling.hierEten *ja/nee

De gast kan kiezen voor hier opeten (ter plaatse).

instelling.upsellGroepen *lijst van tekst

Upsell bij afrekenen ("Ook iets erbij?"): producten uit deze groepen; leeg = geen upsell.

instelling.welkom *tekst

Welkomtekst op het startscherm; leeg = standaard.

instelling.terugSeconden *getal

Na zoveel seconden zonder aanraken terug naar het startscherm (mand leeg).

instelling.keuken *tekst

Betalen aan de kassa: de bestelling meteen naar de keuken (standaard), of pas als hij aan de kassa betaald is.

Een van: "meteen" "na_betalen"

instelling.statusQr *ja/nee

QR-code op de kioskbon: de gast volgt de bestelling op de eigen telefoon (via het beheerportaal) en krijgt een melding als hij klaar is. Standaard uit; werkt alleen als de kassa met het portaal verbonden is (migratie 111).

instelling.scanner *ScanKeuzes

Barcodescanner (standaard alles uit): wat een scan op de kiosk mag doen.

instelling.opwaarderen *ja/nee

Tegoed opwaarderen op de kiosk (standaard uit; werkt alleen met oplaadbaar tegoed aan).

instelling.opwaardeerBedragen *lijst van getal

Bedragen om uit te kiezen bij opwaarderen, in centen (1 tot 6, oplopend).

zaak *object
zaak.naam *object
zaak.valuta *object
zaak.land *object
pin *ja/nee
betalen *tekst of null

Een van: "kassa" "pin" "keuze"

tegoed *ja/nee
kamer *ja/nee
lan *lijst van tekst

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl "http://kassa:4000/api/kiosk/start" \
  -H "Authorization: Bearer <token>"
GET/api/kiosk/status/{token}#

Parameters

NaamWaarTypeUitleg
token *padtekst

Antwoord 200

alles

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

429

Te vaak. Probeer het zo opnieuw.

Voorbeeld (curl)
curl "http://kassa:4000/api/kiosk/status/<token>" \
  -H "Authorization: Bearer <token>"
POST/api/kiosk/tegoed#

Tegoed opwaarderen (optioneel): saldo van een pas, en een bestelling met alleen de opwaardering

Body (JSON)

Geen velden.

Antwoord 200

alles

Foutmeldingen

401

Mogelijke meldingen:

  • Deze kiosk is niet (meer) gekoppeld.
  • Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/kiosk/tegoed" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

klantschermextra

GET/api/beheer/klantscherm-extra#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie113 *ja/nee
portaal *ja/nee
klantscherm *ja/nee
bon *ja/nee

Digitale bon via een QR-code na het afrekenen.

dia *DiaInstelling

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/klantscherm-extra" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/klantscherm-extra#

{ bon, dia: { aan, seconden, acties, uitgelicht, spaarkaart, teksten } } (alles optioneel)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
migratie113 *ja/nee
portaal *ja/nee
klantscherm *ja/nee
bon *ja/nee

Digitale bon via een QR-code na het afrekenen.

dia *DiaInstelling

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/klantscherm-extra" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/digitale-bon/{token}#

Parameters

NaamWaarTypeUitleg
token *padtekst

Antwoord 200

Type: DigitaleBon

VeldTypeUitleg
zaak *tekst
nummer *getal

Bonnummer en tijdstip (ISO).

tijdstip *tekst
totaal *getal
tekst *tekst

De bon zelf, als tekst (zelfde als de papieren).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Deze bon is niet (meer) te vinden.

429

Te vaak. Probeer het zo opnieuw.

Voorbeeld (curl)
curl "http://kassa:4000/api/digitale-bon/<token>" \
  -H "Authorization: Bearer <token>"
POST/api/digitale-bon/bestelling/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
url *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/digitale-bon/bestelling/<id>" \
  -H "Authorization: Bearer <token>"
GET/api/klantscherm-dia#

Antwoord 200

VeldTypeUitleg
aan *ja/nee
seconden *getal
dia *lijst van object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/klantscherm-dia" \
  -H "Authorization: Bearer <token>"

menubord

GET/api/beheer/menubord#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie113 *ja/nee
aan *ja/nee
titel *tekst

Kop boven de kaart (leeg = de naam van de zaak).

groepen *lijst van tekst

Welke productgroepen, in deze volgorde (leeg = alle groepen in de volgorde van de kassa).

kolommen *getal

Zoveel kolommen naast elkaar (1-4).

thema *tekst

Een van: "donker" "licht"

uitverkocht *tekst

Uitverkocht: doorgestreept met "Uitverkocht" tonen, of van het bord halen.

Een van: "tonen" "verbergen"

fotos *ja/nee

Productfoto's naast de producten (als die er zijn).

allergenen *ja/nee

Allergenen klein onder het product.

seconden *getal

Past niet alles op het scherm: zoveel seconden per pagina (5-120).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/menubord" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/menubord#

{ aan, titel, groepen, kolommen, thema, uitverkocht, fotos, allergenen, seconden } (alles optioneel)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
migratie113 *ja/nee
aan *ja/nee
titel *tekst

Kop boven de kaart (leeg = de naam van de zaak).

groepen *lijst van tekst

Welke productgroepen, in deze volgorde (leeg = alle groepen in de volgorde van de kassa).

kolommen *getal

Zoveel kolommen naast elkaar (1-4).

thema *tekst

Een van: "donker" "licht"

uitverkocht *tekst

Uitverkocht: doorgestreept met "Uitverkocht" tonen, of van het bord halen.

Een van: "tonen" "verbergen"

fotos *ja/nee

Productfoto's naast de producten (als die er zijn).

allergenen *ja/nee

Allergenen klein onder het product.

seconden *getal

Past niet alles op het scherm: zoveel seconden per pagina (5-120).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/menubord" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/menubord#

Antwoord 200

Type: MenubordBeeld

VeldTypeUitleg
aan *ja/nee
zaak *tekst
titel *tekst
kolommen *getal
thema *tekst

Een van: "donker" "licht"

seconden *getal
acties *lijst van object

Happy hours die nu bezig zijn: naam en tot hoe laat.

acties[].naam *tekst
acties[].tot *tekst
groepen *lijst van MenubordGroep
tijd *tekst

Tijdstip (ISO) van dit beeld.

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/menubord" \
  -H "Authorization: Bearer <token>"

extrarapporten

GET/api/beheer/extra-rapporten#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie113 *ja/nee
menuEngineering *ja/nee
acties *ja/nee
verspilling *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/extra-rapporten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/extra-rapporten#

{ menuEngineering, acties, verspilling } (alles optioneel)

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
migratie113 *ja/nee
menuEngineering *ja/nee
acties *ja/nee
verspilling *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/extra-rapporten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/api/rapport/acties#

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

VeldTypeUitleg
regels *lijst van ActieRegel
totaal *object
totaal.bonnen *getal
totaal.korting *getal
totaal.omzet *getal
van *tekst
tot *tekst

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/acties" \
  -H "Authorization: Bearer <token>"
GET/api/rapport/extra#

Antwoord 200

Type: ExtraRapporten

VeldTypeUitleg
menuEngineering *ja/nee
acties *ja/nee
verspilling *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/extra" \
  -H "Authorization: Bearer <token>"
GET/api/rapport/menu-engineering#

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst
groepzoekterm (?…)tekst

Antwoord 200

Type: MenuEngineering

16 velden tonen
VeldTypeUitleg
van *tekst
tot *tekst
regels *lijst van MenuRegel
grensAandeel *getal

Grenzen: populair vanaf dit aandeel (%), veel marge vanaf deze marge per stuk (centen).

grensMarge *getal
totaal *object
totaal.aantal *getal
totaal.omzet *getal
totaal.omzetExcl *getal
totaal.margeTotaal *getal
zonderKostprijs *lijst van object
zonderKostprijs[].artikelId *tekst
zonderKostprijs[].naam *tekst
zonderKostprijs[].groep *tekst of null
zonderKostprijs[].aantal *getal
zonderKostprijs[].omzet *getal

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/menu-engineering" \
  -H "Authorization: Bearer <token>"
GET/api/rapport/verspilling#

Parameters

NaamWaarTypeUitleg
vanzoekterm (?…)tekst
totzoekterm (?…)tekst

Antwoord 200

18 velden tonen
VeldTypeUitleg
afgeboekt *lijst van VerspillingRegel
perReden *lijst van object
perReden[].reden *tekst
perReden[].keer *getal
perReden[].waarde *getal
geannuleerd *lijst van object

Geannuleerd nadat het al naar de keuken of bar was gestuurd (storno na versturen).

geannuleerd[].artikelId *tekst of null
geannuleerd[].naam *tekst
geannuleerd[].aantal *getal
geannuleerd[].verkoopwaarde *getal
geannuleerd[].kostwaarde *getal of null
totaal *object
totaal.waarde *getal
totaal.zonderWaarde *getal
totaal.geannuleerdVerkoop *getal
totaal.geannuleerdKost *getal
van *tekst
tot *tekst

Foutmeldingen

400

Ongeldige invoer.

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/rapport/verspilling" \
  -H "Authorization: Bearer <token>"

webshopupsell

GET/api/beheer/webshop-upsell#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie114 *ja/nee
groepen *lijst van tekst
max *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/webshop-upsell" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/webshop-upsell#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
groepen *lijst van tekst

productgroepen waaruit de suggesties komen, in deze volgorde; leeg = uit

max *getal

hoeveel suggesties hooguit (1-8)

migratie114 *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/webshop-upsell" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'

pasje

POST/api/aanmelden/pas#

Body (JSON)

VeldTypeUitleg
pasalles

Antwoord 200

VeldTypeUitleg
gebruiker *object
gebruiker.id *tekst
gebruiker.naam *tekst
gebruiker.rol *tekst

Een van: "bediening" "manager" "beheerder"

gebruiker.taal *tekst of null

Een van: "id" "nl" "am" "ar" "ary" "ary_latn" "bg" "ckb" "cs" "de" "en" "es" "fa" "fr" "hi" "hr" "hu" "it" "ku" "lt" "lv" "pap" "pl" "prs" "ps" "pt" "rif" "ro" "ru" "sk" "so" "sq" "sr" "srn" "syr" "ti" "tr" "uk" "ur" "vi" "zgh" "zh"

vestiging *Vestiging
fiscaalVerplicht *ja/nee
rechten *lijst van tekst
token *tekst

Foutmeldingen

400

Dit pasje kan de kassa niet lezen.

401

Mogelijke meldingen:

  • Onbekend pasje.
  • Niet aangemeld. Voer je pincode opnieuw in.
409

Aanmelden met een pasje staat uit.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/aanmelden/pas" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "pas": null
}'
GET/api/beheer/pasje#

Toegang: Alleen voor de rol beheerder.

Toegang

Alleen voor de rol beheerder.

Antwoord 200

VeldTypeUitleg
migratie114 *ja/nee
aan *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Alleen een beheerder mag het personeel beheren.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/pasje" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/pasje#

Toegang: Alleen voor de rol beheerder.

Toegang

Alleen voor de rol beheerder.

Body (JSON)

VeldTypeUitleg
aanalles

Antwoord 200

VeldTypeUitleg
migratie114 *ja/nee
aan *ja/nee

Foutmeldingen

400

Kies aan of uit.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Alleen een beheerder mag het personeel beheren.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/pasje" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aan": null
}'

maaltijdcheques

GET/api/beheer/maaltijdcheques#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
aan *ja/nee
uitgevers *lijst van tekst

welke uitgevers de zaak aanneemt (alfabetisch)

groepen *lijst van tekst

alleen voor producten uit deze productgroepen; leeg = alles

migratie114 *ja/nee
land *tekst

Een van: "NL" "BE"

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/maaltijdcheques" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/maaltijdcheques#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
aan *ja/nee
uitgevers *lijst van tekst

welke uitgevers de zaak aanneemt (alfabetisch)

groepen *lijst van tekst

alleen voor producten uit deze productgroepen; leeg = alles

migratie114 *ja/nee
land *tekst

Een van: "NL" "BE"

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/maaltijdcheques" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
GET/api/maaltijdcheques/bestelling/{id}#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/maaltijdcheques/bestelling/<id>" \
  -H "Authorization: Bearer <token>"

dagsamenvatting

GET/api/beheer/dagsamenvatting#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie115 *ja/nee
aan *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/dagsamenvatting" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/dagsamenvatting#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
aanalles

Antwoord 200

VeldTypeUitleg
migratie115 *ja/nee
aan *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/dagsamenvatting" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aan": null
}'
GET/api/beheer/dagsamenvatting/voorbeeld#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
regels *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/dagsamenvatting/voorbeeld" \
  -H "Authorization: Bearer <token>"

etiketten

GET/api/beheer/etiketten#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
aan *ja/nee
formaat *tekst

Een van: "38x25" "57x32" "62x29" "100x50"

prijs *ja/nee

prijs op het etiket

streepjescode *ja/nee

streepjescode op het etiket (als het product een code heeft)

scannen *ja/nee

scannen op het bestelscherm zet het product erbij

migratie115 *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/etiketten" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/etiketten#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
aan *ja/nee
formaat *tekst

Een van: "38x25" "57x32" "62x29" "100x50"

prijs *ja/nee

prijs op het etiket

streepjescode *ja/nee

streepjescode op het etiket (als het product een code heeft)

scannen *ja/nee

scannen op het bestelscherm zet het product erbij

migratie115 *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/etiketten" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
GET/api/etiketten#

Antwoord 200

Etiketten of object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/etiketten" \
  -H "Authorization: Bearer <token>"
POST/api/etiketten/lijst#

Toegang: Controleert daarnaast: productenbeheren (Producten, groepen en keuzeopties beheren), voorraadbeheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Toegang

Controleert daarnaast: productenbeheren (Producten, groepen en keuzeopties beheren), voorraadbeheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
formaat *tekst

Een van: "38x25" "57x32" "62x29" "100x50"

prijs *ja/nee
streepjescode *ja/nee
etiketten *lijst van Etiket

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

409

Etiketten printen staat uit (Instellingen → Zaak → Etiketten printen).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/etiketten/lijst" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'

gastprofiel

GET/api/beheer/gastprofiel#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie115 *ja/nee
aan *ja/nee
klantenkaart *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/gastprofiel" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/gastprofiel#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
aanalles

Antwoord 200

VeldTypeUitleg
migratie115 *ja/nee
aan *ja/nee
klantenkaart *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/gastprofiel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "aan": null
}'
GET/api/klanten/{id}/gastprofiel#

Parameters

NaamWaarTypeUitleg
id *padtekst

Antwoord 200

VeldTypeUitleg
vip *ja/nee
dieet *lijst van tekst
voorkeuren *tekst of null
naam *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Klant niet gevonden.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl "http://kassa:4000/api/klanten/<id>/gastprofiel" \
  -H "Authorization: Bearer <token>"
POST/api/klanten/{id}/gastprofiel#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
vip *ja/nee
dieet *lijst van tekst
voorkeuren *tekst of null
naam *tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/klanten/<id>/gastprofiel" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'

valutategoed

GET/api/beheer/tegoed#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie116 *ja/nee
aan *ja/nee
terugbetalen *ja/nee
max *getal
cadeaubonSaldo *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/tegoed" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/tegoed#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
aan *ja/nee
terugbetalen *ja/nee

restant contant terugbetalen aan de kassa

max *getal

hoogste saldo per bon of pas, in centen

cadeaubonSaldo *ja/nee
migratie116 *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/tegoed" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
GET/api/beheer/valuta#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
migratie116 *ja/nee
aan *ja/nee
valuta *lijst van object
valuta[].code *tekst
valuta[].koers *getal
valuta[].liveja/nee
valuta[].bijgewerkttekst of null
opslag *getal
munten *lijst van tekst

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/valuta" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/valuta#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
munten *lijst van tekst
aan *ja/nee
valuta *lijst van object

koers = euro voor 1 eenheid van die munt; live = koers van de ECB (bijgewerkt = wanneer opgehaald)

valuta[].code *tekst
valuta[].koers *getal
valuta[].liveja/nee
valuta[].bijgewerkttekst of null
opslag *getal

opslag in procent op live koersen (0-20): de koers wordt zoveel procent lager

migratie116 *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/valuta" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
POST/api/beheer/valuta/bijwerken#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
munten *lijst van tekst
aan *ja/nee
valuta *lijst van object

koers = euro voor 1 eenheid van die munt; live = koers van de ECB (bijgewerkt = wanneer opgehaald)

valuta[].code *tekst
valuta[].koers *getal
valuta[].liveja/nee
valuta[].bijgewerkttekst of null
opslag *getal

opslag in procent op live koersen (0-20): de koers wordt zoveel procent lager

migratie116 *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Er staat geen munt op een live koers.

502

Koersen ophalen lukte niet: … De laatste koersen blijven staan.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/valuta/bijwerken" \
  -H "Authorization: Bearer <token>"
POST/api/bestellingen/{id}/opwaarderen#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
codealles
bedragalles

Antwoord 200

Type: Bestelling

29 velden tonen
VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

409

Kan nu niet (conflict met de huidige toestand).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/bestellingen/<id>/opwaarderen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": null,
  "bedrag": null
}'
GET/api/tegoed#

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/tegoed" \
  -H "Authorization: Bearer <token>"
POST/api/tegoed/terugbetalen#

Toegang: Controleert daarnaast: kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Toegang

Controleert daarnaast: kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).

Body (JSON)

VeldTypeUitleg
codealles
bedragalles

Antwoord 200

VeldTypeUitleg
code *tekst
bedrag *getal
saldo *getal

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Geen recht.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/tegoed/terugbetalen" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": null,
  "bedrag": null
}'
GET/api/valuta#

Antwoord 200

object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/valuta" \
  -H "Authorization: Bearer <token>"

scanner

GET/api/beheer/scanner#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Antwoord 200

VeldTypeUitleg
aan *ja/nee
product *ja/nee
kortingscode *ja/nee
klantenkaart *ja/nee
cadeaubon *ja/nee
migratie117 *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl "http://kassa:4000/api/beheer/scanner" \
  -H "Authorization: Bearer <token>"
POST/api/beheer/scanner#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

Geen velden.

Antwoord 200

VeldTypeUitleg
aan *ja/nee
product *ja/nee
kortingscode *ja/nee
klantenkaart *ja/nee
cadeaubon *ja/nee
migratie117 *ja/nee

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/scanner" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d 'null'
POST/api/beheer/scanner/test#

Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Toegang

Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).

Body (JSON)

VeldTypeUitleg
codealles

Antwoord 200

object

Foutmeldingen

400

Lege scan.

401

Niet aangemeld. Voer je pincode opnieuw in.

403

Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.

409

Kan nu niet (conflict met de huidige toestand).

429

Te veel scans achter elkaar. Wacht een minuut.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/beheer/scanner/test" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": null
}'
POST/api/klanten/{id}/kaart#

Parameters

NaamWaarTypeUitleg
id *padtekst

Body (JSON)

VeldTypeUitleg
kaartalles

Antwoord 200

VeldTypeUitleg
kaart *tekst of null

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

404

Klant niet gevonden.

409

De klantenkaart staat uit (Instellingen → Zaak).

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/klanten/<id>/kaart" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "kaart": null
}'
GET/api/scanner#

Antwoord 200

ScannerInstelling of object

Foutmeldingen

401

Niet aangemeld. Voer je pincode opnieuw in.

Voorbeeld (curl)
curl "http://kassa:4000/api/scanner" \
  -H "Authorization: Bearer <token>"
POST/api/scanner/herken#

Body (JSON)

VeldTypeUitleg
codealles

Antwoord 200

object

Foutmeldingen

400

Lege scan.

401

Niet aangemeld. Voer je pincode opnieuw in.

409

De scanner staat uit (Instellingen → Scanner).

429

Te veel scans achter elkaar. Wacht een minuut.

Voorbeeld (curl)
curl -X POST "http://kassa:4000/api/scanner/herken" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "code": null
}'

Gegevenstypen

Objecten die in meerdere routes terugkomen. Velden met * zijn er altijd (in een antwoord) of verplicht (in een body).

ActieRegel

VeldTypeUitleg
soort *tekst

Een van: "happyhour" "kortingscode" "marketing"

naam *tekst
codetekst

Kortingscode: de code; marketing: het aantal persoonlijke codes dat gebruikt is.

bonnen *getal

Zo vaak gebruikt (bonnen); bij een happy hour: zoveel bonnen met minstens één product in de actie.

stuksgetal

Happy hour: zoveel stuks tegen de actieprijs.

korting *getal

Gegeven korting (centen).

omzet *getal

Omzet van de bonnen (kortingscode) of van de producten in de actie (happy hour), met btw.

gemiddeld *getal

Gemiddelde per bon.

Adres

VeldTypeUitleg
straat *tekst
huisnummer *tekst
postcode *tekst
plaats *tekst

AfrekenResultaat

VeldTypeUitleg
ok *ja/nee
fouttekst
bestellingBestelling
ticketNummergetal
bonRegelslijst van tekst
bonTekstlijst van tekst

de kassabon als tekstregels (alleen met bonTekst in het verzoek)

printFouttekst
cadeaubonnenlijst van object

cadeaubonnen die met deze afrekening actief zijn geworden (migratie 026)

cadeaubonnen[].code *tekst
cadeaubonnen[].waarde *getal
mailobject

bon per e-mail: gelukt of de fout (alleen als er een adres was)

mail.verstuurd *ja/nee
mail.fouttekst

AfwijkingRegels

VeldTypeUitleg
weken *getal

zoveel weken terug vergelijken (dezelfde weekdag)

omzet *object

marge in procenten; minimum = omzet die normaal rond deze tijd al gedaan is (centen)

omzet.aan *ja/nee
omzet.marge *getal
omzet.minimum *getal
omzet.laag *ja/nee
omzet.hoog *ja/nee
keukentijd *object

marge in procenten; maxMinuten = altijd melden boven zoveel minuten (0 = niet)

keukentijd.aan *ja/nee
keukentijd.marge *getal
keukentijd.maxMinuten *getal
keukentijd.minimumRegels *getal
storno *object

marge in procenten; minimum = pas melden vanaf zoveel storno's

storno.aan *ja/nee
storno.marge *getal
storno.minimum *getal

ApicbaseInstelling

VeldTypeUitleg
aan *ja/nee
verbinding *tekst

hoe verbonden: service-account-token, of inloggen (eigen app of die van Pin Voordeel)

Een van: "token" "inloggen"

clientId *tekst of null
outletId *tekst of null

outlet in Apicbase (id) en de naam ervan

outletNaam *tekst of null
locationId *tekst of null

location-id in Apicbase voor deze kassa (uniek in de library)

catalogus *ja/nee

catalogus sturen (en vanzelf na een wijziging)

verkopen *ja/nee

elke afgerekende bon sturen

kostprijzen *ja/nee

kostprijs per portie terughalen

prijzenOvernemen *ja/nee

verkoopprijs van Apicbase overnemen in de kassa (alleen gekoppelde producten)

foodCostMode *tekst

Een van: "cheapest" "last_ordered" "average_stock_value"

Apparaat

Merk en model van dit apparaat; ts6x = de kassa draait op een Aclas pc-/AI-weegschaal, aclas = welk model.

VeldTypeUitleg
merk *tekst
model *tekst
ts6x *ja/nee
aclas *tekst of null

ApparaatOpdracht

VeldTypeUitleg
id *tekst
printer *tekst

naam van de printer in de kassa

verbinding *tekst
adres *tekst
data *tekst

bytes, base64 (al in de taal van de printer: ESC/POS of Star)

ArtikelInvoer

VeldTypeUitleg
naamtekst
naamBontekst of null
codetekst of null
groepIdtekst
prijsInclgetal
btwTerPlaatsetekst
btwAfhalentekst of null
uitverkochtja/nee
kleurtekst of null

#rrggbb, of leeg/null = zoals de productgroep

allergenenalles

allergeencodes; niet meegestuurd = niet wijzigen (migratie 024)

perKiloalles

Weegschaal (migratie 047): prijs per kilo (prijsIncl is dan per kilo), PLU-nummer (null = geen) en tarra in gram. Niet meegestuurd = niet wijzigen.

plualles
tarraGramalles
openPrijsalles

Migratie 129: open prijs (de prijs vul je in bij het aanslaan), voorschot (later te verrekenen) en mag terug (statiegeld terugnemen met een negatief aantal). Niet meegestuurd = niet wijzigen.

voorschotalles
magTerugalles
spvalles

Migratie 131: product is een single purpose voucher (SPV, bon voor één bepaald product of menu).

alcoholalles

Wettelijk (migratie 072): bevat alcohol (leeftijdscheck), wegwerptoeslag en statiegeld per stuk (centen), soort voor de btw-assistent. Niet meegestuurd = niet wijzigen.

wegwerpalles
statiegeldalles
btwSoortalles
prijsAfhalenalles

Leverwijze (migratie 084): eigen prijs bij afhalen en bezorgen (centen; null of leeg = de gewone prijs) en waar het product niet verkocht wordt. Niet meegestuurd = niet wijzigen.

prijsBezorgenalles
nietBijalles

AssistentProduct

VeldTypeUitleg
id *tekst
naam *tekst
groep *tekst of null
soort *tekst

Een van: "overig" "maaltijd" "frisdrank" "alcohol" "voeding"

opgeslagen *tekst of null

soort zoals opgeslagen (null = nog niet bevestigd, dan is soort een gok)

Een van: "overig" "maaltijd" "frisdrank" "alcohol" "voeding"

alcohol *ja/nee
terPlaatse *object
terPlaatse.id *tekst
terPlaatse.code *tekst
terPlaatse.percentage *getal
afhalen *object of null
afhalen.id *tekst
afhalen.code *tekst
afhalen.percentage *getal
advies *object
advies.terPlaatse *getal
advies.afhalen *getal
anders *ja/nee

wijkt het huidige tarief af van het advies?

AyceArrangement

Eén arrangement van de zaak.

VeldTypeUitleg
id *tekst
naam *tekst

bv. "Vis", "Vlees"; komt op de bon: "Vis volwassene"

prijsVolwassen *getal

prijs per volwassene, inclusief btw

prijsKind *getal

prijs per kind, inclusief btw (0 = gratis)

btwCode *tekst

btw-code van de arrangementsprijs en de toeslag (NL bv. LAAG, BE bv. B)

groepen *lijst van tekst

productgroepen die erbij horen (€ 0)

artikelen *lijst van tekst

losse producten die erbij horen (€ 0), ook uit andere groepen

minuten *getal

tijdslimiet in minuten vanaf de start; 0 = geen limiet

rondeMax *getal

hooguit zoveel gerechten per persoon per ronde; 0 = onbeperkt

rondeMinuten *getal

minimaal zoveel minuten tussen twee rondes; 0 = geen wachttijd

toeslag *getal

verspillingstoeslag per stuk; 0 = geen

AyceBestelling

All-you-can-eat van één bestelling (groep aan tafel); ontbreekt = gewone bestelling.

VeldTypeUitleg
arrangementen *lijst van AyceDeelname

AyceDeelname

Deelname van een groep aan tafel aan één arrangement.

VeldTypeUitleg
arrangementId *tekst
naam *tekst

naam van het arrangement (zoals bij de start)

volwassenen *getal
kinderen *getal
start *tekst

ISO-tijd van de start (tijdslimiet loopt vanaf hier)

laatsteRonde *tekst of null

ISO-tijd van de laatste ronde (laatste keer "Bestellen" met gratis gerechten)

rondes *getal

hoeveel rondes er al besteld zijn

AyceInstelling

All-you-can-eat van de zaak.

VeldTypeUitleg
aan *ja/nee

all-you-can-eat gebruiken

arrangementen *lijst van AyceArrangement

de arrangementen, op volgorde

BackupBestand

VeldTypeUitleg
naam *tekst
gemaaktOp *tekst
grootteKb *getal

BankTransactie

VeldTypeUitleg
id *tekst
bron *tekst

Een van: "camt" "mt940" "coda" "enablebanking"

datum *tekst
bedrag *getal
naam *tekst of null
iban *tekst of null
omschrijving *tekst
status *tekst

Een van: "open" "geboekt" "genegeerd"

voorstel *object of null
voorstel.factuurId *tekst
voorstel.nummer *tekst
voorstel.openstaand *getal
voorstel.klant *tekst
voorstel.reden *tekst
factuur *object of null
factuur.id *tekst
factuur.nummer *tekst

Beller

VeldTypeUitleg
nummer *tekst
sleutel *tekst
naam *tekst of null
email *tekst of null
klant *object of null
klant.id *tekst
klant.naam *tekst
klant.telefoon *tekst of null
klant.email *tekst of null
klant.punten *getal
adres *Adres
adresTekst *tekst of null

adres als tekst (webshop, platform) als het niet in losse velden te splitsen is

bestellingen *lijst van EerdereBestelling
aantal *getal
besteed *getal

centen, betaalde bestellingen

reserveringen *lijst van object
reserveringen[].id *tekst
reserveringen[].tijdstip *tekst
reserveringen[].personen *getal
reserveringen[].status *tekst

Bestand

VeldTypeUitleg
naamalles

bestandsnaam: .xlsx = Excel (inhoud als base64), anders CSV-tekst

tekstalles
base64alles

Bestelling

VeldTypeUitleg
id *tekst
nummer *getal
tafelId *tekst of null
tafelNaam *tekst of null
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

status *tekst

Een van: "open" "betaald" "geannuleerd"

gasten *getal
opmerking *tekst of null
regels *lijst van Bestelregel
betalingen *lijst van Betaling
totaal *getal
betaald *getal
openstaand *getal
btw *lijst van BtwRegel
geopendOp *tekst
groepNummergetal

Groep aan de tafel: 1, 2, 3 ... (meerdere rekeningen aan één tafel).

groepNaamtekst of null

Eigen naam van de groep, bv. "Jansen".

aantalGroepengetal

Hoeveel open groepen er nu aan deze tafel zitten (inclusief deze).

apartVantekst

Apart afrekenen (migratie 131): dit deel komt uit deze rekening (zonder splitsen).

klantobject of null

Klantenkaart: gekoppelde klant (migratie 038).

klant.id *tekst
klant.naam *tekst
klant.punten *getal
klant.gastprofielGastProfiel

Gastprofiel (migratie 115; alleen als het aan staat): VIP, dieetwensen/allergieën (codes) en voorkeuren.

ayceAyceBestelling

All-you-can-eat voor deze groep (migratie 042); ontbreekt = gewone bestelling.

gewenstOptekst of null

Gewenste tijd (afhalen/bezorgen met een tijdvak, of webshop; migratie 060).

bezorgingBezorgGegevens

Bezorg- of afhaalgegevens van een bestelling uit de kassa (migratie 060).

leeftijd18ja/nee

Leeftijdscheck (migratie 072): afhalen/bezorgen met alcohol en de leeftijdscheck aan: "18+" op de bonnen.

leeftijdBevestigdja/nee

De klant bevestigde in de webshop 18 jaar of ouder te zijn (migratie 072).

Bestelregel

VeldTypeUitleg
id *tekst
artikelId *tekst of null
naam *tekst
aantal *getal
prijsIncl *getal
btwPercentage *getal
btwCode *tekst
opties *lijst van GekozenOptie
gang *getal
opmerking *tekst of null
status *tekst

Een van: "geannuleerd" "nieuw" "besteld"

geprintOp *tekst of null
afgeroepenOptekst of null

Wanneer de keuken deze regel mocht maken. null bij een besteld gerecht in een latere gang = wacht op "Afroepen".

kortingja/nee

Kortingsregel (negatieve prijs, zelfde btw als waar hij op geldt).

kortingVanRegeltekst of null

Korting op één regel: de id van die regel; null = korting op de hele bon.

menuKopja/nee

Menu: deze regel is de kop van een menu (prijs 0; de onderdelen dragen de prijs).

menuVantekst of null

Menu: onderdeel van het menu met deze kopregel.

actietekst of null

Happy hour waarmee deze prijs is berekend (naam), anders null.

spaartekst of null

Korting uit sparen (migratie 038): 'punten:<n>' of 'stempel:<artikelId>:<n>'.

aycetekst

All-you-can-eat (migratie 042): arrangementsprijs, toeslag of gratis gerecht.

Een van: "volwassen" "kind" "toeslag" "gratis"

ayceArrangementtekst of null

All-you-can-eat (migratie 043): bij welk arrangement deze regel hoort.

eenheid"kg" of null

Weegschaal (migratie 047): 'kg' = gewogen product, aantal is het gewicht en prijsIncl de prijs per kilo.

toeslagtekst of null

Wegwerptoeslag of statiegeld (migratie 072): door de kassa zelf bijgehouden, niet los te wijzigen.

Een van: "wegwerp" "statiegeld"

afhalenja/nee

Migratie 129: deze regel wordt meegenomen (afhaal-btw), ook in een bestelling ter plaatse.

stoelgetal of null

Migratie 129: stoelnummer aan de tafel.

voorschotVantekst of null

Migratie 129: verrekening van het voorschot op deze bon (ticket-id).

magTerugja/nee

Migratie 129: product dat terug mag (negatief aantal, bv. statiegeld).

kortingProcentgetal of null

Migratie 131: percentage van een korting (herberekend als er een regel geschrapt wordt).

spvja/nee

Migratie 131: inwisselen van een single purpose voucher (SPV) als negatieve regel.

verbeteringVantekst of null

Migratie 131: verbetering van de prijs op deze bon (ticket-id).

Betaalregel

VeldTypeUitleg
methode *tekst

Een van: "contant" "pin" "bon" "online" "overig" "rekening" "maaltijdcheque" "valuta" "kamer" "onbetaald"

bedrag *getal
fooigetal
terminalReftekst
handmatigja/nee

Pin zonder de kassa: al op de terminal zelf gepind (bv. geen internet).

cadeaubonCodetekst

Cadeaubon met saldo: de code (migratie 026).

uitgevertekst

Maaltijdcheque (migratie 114): pluxee, edenred of monizze.

valutatekst

Vreemde valuta (migratie 116): munt en wat de gast gaf (centen in die munt); koers en wisselgeld zet de server.

valutaBedraggetal
koersgetal
wisselgeldgetal

Betaling

VeldTypeUitleg
id *tekst
methode *tekst

Een van: "contant" "pin" "bon" "online" "overig" "rekening" "maaltijdcheque" "valuta" "kamer" "onbetaald"

bedrag *getal
fooi *getal
terminalRef *tekst of null
uitgevertekst of null

Maaltijdcheque (migratie 114, België): pluxee, edenred of monizze.

valutatekst of null

Vreemde valuta (migratie 116): munt (GBP ...), wat de gast gaf in centen van die munt, koers en wisselgeld in euro.

valutaBedraggetal of null
koersgetal of null
wisselgeldgetal

BezorgGegevens

VeldTypeUitleg
soort *tekst

Een van: "afhalen" "bezorgen"

naam *tekst of null
telefoon *tekst of null
emailtekst of null

e-mailadres (migratie 061) en verstuurde berichten

berichtenlijst van object
berichten[].soort *tekst

Een van: "aangenomen" "klaar" "onderweg"

berichten[].via *lijst van tekst
berichten[].op *tekst
adresobject of null
adres.straat *tekst
adres.huisnummer *tekst
adres.postcode *tekst
adres.plaats *tekst
zoneobject of null
zone.id *tekst
zone.naam *tekst
zone.minimum *getal
zone.kosten *getal
zone.gratisVanaf *getal of null
zone.extraMin *getal
zsmja/nee
kostenRegelIdtekst of null
opmerkingtekst of null

BezorgZone

Bezorggebied (migratie 060), zoals in de webshop: op postcode of binnen een straal van de zaak.

VeldTypeUitleg
id *tekst
naam *tekst
soort *tekst

Een van: "postcode" "straal" "gebied"

postcodes *tekst

bv. "5000-5049, 5051, 5052 AB" (bij soort postcode)

straalKm *getal of null

km hemelsbreed van de zaak (bij soort straal)

puntenlijst van lijst van getal of null

hoekpunten [breedtegraad, lengtegraad] van een gebied op de kaart (bij soort gebied)

minimum *getal
kosten *getal
gratisVanaf *getal of null

gratis vanaf dit bedrag; null = nooit gratis

extraMin *getal
uit *ja/nee

BiDatasetDef

VeldTypeUitleg
code *tekst

Een van: "betalingen" "regels" "producten" "bonnen" "dagomzet" "uuromzet" "stornos" "medewerkers" "werktijden"

naam *tekst
omschrijving *tekst
periode *ja/nee

false = stamgegevens (geen periode)

kolommen *lijst van BiKolom

BiDienst

VeldTypeUitleg
code *tekst
naam *tekst
manieren *lijst van tekst

wat deze dienst kan (de eerste is de aanrader)

bestemmingenlijst van tekst

bij bestand: waar de bestanden heen kunnen

noot *tekst

korte uitleg hoe je hem aansluit

BiKolom

VeldTypeUitleg
naam *tekst
type *tekst

Een van: "datum" "tekst" "bedrag" "tijdstip" "getal" "tijd" "ja/nee"

BiKoppeling

VeldTypeUitleg
id *tekst
dienst *tekst
manier *tekst

Een van: "push" "bestand" "api"

naam *tekst
actief *ja/nee
instellingen *object
geheimIngevuld *object

per geheim veld: is het ingevuld (de waarde zelf nooit)

heeftSleutel *ja/nee
verstuurdTot *tekst of null

push: tot en met wanneer verstuurd

laatsteExport *tekst of null
laatsteSync *tekst of null
laatsteFout *tekst of null

BiVraag

VeldTypeUitleg
vantekst
tottekst
periodetekst
formaattekst
scheidingtekst
sleuteltekst

BtwPlanning

VeldTypeUitleg
id *tekst
vanaf *tekst
soort *tekst

Een van: "product" "percentage"

artikelId *tekst of null
artikelNaam *tekst of null
kolom *tekst of null

Een van: "ter_plaatse" "afhalen"

tariefId *tekst
tariefCode *tekst
nieuwPercentage *getal of null
status *tekst

Een van: "geannuleerd" "mislukt" "gepland" "uitgevoerd"

fout *tekst of null
aangemaaktOp *tekst
uitgevoerdOp *tekst of null

BtwRegel

VeldTypeUitleg
code *tekst
percentage *getal
basis *getal

grondslag exclusief btw, in centen

btw *getal

btw-bedrag in centen

totaal *getal

basis + btw

Campagne

VeldTypeUitleg
id *tekst
naam *tekst
soort *tekst

Een van: "eenmalig" "verjaardag" "terugkomen"

kanaal *tekst

Een van: "sms" "email"

onderwerp *tekst of null
tekst *tekst
dagen *getal of null

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen

minPunten *getal of null

eenmalig: minimaal zoveel punten (leeg = iedereen)

actief *ja/nee

automatische berichten: aan/uit

status *tekst

Een van: "verstuurd" "concept" "bezig"

onderbroken *ja/nee

status 'bezig' maar er wordt niet (meer) verstuurd, bv. na een herstart: verder versturen kan

verstuurdOp *tekst of null
aantalVerstuurd *getal
aantalMislukt *getal
aangemaaktOp *tekst
gewijzigdOp *tekst of null
code *CampagneCode

persoonlijke kortingscode bij elk bericht (migratie 068); null = geen

via *tekst

wie verstuurt (migratie 090): de kassa, of Mailchimp/Klaviyo

Een van: "kassa" "push" "mailchimp" "klaviyo"

fout *tekst of null

waarom versturen via Mailchimp/Klaviyo niet lukte (de actie is dan weer een concept)

CampagneCode

Persoonlijke kortingscode bij een bericht (migratie 068); null = geen code.

VeldTypeUitleg
soort *tekst

Een van: "procent" "bedrag"

waarde *getal

procent: 1-100; bedrag: centen

minimum *getal

minimum bestelbedrag (centen)

dagen *getal

zoveel dagen geldig vanaf het versturen

kassa *ja/nee
webshop *ja/nee

CampagneInvoer

VeldTypeUitleg
naamalles
soortalles

'eenmalig' | 'verjaardag' | 'terugkomen'

kanaalalles

'sms' | 'email'

onderwerpalles

alleen e-mail

tekstalles

{naam}, {zaak} en {punten} worden ingevuld

dagenalles

eenmalig: niet geweest sinds zoveel dagen (leeg = iedereen); terugkomen: na zoveel dagen (verplicht)

minPuntenalles

eenmalig: minimaal zoveel punten (leeg = iedereen)

actiefalles

automatische berichten: aan/uit

codeobject of null

persoonlijke kortingscode (migratie 068): { soort, waarde, minimum, dagen, kassa, webshop }; leeg/null = geen

code.soortalles
code.waardealles
code.minimumalles
code.dagenalles
code.kassaalles
code.webshopalles
viaalles

wie verstuurt (migratie 090): 'kassa' (standaard), 'mailchimp' of 'klaviyo' (alleen eenmalig per e-mail); 'push' (migratie 095)

CatalogusLeverancier

VeldTypeUitleg
code *tekst
naam *tekst
landen *lijst van tekst
groep *tekst

Een van: "platform" "overig" "groothandel" "foodservice" "dranken" "brouwer" "vers" "nonfood"

sitetekst

website / bestelsite

wijze *tekst

voorgestelde bestelwijze

Een van: "webhook" "email" "bestand" "cxml" "upload" "printen"

bestand *tekst

bijlage bij de e-mail / het bestand

Een van: "csv" "xlsx" "care4fresh" "ubl" "eancom" "cxml"

csvobject

CSV-indeling (alleen als de leverancier die voorschrijft)

csv.scheiding *tekst

Een van: "," ";" "tab"

csv.kop *ja/nee
csv.kolommen *tekst
emailtekst

openbaar bestel-/orderadres

cxmlja/nee

cXML kan (leverancier geeft adres, klantnummer en geheim)

aanvraagtekst

adres om een koppeling aan te vragen (alleen als de leverancier het zelf noemt)

artikelnummer *tekst

artikelnummer: eigen nummer van de leverancier, EAN (GTIN) of beide

Een van: "eigen" "ean" "beide"

noot *tekst

CodeInvoer

VeldTypeUitleg
codealles
omschrijvingalles
soortalles
waardealles
minimumalles
geldigVanalles
geldigTotalles
maxGebruikalles
aanKassaalles
inWebshopalles
actiefalles

Dagdeel

VeldTypeUitleg
id *tekst
naam *tekst
dagen *lijst van getal

1 = maandag ... 7 = zondag

van *tekst

'HH:MM'; tot mag '24:00' (tot het einde van de dag) of over middernacht

tot *tekst
seizoenVan *tekst of null

'MM-DD' tot en met 'MM-DD', elk jaar; null = het hele jaar

seizoenTot *tekst of null
groepIds *lijst van tekst
artikelIds *lijst van tekst
actief *ja/nee

DagdeelInvoer

VeldTypeUitleg
naamalles
dagenalles
vanalles
totalles
seizoenVanalles
seizoenTotalles
groepIdsalles
artikelIdsalles
actiefalles

DatabaseOverzicht

VeldTypeUitleg
modus *tekst

Een van: "extern" "intern" "mysql"

merk *tekst

Merk en versie van de database die nu draait (PGlite, PostgreSQL, MySQL of MariaDB).

Een van: "PGlite" "PostgreSQL" "MySQL" "MariaDB"

versie *tekst of null
vast *ja/nee

De keuze staat vast in .env (DATABASE_MODUS): niet om te schakelen vanuit de kassa.

bron *tekst

Een van: "bestand" "env" "standaard"

extern *object

url: adres zonder wachtwoord; ingesteld: er is een adres; uitEnv: het adres staat in .env (DATABASE_URL) en gaat voor, dus geen invulvelden; wachtwoord: er is een wachtwoord bewaard (leeg laten in het scherm = dat wachtwoord houden).

extern.url *tekst
extern.ingesteld *ja/nee
extern.uitEnv *ja/nee
extern.wachtwoord *ja/nee
intern *object
intern.map *tekst
intern.bestaat *ja/nee
intern.beschikbaar *ja/nee
mysql *object

MySQL/MariaDB, precies zoals extern: MYSQL_URL in .env gaat voor (uitEnv, geen invulvelden), anders het adres uit dit scherm (data/database.json). map = de werkkopie waarin de kassa rekent; velden = het adres in losse velden om het scherm voor te vullen (zonder wachtwoord).

mysql.url *tekst
mysql.ingesteld *ja/nee
mysql.uitEnv *ja/nee
mysql.wachtwoord *ja/nee
mysql.map *tekst
mysql.beschikbaar *ja/nee
mysql.velden *object of null
mysql.velden.server *tekst
mysql.velden.poort *tekst
mysql.velden.database *tekst
mysql.velden.gebruiker *tekst
mysql.velden.wachtwoordIngesteld *ja/nee
tabellen *getal
rijen *getal
bezig *ja/nee

DiaInstelling

VeldTypeUitleg
aan *ja/nee
seconden *getal

Zoveel seconden per dia (4-60).

acties *ja/nee

Happy hours (alleen actieve, die van nu eerst).

uitgelicht *lijst van tekst

Uitgelichte producten (in deze volgorde).

spaarkaart *ja/nee

De spaarkaart (punten en stempels), alleen als de klantenkaart aan staat.

teksten *lijst van tekst

Eigen teksten, elk een eigen dia.

DigitaleBon

VeldTypeUitleg
zaak *tekst
nummer *getal

Bonnummer en tijdstip (ISO).

tijdstip *tekst
totaal *getal
tekst *tekst

De bon zelf, als tekst (zelfde als de papieren).

EerdereBestelling

VeldTypeUitleg
id *tekst
nummer *getal
op *tekst
type *tekst

Een van: "ter_plaatse" "afhalen" "bezorgen"

bron *tekst

Een van: "thuisbezorgd" "webshop" "kassa" "platform"

status *tekst

Een van: "open" "betaald" "geannuleerd"

totaal *getal

centen, zonder geannuleerde regels

regels *lijst van object
regels[].naam *tekst
regels[].aantal *getal

Etiket

VeldTypeUitleg
artikelId *tekst
naam *tekst
prijs *getal

centen; bij perKilo de prijs per kilo

perKilo *ja/nee
code *tekst of null
aantal *getal

EtiketRegel

VeldTypeUitleg
artikelId *tekst
naam *tekst
plu *getal
gewichtKg *getal

gewicht in kg dat op de regel komt

prijsPerKilo *getal
bedrag *getal

bedrag van de regel (prijs per kilo x gewicht), centen

etiketPrijs *getal of null

stond er een prijs op het etiket: die

Etiketten

VeldTypeUitleg
aan *ja/nee
formaat *tekst

Een van: "38x25" "57x32" "62x29" "100x50"

prijs *ja/nee

prijs op het etiket

streepjescode *ja/nee

streepjescode op het etiket (als het product een code heeft)

scannen *ja/nee

scannen op het bestelscherm zet het product erbij

ExtraRapporten

VeldTypeUitleg
menuEngineering *ja/nee
acties *ja/nee
verspilling *ja/nee

FactuurAfnemer

VeldTypeUitleg
referentietekst of null

referentie of ordernummer van de klant (BuyerReference)

naam *tekst
adrestekst of null
postcodetekst of null
plaatstekst of null
landtekst of null

NL of BE (of een andere ISO-landcode)

btwNummertekst of null
kvktekst of null

KvK-nummer (NL) of ondernemingsnummer (BE)

peppolIdtekst of null

Peppol-ID als "schema:id", bv. 0208:0123456789; leeg = afgeleid van KvK/btw

emailtekst of null

FactuurBtw

VeldTypeUitleg
percentage *getal
categorie *tekst

S = standaard, Z = 0%

Een van: "S" "Z"

excl *getal
btw *getal
incl *getal

FactuurGegevens

VeldTypeUitleg
kvk *tekst

KvK-nummer (NL) of ondernemingsnummer (BE) van de zaak

iban *tekst
bic *tekst
peppolId *tekst

eigen Peppol-ID als "schema:id" (leeg = uit KvK/btw-nummer)

betaaltermijn *getal

dagen; alleen als er nog iets te betalen is

voorvoegsel *tekst

voor het factuurnummer, bv. "F" geeft F2026-0001

verzendwijze *tekst

standaard verzendwijze

Een van: "email" "http" "billit" "storecove" "banqup" "download"

kopie *tekst

kopie van elke gemailde factuur naar dit adres (bv. de boekhouder)

notitie *tekst

tekst onderaan de factuur

FactuurRegel

VeldTypeUitleg
naam *tekst
aantal *getal
prijsIncl *getal

centen per stuk incl. btw

btwPercentage *getal
btwCode *tekst

FactuurRij

VeldTypeUitleg
id *tekst
nummer *tekst
datum *tekst
vervaldatum *tekst of null
bonnummer *getal of null
ticketId *tekst of null
afnemer *FactuurAfnemer
regels *lijst van FactuurRegel
totaal *getal
alBetaald *getal
status *tekst

Een van: "aangemaakt" "verstuurd" "mislukt"

verzondenVia *tekst of null
verzondenOp *tekst of null
verzondenAan *tekst of null
fout *tekst of null
aangemaaktOp *tekst
rekeningklantId *tekst of null

op rekening (migratie 085): de zakelijke klant, later ontvangen, nog open en wanneer helemaal betaald

ontvangen *getal
openstaand *getal
betaaldOp *tekst of null
creditnotaVan *tekst of null

creditnota (migratie 129): bij deze factuur

FooiInstelling

VeldTypeUitleg
aan *ja/nee

fooiknoppen tonen bij afrekenen

procenten *lijst van getal

percentageknoppen, bv. [5, 10, 15]

afronden *ja/nee

knop "Afronden" naar de volgende hele euro

betaalwijzen *lijst van tekst

bij welke betaalwijzen fooi kan

FooiVerdeling

VeldTypeUitleg
methode *tekst

Een van: "eigen" "uren" "gelijk"

totaal *getal
regels *lijst van object
regels[].naam *tekst
regels[].bedrag *getal
regels[].urengetal
opmerkingtekst

bv. "Niemand ingeklokt: gelijk verdeeld"

Fout

Elke fout heeft een leesbare melding in fout (Nederlands, voor het scherm).

VeldTypeUitleg
fout *tekst
codetekst

Soms een vaste code, bv. DATABASE_OMZETTEN.

FraudeRegels

VeldTypeUitleg
stornoNaProforma *object
stornoNaProforma.aan *ja/nee
stornoNaProforma.aantal *getal
storno *object
storno.aan *ja/nee
storno.aantal *getal
storno.bedrag *getal
korting *object
korting.aan *ja/nee
korting.aantal *getal
korting.bedrag *getal
retour *object
retour.aan *ja/nee
retour.aantal *getal
retour.bedrag *getal
ladeZonderVerkoop *object
ladeZonderVerkoop.aan *ja/nee
ladeZonderVerkoop.aantal *getal
bonLangOpen *object
bonLangOpen.aan *ja/nee
bonLangOpen.minuten *getal

GastProfiel

Gastprofiel van een klant (migratie 115): VIP, dieetwensen en allergieën (codes, zie gastprofiel.ts) en voorkeuren.

VeldTypeUitleg
vip *ja/nee
dieet *lijst van tekst
voorkeuren *tekst of null

GekozenOptie

VeldTypeUitleg
id *tekst
naam *tekst
prijsDelta *getal

GeldFuncties

Wat de kassa met de automaat kan.

VeldTypeUitleg
betalen *ja/nee
uitbetalen *ja/nee

los geld uitbetalen (bv. terugbetaling of wisselgeld voor de lade)

telling *ja/nee

stand per munt en biljet

bijvullen *ja/nee
legen *ja/nee

afromen/legen naar de kluis (wisselgeld blijft)

GeldSysteemInfo

VeldTypeUitleg
code *tekst
naam *tekst
fabrikant *tekst
landen *lijst van tekst
merk *tekst of null

welke adapter de kassa gebruikt; null = (nog) geen koppeling

Een van: "cashdro" "cashmatic" "cashlogy" "cashkeeper" "glory" "extern" "proef"

dealers *tekst

dealers / leveranciers in NL en BE

noot *tekst

GeldTelling

VeldTypeUitleg
totaal *getal
delen *lijst van object
delen[].waarde *getal
delen[].aantal *getal
delen[].biljet *ja/nee

GevondenAdres

VeldTypeUitleg
adres *tekst

straat en huisnummer met letter/toevoeging, bv. "Spoorlaan 12A"

straat *tekst
huisnummer *getal
toevoeging *tekst

huisletter en/of toevoeging, bv. "A" of "bis" (leeg = geen)

postcode *tekst

1234 AB

plaats *tekst

GevondenPrinter

VeldTypeUitleg
verbinding *tekst

Een van: "serieel" "netwerk" "bluetooth" "usb" "systeem" "ingebouwd"

adres *tekst

wat in het veld Adres komt (leeg bij netwerk)

naam *tekst

voor de keuzelijst, bv. "EPSON TM-T20II (USB001)" of "/dev/usb/lp0"

GevondenWeegschaal

VeldTypeUitleg
poort *tekst
baud *getal
protocol *tekst

Een van: "opvragen" "continu" "dialog06" "digi" "gram"

gewichtKg *getal of null

gewicht bij het zoeken (null = antwoord wel herkend maar niet stil/geen gewicht)

GroepInvoer

VeldTypeUitleg
naamtekst
kleurtekst
nietBijalles

leverwijze (migratie 084): waar deze groep niet verkocht wordt; niet meegestuurd = niet wijzigen

HaccpOpen

VeldTypeUitleg
soort *tekst

Een van: "punt" "taak"

id *tekst
naam *tekst
nog *getal

nog zoveel keer vandaag/deze week/maand

telaat *ja/nee

te laat (bv. wekelijkse taak op een dag die al voorbij is, of de tweede meting na 14:00)

HaccpRegistratie

VeldTypeUitleg
id *tekst
puntId *tekst of null
taakId *tekst of null
naam *tekst
waarde *getal of null
inOrde *ja/nee
actie *tekst of null
opmerking *tekst of null
gebruikerNaam *tekst of null
tijdstip *tekst

HappyHour

Happy hour en menu's.

Happy hour: binnen een tijdvak (dagen + van/tot) een korting in procenten of een vaste prijs voor gekozen productgroepen/producten. Een dagdeal is een happy hour van de hele dag (00:00 tot 24:00) op een of meer dagen; met een seizoen (bv. 06-01 tot 08-31, elk jaar) geldt hij alleen in die periode. De kassaserver bepaalt de prijs bij het aantikken; de schermen gebruiken dezelfde functie om de prijs op de knop te tonen.

Menu: een product met een vaste prijs en onderdelen. Een onderdeel is vast (altijd dit product) of een keuze (kies N uit een productgroep of lijst). De onderdelen gaan als losse regels naar keuken/bar; de menuprijs wordt over de onderdelen verdeeld, zodat de btw per onderdeel klopt.

VeldTypeUitleg
id *tekst
naam *tekst
dagen *lijst van getal

1 = maandag ... 7 = zondag

van *tekst

'HH:MM'

tot *tekst
soort *tekst

Een van: "prijs" "procent"

waarde *getal

procent: 1-100; prijs: vaste prijs in centen

groepIds *lijst van tekst
artikelIds *lijst van tekst
actief *ja/nee
seizoenVantekst of null

seizoen (migratie 084): 'MM-DD' tot en met 'MM-DD', elk jaar (mag over de jaarwisseling); null/ontbreekt = altijd

seizoenTottekst of null

HappyHourInvoer

VeldTypeUitleg
naamalles
dagenalles
vanalles
totalles
soortalles
waardealles
groepIdsalles
artikelIdsalles
actiefalles
seizoenVanalles
seizoenTotalles

HotelBoekregel

VeldTypeUitleg
naam *tekst
bedrag *getal

centen incl. btw (totaal van de regel)

btwPercentage *getal

HotelCatalogusItem

VeldTypeUitleg
id *tekst
naam *tekst
status *tekst

Een van: "koppeling" "catalogus" "demo"

nl *ja/nee

verkrijgbaar en in gebruik in Nederland / België

be *ja/nee
uitleg *tekst

korte uitleg voor het instellingenscherm

websitetekst
veldenlijst van HotelVeld

wat de zaak invult (voor de koppelingen uit lib/pms; Mews, apaleo en Cloudbeds hebben een eigen scherm)

omgevingja/nee

heeft een test- en een echte omgeving

handmatigobject

Halve koppeling: de kassa kent de gasten (de hotelsoftware stuurt ze), maar de bon moet het hotel met de hand in de hotelsoftware zetten. kan/kanNiet = wat wel en wat niet werkt (voor het instellingenscherm).

handmatig.kan *lijst van tekst
handmatig.kanNiet *lijst van tekst
handmatig.nodig *lijst van tekst

HotelGast

Een gast die in het hotel verblijft (uit de hotelsoftware).

VeldTypeUitleg
gastId *tekst

id van de gast (klant) in de hotelsoftware

reserveringId *tekst

id van de reservering (of het folio) in de hotelsoftware

kamer *tekst
naam *tekst
aankomsttekst of null
vertrektekst of null

HotelVeld

Een veld dat de zaak invult (Instellingen → Hotel); geheim = alleen bewaren, nooit tonen.

VeldTypeUitleg
sleutel *tekst

Een van: "serviceId" "categorieId" "propertyId" "basisUrl" "btwCodes" "clientToken" "accessToken" "clientId" "clientSecret" "apiKey" "gebruiker" "wachtwoord"

label *tekst
geheim *ja/nee

ImportTelling

VeldTypeUitleg
groepen *getal
artikelen *getal
optiegroepen *getal
ruimtes *getal
tafels *getal
printers *getal
rechten *getal
instellingen *getal

Invoer

VeldTypeUitleg
naamalles
telefoonalles
emailalles
personenalles
datumalles
tijdalles
duurMinalles
tafelIdalles
opmerkingalles
klantIdalles
tochalles

ook opslaan als de tafel dan al gereserveerd is

mailenalles

bevestiging mailen (alleen bij nieuw)

JournaalRegel

VeldTypeUitleg
dag *tekst
sleutel *tekst

soort regel: betaal:<methode>, omzet:<btw-code>, btw:<btw-code>, fooi, afronding, afstorting, kasverschil (migratie 063)

boekstuk *tekst
rekening *tekst
omschrijving *tekst
debet *getal

centen, 0 als het een creditregel is

credit *getal
btwCode *tekst of null
btwPercentage *getal of null

Kaart

VeldTypeUitleg
aan *ja/nee
zaak *KaartPunt
bezorgers *lijst van object
bezorgers[].id *tekst
bezorgers[].naam *tekst
bezorgers[].lat *getal
bezorgers[].lon *getal
bezorgers[].op *tekst
bezorgers[].rit *getal of null
bezorgers[].status *tekst of null
bezorgers[].viaApp *ja/nee
stops *lijst van object

adressen van de ritten die onderweg zijn (nog niet bezorgd)

stops[].lat *getal
stops[].lon *getal
stops[].nummer *getal
stops[].rit *getal

KaartPunt

VeldTypeUitleg
lat *getal
lon *getal

Kanalen

VeldTypeUitleg
kassa *ja/nee
mail *lijst van tekst
sms *lijst van tekst
ntfy *object of null
ntfy.server *tekst
ntfy.topic *tekst
pushover *object of null
pushover.user *tekst
telegram *object of null
telegram.chatId *tekst
webhook *object of null
webhook.url *tekst
webhook.soort *tekst

Een van: "json" "slack" "teams"

Kasmutatie

Geld in of uit de kassalade buiten verkopen om.

VeldTypeUitleg
soort *tekst

Een van: "in" "uit"

bedrag *getal
reden *tekst
door *tekst of null
tijd *tekst

KassaOpties

VeldTypeUitleg
onbetaald *ja/nee
gasten *ja/nee
optellen *ja/nee
meenemen *ja/nee
stoel *ja/nee
terugnemen *ja/nee
voorschot *ja/nee
spv *ja/nee
apart *ja/nee
verbeteren *ja/nee
zonderwerkbon *ja/nee

KegboardStatus

VeldTypeUitleg
fw *tekst of null
meters *lijst van getal
relays *lijst van getal

KioskApparaat

VeldTypeUitleg
id *tekst
naam *tekst
gekoppeld *ja/nee
gekoppeldOp *tekst of null
laatstGezien *tekst of null
online *ja/nee
terminalId *tekst of null
betalen *tekst

hoe er op deze kiosk betaald wordt (migratie 110; standaard aan de kassa)

Een van: "kassa" "pin" "keuze"

koppelcodeTot *tekst of null

KioskInstelling

VeldTypeUitleg
hierEten *ja/nee

De gast kan kiezen voor hier opeten (ter plaatse).

meenemen *ja/nee

De gast kan kiezen voor meenemen (afhalen). Minstens één van beide.

groepen *lijst van tekst

Productgroepen op de kiosk; leeg = alle.

upsellGroepen *lijst van tekst

Upsell bij afrekenen ("Ook iets erbij?"): producten uit deze groepen; leeg = geen upsell.

welkom *tekst

Welkomtekst op het startscherm; leeg = standaard.

terugSeconden *getal

Na zoveel seconden zonder aanraken terug naar het startscherm (mand leeg).

bon *tekst

Waar de kassabon komt: printer van de kiosk(-app), bonprinter van de kassa, of geen bon.

Een van: "kassa" "geen" "kiosk"

keuken *tekst

Betalen aan de kassa: de bestelling meteen naar de keuken (standaard), of pas als hij aan de kassa betaald is.

Een van: "meteen" "na_betalen"

statusQr *ja/nee

QR-code op de kioskbon: de gast volgt de bestelling op de eigen telefoon (via het beheerportaal) en krijgt een melding als hij klaar is. Standaard uit; werkt alleen als de kassa met het portaal verbonden is (migratie 111).

scanner *ScanKeuzes

Barcodescanner (standaard alles uit): wat een scan op de kiosk mag doen.

opwaarderen *ja/nee

Tegoed opwaarderen op de kiosk (standaard uit; werkt alleen met oplaadbaar tegoed aan).

opwaardeerBedragen *lijst van getal

Bedragen om uit te kiezen bij opwaarderen, in centen (1 tot 6, oplopend).

KlantBeeld

VeldTypeUitleg
fase *tekst

Een van: "rust" "bestelling" "afrekenen" "bedankt"

bestellingIdtekst of null

Bestelling waar dit beeld bij hoort (niet getoond).

titeltekst of null

Tafel / balie, bv. "Tafel 5" of "Afhalen".

regels *lijst van KlantschermRegel
korting *getal

Korting op de rekening (positief bedrag, in centen).

totaal *getal

Totaal van de rekening (na korting).

betaald *getal

Al betaald (rekening splitsen).

teBetalengetal of null

Afrekenen: wat er nu betaald wordt (zonder fooi).

fooigetal

Afrekenen: fooi.

betaalwijzetekst of null

Een van: "contant" "pin" "bon"

pinStatustekst of null

Pin: korte status ("Volg de terminal" ...).

ontvangengetal of null

Contant: wat de klant geeft en wat hij terugkrijgt.

teruggetal of null
bonUrltekst of null

Digitale bon (migratie 113, optioneel): bij "Bedankt" een QR-code naar de bon op de telefoon van de gast, via het beheerportaal (https://…/__bon/<kassa>/<sleutel>).

zaakobject

Naam van de zaak en welkomsttekst (voor het rustscherm).

zaak.naam *tekst
zaak.welkom *tekst of null
tijd *getal

Tijdstip (ms) waarop de kassa dit beeld maakte.

KlantInfo

Klant van de klantenkaart, met punten en stempelkaarten.

VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
punten *getal
laatstOp *tekst of null
stempels *lijst van object
stempels[].artikelId *tekst
stempels[].naam *tekst
stempels[].nodig *getal
stempels[].stand *getal
smsToestemmingja/nee

Marketing (migratie 056): toestemming voor acties per sms / per e-mail en wanneer gegeven.

emailToestemmingja/nee
toestemmingOptekst of null
verjaardagtekst of null

verjaardag zonder jaar: "dd-mm" (bv. "24-09")

adrestekst of null

Adres (migratie 057; optioneel): straat en huisnummer, postcode, plaats.

postcodetekst of null
plaatstekst of null
kaarttekst of null

Nummer van de klantenkaart (migratie 117; scannen aan de kassa of kiosk); null = geen.

KlantInvoer

VeldTypeUitleg
naamalles
telefoonalles
emailalles
smsToestemmingalles

Marketing (migratie 056): toestemming voor acties per sms / e-mail. Niet meegestuurd = niet wijzigen.

emailToestemmingalles
verjaardagalles

verjaardag zonder jaar, "dd-mm" (leeg = geen). Niet meegestuurd = niet wijzigen.

adresalles

Adres (migratie 057): straat + huisnummer, postcode, plaats. Niet meegestuurd = niet wijzigen; leeg = weg.

postcodealles
plaatsalles
kaartalles

Klantenkaart (migratie 117, beheer): het nummer; leeg = weghalen. Niet meegestuurd = niet wijzigen.

KlantschermRegel

VeldTypeUitleg
naam *tekst
aantal *getal
bedrag *getal

Totaal van de regel (stuksprijs x aantal), in centen.

extratekst

Opties of menu-onderdelen, klein onder de naam.

fototekst

Productfoto (Instellingen → Zaak → Productfoto's): pad /api/artikelen/<id>/foto?v=<versie>.

KlokUitkomst

VeldTypeUitleg
naam *tekst
ingeklokt *ja/nee
sinds *tekst of null

begin van de (lopende of net afgesloten) dienst

minutengetal

gewerkte minuten van de net afgesloten dienst

alja/nee

was al in- of uitgeklokt: er is niets veranderd

Koppeling

VeldTypeUitleg
status *tekst

Een van: "klaar" "menu" "fout" "uit" "aangevraagd" "configureren" "live"

statusTekst *tekst
locationId *tekst of null
jetRestaurant *tekst of null
menu *object of null
menu.op *tekst
menu.status *tekst of null
menu.fout *tekst of null
laatsteFout *tekst of null
menuGevraagd *ja/nee
testmodus *ja/nee

Koppeling2

VeldTypeUitleg
id *tekst
gebruikerId *tekst
naam *tekst
toestel *tekst of null
aangemaaktOp *tekst
gezienOp *tekst of null
dienstOp *tekst of null

aan het werk (plek delen) sinds

locatie *object of null
locatie.lat *getal
locatie.lon *getal
locatie.op *tekst

Kortingscode

Kortingscode (migratie 061): aan de kassa en/of in de webshop.

VeldTypeUitleg
id *tekst
code *tekst
omschrijving *tekst of null
soort *tekst

Een van: "procent" "bedrag"

waarde *getal

procent: 1-100; bedrag: centen

minimum *getal
geldigVan *tekst of null
geldigTot *tekst of null
maxGebruik *getal of null
gebruikt *getal
aanKassa *ja/nee
inWebshop *ja/nee
actief *ja/nee

Kostprijs

VeldTypeUitleg
artikelId *tekst of null
naam *tekst of null
plu *tekst
recept *tekst of null
kostprijs *getal of null
primeCost *getal of null
verkoopprijs *getal of null
kassaprijs *getal of null
marge *getal of null
bijgewerktOp *tekst

MedewerkerInvoer

VeldTypeUitleg
naamtekst
roltekst
pincodetekst

Alleen meesturen om te wijzigen.

actiefja/nee
rijksregisternummertekst of null

België: rijksregisternummer voor de personeelsregistratie (optioneel).

taaltekst of null

Taal van de schermen voor deze medewerker (migratie 048); null = taal van het apparaat.

pastekst of null

Pasje (migratie 114): het nummer zoals de lezer het gaf om te koppelen, null = weghalen. Niet meesturen = niet wijzigen.

MedewerkerKas

VeldTypeUitleg
id *tekst
naam *tekst
lade *getal of null

Een van: 1 2

startgeld *getal
contant *getal
inLade *getal
uitLade *getal
verwacht *getal
telling *object of null
telling.geteld *getal
telling.verschil *getal
telling.tijd *tekst

MenuArtikel

VeldTypeUitleg
id *tekst
naam *tekst
omschrijving *tekst of null
groep_id *tekst of null
prijs_incl *getal
uitverkocht *ja/nee
btw_percentage *getal

MenubordBeeld

VeldTypeUitleg
aan *ja/nee
zaak *tekst
titel *tekst
kolommen *getal
thema *tekst

Een van: "donker" "licht"

seconden *getal
acties *lijst van object

Happy hours die nu bezig zijn: naam en tot hoe laat.

acties[].naam *tekst
acties[].tot *tekst
groepen *lijst van MenubordGroep
tijd *tekst

Tijdstip (ISO) van dit beeld.

MenubordGroep

VeldTypeUitleg
id *tekst
naam *tekst
kleur *tekst of null
producten *lijst van MenubordProduct

MenubordProduct

VeldTypeUitleg
id *tekst
naam *tekst
prijs *getal

Prijs nu (met happy hour), in centen.

normaalgetal

Normale prijs als er nu een happy hour geldt (doorgestreept op het bord).

actietekst

Naam van de happy hour die nu geldt.

uitverkocht *ja/nee
perKiloja/nee

Weegschaal: de prijs is per kilo.

fototekst

Pad van de productfoto (alleen als foto's aan staan).

allergenenlijst van tekst

MenuEngineering

VeldTypeUitleg
van *tekst
tot *tekst
regels *lijst van MenuRegel
grensAandeel *getal

Grenzen: populair vanaf dit aandeel (%), veel marge vanaf deze marge per stuk (centen).

grensMarge *getal
totaal *object
totaal.aantal *getal
totaal.omzet *getal
totaal.omzetExcl *getal
totaal.margeTotaal *getal
zonderKostprijs *lijst van object
zonderKostprijs[].artikelId *tekst
zonderKostprijs[].naam *tekst
zonderKostprijs[].groep *tekst of null
zonderKostprijs[].aantal *getal
zonderKostprijs[].omzet *getal

MenuGroep

VeldTypeUitleg
id *tekst
naam *tekst

MenuKeuze

Keuze binnen een menu. Bij een keuze-onderdeel: welk gerecht. Bij een vast onderdeel (optioneel): opties/opmerking voor dat vaste gerecht, in volgorde.

VeldTypeUitleg
onderdeelIdalles
artikelIdalles
opmerkingalles
optieIdsalles

MenuOnderdeel

VeldTypeUitleg
id *tekst
naam *tekst
soort *tekst

Een van: "vast" "keuze"

artikelIds *lijst van tekst

vast: dit product; keuze: kies uit deze producten ...

groepId *tekst of null

... of uit deze productgroep (keuze)

aantal *getal

vast: hoeveel stuks; keuze: hoeveel kiezen

gang *getal

gang voor de keuken (1 = meteen)

menuprijsgetal of null

Vast deel van de menuprijs per stuk, in centen (migratie 127); null = naar verhouding. Alleen als alle onderdelen er een hebben en ze samen de menuprijs zijn (bv. de FOD-testzaak: Business menu € 38 = Carpaccio € 15 + Burger € 23).

MenuOptiegroep

VeldTypeUitleg
id *tekst
naam *tekst
minimum *getal
maximum *getal
artikel_id *tekst of null
artikelgroep_id *tekst of null
opties *lijst van object
opties[].id *tekst
opties[].naam *tekst
opties[].prijsDelta *getal

MenuRegel

VeldTypeUitleg
artikelId *tekst
naam *tekst
groep *tekst of null
aantal *getal
omzet *getal

Omzet met en zonder btw (centen).

omzetExcl *getal
prijsExcl *getal

Gemiddelde verkoopprijs per stuk zonder btw, kostprijs en marge per stuk (centen).

kostprijs *getal
bron *tekst

Een van: "apicbase" "inkoop" "recept"

marge *getal
margeProcent *getal

Marge in procenten van de verkoopprijs zonder btw.

margeTotaal *getal
aandeel *getal

Aandeel in het aantal verkochte stuks (0-100).

klasse *tekst

Een van: "ster" "ploegpaard" "puzzel" "hond"

Mogelijk

Wat een bron kan (voor de knoppen in het paneel).

VeldTypeUitleg
status *ja/nee
afspelen *ja/nee
pauze *ja/nee
volgende *ja/nee
vorige *ja/nee
harder *ja/nee
zachter *ja/nee
volume *ja/nee
playlist *ja/nee
verschuiven *ja/nee
lijsten *ja/nee

MuziekStatus

VeldTypeUitleg
speelt *ja/nee of null

speelt er muziek (null = onbekend)

titel *tekst of null
artiest *tekst of null
volume *getal of null

0-100 (null = onbekend)

NieuweRegel

VeldTypeUitleg
artikelId *tekst
aantal *getal
optieIdslijst van tekst
ganggetal
opmerkingtekst
menuobject

Menu: gekozen producten per keuze-onderdeel (vaste onderdelen gaan vanzelf mee).

menu.keuzeslijst van MenuKeuze
etikettekst

Weegschaal (migratie 047): streepjescode van een TS6X-etiket. Het gewicht op het etiket wordt het aantal (kg); aantal hoeft dan niet mee.

afhalenja/nee

Migratie 129: deze regel wordt meegenomen (afhaal-btw), ook in een bestelling ter plaatse.

stoelgetal

Migratie 129: stoelnummer aan de tafel (1 tot 99).

prijsgetal

Migratie 129: eigen prijs in centen (alleen bij een product met open prijs).

bijtekst

Knop "+" op een regel in het bestelscherm: met Zelfde producten optellen aan nog één erbij op juist deze nog niet bestelde regel. Optellen uit, al besteld, andere prijs ...: een nieuwe regel.

Nummer

VeldTypeUitleg
id *tekst
titel *tekst
artiest *tekst of null

OmzetRegel

VeldTypeUitleg
dag *tekst
uur *getal
excl *getal
incl *getal

Ontvangen

VeldTypeUitleg
ontvangen *getal
geboekt *getal
dubbel *getal
onbekend *getal
fouten *getal

Oproep

VeldTypeUitleg
id *tekst
bron *tekst

Een van: "webhook" "ami" "fritzbox" "modem" "android" "test"

nummer *tekst of null
naam *tekst of null
lijn *tekst of null
status *tekst

Een van: "ringt" "opgenomen" "beeindigd" "gemist"

op *tekst
afgehandeld *ja/nee
bestellingId *tekst of null
beller *Beller

OproepRegel

VeldTypeUitleg
id *tekst
bron *tekst
nummer *tekst of null
naam *tekst of null
lijn *tekst of null
status *tekst

Een van: "ringt" "opgenomen" "beeindigd" "gemist"

op *tekst
afgehandeld *ja/nee
bestellingId *tekst of null
bekend *ja/nee

OproepRij

VeldTypeUitleg
id *tekst
nummer *tekst

wat er op het scherm staat

bestelnummer *getal

bestelnummer in de kassa (voor de bediening)

naam *tekst of null

voornaam (op het scherm alleen als de instelling aan staat)

bron *tekst

Een van: "thuisbezorgd" "webshop" "kassa" "platform" "kiosk"

soort *tekst

Een van: "afhalen" "balie" "bezorger"

platformtekst

bij bron platform: Uber Eats, Deliveroo of HubRise

sinds *tekst
klaarOp *tekst of null
stand *tekst of null

met de hand gezet in de kassa

Een van: "klaar" "weg" "bereid"

OptiegroepInvoer

VeldTypeUitleg
artikelIdtekst

bij nieuw: bij welk product óf welke productgroep

groepIdtekst
naamtekst
minimumgetal
maximumgetal

0 = onbeperkt

optieslijst van object

in volgorde; met id = bestaande optie wijzigen, zonder id = nieuw

opties[].idtekst
opties[].naamtekst
opties[].prijsDeltagetal

Order

VeldTypeUitleg
id *tekst
nummer *getal
leverancierId *tekst of null
leverancierNaam *tekst
status *tekst

Een van: "geannuleerd" "mislukt" "concept" "verzonden" "ontvangen"

wijze *tekst of null
leverdatum *tekst of null
opmerking *tekst of null
totaal *getal
automatisch *ja/nee
fout *tekst of null
referentie *tekst of null
aangemaaktOp *tekst
verzondenOp *tekst of null
ontvangenOp *tekst of null
gemaaktDoor *tekst of null
regels *lijst van OrderRegel

OrderRegel

VeldTypeUitleg
id *tekst
soort *tekst of null

Een van: "artikel" "ingredient"

itemId *tekst of null
naam *tekst
bestelcode *tekst of null
ean *tekst of null
aantal *getal
per *getal
eenheid *tekst of null
prijs *getal of null
ontvangen *getal of null

Os6xInstelling

VeldTypeUitleg
naam *tekst

Naam van de weegschaal, bv. "Kassa 1" of "Toonbank"; elke kassa/tablet kiest welke hij gebruikt.

modeltekst

Aclas-model (id uit ACLAS_MODELLEN, bv. "OS6X", "PS1CX", "TS6X"); leeg = OS6X.

verbinding *tekst

serieel = COM-poort / USB-serieel; netwerk = TCP; bluetooth = SPP; module = Aclas Scale Module op dit apparaat

Een van: "serieel" "netwerk" "bluetooth" "module"

poort *tekst

serieel/bluetooth: bv. COM3 (Windows) of /dev/ttyUSB0, /dev/rfcomm0 (Linux)

btAdrestekst

bluetooth op Android: Bluetooth-adres (MAC) van de weegschaal, bv. 00:11:22:AA:BB:CC

baud *getal

serieel: snelheid zoals ingesteld op de weegschaal (meestal 9600)

host *tekst

netwerk: IP-adres of naam van de omzetter

tcpPoort *getal

netwerk: TCP-poort van de omzetter

protocol *tekst

opvragen = kassa stuurt "W" (Toledo 8217), continu = weegschaal stuurt zelf, dialog06 = Checkout-Dialog 06, digi = DIGI Type B (ENQ)

Een van: "opvragen" "continu" "dialog06" "digi" "gram"

lijntekst

databits/pariteit (serieel en Bluetooth); leeg = 8N1. Mettler Toledo: 7E1. Dialog 06 is altijd 7O1.

Een van: "8N1" "7E1"

dialog06Codestekst

Dialog 06: controlecodes (checksum + correctiewaarde, hexadecimaal) die de weegschaal af en toe vraagt (record 10). Krijg je van de leverancier van de weegschaal; leeg = de weegschaal vraagt er niet om.

PakketVeld

VeldTypeUitleg
veld *tekst
label *tekst
geheimja/nee
optioneelja/nee

leeg laten mag

plaatshoudertekst
keuzeslijst van object
keuzes[].waarde *tekst
keuzes[].label *tekst

PlatformKoppeling

VeldTypeUitleg
platform *tekst

Een van: "ubereats" "deliveroo" "hubrise"

naam *tekst
status *tekst

Een van: "fout" "uit" "wacht" "actief"

melding *tekst of null
menuOp *tekst of null
menuFout *tekst of null
geheimIngevuld *ja/nee

HubRise: geheim van de app ingevuld (de waarde zelf komt nooit terug)

ingelogd *ja/nee

HubRise: ingelogd (toegang bewaard)

verbonden *ja/nee
aan *ja/nee
extern *tekst of null

Uber Eats: winkel-id (storeid); Deliveroo: site-id (locationid); HubRise: location-id (na het inloggen)

merk *tekst of null

Deliveroo: merk-id (brand_id)

tabletloos *ja/nee

Deliveroo: site zonder tablet (de kassa accepteert); met tablet accepteert de zaak op de tablet

autoAccepteren *ja/nee

bestelling meteen accepteren zodra hij in de kassa staat

werkbon *ja/nee

werkbon meteen naar keuken/bar

menuAuto *ja/nee

menu vanzelf naar het platform na een wijziging (Uber Eats en Deliveroo)

clientId *tekst of null

HubRise: client-id van de app

Playlist

VeldTypeUitleg
nu *getal of null
nummers *lijst van Nummer

PortaalBackup

VeldTypeUitleg
naam *tekst
gemaaktOp *tekst
grootteKb *getal
soort *tekst

Een van: "handmatig" "automatisch" "veiligheid"

hier *ja/nee

staat deze back-up ook al op dit apparaat?

POverzicht

VeldTypeUitleg
bestellingId *tekst
nummer *getal
platform *tekst

Een van: "ubereats" "deliveroo" "hubrise"

kanaal *tekst of null
referentie *tekst of null
levering *tekst

Een van: "afhalen" "platform" "zelf_bezorgen"

status *tekst

Een van: "geannuleerd" "nieuw" "klaar" "onderweg" "in_bereiding" "bezorgd" "opgehaald" "geaccepteerd" "geweigerd"

statusTekst *tekst
bestellingStatus *tekst
klant *object
klant.naam *tekst of null
klant.telefoon *tekst of null
klant.adres *tekst of null
klant.notitie *tekst of null
klaarOm *tekst of null
bezorgenOm *tekst of null
betaalwijze *tekst of null
onlineBetaald *ja/nee
totaal *getal
notitie *tekst of null
ontvangenOp *tekst
regels *lijst van object
regels[].naam *tekst
regels[].aantal *getal
regels[].opties *lijst van tekst
regels[].opmerking *tekst of null
tijdlijn *lijst van object
tijdlijn[].soort *tekst
tijdlijn[].code *tekst of null
tijdlijn[].tekst *tekst
tijdlijn[].op *tekst

PrintapparaatGegevens

Printapparaten (migratie 053): een bedienscherm met de HorecaPOS-app op Android waar zelf een printer aan hangt (Bluetooth, USB of ingebouwd), bv. een handterminal met een mobiele bonprinter op het terras, of een Sunmi als bedienscherm.

De kassaserver kan zo'n printer niet zelf bereiken. Het apparaat haalt daarom zijn bonnen op bij de kassa (GET /api/printapparaat/opdrachten, wacht tot er iets is) en meldt daarna of het printen lukte. Geen open poort op het apparaat nodig, en het werkt ook als het apparaat via wifi een ander IP-adres krijgt.

Aanmelden doet een beheerder op het apparaat zelf (Instellingen → Printers → "Dit apparaat als printapparaat"). Het apparaat krijgt een eigen sleutel; de kassa bewaart alleen de hash.

Opdrachten staan alleen in het geheugen. Lukt het niet binnen de tijd (apparaat uit, buiten bereik), dan mislukt het printen en gaat een werkbon naar de printwachtrij, net als bij een netwerkprinter die uit staat.

VeldTypeUitleg
id *tekst
naam *tekst
platform *tekst
laatstGezien *tekst of null

laatst opgehaald (ISO) of null

verbonden *ja/nee

haalt het nu bonnen op (laatste minuut)?

PrinterInvoer

VeldTypeUitleg
hosttekst
poortgetal
breedtegetal
taaltekst

Taal van de werkbon: 'medewerker' (taal van wie bestelt) of een vaste taal (nl, de, en ...); weglaten = niet wijzigen.

verbindingtekst

Hoe de printer aangesloten is (migratie 053); weglaten = netwerk (de oude manier).

adrestekst

usb / serieel / bluetooth / systeem: poort, adres of printernaam

baudgetal

serieel: snelheid (baud), standaard 9600

protocoltekst

escpos (standaard) of star

apparaattekst of null

id van het printapparaat (Android-bedienscherm) waar de printer aan hangt; null/leeg = de kassaserver

PrinterZoekResultaat

VeldTypeUitleg
platform *tekst

Een van: "android" "windows" "linux" "macos" "anders"

gevonden *lijst van GevondenPrinter
verbindingen *lijst van tekst

wat hier kan: welke verbindingen deze kassa(server) zelf kan gebruiken

meldingtekst

RapportBonGegevens

Gegevens van een X- of Z-rapport, zoals de server ze samenstelt.

VeldTypeUitleg
vanaf *tekst
tot *tekst
aantalBonnen *getal
omzetIncl *getal
perBtw *lijst van object
perBtw[].code *tekst
perBtw[].percentage *getal
perBtw[].basis *getal
perBtw[].btw *getal
perBtw[].totaal *getal
perBetaalwijze *lijst van object
perBetaalwijze[].methode *tekst
perBetaalwijze[].aantal *getal
perBetaalwijze[].bedrag *getal
perBetaalwijze[].fooi *getal
perGroep *lijst van object
perGroep[].groep *tekst
perGroep[].aantal *getal
perGroep[].omzet *getal
aantalStornos *getal
retourobject

Retouren (creditbonnen) in de periode; bedrag is negatief en zit al in de omzet.

retour.aantal *getal
retour.bedrag *getal
gastengetal

aantal gasten (personen) op de afgerekende bestellingen

kortingenobject

kortingen in de periode; bedrag is negatief en zit al in de omzet

kortingen.aantal *getal
kortingen.bedrag *getal
cadeaubonnenobject

verkochte cadeaubonnen (migratie 026): geen omzet, wel ontvangen geld

cadeaubonnen.aantal *getal
cadeaubonnen.bedrag *getal
opRekeningobject

op rekening (migratie 085): facturen die in de zaak betaald zijn (geen omzet; de omzet was er bij de verkoop)

opRekening.ontvangen *lijst van object
opRekening.ontvangen[].methode *tekst
opRekening.ontvangen[].aantal *getal
opRekening.ontvangen[].bedrag *getal
valutalijst van object

Vreemde valuta (migratie 116): per munt wat de gasten gaven (centen in die munt), in euro afgerekend, en het wisselgeld in euro.

valuta[].code *tekst
valuta[].aantal *getal
valuta[].valutaBedrag *getal
valuta[].bedrag *getal
valuta[].wisselgeld *getal
kasobject
kas.startgeld *getal
kas.contantOntvangen *getal
kas.verwacht *getal
kas.inLadegetal

kasbeheer: geld in/uit de lade buiten verkopen om (ontbreekt bij oude rapporten)

kas.uitLadegetal
kas.mutatieslijst van Kasmutatie
kas.wisselgeldValutagetal

vreemde valuta (migratie 116): wisselgeld in euro uit de lade

zobject
z.nummer *getal
z.telling *getal of null
z.verschil *getal of null
z.startgeldVolgende *getal
z.afgeslotenDoor *tekst
z.telDetaillijst van object

telling per munt/biljet (waarde in centen), als de telhulp is gebruikt

z.telDetail[].waarde *getal
z.telDetail[].aantal *getal
fiscaleRegelslijst van tekst

GKS 2.0 (België): controlegegevens van de zwarte doos voor dit rapport.

fooiVerdelingobject

Fooi per medewerker (migratie 037); ontbreekt als het uit staat of er geen fooi is.

fooiVerdeling.methode *tekst

Een van: "eigen" "uren" "gelijk"

fooiVerdeling.totaal *getal
fooiVerdeling.regels *lijst van object
fooiVerdeling.regels[].naam *tekst
fooiVerdeling.regels[].bedrag *getal
fooiVerdeling.regels[].urengetal
fooiVerdeling.opmerkingtekst

Regel

object

Rekening

VeldTypeUitleg
sleutel *tekst
naam *tekst
standaard *tekst
rekening *tekst

RekeningKlant

VeldTypeUitleg
id *tekst
afnemer *FactuurAfnemer
limiet *getal of null

centen; null = geen grens

betaaltermijn *getal of null

dagen; null = de betaaltermijn van de facturen

versturen *ja/nee
notitie *tekst of null
actief *ja/nee
openstaand *getal

nu nog open (centen) en op hoeveel facturen

aantalOpen *getal
teLaat *getal

waarvan over de vervaldatum

tegoed *getal

geld vooraf op de rekening gezet en nog niet gebruikt (centen; migratie 131)

verzamelfactuur *ja/nee

Verzamelfactuur (migratie 132): verkopen op rekening eerst als openstaande post; later één factuur voor alle posten (bv. aan het eind van de maand). false = een factuur per verkoop (zoals altijd).

nietGefactureerd *getal

waarvan nog niet op een factuur (posten, centen) en hoeveel posten

aantalPosten *getal

RekeningPost

VeldTypeUitleg
id *tekst
klantId *tekst
ticketId *tekst
bonnummer *getal of null
soort *tekst

retour = een creditbon terug naar de rekening (negatief bedrag)

Een van: "verkoop" "retour"

bedrag *getal
ontvangen *getal
openstaand *getal
factuur *tekst of null

op deze verzamelfactuur (nummer); null = nog niet gefactureerd

op *tekst

ReserverenOnline

Online reserveren (webshop) met de regels van de kassa (migratie 061).

VeldTypeUitleg
maxPersonen *getal
vooruitDagen *getal
slotMin *getal

tijdslot in minuten: 15, 30 of 60

minVoorafMin *getal

minstens zoveel minuten van tevoren

tijden *WeekTijden

ResOntvangen

VeldTypeUitleg
nieuw *getal
bijgewerkt *getal
opTafel *getal
fouten *getal

ResPlatform

VeldTypeUitleg
code *tekst

Een van: "eigen" "thefork" "formitable" "zenchef" "resengo" "opentable" "planpanther" "restomanager" "aqqo"

naam *tekst
landen *lijst van tekst
manier *tekst

api = de kassa haalt zelf op; webhook = het platform (of een koppeldienst) stuurt naar de kassa

Een van: "webhook" "api"

velden *lijst van ResPlatformVeld
noot *tekst

ResPlatformBron

VeldTypeUitleg
id *tekst
platform *tekst

Een van: "eigen" "thefork" "formitable" "zenchef" "resengo" "opentable" "planpanther" "restomanager" "aqqo"

naam *tekst
actief *ja/nee
instellingen *object
geheimIngevuld *object

per geheim veld: is het ingevuld (de waarde zelf nooit)

heeftSleutel *ja/nee
laatsteSync *tekst of null
laatsteFout *tekst of null
aantal *getal

reserveringen van dit platform vanaf vandaag

ResPlatformVeld

VeldTypeUitleg
sleutel *tekst
label *tekst
geheimja/nee

geheim: wordt nooit teruggestuurd (alleen "ingevuld")

standaardtekst

standaardwaarde (bv. een adres)

ReviewKoppeling

VeldTypeUitleg
id *tekst
platform *tekst

Een van: "google" "trustpilot"

manier *tekst

Een van: "oauth" "places" "business" "publiek"

actief *ja/nee
instellingen *object
geheimIngevuld *object

per geheim veld: ingevuld (de waarde nooit)

inEnv *lijst van tekst

velden die al in .env staan (die ziet de beheerder niet)

verbonden *ja/nee
locaties *lijst van object

Google: vestigingen in het bedrijfsprofiel om uit te kiezen

locaties[].naam *tekst
locaties[].titel *tekst
kanAntwoorden *ja/nee
laatsteSync *tekst of null
laatsteFout *tekst of null
redirectUri *tekst of null
bron *tekst

'portaal' = app van de leverancier (inloggen via het klantportaal), 'eigen' = eigen app of sleutel

Een van: "eigen" "portaal"

wachtOpInlog *ja/nee

de kassa wacht op het inloggen (via het portaal)

ReviewManierDef

VeldTypeUitleg
code *tekst

Een van: "oauth" "places" "business" "publiek"

naam *tekst
antwoorden *ja/nee

antwoorden kan via de kassa

noot *tekst
wie *tekst

wie wat regelt: de leverancier (een keer voor alle kassa's) of de zaak zelf

portaal *tekst of null

uitleg via de app van de leverancier (inloggen via het klantportaal); null = kan niet via het portaal

ReviewPlatformDef

VeldTypeUitleg
code *tekst

Een van: "google" "trustpilot"

naam *tekst
manieren *lijst van ReviewManierDef
velden *lijst van ReviewVeld
aanmelden *tekst

waar de zaak zich zelf aanmeldt (account of bedrijfsprofiel)

abonnementen *tekst of null

abonnementen van het platform (null = gratis)

ReviewRegel

VeldTypeUitleg
id *tekst
platform *tekst

Een van: "google" "trustpilot"

auteur *tekst
sterren *getal of null
titel *tekst of null
tekst *tekst of null
taal *tekst of null
geplaatstOp *tekst of null
antwoord *tekst of null
antwoordOp *tekst of null
gelezen *ja/nee
kanAntwoorden *ja/nee

ReviewVeld

VeldTypeUitleg
sleutel *tekst
label *tekst
geheimja/nee
manieren *lijst van tekst

alleen bij deze manier(en)

envtekst

kan ook in .env (dan ziet de beheerder het niet)

alleenEigentrue

alleen nodig met een eigen app of sleutel (niet via de app van de leverancier)

Rij

VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
email *tekst of null
personen *getal
tijdstip *tekst
datum *tekst
tijd *tekst
duurMin *getal
tafelId *tekst of null
tafelNaam *tekst of null
opmerking *tekst of null
status *tekst
bestellingId *tekst of null
klantId *tekst of null
gemaildOp *tekst of null
platformIdtekst of null

reservering van een platform (migratie 078): id en naam (bv. TheFork)

platformNaamtekst of null

Rij2

object

Rit

VeldTypeUitleg
id *tekst
nummer *getal
bezorgerId *tekst of null
bezorger *tekst
status *tekst

Een van: "geannuleerd" "klaar" "onderweg" "terug" "afgerekend"

wisselgeld *getal
aangemaaktOp *tekst
vertrokkenOp *tekst of null
terugOp *tekst of null
afgerekendOp *tekst of null
contantVerwacht *getal of null
contantGeteld *getal of null
verschil *getal of null
locatie *object of null
locatie.lat *getal
locatie.lon *getal
locatie.op *tekst
afstandKm *getal of null

ritplanning (migratie 098): geplande afstand en reistijd (heen, adressen, terug)

reistijdMin *getal of null
viaApp *ja/nee

bezorgersapp (migratie 099): de bezorger heeft de bestellingen zelf opgepakt in de app

stops *lijst van Stop
contantTeInnen *getal

contant te innen (nog niet afgerekend), voor de kasafdracht

ScanKeuzes

VeldTypeUitleg
product *ja/nee
kortingscode *ja/nee
klantenkaart *ja/nee
cadeaubon *ja/nee

ScannerInstelling

VeldTypeUitleg
aan *ja/nee
product *ja/nee
kortingscode *ja/nee
klantenkaart *ja/nee
cadeaubon *ja/nee

SignaalRegel

VeldTypeUitleg
id *tekst
soort *tekst

Een van: "fraude" "afwijking"

regel *tekst
tekst *tekst
gebruikerId *tekst of null
medewerker *tekst of null
bestellingId *tekst of null
waarde *getal of null
grens *getal of null
details *object
gemeldOp *tekst
kanalen *lijst van tekst
fouten *lijst van tekst
afgehandeldOp *tekst of null
afgehandeldDoor *tekst of null
notitie *tekst of null

SignaleringBeheer

VeldTypeUitleg
migratie *ja/nee
instelling *SignaleringInstelling
geheimen *object

welke geheimen ingevuld zijn (de waarde komt nooit terug)

geheimen.ntfyToken *ja/nee
geheimen.pushoverToken *ja/nee
geheimen.telegramToken *ja/nee
geheimen.webhookGeheim *ja/nee
mail *ja/nee
sms *ja/nee
laatstOp *tekst of null
open *getal

SpaarPlatformDef

VeldTypeUitleg
code *tekst

Een van: "piggy" "joyn"

naam *tekst
landen *lijst van tekst
velden *lijst van SpaarVeld
noot *tekst

SpaarVeld

VeldTypeUitleg
sleutel *tekst
label *tekst
geheimja/nee
maniertekst

alleen nodig bij deze manier

Een van: "api" "qr"

Stop

VeldTypeUitleg
bestellingId *tekst
nummer *getal

bonnummer in de kassa

bron *tekst

waar de bestelling vandaan komt

Een van: "thuisbezorgd" "webshop" "kassa" "platform"

klantNummer *tekst of null

nummer dat de klant kent (webshop, Thuisbezorgd, Uber Eats ...)

naam *tekst of null
telefoon *tekst of null
adres *tekst of null
postcode *tekst of null
huisnummer *tekst of null
opmerking *tekst of null
tijd *tekst of null

gewenste tijd (ISO)

totaal *getal
teInnen *getal

nog te innen aan de deur (centen)

ritId *tekst of null
volgorde *getal of null
bezorgdOp *tekst of null
betaling *tekst of null

Een van: "contant" "pin" "vooraf"

volgCode *tekst of null

TabletRij

VeldTypeUitleg
id *tekst
naam *tekst
online *ja/nee
laatstGezien *tekst of null
scherm *tekst of null

Een van: "muziek" "camera"

TafelGroep

VeldTypeUitleg
id *tekst
nummer *getal
groepNummer *getal
groepNaam *tekst of null
totaal *getal
aantalRegels *getal
gasten *getal

aantal personen in deze groep

geopendOp *tekst

TafelInvoer

VeldTypeUitleg
idtekst of null
naamtekst
xgetal
ygetal
breedtegetal
hoogtegetal
vormtekst
plaatsengetal

TapBron

VeldTypeUitleg
id *tekst
naam *tekst
merk *tekst
koppeling *tekst

Een van: "webhook" "map" "serieel" "tcp" "kegboard"

instellingen *TapInstellingen
actief *ja/nee
heeftSleutel *ja/nee
laatsteTap *tekst of null
laatsteFout *tekst of null
verbonden *ja/nee
koppel *object of null

Kegboard: koppelen (bord, status, IP, laatst gezien) en wat het bord meldt (firmware, meters, relais)

koppel.apparaat *tekst of null
koppel.status *tekst of null

Een van: "wacht" "geweigerd" "toegestaan"

koppel.ip *tekst of null
koppel.gezien *tekst of null
bord *KegboardStatus

TapInstellingen

VeldTypeUitleg
hosttekst

tcp: adres van de tapcomputer (leeg = de kassa luistert zelf op de poort)

poortgetal
comtekst

serieel: COM3 of /dev/ttyUSB0

baudgetal
lijntekst

Een van: "8N1" "7E1" "7O1"

framingtekst

regel = één bericht per regel (CR/LF); stxetx = STX … ETX (met optioneel een XOR-byte erna)

Een van: "regel" "stxetx"

xorja/nee
ackja/nee

ACK (06) na een goed bericht, NAK (15) na een fout bericht terugsturen

patroontekst

patroon (reguliere expressie) met benoemde delen: kraan of plu, ml/cl/liter/porties, tafel, bediening, id, terminal

maptekst

map: waar de CSV-bestanden staan (ze gaan na het lezen naar de submap "verwerkt")

scheidingtekst

CSV: scheidingsteken (; of ,)

vrijgaveCommandotekst

Gedoseerd tappen (tcp/serieel): opdracht om een kraan vrij te geven, met {kraan}, {ml}, {porties}, {sec} en {id}; wordt verstuurd in de berichtvorm (regel of STX/ETX + XOR).

stopCommandotekst

idem om een vrijgegeven kraan weer te sluiten (bv. storno); leeg = niet sturen

vrijgaveUrltekst

gedoseerd tappen (webhook-bron): adres van de tapcomputer waar de kassa de vrijgave naartoe POST

kegIdleSecgetal

Kegboard: na zoveel seconden zonder flow sluit de kraan (maxidlems; standaard 30)

TapKraan

VeldTypeUitleg
id *tekst
bronId *tekst
code *tekst
naam *tekst of null
artikelId *tekst of null
artikelNaam *tekst of null
modus *tekst

Een van: "portie" "liter"

portieMl *getal
drempel *getal
vrijgave *ja/nee

gedoseerd tappen: pas open na aanslaan op de kassa

relais *getal of null

Kegboard: relais (magneetventiel)

vrijgaveSec *getal

TapMerk

VeldTypeUitleg
code *tekst
naam *tekst
markt *tekst

waar het in de markt is (NL/BE bevestigd of elders)

soort *tekst

boeken = taps op de bon; analyse = vergelijkt getapt met verkocht (leest de verkopen uit de kassa)

Een van: "boeken" "analyse"

koppeling *tekst

Een van: "webhook" "map" "serieel" "tcp" "kegboard"

instellingen *TapInstellingen
noot *tekst

TapOverzichtRij

VeldTypeUitleg
kraan *tekst
kraanNaam *tekst of null
artikelNaam *tekst of null
taps *getal
getaptMl *getal
geboektMl *getal
afgekeurdMl *getal
openMl *getal
geannuleerdMl *getal

op een bon gezet maar daarna geannuleerd (storno): wel getapt, niet verkocht

afgekeurdPerReden *object

TapRij

VeldTypeUitleg
id *tekst
bronId *tekst of null
bronNaam *tekst of null
kraan *tekst
kraanNaam *tekst of null
artikelId *tekst of null
artikelNaam *tekst of null
ml *getal of null
porties *getal of null
tafel *tekst of null
bediening *tekst of null
getaptOp *tekst
status *tekst

Een van: "open" "geboekt" "afgekeurd"

bestellingId *tekst of null
reden *tekst of null

TapVrijgave

VeldTypeUitleg
id *tekst
kraan *tekst of null
kraanNaam *tekst of null
artikelNaam *tekst of null
tafel *tekst of null
bestellingId *tekst of null
ml *getal
getaptMl *getal
status *tekst

Een van: "klaar" "fout" "actief" "verzonden" "wachtend" "verlopen" "stoppen" "gestopt"

fout *tekst of null
aangemaaktOp *tekst
geldigTot *tekst

Tarief

VeldTypeUitleg
id *tekst
code *tekst
percentage *getal
omschrijving *tekst

TbOverzicht

VeldTypeUitleg
bestellingId *tekst
nummer *getal
referentie *tekst of null
levering *tekst

Een van: "afhalen" "bezorger_thuisbezorgd" "zelf_bezorgen"

status *tekst

Een van: "geannuleerd" "nieuw" "klaar" "onderweg" "in_bereiding" "bezorgd" "opgehaald"

statusTekst *tekst
bestellingStatus *tekst

Een van: "open" "betaald" "geannuleerd"

klant *object
klant.naam *tekst of null
klant.telefoon *tekst of null
klant.maskeercode *tekst of null
klant.bedrijf *tekst of null
klant.adres *tekst of null
klant.notitie *tekst of null
bezorger *object of null
bezorger.naam *tekst of null
bezorger.telefoon *tekst of null
klaarOm *tekst of null
bezorgenOm *tekst of null
betaalwijze *tekst of null
onlineBetaald *ja/nee
totaal *getal
notitieKeuken *tekst of null
ontvangenOp *tekst
regels *lijst van object
regels[].naam *tekst
regels[].aantal *getal
regels[].opties *lijst van tekst
regels[].opmerking *tekst of null
tijdlijn *lijst van object
tijdlijn[].soort *tekst
tijdlijn[].code *tekst of null
tijdlijn[].tekst *tekst
tijdlijn[].op *tekst

TeLaatInstelling

VeldTypeUitleg
aan *ja/nee
minuten *getal

zoveel minuten na de beloofde tijd nog niet klaar of onderweg = te laat

bericht *tekst

excuusbericht aan de klant: uit, na bevestiging in de kassa, of automatisch

Een van: "uit" "automatisch" "vragen"

tegoed *TeLaatTegoed

tegoedbon bij het excuus (kortingscode); null = geen

tekst *tekst of null

eigen tekst van het excuus; leeg = de standaardtekst. {naam}, {zaak}, {code}, {korting} en {geldig} worden ingevuld.

TeLaatMelding

Een te late bestelling, zoals de kassa hem toont.

VeldTypeUitleg
bestellingId *tekst
bron *tekst

Een van: "thuisbezorgd" "webshop" "kassa"

soort *tekst

Een van: "afhalen" "bezorgen"

naam *tekst of null

naam van de klant, of de omschrijving van de bestelling

beloofdOp *tekst
gemeldOp *tekst
klaarOp *tekst of null

wanneer hij alsnog klaar of onderweg was (null = nog niet)

minuten *getal

minuten te laat: tot klaar, of tot nu

bericht *tekst

Een van: "verstuurd" "mislukt" "geen" "niet_mogelijk"

berichtVia *lijst van tekst
code *tekst of null

de tegoedcode die met het excuus meeging

afgehandeldOp *tekst of null
kanBericht *ja/nee

kan de kassa de klant een excuus sturen (telefoon of e-mail, en sms of mail ingesteld; niet bij Thuisbezorgd)?

TeLaatTegoed

VeldTypeUitleg
soort *tekst

Een van: "procent" "bedrag"

waarde *getal

procent: 1-100; bedrag: centen

dagen *getal

zoveel dagen geldig (vanaf vandaag)

TelefonieBeheer

VeldTypeUitleg
migratie *ja/nee
land *tekst

Een van: "NL" "BE"

instelling *TelefonieInstelling
sleutel *tekst of null

de sleutel van de webhook (de beheerder zet hem in de centrale of op het toestel)

amiWachtwoord *ja/nee
adressen *object
adressen.kassa *lijst van tekst
adressen.portaal *tekst of null
verbindingen *object
verbindingen.ami *object of null
verbindingen.ami.verbonden *ja/nee
verbindingen.ami.fout *tekst of null
verbindingen.fritzbox *object of null
verbindingen.fritzbox.verbonden *ja/nee
verbindingen.fritzbox.fout *tekst of null
verbindingen.modem *object of null
verbindingen.modem.verbonden *ja/nee
verbindingen.modem.fout *tekst of null
laatste *object of null
laatste.op *tekst
laatste.bron *tekst
laatste.nummer *tekst of null

TelefonieInstelling

VeldTypeUitleg
aan *ja/nee
systeem *tekst of null

gekozen telefoonsysteem (voor de uitleg in het scherm), zie TELEFOONSYSTEMEN

webhook *ja/nee
android *ja/nee
ami *object
ami.aan *ja/nee
ami.host *tekst of null
ami.poort *getal
ami.gebruiker *tekst of null
fritzbox *object
fritzbox.aan *ja/nee
fritzbox.host *tekst of null
fritzbox.poort *getal
modem *object
modem.aan *ja/nee
modem.poort *tekst of null
modem.baud *getal
modem.init *tekst
lijnen *lijst van tekst

alleen gesprekken op deze lijnen / toestellen / gebelde nummers; leeg = alle

melding *ja/nee

melding met de klant op de schermen bij een inkomend gesprek

zoeken *ja/nee

in het bezorg-/afhaalscherm de klant opzoeken bij het intikken van het nummer (los aan te zetten, ook zonder nummerherkenning; standaard uit)

bewaarDagen *getal

gesprekken bewaren (dagen)

TerminalBody

VeldTypeUitleg
naamtekst
terminalIdtekst
apiSleuteltekst

TfOrder

VeldTypeUitleg
orderId *tekst
bestellingId *tekst of null
bestellingNummer *getal of null
bestellingStatus *tekst of null
tafel *tekst of null
klant *tekst of null
gasten *getal of null
reserveringStatus *tekst of null
maaltijdStatus *tekst of null
rekening *tekst

Een van: "fout" "niet_gestuurd" "gestuurd"

rekeningTotaal *getal of null
rekeningFout *tekst of null
notitie *tekst
ontvangenOp *tekst

ThuisbezorgdInstelling

VeldTypeUitleg
aan *ja/nee
menuAuto *ja/nee
werkbon *ja/nee

Tijden

VeldTypeUitleg
bezorgen *object
bezorgen.mondaylijst van object
bezorgen.monday[].openingTime *tekst
bezorgen.monday[].closingTime *tekst
bezorgen.tuesdaylijst van object
bezorgen.tuesday[].openingTime *tekst
bezorgen.tuesday[].closingTime *tekst
bezorgen.wednesdaylijst van object
bezorgen.wednesday[].openingTime *tekst
bezorgen.wednesday[].closingTime *tekst
bezorgen.thursdaylijst van object
bezorgen.thursday[].openingTime *tekst
bezorgen.thursday[].closingTime *tekst
bezorgen.fridaylijst van object
bezorgen.friday[].openingTime *tekst
bezorgen.friday[].closingTime *tekst
bezorgen.saturdaylijst van object
bezorgen.saturday[].openingTime *tekst
bezorgen.saturday[].closingTime *tekst
bezorgen.sundaylijst van object
bezorgen.sunday[].openingTime *tekst
bezorgen.sunday[].closingTime *tekst
afhalen *object
afhalen.mondaylijst van object
afhalen.monday[].openingTime *tekst
afhalen.monday[].closingTime *tekst
afhalen.tuesdaylijst van object
afhalen.tuesday[].openingTime *tekst
afhalen.tuesday[].closingTime *tekst
afhalen.wednesdaylijst van object
afhalen.wednesday[].openingTime *tekst
afhalen.wednesday[].closingTime *tekst
afhalen.thursdaylijst van object
afhalen.thursday[].openingTime *tekst
afhalen.thursday[].closingTime *tekst
afhalen.fridaylijst van object
afhalen.friday[].openingTime *tekst
afhalen.friday[].closingTime *tekst
afhalen.saturdaylijst van object
afhalen.saturday[].openingTime *tekst
afhalen.saturday[].closingTime *tekst
afhalen.sundaylijst van object
afhalen.sunday[].openingTime *tekst
afhalen.sunday[].closingTime *tekst

Tijdvak

VeldTypeUitleg
op *tekst

begin van het tijdvak (ISO)

tijd *tekst

"18:30"

bezet *getal

bestellingen in dit tijdvak

vol *ja/nee

vol (maximum bereikt)

Ts6xInstelling

VeldTypeUitleg
modeltekst

Aclas-model van de etiketweegschaal (id uit ACLAS_MODELLEN, bv. "TS6X", "LS6RX", "iS6X"); leeg = TS6X.

weegschaaltekst

Dezelfde weegschaal weegt ook aan de kassa: de naam van die weegschaal in os6x (in het scherm één weegschaal met beide vinkjes). Leeg = alleen etiketten.

naamtekst

Naam als de weegschaal alleen etiketten print (bv. "Toonbank"); leeg = het model.

host *tekst

IP-adres van de TS6X (voor het versturen van de PLU's)

poort *getal

TCP-poort van de TS6X (Aclas: 5002)

etiketPrefix *tekst

eerste twee cijfers van de streepjescode op het etiket, bv. "28"

etiketInhoud *tekst

wat er in de streepjescode staat: gewicht in gram of prijs in centen

Een van: "gewicht" "prijs"

pluCijfers *getal

aantal cijfers voor het PLU-nummer (de rest, tot 10, is gewicht of prijs)

Een van: 4 5 6

Uitkomst

VeldTypeUitleg
nieuw *getal
bijgewerkt *getal
overgeslagen *getal
groepenNieuw *getal
meldingen *lijst van tekst

hooguit 50 regels "regel 12: ..."

UrenRegel

Bestanden voor salaris en planning (Instellingen → Werktijden → Salaris en planning; zie personeelcatalogus.ts).

- Uren: per medewerker per dag de gewerkte minuten (afgesloten diensten, dag = de dag van inklokken) en de omzet die hij/zij afrekende (voor bonussen of provisie en voor de loonkosten tegenover de omzet). - Omzet: per dag en uur de omzet excl. en incl. btw (verkoop en retour, zonder verkochte cadeaubonnen), zoals het dashboard.

Bedragen in centen, tijden in minuten.

VeldTypeUitleg
dag *tekst
gebruikerId *tekst
naam *tekst
minuten *getal
omzetgetal

omzet excl. btw die deze medewerker die dag afrekende (centen; optioneel)

VerplaatsBody

Regels naar een andere groep verplaatsen, of de rekening splitsen. Per regel mag een deel van het aantal mee (3x Cola -> 1x naar Jansen). Doel: een bestaande open bestelling (naar) of een nieuwe groep aan dezelfde tafel (nieuweGroep). Raakt de bron leeg, dan vervalt die.

VeldTypeUitleg
regelslijst van object
regels[].id *tekst
regels[].aantal *getal
naartekst
nieuweGroepja/nee
groepNaamtekst
apartja/nee
naarTafeltekst

naar een nieuwe groep aan een andere tafel

VerspillingRegel

VeldTypeUitleg
soort *tekst

Een van: "product" "ingredient"

id *tekst
naam *tekst
eenheid *tekst
hoeveelheid *getal
waarde *getal of null

Waarde tegen de kostprijs (centen); null = geen kostprijs bekend.

redenen *lijst van tekst

VerstuurResultaat

VeldTypeUitleg
ok *ja/nee
fouttekst
meldingtekst
order *Order

Vestiging

VeldTypeUitleg
id *tekst
naam *tekst
land *tekst

Een van: "NL" "BE"

btwNummer *tekst of null
vestigingsnummertekst of null

België, GKS 2.0 (migratie 119): vestigingseenheidsnummer (KBO) en juridische naam; alleen in Instellingen → Zaak.

juridischeNaamtekst of null
gksPlichtigja/nee of null

België (migratie 135): GKS-plichtig? null = nog niet gekozen (dan kan de zaak niet afrekenen), true = alleen afrekenen met een werkende zwarte doos (GKS 2.0), false = niet GKS-plichtig (verklaring van de beheerder).

gksVerklaringOptekst of null

Wanneer de keuze (bij "nee": de verklaring) is gedaan (ISO); elk jaar opnieuw te bevestigen.

fiscaalDemoja/nee

Demo- of testzaak: de nagebootste zwarte doos (FISCAL_MODE=mock) mag. Nooit bij een echte zaak.

gksMaaltijdOmzetgetal

Alleen in Instellingen → Zaak (België): maaltijden ter plaatse (btw 12%) in de laatste 12 maanden, excl. btw, in centen.

adres *tekst of null
postcode *tekst of null
plaats *tekst of null
telefoon *tekst of null
emailtekst of null

E-mailadres van de zaak (niet op de bon; o.a. voor het beheerportaal van Pin Voordeel).

gksProductienummer *tekst of null
bonVoetteksttekst of null

Tekst onderaan de kassabon (meerdere regels mogen). null/undefined = STANDAARD_BONVOETTEKST, '' = geen tekst.

bonTaaltekst of null

Taal van de vaste teksten op de kassabon (migratie 052; alleen Latijns schrift, zie packages/printing/src/bontaal.ts). null/undefined = Nederlands. Los van de taal van de schermen.

contantAfrondenja/nee

Contante betalingen afronden op 5 cent (standaard uit).

fooiFooiInstelling

Fooiknoppen bij afrekenen (ontbreekt = STANDAARD_FOOI).

klokkentekst

In- en uitklokken van personeel (ontbreekt = 'uit').

Een van: "uit" "aan" "verplicht"

allergenenja/nee

Allergenen per product tonen en invullen (standaard uit).

happyhourja/nee

Happy hour gebruiken (standaard uit).

menusja/nee

Menu's gebruiken (standaard uit).

dagdelenja/nee

Assortiment per dagdeel en seizoen (migratie 084, standaard uit).

leverwijzeja/nee

Assortiment en prijzen per leverwijze: ter plaatse, afhalen, bezorgen (migratie 084, standaard uit).

cadeaubonBetalenja/nee

"Cadeaubon" als betaalwijze bij afrekenen (ontbreekt = aan, zoals altijd).

cadeaubonSaldoja/nee

Cadeaubonnen verkopen met code en saldo (standaard uit).

voorraadja/nee

Voorraad bijhouden (per product of via ingrediënten; standaard uit).

thematekst

Thema van de schermen (ontbreekt = donker, zoals altijd).

Een van: "donker" "licht"

afrekenknoptekst

Knop "Afrekenen" op het bestelscherm: groot onder de bestelde producten of klein onderin (migratie 054; ontbreekt = groot).

Een van: "groot" "klein"

bonMailenja/nee

Bon per e-mail bij afrekenen (standaard uit).

keukenGeluidja/nee

Piep op de kassa van de bediening als het keukenscherm iets klaar meldt (standaard uit).

zRapportMailtekst

E-mail van de beheerder: Z-rapport na dag afsluiten automatisch mailen (leeg = niet mailen).

fooiVerdelentekst

Fooi per medewerker op X/Z/periode-rapport (ontbreekt = uit).

Een van: "uit" "eigen" "uren" "gelijk"

klantenkaartja/nee

Klantenkaart / spaarpunten (migratie 038; standaard uit).

gastprofielja/nee

Gastprofiel (migratie 115; standaard uit, alleen met de klantenkaart): VIP, dieetwensen en voorkeuren van de klant.

spaarPuntenPerEurogetal

punten per besteedde euro (0 = alleen stempelkaarten)

spaarPuntenNodiggetal

zoveel punten = één beloning

spaarBeloninggetal

beloning in centen korting

marketingSmsja/nee

Sms-marketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met CM_TOKEN).

marketingEmailja/nee

E-mailmarketing naar klanten van de klantenkaart met toestemming (migratie 056; standaard uit; werkt alleen met SMTP_HOST).

adresZoekenja/nee

Snel adres invoeren met postcode en huisnummer, Nederland (migratie 057; standaard uit).

importerenja/nee

Importeren uit een andere kassa: producten en klanten uit CSV/Excel (migratie 058; standaard uit).

exactja/nee

Koppeling met Exact Online: dagomzet boeken (migratie 059; standaard uit).

exactIngesteldja/nee

Alleen-lezen: staat de Exact-app in .env (EXACTCLIENTID en EXACTCLIENTSECRET)?

boekhoudpakkettekst

Koppeling met een ander boekhoudpakket: dagomzet zelf boeken in het gekozen pakket ('' = uit; migraties 062/063; standaard uit). Zie boekhoudcatalogus.ts.

Een van: "" "acumulus" "afas" "businesscentral" "horus" "moneybird" "odoo" "quickbooks" "sapb1" "silvasoft" "snelstart" "twinfield" "xero" "yuki" "zoho"

boekhoudpakketInEnvja/nee

Alleen-lezen: ligt het pakket vast in .env (BOEKHOUDPAKKET)? Dan geen keuze bij Instellingen → Boekhouding.

boekhoudpakkettenobject

Alleen-lezen: welke koppelingen kunnen verbinden (pakketten met inloggen alleen met hun app, in .env of bij Instellingen → Boekhouding).

boekhoudpakketten.acumulusja/nee
boekhoudpakketten.afasja/nee
boekhoudpakketten.businesscentralja/nee
boekhoudpakketten.horusja/nee
boekhoudpakketten.moneybirdja/nee
boekhoudpakketten.odooja/nee
boekhoudpakketten.quickbooksja/nee
boekhoudpakketten.sapb1ja/nee
boekhoudpakketten.silvasoftja/nee
boekhoudpakketten.snelstartja/nee
boekhoudpakketten.twinfieldja/nee
boekhoudpakketten.xeroja/nee
boekhoudpakketten.yukija/nee
boekhoudpakketten.zohoja/nee
reserveringenja/nee

Reserveringen (migratie 039; standaard uit).

reserveringVoorafgetal

zoveel minuten vóór de tijd staat de tafel als gereserveerd op de plattegrond

reserveringDuurMingetal

standaard duur van een reservering in minuten

wachtlijstja/nee

Wachtlijst voor walk-ins (migratie 051; standaard uit).

wachtlijstSmsTeksttekst

tekst van de sms "uw tafel is klaar" ({naam}, {zaak}, {personen}); leeg = standaardtekst

smsIngesteldja/nee

Alleen-lezen: is sms ingesteld in .env (CM_TOKEN, CM.com)?

updatemeldingja/nee

Updatemelding in de kassa (migratie 040; standaard uit).

snelleVerkoopja/nee

Knop "Snelle verkoop" (balie, zonder tafel) op het tafelscherm (migratie 041; ontbreekt = aan).

afhalenja/nee

Knop "Afhalen" op het tafelscherm (migratie 041; ontbreekt = aan).

bezorgenja/nee

Bezorgen en tijdvakken in de kassa (migratie 060): knop "Bezorgen" op het tafelscherm (ontbreekt = uit).

bezorgZoneslijst van BezorgZone

Bezorggebieden, de eerste die past geldt; leeg = overal, zonder kosten of minimum. Bedragen in centen.

bezorgTijdMingetal

Minuten tot bezorgd / klaar voor afhalen als het zo snel mogelijk moet.

afhaalTijdMingetal
tijdvakMingetal

Lengte van een tijdvak (minuten) en het maximum aantal bestellingen erin (afhalen + bezorgen; 0 = geen maximum).

perTijdvakgetal
webshopVolgtja/nee

Kassa en webshop gelijk (migratie 061; alles standaard uit = zoals voorheen). webshopVolgt: de webshop gebruikt de bezorggebieden, tijden, het tijdvak, het maximum, de openingstijden en gesloten dagen van de kassa en telt de bestellingen van de kassa mee (de kassa is leidend).

openTijdenOpenTijden

Eigen openingstijden voor afhalen en bezorgen (1 = maandag ... 7 = zondag); null = zoals voorheen.

geslotenDagenlijst van tekst

Gesloten datums (JJJJ-MM-DD) voor afhalen en bezorgen.

vooruitDagengetal

Zoveel dagen vooruit een tijd kiezen (0 = alleen vandaag).

drukteMingetal

Druk: zoveel minuten extra bij "zo snel mogelijk" (kassa en webshop).

bezorgBerichtenja/nee

De klant een sms/e-mail sturen bij aannemen, klaar en onderweg.

webshopPauzeja/nee

Webshop vanuit de kassa even dicht (pauze), met een tekst voor de gast.

webshopPauzeTeksttekst of null
reserverenOnlineReserverenOnline

Online reserveren in de webshop met de regels van de kassa; null = die van de webshop zelf.

cadeaubonOnlineja/nee

Cadeaubonnen verkopen in de webshop (online betaald).

kortingscodesja/nee

Kortingscodes aan de kassa en in de webshop.

mailIngesteldja/nee

Alleen-lezen: is er een mailserver ingesteld in .env (SMTP_HOST)?

favorietentekst

Favorieten/snelknoppen op het bestelscherm (ontbreekt = uit).

Een van: "uit" "auto" "zelf"

tafelStilMinutengetal

Tafeltijd: oranje rand na zoveel minuten zonder bestelling (0 = uit; ontbreekt = 20).

ayceAyceInstelling

All-you-can-eat (migratie 042; ontbreekt = uit).

klantschermja/nee

Klantscherm: scherm naar de klant toe met bestelling en bedrag (migratie 044; ontbreekt = uit).

klantschermWelkomtekst of null

Welkomsttekst op het klantscherm als er niemand afrekent (leeg = "Welkom").

productfotoKnoppenja/nee

Productfoto op de productknoppen van het bestelscherm (migratie 045; ontbreekt = uit).

productfotoKlantschermja/nee

Productfoto bij de regels op het klantscherm (migratie 045; ontbreekt = uit).

weegschaalWeegschaalInstelling

Weegschaal (migratie 047; ontbreekt of aan = false = uit): producten met een prijs per kilo, wegen op een Aclas OS6X en etiketten van een Aclas TS6X scannen.

leeftijdscheckja/nee

Leeftijdscheck alcohol (migratie 072; ontbreekt = uit): 18+ in de webshop en op werkbon/bezorgbon.

wegwerpja/nee

Wegwerptoeslag per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

statiegeldja/nee

Statiegeld per product bij afhalen/bezorgen (NL, migratie 072; ontbreekt = uit).

contantLimietja/nee

Waarschuwing bij contant € 3.000 of meer voor goederen (NL, migratie 072; ontbreekt = uit).

facturenja/nee

Facturen (UBL/Peppol) voor zakelijke klanten (migratie 072; ontbreekt = uit).

haccpja/nee

Digitale HACCP-registratie: temperaturen en schoonmaak (migratie 073; ontbreekt = uit).

tapja/nee

Tapsysteem / flowmeters (migratie 076): taps op de bon

resplatformja/nee

Reserveringsplatforms (migratie 078): TheFork, Formitable, Zenchef, Resengo, OpenTable

bija/nee

BI en data-export (migratie 079): Power BI, Looker Studio, Excel, datawarehouse

biKetenja/nee

BI voor ketens: het klantportaal mag de gegevens ophalen (migratie 080)

spaarpartnerja/nee

Spaarprogramma van een ander platform: Piggy of Joyn (migratie 081)

reviewsja/nee

Reviews vragen na het bezoek: Google en/of Trustpilot (migratie 081)

reviewbeheerja/nee

Reviewbeheer: Google en Trustpilot in de kassa lezen en beantwoorden (migratie 082)

opRekeningja/nee

Betalen op rekening voor zakelijke klanten, met een factuur (migratie 085; alleen met facturen aan)

opRekeningWebshopja/nee

Op rekening ook in de webshop: zakelijke klanten bestellen online met een eigen klantcode (migratie 108)

ayceWebshopja/nee

All-you-can-eat ook bij bestellen aan tafel via de QR-code van de webshop (migratie 108)

wachtlijstOnlineja/nee

Gasten zetten zichzelf op de wachtlijst via de webshop (migratie 108; alleen met de wachtlijst aan)

teLaatja/nee

Melding bij te lange doorlooptijd van afhalen en bezorgen (migratie 088; ontbreekt = uit)

mailingKoppelingja/nee

Koppeling met Mailchimp of Klaviyo met een gekozen lijst (migratie 089): toestemming voor e-mail vragen

webshopPushja/nee

Pushberichten met aanbiedingen in de webshop: een actie kan als pushbericht (migratie 095; tabblad Marketing)

muziekja/nee

Muziek bedienen vanaf de kassa: knop Muziek in de bovenbalk (migratie 091; ontbreekt = uit)

cameraja/nee

Camerabeelden in de kassa: knop Camera's (migratie 092; ontbreekt = uit; bekijken met het recht camera_bekijken)

tabletja/nee

Tablets als tweede scherm: muziek en camera's met één knop naar een gekoppelde tablet (migratie 094; ontbreekt = uit)

oproepja/nee

Oproepscherm "wordt bereid / klaar" voor afhalers (migratie 096): knop Oproepen in de kassa, ophaalnummer op de kassabon.

bezorgersja/nee

Eigen bezorgers (migratie 097): knop Ritten (rit maken, bezorgerspagina op het portaal, kasafdracht, track & trace).

ritplanningja/nee

Ritplanning (migratie 098; alleen met eigen bezorgers): ritten voorstellen per gebied, met afstand en reistijd.

bezorgersappja/nee

Bezorgersapp (migratie 099; alleen met eigen bezorgers): telefoons koppelen, zelf oppakken, live kaart met alle bezorgers.

VestigingInvoer

Gegevens van de vestiging die op de kassabon staan: naam, adres, telefoon en btw-nummer. Alleen de beheerder mag ze wijzigen.

Het land (NL/BE) en het GKS-productienummer zijn hier bewust niet te wijzigen: daar hangt de fiscale registratie aan.

VeldTypeUitleg
naamtekst
vestigingsnummeralles

België, GKS 2.0 (migratie 119): vestigingseenheidsnummer (KBO, 10 cijfers) en juridische naam. Niet meegestuurd = niet wijzigen.

juridischeNaamalles
adrestekst of null
postcodetekst of null
plaatstekst of null
telefoontekst of null
emailtekst of null

E-mailadres van de zaak (niet op de bon). Niet meegestuurd = niet wijzigen.

btwNummertekst of null
bonVoetteksttekst of null

Tekst onderaan de bon; '' = geen tekst. Niet meegestuurd = niet wijzigen.

bonTaalalles

Taal van de kassabon (migratie 052): 'nl' (standaard) of een andere taal in Latijns schrift. Niet meegestuurd = niet wijzigen.

contantAfrondenja/nee

Contant afronden op 5 cent. Niet meegestuurd = niet wijzigen.

fooiobject

Fooiknoppen bij afrekenen. Niet meegestuurd = niet wijzigen.

fooi.aanalles
fooi.procentenalles
fooi.afrondenalles
fooi.betaalwijzenalles
klokkenalles

In- en uitklokken: 'uit' | 'aan' | 'verplicht'. Niet meegestuurd = niet wijzigen.

allergenenalles

Allergenen per product aan/uit. Niet meegestuurd = niet wijzigen.

happyhouralles

Happy hour en menu's aan/uit. Niet meegestuurd = niet wijzigen.

menusalles
dagdelenalles

Assortiment per dagdeel en per leverwijze (migratie 084). Niet meegestuurd = niet wijzigen.

leverwijzealles
cadeaubonBetalenalles

Cadeaubon als betaalwijze / cadeaubonnen met saldo (migratie 026). Niet meegestuurd = niet wijzigen.

cadeaubonSaldoalles
voorraadalles

Voorraad bijhouden aan/uit (migratie 027). Niet meegestuurd = niet wijzigen.

themaalles

Thema van de schermen: 'donker' | 'licht' (migratie 029). Niet meegestuurd = niet wijzigen.

afrekenknopalles

Knop "Afrekenen" op het bestelscherm: 'groot' | 'klein' (migratie 054). Niet meegestuurd = niet wijzigen.

bonMailenalles

Bon per e-mail aan/uit (migratie 031). Niet meegestuurd = niet wijzigen.

keukenGeluidalles

Piep op de kassa bij klaar van het keukenscherm (migratie 035). Niet meegestuurd = niet wijzigen.

zRapportMailalles

E-mail van de beheerder voor het Z-rapport (migratie 036); leeg = niet mailen. Niet meegestuurd = niet wijzigen.

fooiVerdelenalles

Fooi per medewerker: 'uit' | 'eigen' | 'uren' | 'gelijk' (migratie 037). Niet meegestuurd = niet wijzigen.

klantenkaartalles

Klantenkaart / spaarpunten (migratie 038). Niet meegestuurd = niet wijzigen.

spaarPuntenPerEuroalles
spaarPuntenNodigalles
spaarBeloningalles
marketingSmsalles

Sms-marketing / e-mailmarketing (migratie 056), elk apart; alleen met de klantenkaart. Niet meegestuurd = niet wijzigen.

marketingEmailalles
adresZoekenalles

Adres opzoeken met postcode en huisnummer (migratie 057). Niet meegestuurd = niet wijzigen.

importerenalles

Importeren uit een andere kassa (migratie 058). Niet meegestuurd = niet wijzigen.

leeftijdscheckalles

Wettelijk (migratie 072): leeftijdscheck alcohol, wegwerptoeslag, statiegeld en de waarschuwing bij contant € 3.000 of meer (die drie alleen in Nederland), facturen (UBL/Peppol). Niet meegestuurd = niet wijzigen.

wegwerpalles
statiegeldalles
contantLimietalles
facturenalles
haccpalles

Digitale HACCP-registratie (migratie 073). Niet meegestuurd = niet wijzigen.

tapalles
resplatformalles

Reserveringsplatforms (migratie 078). Niet meegestuurd = niet wijzigen.

bialles

BI en data-export (migratie 079). Niet meegestuurd = niet wijzigen.

biKetenalles

BI voor ketens via het klantportaal (migratie 080). Niet meegestuurd = niet wijzigen.

spaarpartneralles

Spaarprogramma van een ander platform en reviews (migratie 081). Niet meegestuurd = niet wijzigen.

reviewsalles
reviewbeheeralles

Reviewbeheer: Google en Trustpilot lezen en beantwoorden (migratie 082). Niet meegestuurd = niet wijzigen.

opRekeningalles

Betalen op rekening voor zakelijke klanten (migratie 085; alleen met facturen aan). Niet meegestuurd = niet wijzigen.

opRekeningWebshopalles
ayceWebshopalles
wachtlijstOnlinealles
exactalles

Koppeling met Exact Online (migratie 059); aanzetten alleen met de app in .env. Niet meegestuurd = niet wijzigen.

boekhoudpakketalles

Koppeling met AFAS, SnelStart, Twinfield of Yuki (migratie 062): '' = uit. Twinfield alleen met de app in .env. Niet meegestuurd = niet wijzigen.

reserveringenalles

Reserveringen (migratie 039). Niet meegestuurd = niet wijzigen.

reserveringVoorafalles
reserveringDuurMinalles
wachtlijstalles

Wachtlijst voor walk-ins (migratie 051). Niet meegestuurd = niet wijzigen.

wachtlijstSmsTekstalles

tekst van de sms "uw tafel is klaar"; leeg = standaardtekst

updatemeldingalles

Updatemelding (migratie 040). Niet meegestuurd = niet wijzigen.

snelleVerkoopalles

Knoppen Snelle verkoop en Afhalen op het tafelscherm (migratie 041). Niet meegestuurd = niet wijzigen.

afhalenalles
favorietenalles

Favorieten: 'uit' | 'auto' | 'zelf' (migratie 032). Niet meegestuurd = niet wijzigen.

tafelStilMinutenalles

Tafeltijd: oranje rand na zoveel minuten, 0 = uit (migratie 034). Niet meegestuurd = niet wijzigen.

aycealles

All-you-can-eat (migraties 042/043): { aan, arrangementen: [{ id?, naam, prijsVolwassen, prijsKind, btwCode, groepen, artikelen, minuten, rondeMax, rondeMinuten, toeslag }] }. Niet meegestuurd = niet wijzigen.

klantschermalles

Klantscherm aan/uit en welkomsttekst (migratie 044). Niet meegestuurd = niet wijzigen.

klantschermWelkomalles
productfotoKnoppenalles

Productfoto op de knoppen van het bestelscherm / op het klantscherm (migratie 045). Niet meegestuurd = niet wijzigen.

productfotoKlantschermalles
bezorgenalles

Bezorgen en tijdvakken in de kassa (migratie 060): knop "Bezorgen" aan/uit, bezorggebieden [{ naam, soort: 'postcode' | 'straal', postcodes, straalKm, minimum, kosten, gratisVanaf, extraMin, uit }] (bedragen in centen), bezorg- en afhaaltijd, tijdvak en maximum per tijdvak (0 = geen). Niet meegestuurd = niet wijzigen.

bezorgZonesalles
bezorgTijdMinalles
afhaalTijdMinalles
tijdvakMinalles
perTijdvakalles
webshopVolgtalles

Kassa en webshop gelijk (migratie 061). Niet meegestuurd = niet wijzigen. webshopVolgt, openTijden ({ afhalen, bezorgen } per weekdag of null), geslotenDagen, vooruitDagen (0-14), drukteMin (0-240), bezorgBerichten; webshopPauze(+Tekst); reserverenOnline ({ maxPersonen, vooruitDagen, slotMin, minVoorafMin, tijden } of null); cadeaubonOnline; kortingscodes.

openTijdenalles
geslotenDagenalles
vooruitDagenalles
drukteMinalles
bezorgBerichtenalles
webshopPauzealles
webshopPauzeTekstalles
reserverenOnlinealles
cadeaubonOnlinealles
kortingscodesalles

VinifyArtikel

VeldTypeUitleg
id *tekst
vinify_id *tekst of null
name *tekst
price *getal
vat *getal
group_id *tekst of null
group_name *tekst of null
glass *ja/nee
quantity *getal of null
purchase_price *getal of null
active *ja/nee
updated_at *tekst of null

VinifyInstelling

VeldTypeUitleg
aan *ja/nee
aanmelden *lijst van tekst

welke aanmeldwijzen Vinify mag gebruiken

apiId *tekst of null
gebruikersnaam *tekst of null
groepen *lijst van tekst

groepen waarvan de producten wijn zijn (naast wat Vinify zelf aanmaakt); leeg = alleen de wijnen van Vinify

push *ja/nee

verkopen ook naar Vinify sturen (push)

pushUrl *tekst of null
vanaf *tekst of null

alleen verkopen vanaf (JJJJ-MM-DD); leeg = vanaf het aanzetten

VinifyTransactie

VeldTypeUitleg
id *tekst
article_id *tekst
vinify_id *tekst of null
name *tekst
glass *ja/nee
time *tekst
quantity *getal
total_price *getal
type *tekst

Een van: "sale" "refund"

receipt *getal

Voorstel

VeldTypeUitleg
stops *lijst van tekst
afstandKm *getal
reistijdMin *getal
aankomst *lijst van object

per adres (zelfde volgorde): verwachte aankomst bij vertrek op vanaf, en of dat later is dan de gewenste tijd

aankomst[].id *tekst
aankomst[].op *tekst
aankomst[].teLaat *ja/nee

VoorstelRegel

VeldTypeUitleg
soort *tekst

Een van: "artikel" "ingredient"

id *tekst
naam *tekst
eenheid *tekst

voorraadeenheid (st, kg, l ...)

voorraad *getal
minimum *getal of null
aanvullenTot *getal of null
onderweg *getal

besteld en nog niet ontvangen (voorraadeenheden)

bestelcode *tekst of null
ean *tekst of null
per *getal
besteleenheid *tekst of null
prijs *getal of null
aantal *getal

voorstel in besteleenheden (0 = niet nodig)

nodig *ja/nee

zit op of onder het meldniveau (met onderweg erbij)

Wachtende

Iemand op de wachtlijst.

VeldTypeUitleg
id *tekst
naam *tekst
telefoon *tekst of null
personen *getal
wens *tekst of null

bv. terras, kinderstoel

wachttijdMin *getal of null

genoemde verwachte wachttijd (minuten)

status *tekst

Een van: "wacht" "opgeroepen" "geplaatst" "weg"

aangemeldOp *tekst
opgeroepenOp *tekst of null
smsStatus *tekst of null

'verstuurd' of de foutmelding van de laatste sms

smsOp *tekst of null
geplaatstOp *tekst of null
tafelId *tekst of null
tafelNaam *tekst of null
bestellingId *tekst of null
wachtMin *getal

hoe lang (minuten) aan het wachten, of hoe lang gewacht tot geplaatst/weg

bron *tekst

aangemeld aan de deur (kassa) of online via de webshop (migratie 108)

Een van: "webshop" "kassa"

WachtendeInvoer

VeldTypeUitleg
naamalles
telefoonalles
personenalles
wensalles
wachttijdMinalles

WachtendeWerkbon

VeldTypeUitleg
id *tekst
printer *tekst

printernaam, bv. "keuken"

omschrijving *tekst

"Tafel 5", "AFHALEN – Jansen" ... en hoeveel regels

regels *getal
bestelnummer *getal
sinds *tekst

wanneer het eerste printen mislukte (ISO)

pogingen *getal
laatsteFout *tekst
opgegeven *ja/nee

na OPGEVENNAMS: niet meer vanzelf, alleen nog met "Opnieuw printen"

WebshopInstelling

VeldTypeUitleg
werkbon *ja/nee

WeegschaalInstelling

VeldTypeUitleg
aan *ja/nee

Producten met een prijs per kilo en wegen (Instellingen → Weegschaal).

handmatig *ja/nee

Gewicht met de hand intikken mag (altijd mogelijk als er geen OS6X is).

os6x *lijst van Os6xInstelling

Aclas OS6X-weegschalen (meerdere kan: elk aan een eigen COM-/USB-poort van de kassaserver of via een eigen netwerkomzetter). Leeg = geen.

ts6x *Ts6xInstelling

Aclas TS6X etiketweegschaal; null = geen.

WeekTijden

Openingstijden per weekdag ("1" = maandag ... "7" = zondag); "tot" vóór "van" = na middernacht.

object

WsOverzicht

VeldTypeUitleg
id *tekst
bestellingId *tekst
bonnummer *getal
nummer *tekst of null
soort *tekst

Een van: "afhalen" "bezorgen" "tafel"

tafel *tekst of null
status *tekst

Een van: "geannuleerd" "nieuw" "klaar" "onderweg" "in_bereiding" "afgerond"

statusTekst *tekst
bestellingStatus *tekst

Een van: "open" "betaald" "geannuleerd"

klant *object
klant.naam *tekst of null
klant.telefoon *tekst of null
klant.email *tekst of null
klant.adres *tekst of null
tijdstip *tekst of null
zsm *ja/nee
betaalwijze *tekst of null
onlineBetaald *ja/nee
fooi *getal
totaal *getal
opmerking *tekst of null
ontvangenOp *tekst
opRekening *tekst of null

migratie 108: op rekening, de naam van de zakelijke klant (afronden = afrekenen op rekening)

opKamer *object of null

migratie 133: op de kamer (hotelkoppeling), kamer en naam van de gast (afronden = afrekenen op de kamer)

opKamer.kamer *tekst
opKamer.naam *tekst
regels *lijst van object
regels[].naam *tekst
regels[].aantal *getal
regels[].opties *lijst van tekst
regels[].opmerking *tekst of null
tijdlijn *lijst van object
tijdlijn[].soort *tekst
tijdlijn[].code *tekst of null
tijdlijn[].tekst *tekst
tijdlijn[].op *tekst

Zelfbediening

VeldTypeUitleg
kiosk *ja/nee
webshop *ja/nee
maxBedrag *getal

ZoekResultaat

VeldTypeUitleg
apparaat *Apparaat
module *ja/nee

de Aclas Scale Module antwoordt (wegen "op dit apparaat" kan)

gevonden *lijst van GevondenWeegschaal
doorzocht *lijst van tekst
voorstel *WeegschaalInstelling

instelling met wat gevonden is erbij (nog niet opgeslagen; de beheerder zet hem aan)

nieuw *ja/nee

iets nieuws gevonden dat nog niet in de instelling stond

tekst *tekst