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/apiDe server draait lokaal in de zaak, dus de kassa blijft ook zonder internet werken.
Formaat
application/jsonBedragen in centen (1250 = € 12,50), datums als JJJJ-MM-DD.
Omvang
656 routesIn 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.
Aanmelden met een pincode Je krijgt een token terug. Stuur dat bij elke volgende vraag mee.
Kopieer curl -X POST http://kassa:4000/api/aanmelden \
-H "Content-Type: application/json" \
-d '{"pincode": "1234"}'
Een bestelling openen Aan een tafel (tafelId) of zonder tafel, bijvoorbeeld voor afhalen ("type": "afhalen").
Kopieer curl -X POST http://kassa:4000/api/bestellingen \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"type": "afhalen"}'
Producten toevoegen De artikelId's staan in GET /api/catalogus. De prijs bepaalt de server, nooit de app.
Kopieer 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}]}'
Afrekenen Het openstaande bedrag staat in de bestelling (openstaand, in centen).
Kopieer 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:
Kopieer 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.
Recht Groep Bediening Manager Beheerder stornoRegels schrappen na bestellen (storno)
Bestellen ✓ ✓ ✓ kortingKorting geven
Bestellen – ✓ ✓ korting_weghalenKorting weghalen
Bestellen – ✓ ✓ uitverkochtProduct op "op" zetten (uitverkocht)
Bestellen ✓ ✓ ✓ bon_kopieKopie van een bon printen
Bonnen ✓ ✓ ✓ retourRetour doen (creditbon)
Bonnen – ✓ ✓ onbetaaldAfsluiten zonder betaling (gast vertrokken zonder te betalen)
Bonnen – ✓ ✓ bon_verbeterenPrijs van een bon verbeteren (nieuwe bon met de juiste prijs)
Bonnen – ✓ ✓ op_rekeningOp rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten)
Bonnen – ✓ ✓ x_rapportTussenstand (X-rapport) bekijken
Rapporten en kas ✓ ✓ ✓ dag_afsluitenDag afsluiten (Z-rapport)
Rapporten en kas – ✓ ✓ omzet_periodeOmzet per periode
Rapporten en kas – ✓ ✓ kassaladeKassalade beheren (geld in/uit, lade openen, startgeld)
Rapporten en kas – ✓ ✓ cadeaubonnen_beherenCadeaubonnen beheren (saldo corrigeren, blokkeren)
Rapporten en kas – ✓ ✓ reviews_beantwoordenReviews lezen en beantwoorden (Google, Trustpilot)
Rapporten en kas – ✓ ✓ klanten_beherenKlantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)
Rapporten en kas – ✓ ✓ logboekLogboek bekijken
Rapporten en kas – ✓ ✓ voorraad_beherenVoorraad beheren (ontvangst, telling, afboeken, ingrediënten)
Instellingen – ✓ ✓ producten_beherenProducten, groepen en keuzeopties beheren
Instellingen – – ✓ plattegronden_beherenPlattegronden en tafels beheren
Instellingen – – ✓ instellingen_beherenZaak, betalen en printers instellen
Instellingen – – ✓ werktijden_beherenWerktijden bekijken en aanpassen
Instellingen – – ✓ signalering_instellenSignalering instellen (fraude en afwijkingen: drempels en meldingen)
Instellingen – ✓ ✓ ritplanning_instellenRitplanning 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:
Kopieer { "fout": "Bestelling niet gevonden." }
Status Betekenis
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.
soort Extra velden Betekenis tafels_gewijzigd– Er is iets aan de tafels veranderd (geopend, verplaatst, afgerekend). Haal de plattegrond opnieuw op.
bestelling_gewijzigdbestellingIdEen bestelling is gewijzigd (regels, korting, gasten …). Haal GET /api/bestellingen/{bestellingId} opnieuw op als je die toont.
bestelling_afgerekendbestellingIdEen bestelling is afgerekend en gesloten.
fiscale_storingmeldingDe 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 stationKeuken 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 geluidwebshopgebeurtenis tekst bestellingId geluidbezorgplatformgebeurtenis tekst bestellingId geluidapicbasetekstsignaleringnieuw aantalgang_gevraagdbestellingId gang waar stationvinifytekstoproepoproepoproep_statusid statustelefonietekstprintwachtrij_gewijzigd– Een werkbon kon niet geprint worden (printer uit), is alsnog geprint of is weggegooid. Haal GET /api/printwachtrij opnieuw op.
ladeopen seconden teksthaccp_gewijzigd– tap_gewijzigd– tablet_schermtabletIdtablet_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 Veld Type Uitleg 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
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/gezondheid"
Documentatie
Deze API-documentatie zelf (OpenAPI, Swagger UI en de leesbare HTML-versie) en het database-schema (ERD).
Swagger UI: de leesbare API-documentatie
Toegang Openbaar: werkt zonder aanmelden.
Antwoord 200 · text/html
tekst
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg bestand * pad tekst
Antwoord 200 · application/javascript
bestand
Foutmeldingen 404Bestand niet gevonden.
Voorbeeld (curl) Kopieer 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) Kopieer 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 Naam Waar Type Uitleg sleutelszoekterm (?…) tekst
Antwoord 200 · text/plain
tekst
Voorbeeld (curl) Kopieer 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 404api-documentatie.html ontbreekt. Draai "npm run api:docs".
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/documentatie"
GET /api/openapi.jsonopenbaar #
De OpenAPI-specificatie (JSON)
Toegang Openbaar: werkt zonder aanmelden.
Antwoord 200
alles
Foutmeldingen 404openapi.json ontbreekt. Draai "npm run api:docs".
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg pincodetekst
Antwoord 200
Veld Type Uitleg 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 400Voer een pincode van 4 tot 8 cijfers in.
401Onbekende pincode.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/aanmelden" \
-H "Content-Type: application/json" \
-d '{
"pincode": "1234"
}'
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/afmelden" \
-H "Authorization: Bearer <token>"
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)
Antwoord 200
Veld Type Uitleg ok * ja/nee taal * tekst
Foutmeldingen 400Onbekende taal.
401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/mijn-taal" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"taal": "tekst"
}'
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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg favorietalles
Antwoord 200
Veld Type Uitleg ok * ja/nee favoriet * ja/nee
Foutmeldingen 400Geef aan of het een favoriet is.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Product niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg uitverkochtja/nee
Antwoord 200
Veld Type Uitleg ok * ja/nee uitverkocht * ja/nee
Foutmeldingen 400Geef aan of het product uitverkocht is.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Product niet gevonden.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/artikelen/<id>/uitverkocht" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"uitverkocht": true
}'
Alles wat de kassa nodig heeft om te kunnen bestellen, in één keer
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/catalogus" \
-H "Authorization: Bearer <token>"
Tafelplattegrond met daarop welke tafels bezet zijn en voor hoeveel
Antwoord 200
Type: lijst van object
Veld Type Uitleg [].tafels * lijst van object [].id * tekst [].naam * tekst [].volgorde * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/tafels" \
-H "Authorization: Bearer <token>"
Bestellingen
Tafels openen, regels toevoegen, bestellen, splitsen en verplaatsen.
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) Veld Type Uitleg 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 Veld Type Uitleg 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 400Onbekende soort bestelling.
401Niet aangemeld. Voer je pincode opnieuw in.
404Tafel niet gevonden.
409Deze bestelling bestaat al bij een andere zaak.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/bestellingen-zonder-tafel" \
-H "Authorization: Bearer <token>"
GET /api/bestellingen/{id}#
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
36 velden tonen Veld Type Uitleg 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 400Gang … wacht niet.
401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke meldingen:
De database is niet bijgewerkt. Draai npm run db:migrate (migratie 016). Er wacht geen gang meer.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg negeerRegelsalles
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg gastengetal
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Aantal personen moet tussen 1 en 99 liggen.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Open bestelling niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Open bestelling niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg regelIdtekst procentgetal bedraggetal redentekst
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Mogelijke meldingen:
Bestelling niet gevonden. Regel niet gevonden. 409Mogelijke 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) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg ookTafelja/nee
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Deze bestelling is niet leeg en blijft open.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Mogelijke 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). 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke meldingen:
Deze bestelling is al afgerekend. Deze bestelling is net afgerekend. Open de tafel opnieuw.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst regelId * pad tekst
Body (JSON)
Antwoord 200
Bestelling of object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Regel niet gevonden.
409Mogelijke 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) Kopieer 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 Naam Waar Type Uitleg id * pad tekst regelId * pad tekst
Body (JSON) Veld Type Uitleg aantalalles
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Hoeveel vouchers? Een heel aantal.
401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Foutmeldingen 400Mogelijke meldingen:
Geef 1 tot 10 delen op. Apart afrekenen gaat per deel. 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: VerplaatsBody
Veld Type Uitleg 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Veld Type Uitleg aantal * getal bestelling * Bestelling gks2Fouttekst
Foutmeldingen 400Kies 1 tot 20 rekeningen om samen te voegen.
401Niet aangemeld. Voer je pincode opnieuw in.
409Mogelijke meldingen:
Deze rekening is niet (meer) open. Op de gekozen rekeningen staat niets.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg tafelId * tekst of null
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Mogelijke meldingen:
Bestelling niet gevonden. Die tafel bestaat niet (meer). 409Deze bestelling is al afgerekend.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg tafelId * pad tekst
Antwoord 200
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg tafelId * pad tekst
Antwoord 200
lijst van TafelGroep
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg tafelId * pad tekst
Body (JSON)
Antwoord 200
Veld Type Uitleg naar * object naar.id * tekst naar.naam * tekst aantal * getal samengevoegd * ja/nee
Foutmeldingen 400Kies een andere tafel.
401Niet aangemeld. Voer je pincode opnieuw in.
404Die tafel bestaat niet (meer).
409Aan deze tafel staat niets open.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg arrangementenalles volwassenenalles kinderenalles
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Bestelling niet gevonden.
409Mogelijke 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) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg aantalalles arrangementIdalles
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Mogelijke meldingen:
Aantal: 1 tot 99. Kies bij welk arrangement de toeslag hoort. 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke 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) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg 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 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je hebt geen recht om op rekening af te rekenen.
404Deze bestelling bestaat niet (meer).
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Foutmeldingen 400Mogelijke meldingen:
Kies een betaalwijze. Vul een bedrag groter dan 0 in. Ongeldige fooi (hele centen, hooguit € 500). 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke meldingen:
Deze bestelling is al afgerekend. Een retour kan niet in delen. Dit is het hele openstaande bedrag: reken gewoon af.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: AfrekenResultaat
13 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/bestellingen/<id>/proforma" \
-H "Authorization: Bearer <token>"
Staat de fiscale module klaar?
De kassa toont dit als waarschuwing.
Antwoord 200
Veld Type Uitleg land * tekst Een van: "NL" "BE"
verplicht * ja/nee gereed * ja/nee melding * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
alles
Foutmeldingen 404Dit product heeft geen foto.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Veld Type Uitleg ok * ja/nee foto * getal
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Product niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * ja/nee was * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Product niet gevonden.
Voorbeeld (curl) Kopieer 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.
Werkbonnen die nog wachten op de printer (leeg = alles is geprint)
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
404Deze werkbon staat niet (meer) in de wachtrij.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg wachtzoekterm (?…) tekst
Antwoord 200
Foutmeldingen 401Mogelijke meldingen:
Onbekend printapparaat. Meld dit apparaat opnieuw aan in Instellingen → Printers. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg okja/nee fouttekst
Antwoord 200
Veld Type Uitleg ok * ja/nee bekend * ja/nee
Foutmeldingen 401Mogelijke meldingen:
Onbekend printapparaat. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg code * pad tekst
Antwoord 200
Veld Type Uitleg aan * ja/nee zaak * object zaak.naam * tekst zaak.welkom * tekst of null gekoppeld * ja/nee beeld * KlantBeeld
Foutmeldingen 400Ongeldige koppelcode (6 tekens).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg code * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 400Mogelijke meldingen:
Ongeldige koppelcode (6 tekens). Ongeldig beeld voor het klantscherm. 401Niet aangemeld. Voer je pincode opnieuw in.
409Het klantscherm staat uit (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg code * pad tekst
Antwoord 200
Veld Type Uitleg ok * ja/nee was * ja/nee
Foutmeldingen 400Ongeldige koppelcode (6 tekens).
401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
object
Foutmeldingen 403Alleen vanaf de kassa-pc zelf.
Voorbeeld (curl) Kopieer 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.
Instellingen voor het beheerscherm
De sleutel zelf gaat nooit naar de browser.
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/betalen" \
-H "Authorization: Bearer <token>"
apiSleutel alleen meesturen als hij verandert; '' = sleutel wissen
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Body (JSON) Veld Type Uitleg apiSleuteltekst testmodusja/nee
Antwoord 200
Foutmeldingen 400Ongeldige API-sleutel.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg naamtekst terminalIdtekst apiSleuteltekst
Antwoord 200
object of null
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: TerminalBody
Veld Type Uitleg naamtekst terminalIdtekst apiSleuteltekst
Antwoord 200
object
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Terminal niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Terminal niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Terminal niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg terminaltekst fooigetal bedraggetal
Antwoord 200
Veld Type Uitleg 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 400Mogelijke meldingen:
Ongeldige fooi (hele centen, hooguit € 500). Ongeldig deelbedrag: groter dan 0 en hooguit het openstaande bedrag. Kies een terminal. 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke meldingen:
De pinkoppeling is niet ingesteld (Instellingen → Betalen). Deze bestelling is al afgerekend. Er staat niets meer open.
Voorbeeld (curl) Kopieer 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
}'
Status van een pinbetaling (vraagt zo nodig de API)
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Pinbetaling niet gevonden.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/pin/<id>" \
-H "Authorization: Bearer <token>"
POST /api/pin/{id}/annuleren#
Lopende betaling op de terminal afbreken
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Pinbetaling niet gevonden.
409Deze betaling is al gelukt en kan niet meer geannuleerd worden.
502Annuleren lukte niet: … Breek de betaling zo nodig af op de terminal zelf.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/pin/<id>/annuleren" \
-H "Authorization: Bearer <token>"
Wat de kassa moet weten om het afrekenscherm op te bouwen (zonder sleutel)
Antwoord 200
Veld Type Uitleg actief * ja/nee testmodus * ja/nee terminals * lijst van object terminals[].id * tekst terminals[].naam * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/pin/config" \
-H "Authorization: Bearer <token>"
Heeft de kassaserver internet (nodig voor pinnen via de API)?
Alleen relevant als de pinkoppeling aan staat; testmodus heeft geen internet nodig.
Antwoord 200
Veld Type Uitleg pinKoppeling * ja/nee internet * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/status" \
-H "Authorization: Bearer <token>"
Bonnen
Bonnen opzoeken, kopie printen, mailen en retour (creditbon).
Bonnen sinds de laatste dagafsluiting (nieuwste eerst)
?periode=week geeft de laatste 7 dagen; ?zoek=123 zoekt een bonnummer, ongeacht de datum.
Parameters Naam Waar Type Uitleg zoekzoekterm (?…) tekst periodezoekterm (?…) tekst
Antwoord 200
Type: lijst van object
Veld Type Uitleg [].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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/bonnen" \
-H "Authorization: Bearer <token>"
Eén bon met de regels, wat er al is teruggegeven en een eventueel lopende retour
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
49 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Bon niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg vanalles naaralles
Antwoord 200
Veld Type Uitleg ok * ja/nee van * tekst naar * tekst bedrag * getal
Foutmeldingen 400Kies de oude en de nieuwe betaalwijze.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Bon niet gevonden.
409Mogelijke 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) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Bon niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
alles
Foutmeldingen 400Dit e-mailadres klopt niet.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Bon niet gevonden.
409Bon per e-mail staat uit of er is geen mailserver ingesteld (Instellingen → Zaak).
502Mailen lukte niet: …
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg 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 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Bon niet gevonden.
409Mogelijke 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) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Bon niet gevonden.
409Mogelijke 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) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * ja/nee bestellingId * tekst bedrag * getal ticketNummergetal printFouttekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Deze retour bestaat niet of is al afgerond.
409De terugbetaling op de terminal is (nog) niet gelukt.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Mogelijke meldingen:
Het geld is al teruggestort op de kaart. Rond de retour af. De terugbetaling loopt nog. Breek hem eerst af.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/retouren/<id>/annuleren" \
-H "Authorization: Bearer <token>"
Keuken
Keukenscherm (KDS): openstaande werkbonnen en klaar melden.
Instellen (Instellingen → Printers → Keukenscherm)
Toegang Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg doorzetten * ja/nee volgende * object extraStations * lijst van tekst herordenen * ja/nee gang * tekst Een van: "uit" "aanvragen" "afroepen"
migratie * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/keuken" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Bonnen voor een station, oudste eerst
?klaar=1: wat het afgelopen uur klaar is gemeld (om terug te halen). station leeg = alles.
Parameters Naam Waar Type Uitleg stationzoekterm (?…) tekst klaarzoekterm (?…) tekst
Antwoord 200
Type: lijst van object
19 velden tonen Veld Type Uitleg [].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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg regelIdsalles vanalles naaralles
Antwoord 200
Veld Type Uitleg aantal * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
}'
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) Veld Type Uitleg bestellingIdalles gangalles stationalles
Antwoord 200
object
Foutmeldingen 400Onbekende bestelling.
401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg doorzetten * ja/nee volgende * object extraStations * lijst van tekst herordenen * ja/nee gang * tekst Een van: "uit" "aanvragen" "afroepen"
migratie * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/keuken/instelling" \
-H "Authorization: Bearer <token>"
Regels klaar melden (of terugzetten)
Als daarmee alles van een bestelling voor dit station klaar is, krijgt de bediening een seintje.
Body (JSON) Veld Type Uitleg regelIdslijst van tekst klaarja/nee stationtekst
Antwoord 200
Veld Type Uitleg ok * ja/nee aantal * getal
Foutmeldingen 400Geen regels opgegeven.
401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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"
}'
Welke stations zijn er (namen van printers, groepen en producten met een printer)
Antwoord 200
lijst van tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg stationalles bestellingIdsalles
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg datumzoekterm (?…) tekst dagenzoekterm (?…) tekst
Antwoord 200
34 velden tonen Veld Type Uitleg 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 400Kies een geldige datum.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg geldig * ja/nee foutBijVolgnummergetal aantalTickets * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/rapport/journaal" \
-H "Authorization: Bearer <token>"
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 Naam Waar Type Uitleg vanzoekterm (?…) tekst totzoekterm (?…) tekst
Antwoord 200
61 velden tonen Veld Type Uitleg 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 400Mogelijke meldingen:
Kies een geldige periode (van tot en met tot). Kies een periode van hooguit ruim een jaar. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/rapport/periode" \
-H "Authorization: Bearer <token>"
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 Naam Waar Type Uitleg vanafzoekterm (?…) tekst
Antwoord 200
51 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ok * ja/nee fouttekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/rapport/x/print" \
-H "Authorization: Bearer <token>"
Eerdere Z-rapporten, nieuwste eerst
Toegang Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).
Antwoord 200
lijst van object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/rapport/z" \
-H "Authorization: Bearer <token>"
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) Veld Type Uitleg tellinggetal of null startgeldVolgendegetal telDetaillijst van object telDetail[].waardealles telDetail[].aantalalles
Antwoord 200
64 velden tonen Veld Type Uitleg 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 400Mogelijke meldingen:
Ongeldig getelde bedrag. Ongeldig startgeld. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Er staan nog … bestelling(en) open. Reken die eerst af.
Voorbeeld (curl) Kopieer 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
}
]
}'
Toegang: Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).
Toegang Controleert daarnaast: x_rapport (Tussenstand (X-rapport) bekijken).
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: RapportBonGegevens
67 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Z-rapport niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * ja/nee naar * getal fouttekst
Foutmeldingen 400Geen e-mailadres voor het Z-rapport ingesteld (Instellingen → Zaak), of geen mailserver in .env.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Z-rapport niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * ja/nee fouttekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Z-rapport niet gevonden.
Voorbeeld (curl) Kopieer 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.
Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/lade" \
-H "Authorization: Bearer <token>"
{ sensor, blokkeren, maxOpen, perMedewerker, lades: { <gebruikerId>: 1 | 2 | null } }
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Body (JSON) Veld Type Uitleg sensoralles blokkerenalles maxOpenalles perMedewerkeralles ladesalles
Antwoord 200
Veld Type Uitleg sensor * tekst Een van: "uit" "hoog_open" "laag_open"
blokkeren * ja/nee maxOpen * getal perMedewerker * ja/nee
Foutmeldingen 400Te lang open: 0 tot 3600 seconden (0 = geen melding).
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg kan * ja/nee printer * tekst byte * getal of null geldig * ja/nee hoog * ja/nee of null openBijHoog * ja/nee of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/lade/test" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"lade": null
}'
Stand van de kassalade van de lopende dag
Toegang Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).
Antwoord 200
Veld Type Uitleg vanaf * tekst kas * object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/kas" \
-H "Authorization: Bearer <token>"
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)
Antwoord 200
Foutmeldingen 400Vul een reden in.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/kas/lade" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"reden": null
}'
Staat de lade open?
{ sensor: is er een sensor ingesteld, open: true/false/null (onbekend) }.
Antwoord 200
Veld Type Uitleg sensor * ja/nee blokkeren * ja/nee open * ja/nee of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/kas/ladestatus" \
-H "Authorization: Bearer <token>"
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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg startgeldalles
Antwoord 200
Foutmeldingen 400Vul een geldig startgeld in (mag 0,00 zijn).
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
404Medewerker niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg geteldalles
Antwoord 200
Veld Type Uitleg ok * ja/nee verwacht * getal geteld * getal verschil * getal
Foutmeldingen 400Vul het getelde bedrag in.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
404Medewerker niet gevonden.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/kas/medewerkers/<id>/telling" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"geteld": null
}'
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) Veld Type Uitleg soorttekst bedragalles redenalles printenja/nee
Antwoord 200
Veld Type Uitleg ok * ja/nee printFouttekst
Foutmeldingen 400Mogelijke meldingen:
Kies geld in of geld uit de lade. Vul een bedrag groter dan 0 in. Vul een reden in. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
}'
Startgeld van de lopende dag invullen of corrigeren
Toegang Vereist recht kassalade (Kassalade beheren (geld in/uit, lade openen, startgeld)).
Body (JSON) Veld Type Uitleg startgeldalles
Antwoord 200
Foutmeldingen 400Vul een geldig startgeld in (mag 0,00 zijn).
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg land * tekst Een van: "NL" "BE"
dagboek * tekst rekeningen * lijst van Rekening
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/boekhouding" \
-H "Authorization: Bearer <token>"
POST /api/beheer/boekhouding#
Grootboekrekeningen en dagboek opslaan
Toegang Controleert daarnaast: instellingen_beheren (Zaak, betalen en printers instellen).
Body (JSON) Veld Type Uitleg dagboekalles rekeningenobject
Antwoord 200
Veld Type Uitleg land * tekst Een van: "NL" "BE"
dagboek * tekst rekeningen * lijst van Rekening
Foutmeldingen 400Ongeldig rekeningnummer "…": alleen cijfers, letters, punt of streepje.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg vanzoekterm (?…) tekst totzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg 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 400Mogelijke meldingen:
Kies een geldige periode (van tot en met tot). Kies een periode van hooguit ruim een jaar. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/boekhouding/journaal" \
-H "Authorization: Bearer <token>"
Logboek
Logboek van gevoelige acties.
Toegang: Vereist recht logboek (Logboek bekijken).
Toegang Vereist recht logboek (Logboek bekijken).
Parameters Naam Waar Type Uitleg vanzoekterm (?…) tekst totzoekterm (?…) tekst soortenzoekterm (?…) tekst gebruikerIdzoekterm (?…) tekst
Antwoord 200
32 velden tonen Veld Type Uitleg 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 400Kies een geldige periode (van tot en met tot).
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: logboek bekijken. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg vanzoekterm (?…) tekst totzoekterm (?…) tekst
Antwoord 200
object
Foutmeldingen 400Kies een geldige periode (van tot en met tot).
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/werktijden" \
-H "Authorization: Bearer <token>"
POST /api/beheer/werktijden#
Dienst achteraf toevoegen (bv
Toegang Alleen voor de rol beheerder .
Body (JSON) Veld Type Uitleg gebruikerIdtekst intekst uittekst opmerkingtekst
Antwoord 200
Veld Type Uitleg ok * ja/nee id * tekst
Foutmeldingen 400Mogelijke meldingen:
Kies een medewerker. Vul een begin- en eindtijd in. Deze dienst overlapt met een andere dienst van deze medewerker. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg intekst uittekst of null opmerkingtekst
Antwoord 200
Foutmeldingen 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Deze dienst bestaat niet.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: KlokUitkomst
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Mogelijke meldingen:
Deze dienst bestaat niet. Deze medewerker is niet (meer) ingeklokt.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg klokkentekst
Antwoord 200
Type: Vestiging
125 velden tonen Veld Type Uitleg 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 (EXACTCLIENT ID en EXACTCLIENT SECRET)?
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 400Kies uit, aan of verplicht.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/werktijden/instelling" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"klokken": "tekst"
}'
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/klok" \
-H "Authorization: Bearer <token>"
Antwoord 200
Type: KlokUitkomst
Veld Type Uitleg 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 400In- en uitklokken staat uit.
401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/klok/in" \
-H "Authorization: Bearer <token>"
Klokken met een pasje (migratie 114, als aanmelden met een pasje aan staat): wisselt tussen in en uit
Body (JSON)
Antwoord 200
Type: KlokUitkomst
Veld Type Uitleg 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 400Mogelijke meldingen:
In- en uitklokken staat uit. Dit pasje kan de kassa niet lezen. 401Mogelijke meldingen:
Onbekend pasje. Niet aangemeld. Voer je pincode opnieuw in. 409Aanmelden met een pasje staat uit.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg pincodetekst
Antwoord 200
Type: KlokUitkomst
Veld Type Uitleg 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 400Mogelijke meldingen:
In- en uitklokken staat uit. Voer een pincode van 4 tot 8 cijfers in. 401Onbekende pincode.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg stand * tekst Een van: "uit" "aan" "verplicht"
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/klok/stand"
Antwoord 200
Type: KlokUitkomst
Veld Type Uitleg 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 400In- en uitklokken staat uit.
401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/klok/uit" \
-H "Authorization: Bearer <token>"
Reserveringen
Reserveringen bekijken en beheren.
Reserveringen van één dag (standaard vandaag), op tijd
Parameters Naam Waar Type Uitleg datumzoekterm (?…) tekst
Antwoord 200
lijst van Rij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/reserveringen" \
-H "Authorization: Bearer <token>"
Body (JSON) Type: Invoer
Veld Type Uitleg 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 Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: Invoer
Veld Type Uitleg 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 Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
404Reservering niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg reservering * Rij ok * ja/nee fouttekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
404Reservering niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg statustekst bestellingIdtekst
Antwoord 200
18 velden tonen Veld Type Uitleg 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 400Onbekende status.
401Niet aangemeld. Voer je pincode opnieuw in.
404Reservering niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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.
Wie er nu wacht (op volgorde van aanmelden), plus wie vandaag al geplaatst of weg is
Antwoord 200
lijst van Wachtende
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/wachtlijst" \
-H "Authorization: Bearer <token>"
Op de wachtlijst zetten
Body (JSON) Type: WachtendeInvoer
Veld Type Uitleg naamalles telefoonalles personenalles wensalles wachttijdMinalles
Antwoord 200
17 velden tonen Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
}'
Gegevens wijzigen (naam, telefoon, personen, wens, wachttijd)
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: WachtendeInvoer
Veld Type Uitleg naamalles telefoonalles personenalles wensalles wachttijdMinalles
Antwoord 200
17 velden tonen Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
404Niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg tafelIdtekst of null smsja/nee
Antwoord 200
20 velden tonen Veld Type Uitleg 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 400Onbekende tafel.
401Niet aangemeld. Voer je pincode opnieuw in.
404Niet gevonden.
409Deze gast staat niet (meer) te wachten.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg statustekst bestellingIdtekst tafelIdtekst
Antwoord 200
17 velden tonen Veld Type Uitleg 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 400Onbekende status.
401Niet aangemeld. Voer je pincode opnieuw in.
404Niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg jetRestaurantalles
Antwoord 200
Type: Koppeling
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/afmelden" \
-H "Authorization: Bearer <token>"
POST /api/beheer/thuisbezorgd/instellingen#
beheer
Body (JSON) Veld Type Uitleg aanalles menuAutoalles werkbonalles
Antwoord 200
Type: ThuisbezorgdInstelling
Veld Type Uitleg aan * ja/nee menuAuto * ja/nee werkbon * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
}'
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) Veld Type Uitleg openalles weerOpenOpalles
Antwoord 200
Veld Type Uitleg ok * ja/nee open * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/thuisbezorgd/producten" \
-H "Authorization: Bearer <token>"
POST /api/beheer/thuisbezorgd/producten#
Body (JSON) Veld Type Uitleg artikelIdsalles aanalles
Antwoord 200
Veld Type Uitleg ok * ja/nee aantal * getal
Foutmeldingen 400Kies producten en aan of uit.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg omschrijvingalles
Antwoord 200
Veld Type Uitleg ok * ja/nee omschrijving * tekst of null
Foutmeldingen 400Omschrijving is tekst.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Product niet gevonden.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/thuisbezorgd/tijden" \
-H "Authorization: Bearer <token>"
POST /api/beheer/thuisbezorgd/tijden#
Body (JSON) Veld Type Uitleg tijdenalles
Antwoord 200
Veld Type Uitleg verstuurd * ja/nee fout * tekst of null ok * ja/nee tijden * Tijden
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/thuisbezorgd/vernieuwen" \
-H "Authorization: Bearer <token>"
GET /api/thuisbezorgd/bestellingen#
Parameters Naam Waar Type Uitleg dagenzoekterm (?…) tekst
Antwoord 200
lijst van TbOverzicht
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: AfrekenResultaat
13 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke 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) Kopieer curl -X POST "http://kassa:4000/api/thuisbezorgd/bestellingen/<id>/afronden" \
-H "Authorization: Bearer <token>"
POST /api/thuisbezorgd/bestellingen/{id}/status#
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg statusalles
Antwoord 200
Foutmeldingen 400Onbekende status.
401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden of geannuleerd.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg nieuw * getal fout * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg kanaaltekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/signalering/test" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"kanaal": "tekst"
}'
Toegang: Controleert daarnaast: logboek (Logboek bekijken).
Toegang Controleert daarnaast: logboek (Logboek bekijken).
Parameters Naam Waar Type Uitleg dagenzoekterm (?…) tekst
Antwoord 200
lijst van SignaalRegel
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg notitietekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg aan * ja/nee open * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg nummertekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/telefonie/oproep" \
-H "Authorization: Bearer <token>"
POST /api/telefonie/oproep#
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/telefonie/oproep/<id>" \
-H "Authorization: Bearer <token>"
POST /api/telefonie/oproep/{id}/afgehandeld#
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg bestellingIdtekst
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg urenzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg aan * ja/nee oproepen * lijst van OproepRegel
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/telefonie/oproepen" \
-H "Authorization: Bearer <token>"
Antwoord 200
Veld Type Uitleg aan * ja/nee melding * ja/nee zoeken * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/telefonie/stand" \
-H "Authorization: Bearer <token>"
Parameters Naam Waar Type Uitleg nummerzoekterm (?…) tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Opzoeken op telefoonnummer staat uit (Instellingen → Telefonie).
Voorbeeld (curl) Kopieer 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).
Antwoord 200
16 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/vinify" \
-H "Authorization: Bearer <token>"
Body (JSON) Geen velden.
Antwoord 200
18 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ok * ja/nee verstuurd * getal fout * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/vinify/push" \
-H "Authorization: Bearer <token>"
Antwoord 200
Veld Type Uitleg name * tekst api * tekst version * getal endpoints * lijst van tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/vinify" \
-H "Authorization: Bearer <token>"
Antwoord 200
lijst van VinifyArtikel
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/vinify/articles" \
-H "Authorization: Bearer <token>"
POST /api/vinify/articles#
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: VinifyArtikel
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Wijn niet gevonden.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/vinify/articles/<id>" \
-H "Authorization: Bearer <token>"
PATCH /api/vinify/articles/{id}#
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X PATCH "http://kassa:4000/api/vinify/articles/<id>" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord 200
Type: lijst van object
Veld Type Uitleg [].id * tekst [].name * tekst [].wine * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/vinify/groups" \
-H "Authorization: Bearer <token>"
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/vinify/groups" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/apicbase/kostprijzen" \
-H "Authorization: Bearer <token>"
Antwoord 200
14 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/apicbase" \
-H "Authorization: Bearer <token>"
POST /api/beheer/apicbase#
Body (JSON) Geen velden.
Antwoord 200
14 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/apicbase/inloggen" \
-H "Authorization: Bearer <token>"
POST /api/beheer/apicbase/kostprijzen#
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/apicbase/kostprijzen" \
-H "Authorization: Bearer <token>"
GET /api/beheer/apicbase/outlets#
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/apicbase/outlets" \
-H "Authorization: Bearer <token>"
POST /api/beheer/apicbase/verkopen#
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/apicbase/verkopen" \
-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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 MERK NAAM; 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) Veld Type Uitleg aanalles handmatigalles os6xalles ts6xalles
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 047).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg weegschaalalles
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ok * ja/nee aantal * getal groepen * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg opnieuwalles
Antwoord 200
Type: ZoekResultaat
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Veld Type Uitleg ok * ja/nee overgeslagen * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Type: EtiketRegel
Veld Type Uitleg 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 400Geen streepjescode ontvangen.
401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg weegschaalzoekterm (?…) tekst artikelIdzoekterm (?…) tekst prijszoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/weegschaal/gewicht" \
-H "Authorization: Bearer <token>"
Klanten
Klantenkaart, spaarpunten en stempelkaarten.
Klantenlijst met laatste activiteit (beheer)
Toegang Vereist recht klanten_beheren (Klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten)).
Parameters Naam Waar Type Uitleg zoekzoekterm (?…) tekst
Antwoord 200
lijst van object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: KlantInvoer
Veld Type Uitleg 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 Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
404Klant niet gevonden.
409Dit telefoonnummer hoort al bij ….
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
404Klant niet gevonden.
409Deze klant hangt aan een open bestelling. Reken die eerst af of koppel los.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg puntengetal redentekst
Antwoord 200
19 velden tonen Veld Type Uitleg 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 400Mogelijke meldingen:
Vul een aantal punten in (bv. 50 of -50). Geef een reden. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
404Klant niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
lijst van object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
404Klant niet gevonden.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg artikelIdtekst nodiggetal
Antwoord 200
Foutmeldingen 400Mogelijke meldingen:
Kies een product. Aantal stuks voor een gratis: 2 tot 100. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
404Product niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg klantIdtekst of null
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Mogelijke meldingen:
Bestelling niet gevonden. Klant niet gevonden. 409Deze bestelling is al afgerekend.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg soorttekst artikelIdtekst
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Kies punten of een stempelkaart.
401Niet aangemeld. Voer je pincode opnieuw in.
404Mogelijke meldingen:
Bestelling niet gevonden. Klant niet gevonden. Geen stempelkaart voor dit product. 409Mogelijke 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) Kopieer curl -X POST "http://kassa:4000/api/bestellingen/<id>/spaar" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"soort": "tekst",
"artikelId": "3f2c9a1e-…"
}'
Zoeken op naam of (een deel van) het telefoonnummer
Parameters Naam Waar Type Uitleg zoekzoekterm (?…) tekst
Antwoord 200
lijst van object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/klanten" \
-H "Authorization: Bearer <token>"
Nieuwe klant (aan de kassa)
Body (JSON) Type: KlantInvoer
Veld Type Uitleg 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 Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
409Dit telefoonnummer hoort al bij ….
Voorbeeld (curl) Kopieer 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
}'
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: KlantInfo
19 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Klant niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: CampagneInvoer
Veld Type Uitleg 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 Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
404Niet gevonden.
409Deze actie is al verstuurd en kan niet meer veranderen. Maak een nieuwe.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
404Niet gevonden.
409Deze actie is nog aan het versturen.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
20 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
404Niet gevonden.
409Mogelijke 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. 502De betaalterminal of een externe dienst gaf een fout.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg 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
Foutmeldingen 400Mogelijke meldingen:
Ongeldig telefoonnummer. Ongeldig e-mailadres. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: klantenkaart beheren (klanten wijzigen/verwijderen, punten corrigeren, stempelkaarten). Vraag een beheerder.
409Mogelijke 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. 502De betaalterminal of een externe dienst gaf een fout.
Voorbeeld (curl) Kopieer 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).
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 Naam Waar Type Uitleg postcodezoekterm (?…) tekst huisnummerzoekterm (?…) tekst
Antwoord 200
Foutmeldingen 400Mogelijke meldingen:
Vul een Nederlandse postcode in, bv. 1234 AB. Vul een huisnummer in, bv. 12 of 12A. 401Niet aangemeld. Voer je pincode opnieuw in.
404Geen adres gevonden bij deze postcode en dit huisnummer.
409Adres opzoeken staat uit (Instellingen → Zaak).
502De betaalterminal of een externe dienst gaf een fout.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Deze bestelling kan niet (meer) op afhalen: geen bezorgbestelling, al (deels) betaald of afgerekend.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Veld Type Uitleg via * lijst van tekst bestelling * Bestelling
Foutmeldingen 400Kies klaar of onderweg.
401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke 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 SMTP HOST in .env).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg soorttekst naamalles telefoonalles postcodealles huisnummeralles straatalles plaatsalles gewenstOpalles opmerkingalles emailalles
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
409Mogelijke 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) Kopieer 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
}'
Voor de kaart bij Instellingen → Zaak (bezorggebieden): de ligging van de zaak, of null
Antwoord 200
Veld Type Uitleg zaak * object of null zaak.lat * getal zaak.lon * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/bezorgen/kaart" \
-H "Authorization: Bearer <token>"
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 Naam Waar Type Uitleg soortzoekterm (?…) tekst postcodezoekterm (?…) tekst huisnummerzoekterm (?…) tekst straatzoekterm (?…) tekst plaatszoekterm (?…) tekst datumzoekterm (?…) tekst
Antwoord 200
object
Foutmeldingen 400Vul een geldige postcode in, bv. 1234 AB.
401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg soortalles bestandBestand koppelingalles btwStandaardalles bestaandalles
Antwoord 200
Type: Uitkomst
Veld Type Uitleg nieuw * getal bijgewerkt * getal overgeslagen * getal groepenNieuw * getal meldingen * lijst van tekst hooguit 50 regels "regel 12: ..."
Foutmeldingen 400Mogelijke meldingen:
Kies producten of klanten. Kies welke kolom de naam is. Kies welke kolom de prijs is. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Zet eerst de klantenkaart aan (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg soortalles bestandBestand koppelingalles
Antwoord 200
Veld Type Uitleg kop * lijst van tekst koppeling * object velden * lijst van tekst aantal * getal regels * lijst van Regel
Foutmeldingen 400Kies producten of klanten.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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).
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg veldenobject
Antwoord 200
Veld Type Uitleg ok * ja/nee ingesteld * ja/nee
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg geboekt * lijst van tekst leeg * lijst van tekst foutobject fout.dag * tekst fout.melding * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Verbind eerst met Exact Online.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg startdatumtekst
Antwoord 200
Veld Type Uitleg ok * ja/nee startdatum * tekst
Foutmeldingen 400Kies een geldige datum.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Verbind eerst met Exact Online.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg codezoekterm (?…) tekst statezoekterm (?…) tekst errorzoekterm (?…) tekst error_descriptionzoekterm (?…) tekst
Antwoord 200 · text/html
tekst
Foutmeldingen
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg veldenobject
Antwoord 200
Veld Type Uitleg ok * ja/nee ingesteld * ja/nee
Foutmeldingen 400… gebruikt geen app: vul de gegevens in en tik op Verbinden.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg geboekt * lijst van tekst leeg * lijst van tekst foutobject fout.dag * tekst fout.melding * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Verbind eerst met het boekhoudpakket.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg pakketalles
Antwoord 200
Veld Type Uitleg ok * ja/nee keuze * tekst
Foutmeldingen 400Kies een pakket uit de lijst, of uit.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg startdatumtekst
Antwoord 200
Veld Type Uitleg ok * ja/nee startdatum * tekst
Foutmeldingen 400Kies een geldige datum.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Verbind eerst met het boekhoudpakket.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg veldenobject
Antwoord 200
object
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg pakket * pad tekst
Antwoord 200 · text/html
tekst
Foutmeldingen
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg vanzoekterm (?…) tekst totzoekterm (?…) tekst
Antwoord 200
Foutmeldingen 400Kies een geldige periode (van tot en met tot).
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg soortalles pakketalles veldenobject nummersobject
Antwoord 200
Veld Type Uitleg ok * ja/nee pakket * tekst
Foutmeldingen 400Kies salaris of planning.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ok * truemelding * tekst
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ok * ja/nee dagen * getal
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kies eerst Deputy, Dyflexis of Shiftbase als planningssysteem.
Voorbeeld (curl) Kopieer 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 XAA CERTIFICAAT in .env staan. Rapport → Omzet per periode.
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 Naam Waar Type Uitleg vanzoekterm (?…) tekst totzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg bonnen * getal gebeurtenissen * getal inhoud * tekst naam * tekst ondertekend * ja/nee
Foutmeldingen 400Mogelijke meldingen:
Kies een geldige periode (van tot en met tot). Kies een periode van hooguit ruim een jaar. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ondertekenen * ja/nee certificaat * tekst of null geldigTot * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg zoekzoekterm (?…) tekst
Antwoord 200
13 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: cadeaubonnen beheren (saldo corrigeren, blokkeren). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
18 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: cadeaubonnen beheren (saldo corrigeren, blokkeren). Vraag een beheerder.
404Cadeaubon niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg geblokkeerdalles redenalles
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: cadeaubonnen beheren (saldo corrigeren, blokkeren). Vraag een beheerder.
404Cadeaubon niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg saldoalles redenalles
Antwoord 200
Veld Type Uitleg 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 400Mogelijke meldingen:
Vul een geldig saldo in. Geef een reden op. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: cadeaubonnen beheren (saldo corrigeren, blokkeren). Vraag een beheerder.
404Cadeaubon niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg bedragalles codealles
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Mogelijke meldingen:
Kies een bedrag van € 1 tot € 1.000. Een code heeft 4 tot 32 letters of cijfers. 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke meldingen:
Deze bestelling is al afgerekend. Op een retour kan geen cadeaubon. Deze code is al in gebruik.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg code * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Deze cadeaubon bestaat niet.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg code * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg codealles omschrijvingalles soortalles waardealles minimumalles geldigVanalles geldigTotalles maxGebruikalles aanKassaalles inWebshopalles actiefalles
Antwoord 200
13 velden tonen Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
409De code … bestaat al.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: CodeInvoer
Veld Type Uitleg codealles omschrijvingalles soortalles waardealles minimumalles geldigVanalles geldigTotalles maxGebruikalles aanKassaalles inWebshopalles actiefalles
Antwoord 200
13 velden tonen Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Kortingscode niet gevonden.
409Mogelijke meldingen:
De code … bestaat al. Deze code is al gebruikt; de code zelf kan niet meer veranderen. Maak een nieuwe.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * ja/nee uitgezet * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Kortingscode niet gevonden.
Voorbeeld (curl) Kopieer curl -X DELETE "http://kassa:4000/api/beheer/kortingscodes/<id>" \
-H "Authorization: Bearer <token>"
POST /api/bestellingen/{id}/kortingscode#
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 400Vul een kortingscode in.
401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke 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) Kopieer 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) Veld Type Uitleg naamalles eenheidalles minimumalles actiefalles aanvullenTotalles leverancieralles leverancierIdalles bestelcodealles bestelEanalles bestelPeralles bestelEenheidalles inkoopprijsalles
Antwoord 200
16 velden tonen Veld Type Uitleg 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 400Mogelijke meldingen:
Geef het ingrediënt een naam. Ongeldig meldniveau. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Ingrediënt niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Er is al een ingrediënt "…".
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg naamalles eenheidalles minimumalles actiefalles aanvullenTotalles leverancieralles leverancierIdalles bestelcodealles bestelEanalles bestelPeralles bestelEenheidalles inkoopprijsalles
Antwoord 200
16 velden tonen Veld Type Uitleg 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 400Mogelijke meldingen:
Geef het ingrediënt een naam. Ongeldig meldniveau. 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Ingrediënt niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Er is al een ingrediënt "…".
Voorbeeld (curl) Kopieer 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
}'
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Voorraad bijhouden staat uit (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
30 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Product niet gevonden.
409Voorraad bijhouden staat uit (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg soortalles minimumalles receptalles aanvullenTotalles leverancieralles leverancierIdalles bestelcodealles bestelEanalles bestelPeralles bestelEenheidalles inkoopprijsalles
Antwoord 200
Foutmeldingen 400Mogelijke 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). 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Product niet gevonden.
409Voorraad bijhouden staat uit (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg alleszoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg regels * lijst van object bijgehouden * object bijgehouden.producten * getal bijgehouden.viaIngredienten * getal bijgehouden.ingredienten * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Voorraad bijhouden staat uit (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg regelsalles
Antwoord 200
Foutmeldingen 400Er staat niets met een aantal op de bestellijst.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Voorraad bijhouden staat uit (Instellingen → Zaak).
502Printen lukte niet: …
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg artikelIdzoekterm (?…) tekst ingredientIdzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Voorraad bijhouden staat uit (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg artikelIdalles ingredientIdalles soortalles hoeveelheidalles redenalles
Antwoord 200
Veld Type Uitleg ok * ja/nee voorraad * getal
Foutmeldingen 400Mogelijke 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). 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Niet gevonden.
409Voorraad bijhouden staat uit (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg groepId * pad tekst
Antwoord 200
22 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Keuzegroep niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Draai eerst "npm run db:migrate" (migratie 028).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg groepId * pad tekst
Body (JSON) Veld Type Uitleg optiesalles
Antwoord 200
Foutmeldingen 400Mogelijke meldingen:
Vul bij "…" een hoeveelheid groter dan 0 in. Bij "…" staat een ingrediënt twee keer. Een ingrediënt bestaat niet (meer). 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
404Keuzegroep niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Draai eerst "npm run db:migrate" (migratie 028).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg merkalles veldenobject verplichtalles
Antwoord 200
Veld Type Uitleg merk * tekst verplicht * ja/nee gegevens * object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ok * ja/nee melding * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
alles of null of object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg fooialles bedragalles contantBevestigdalles
Antwoord 200
Veld Type Uitleg 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 400Mogelijke meldingen:
Ongeldige fooi (hele centen, hooguit € 500). Ongeldig deelbedrag: groter dan 0 en hooguit het openstaande bedrag. 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke meldingen:
Deze bestelling is al afgerekend. Er staat niets meer open.
Voorbeeld (curl) Kopieer 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
}'
Voortgang (vraagt zo nodig de automaat)
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Onbekende opdracht voor de geldautomaat.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Onbekende opdracht voor de geldautomaat.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
13 velden tonen Veld Type Uitleg 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 401Mogelijke meldingen:
Onbekende of ontbrekende sleutel (X-Geldsysteem-Sleutel). Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Mogelijke meldingen:
Onbekende of ontbrekende sleutel (X-Geldsysteem-Sleutel). Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg totaal * getal delen * lijst van object delen[].waarde * getal delen[].aantal * getal delen[].biljet * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg bedragalles redenalles
Antwoord 200
Veld Type Uitleg 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 400Mogelijke meldingen:
Vul een bedrag groter dan 0 in. Vul een reden in. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: kassalade beheren (geld in/uit, lade openen, startgeld). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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.
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg resultaat * lijst van object resultaat[].leverancier * tekst resultaat[].nummergetal resultaat[].status * tekst resultaat[].fouttekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg aanalles glnalles
Antwoord 200
Veld Type Uitleg instelling * object instelling.aan * ja/nee instelling.voorraad * ja/nee instelling.gln * tekst of null instelling.mail * ja/nee
Foutmeldingen 400Een GLN heeft 13 cijfers.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Zet eerst Voorraad bijhouden aan (Instellingen → Zaak).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
404Leverancier niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst soortzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg aan * tekst of null onderwerp * tekst tekst * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
404Niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg aanalles onderwerpalles tekstalles
Antwoord 200
Veld Type Uitleg 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 * truemelding * tekst aangevraagd * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad). 502Mailen lukte niet: …
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
404Niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg statuszoekterm (?…) tekst leverancierIdzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg orders * lijst van Order
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg leverancierIdalles regelsalles opmerkingalles leverdatumalles
Antwoord 200
Veld Type Uitleg order * Order
Foutmeldingen 400Kies een leverancier.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg order * Order
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
404Bestelling niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg regelsalles opmerkingalles leverdatumalles
Antwoord 200
Veld Type Uitleg order * Order
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg order * Order
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst soortzoekterm (?…) tekst
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
404Bestelling niet gevonden.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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)
Toegang Vereist recht voorraad_beheren (Voorraad beheren (ontvangst, telling, afboeken, ingrediënten)).
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg regelsalles
Antwoord 200
Veld Type Uitleg order * Order
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Type: VerstuurResultaat
Veld Type Uitleg ok * ja/nee fouttekst meldingtekst order * Order
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg alleszoekterm (?…) tekst leverancierIdzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: voorraad beheren (ontvangst, telling, afboeken, ingrediënten). Vraag een beheerder.
409Mogelijke meldingen:
Voorraad bijhouden staat uit (Instellingen → Zaak). Bestellen bij leveranciers staat uit (Instellingen → Voorraad).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg printertekst of null
Antwoord 200
Veld Type Uitleg ok * ja/nee printer * tekst of null
Foutmeldingen 400Deze printer bestaat niet.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Product niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg printertekst of null
Antwoord 200
Veld Type Uitleg ok * ja/nee printer * tekst of null
Foutmeldingen 400Deze printer bestaat niet.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Artikelgroep niet gevonden.
Voorbeeld (curl) Kopieer 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)?
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg printer * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg printertekst of null
Antwoord 200
Veld Type Uitleg printer * tekst of null
Foutmeldingen 400Deze printer bestaat niet.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 PORTAAL SLEUTEL in .env).
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 400Deze kassa is niet gekoppeld aan het beheerportaal (PORTAALURL en PORTAAL SLEUTEL in .env).
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
502Het beheerportaal is niet bereikbaar. Controleer de internetverbinding en probeer het opnieuw.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg naamtekst platformtekst
Antwoord 200
Veld Type Uitleg id * tekst sleutel * tekst naam * tekst
Foutmeldingen 400Geef het apparaat een naam, bijvoorbeeld "Terras" of "Handterminal 1".
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Foutmeldingen 400Geef het apparaat een naam.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Dit printapparaat bestaat niet (meer).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Dit printapparaat bestaat niet (meer).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg [].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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg naam * pad tekst
Body (JSON) Type: PrinterInvoer
Veld Type Uitleg 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
Veld Type Uitleg 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 400Mogelijke meldingen:
Ongeldige printernaam. Dit printapparaat bestaat niet (meer). Meld het bedienscherm opnieuw aan. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg naam * pad tekst
Body (JSON) Type: PrinterInvoer
Veld Type Uitleg 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
Veld Type Uitleg ok * ja/nee fouttekst meldingtekst
Foutmeldingen 400Ongeldige printernaam.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg naam * pad tekst
Antwoord 200
Foutmeldingen 400Ongeldige printernaam.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Printer "…" print de kassabon. Kies daar eerst een andere printer (of geen).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg verbindingen * lijst van tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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
Veld Type Uitleg ok * ja/nee id * tekst
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
409PLU … hoort al bij "…". Kies een ander nummer.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: ArtikelInvoer
Veld Type Uitleg 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
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Product niet gevonden.
409PLU … hoort al bij "…". Kies een ander nummer.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Product niet gevonden.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/catalogus" \
-H "Authorization: Bearer <token>"
groepen
Toegang Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).
Body (JSON) Type: GroepInvoer
Veld Type Uitleg naamtekst kleurtekst nietBijalles leverwijze (migratie 084): waar deze groep niet verkocht wordt; niet meegestuurd = niet wijzigen
Antwoord 200
object of null
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: GroepInvoer
Veld Type Uitleg naamtekst kleurtekst nietBijalles leverwijze (migratie 084): waar deze groep niet verkocht wordt; niet meegestuurd = niet wijzigen
Antwoord 200
object
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Productgroep niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Productgroep niet gevonden.
409Deze groep heeft nog … product(en). Verwijder of verplaats die eerst.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg artikelIdzoekterm (?…) tekst groepIdzoekterm (?…) tekst
Antwoord 200
object
Foutmeldingen 400Geef een product of productgroep op.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Mogelijke meldingen:
Product niet gevonden. Productgroep niet gevonden.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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
Foutmeldingen 400Kies een product óf een productgroep.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: OptiegroepInvoer
Veld Type Uitleg 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
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Keuzegroep niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Keuzegroep niet gevonden.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg groepIdtekst idsalles
Antwoord 200
Foutmeldingen 400Ongeldige volgorde.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Productgroep niet gevonden.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Foutmeldingen 400Ongeldige volgorde.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Foutmeldingen 400Ongeldige volgorde.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Keuzegroep niet gevonden.
Voorbeeld (curl) Kopieer 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.
Toegang: Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).
Toegang Vereist recht producten_beheren (Producten, groepen en keuzeopties beheren).
Antwoord 200
Veld Type Uitleg dagdelen * lijst van Dagdeel
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg naamalles dagenalles vanalles totalles seizoenVanalles seizoenTotalles groepIdsalles artikelIdsalles actiefalles
Antwoord 200
Veld Type Uitleg dagdelen * lijst van Dagdeel
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: DagdeelInvoer
Veld Type Uitleg naamalles dagenalles vanalles totalles seizoenVanalles seizoenTotalles groepIdsalles artikelIdsalles actiefalles
Antwoord 200
Veld Type Uitleg dagdelen * lijst van Dagdeel
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Dagdeel niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg dagdelen * lijst van Dagdeel
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Dagdeel niet gevonden.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg happyhours * lijst van HappyHour
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg naamalles dagenalles vanalles totalles soortalles waardealles groepIdsalles artikelIdsalles actiefalles seizoenVanalles seizoenTotalles
Antwoord 200
Veld Type Uitleg happyhours * lijst van HappyHour
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
409De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 084).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: HappyHourInvoer
Veld Type Uitleg naamalles dagenalles vanalles totalles soortalles waardealles groepIdsalles artikelIdsalles actiefalles seizoenVanalles seizoenTotalles
Antwoord 200
Veld Type Uitleg happyhours * lijst van HappyHour
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Happy hour niet gevonden.
409De database is niet bijgewerkt. Draai "npm run db:migrate" (migratie 084).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg happyhours * lijst van HappyHour
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Happy hour niet gevonden.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/happyhours/<id>/verwijderen" \
-H "Authorization: Bearer <token>"
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 Veld Type Uitleg maat * object maat.breedte * 1600maat.hoogte * 1000ruimtes * 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/plattegronden" \
-H "Authorization: Bearer <token>"
Toegang: Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).
Toegang Vereist recht plattegronden_beheren (Plattegronden en tafels beheren).
Body (JSON)
Antwoord 200
object of null
Foutmeldingen 400Geef de plattegrond een naam, bv. "Zaal" of "Terras".
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
object
Foutmeldingen 400Geef de plattegrond een naam.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.
404Plattegrond niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Foutmeldingen 400Mogelijke meldingen:
Ongeldige tafellijst. Tafel "…" staat twee keer op deze plattegrond. Tafel "…" bestaat al op …. Kies een ander nummer. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.
404Plattegrond niet gevonden.
409Tafel … heeft nog een open bestelling en kan niet weg. Reken die eerst af.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.
404Plattegrond niet gevonden.
409Op … staan nog bestellingen open (tafel …). Reken die eerst af.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Foutmeldingen 400Ongeldige volgorde.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: plattegronden en tafels beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg plichtigalles verklaringalles
Antwoord 200
125 velden tonen Veld Type Uitleg 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 (EXACTCLIENT ID en EXACTCLIENT SECRET)?
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 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 (EXACTCLIENT ID en EXACTCLIENT SECRET)?
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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 Veld Type Uitleg 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 (EXACTCLIENT ID en EXACTCLIENT SECRET)?
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 400Mogelijke 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 EXACTCLIENT ID en EXACTCLIENT SECRET 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Mogelijke 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) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Alleen een beheerder mag het personeel beheren.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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
Veld Type Uitleg 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 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Alleen een beheerder mag het personeel beheren.
409Deze pincode wordt al door een andere medewerker gebruikt. Kies een andere.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Type: MedewerkerInvoer
Veld Type Uitleg 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
Veld Type Uitleg 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 400Mogelijke 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. 401Niet aangemeld. Voer je pincode opnieuw in.
403Alleen een beheerder mag het personeel beheren.
404Medewerker niet gevonden.
409Mogelijke 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) Kopieer 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.
Toegang: Alleen voor de rol beheerder .
Toegang Alleen voor de rol beheerder .
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Alleen een beheerder mag de rechten wijzigen.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/rechten" \
-H "Authorization: Bearer <token>"
Eén of meer rechten aan/uit zetten
Gelijk aan de standaard = rij weg.
Toegang Alleen voor de rol beheerder .
Body (JSON) Veld Type Uitleg wijzigingenlijst van object wijzigingen[].roltekst wijzigingen[].rechttekst wijzigingen[].aanja/nee
Antwoord 200
Veld Type Uitleg 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 400Ongeldige wijziging van rechten.
401Niet aangemeld. Voer je pincode opnieuw in.
403Alleen een beheerder mag de rechten wijzigen.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Alleen een beheerder mag de rechten wijzigen.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/rechten/standaard" \
-H "Authorization: Bearer <token>"
Rechten van de aangemelde medewerker (welke knoppen de kassa toont)
Antwoord 200
Veld Type Uitleg rechten * lijst van tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg onderdelenzoekterm (?…) tekst
Antwoord 200
Rij2
Foutmeldingen 400Kies wat je wilt exporteren: producten, plattegronden en/of instellingen.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg pincodealles onderdelenalles bestandalles
Antwoord 200
Veld Type Uitleg ok * ja/nee onderdelen * lijst van tekst telling * ImportTelling backup * tekst
Foutmeldingen 400Mogelijke 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. (…) 401Niet aangemeld. Voer je pincode opnieuw in.
403Deze pincode klopt niet. Voer je eigen pincode in (van de aangemelde beheerder).
409Mogelijke 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) Kopieer 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).
Overzicht: alle back-ups (nieuwste eerst) en wie een handmatige back-up maakte
Toegang Alleen voor de rol beheerder .
Antwoord 200
16 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/backups" \
-H "Authorization: Bearer <token>"
Nu een back-up maken
Duurt meestal enkele seconden.
Toegang Alleen voor de rol beheerder .
Body (JSON) Veld Type Uitleg bevestigalles
Antwoord 200
object
Foutmeldingen 400Bevestig dat je nu een back-up wilt maken.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg bestandalles pincodealles
Antwoord 200
object
Foutmeldingen 400Mogelijke meldingen:
Voer je eigen pincode in om het terugzetten te bevestigen. Kies een back-up uit de lijst. 401Niet aangemeld. Voer je pincode opnieuw in.
403Deze pincode klopt niet. Voer je eigen pincode in (van de aangemelde beheerder).
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Back-ups gaan niet naar het beheerportaal op deze kassa.
502De betaalterminal of een externe dienst gaf een fout.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Foutmeldingen 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Mogelijke meldingen:
Back-ups gaan niet naar het beheerportaal op deze kassa. Er loopt al een back-up of herstel. Wacht even.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Back-ups gaan niet naar het beheerportaal op deze kassa.
502Versturen mislukt: …
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/backups/portaal/versturen" \
-H "Authorization: Bearer <token>"
Database
Externe of ingebouwde database, omschakelen (alleen beheerder).
Welke database nu, en wat er is ingesteld
Toegang Alleen voor de rol beheerder .
Antwoord 200
Type: DatabaseOverzicht
30 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg doelalles urlalles mysqlalles pincodealles
Antwoord 200
object
Foutmeldingen 400Mogelijke meldingen:
Kies mysql (MySQL/MariaDB), intern (ingebouwd, PGlite) of extern (PostgreSQL). Voer je eigen pincode in om het omschakelen te bevestigen. 401Niet aangemeld. Voer je pincode opnieuw in.
403Deze pincode klopt niet. Voer je eigen pincode in (van de aangemelde beheerder).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg urlalles soortalles mysqlalles
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
}'
Antwoord 200
Foutmeldingen 401Mogelijke meldingen:
Alleen voor de kassa-pc zelf. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/intern/backup" \
-H "Authorization: Bearer <token>"
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
Foutmeldingen 401Mogelijke meldingen:
Alleen voor de kassa-pc zelf. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
404Klant niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg klantcode * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/rekeningklanten/<id>/verwijderen" \
-H "Authorization: Bearer <token>"
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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg factuur * FactuurRij betalingen * lijst van object betalingen[].methode * tekst betalingen[].bedrag * getal betalingen[].door * tekst of null betalingen[].op * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
409Betalen op rekening staat uit (Instellingen → Facturen).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg betalingen * lijst van object betalingen[].methode * tekst betalingen[].bedrag * getal betalingen[].door * tekst of null betalingen[].op * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg klant * RekeningKlant stortingen * lijst van object stortingen[].methode * tekst stortingen[].bedrag * getal stortingen[].door * tekst of null stortingen[].op * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg factuur * FactuurRij verstuurd * ja/nee fouttekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
409Betalen op rekening staat uit (Instellingen → Facturen).
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
409Betalen op rekening staat uit (Instellingen → Facturen).
Voorbeeld (curl) Kopieer 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.
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg dienst * pad tekst
Body (JSON) Geen velden.
Antwoord 200
23 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Onbekende dienst.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg dienst * pad tekst
Antwoord 200
28 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Onbekende dienst.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg dienst * pad tekst
Body (JSON) Geen velden.
Antwoord 200
23 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Onbekende dienst.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg dienst * pad tekst
Antwoord 200
Veld Type Uitleg lijsten * lijst van object lijsten[].id * tekst lijsten[].naam * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Onbekende dienst.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg dienst * pad tekst
Antwoord 200
23 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Onbekende dienst.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg dienst * pad tekst
Body (JSON) Geen velden.
Antwoord 200
23 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Onbekende dienst.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg dienst * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Onbekende dienst.
Voorbeeld (curl) Kopieer 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
Voorbeeld (curl) Kopieer 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=).
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/camera" \
-H "Authorization: Bearer <token>"
{ aan: true/false }
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Body (JSON) Geen velden.
Antwoord 200
25 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
26 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
25 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
26 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * truebytes * getal live * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/camera/systemen/<id>/test" \
-H "Authorization: Bearer <token>"
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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: dit. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg systeem * pad tekst camera * pad tekst
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Niet aangemeld. Open de camera's opnieuw. Niet aangemeld. Voer je pincode opnieuw in. 403Geen recht.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg systeem * pad tekst camera * pad tekst
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Niet aangemeld. Open de camera's opnieuw. Niet aangemeld. Voer je pincode opnieuw in. 403Geen recht.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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.
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/muziek" \
-H "Authorization: Bearer <token>"
{ aan: true/false }
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Body (JSON) Geen velden.
Antwoord 200
16 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
16 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
16 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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?
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg zones * lijst van object zones[].id * tekst zones[].naam * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/muziek/soundtrack/zones" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
De bronnen voor het paneel (bv
Bar, Terras) en wat ze kunnen.
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst actie * pad tekst
Body (JSON) Veld Type Uitleg volumealles
Antwoord 200
Type: MuziekStatus
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Type: MuziekStatus
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg lijsten * lijst van object lijsten[].id * tekst lijsten[].naam * tekst lijsten[].soort * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: Playlist
Veld Type Uitleg nu * getal of null nummers * lijst van Nummer
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Type: Playlist
Veld Type Uitleg nu * getal of null nummers * lijst van Nummer
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: MuziekStatus
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg koppeling * Koppeling2 link * tekst appLink * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ok * ja/nee bron * tekst Een van: "schatting" "osrm" "openrouteservice"
km * getal min * getal fout * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/ritplanning/test" \
-H "Authorization: Bearer <token>"
Voor de kassa (knop Ritten): { aan, volgen, locatie, wisselgeld, portaal, bezorgers, open, ritten }
Antwoord 200
13 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/ritten" \
-H "Authorization: Bearer <token>"
Nieuwe rit: { bestellingIds, bezorgerId, wisselgeld?
} → { rit, link } (link = voor de telefoon van de bezorger).
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg rit * Rit link * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/ritten" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Type: Rit
22 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Rit niet gevonden.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/ritten/<id>" \
-H "Authorization: Bearer <token>"
Andere bestellingen of volgorde, of ander wisselgeld (voor vertrek): { bestellingIds, wisselgeld?
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X PUT "http://kassa:4000/api/ritten/<id>" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Rit opheffen (alleen voor vertrek)
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg rit * Rit printFouttekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
22 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg link * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg rit * Rit berichten * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg volgorde * lijst van tekst afstandKm * getal reistijdMin * getal bron * tekst Een van: "schatting" "osrm" "openrouteservice"
fout * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/ritten/<id>/volgorde" \
-H "Authorization: Bearer <token>"
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/ritten/kaart" \
-H "Authorization: Bearer <token>"
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
Veld Type Uitleg voorstellen * lijst van Voorstel zonderLigging * lijst van tekst bron * tekst Een van: "schatting" "osrm" "openrouteservice"
fout * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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.
Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/oproep" \
-H "Authorization: Bearer <token>"
{ aan, minuten, balie, naam, geluid } (alles optioneel)
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/oproep" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Voor het scherm: { aan, zaak, geluid, bereid: [{ nummer, naam?
}], klaar: [{ nummer, naam?, klaarOp }] }.
Antwoord 200
13 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/oproep" \
-H "Authorization: Bearer <token>"
Met de hand: { stand: 'klaar' | 'bereid' | 'weg' | null } (null = weer vanzelf, bv
na "Opgehaald" ongedaan maken).
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg aan * ja/nee minuten * getal bereid * lijst van OproepRij klaar * lijst van OproepRij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg aan * ja/nee minuten * getal bereid * lijst van OproepRij klaar * lijst van OproepRij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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.
Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg migratie * ja/nee aan * ja/nee tablets * lijst van TabletRij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/tablets" \
-H "Authorization: Bearer <token>"
{ aan: true/false }
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg migratie * ja/nee aan * ja/nee tablets * lijst van TabletRij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg migratie * ja/nee aan * ja/nee tablets * lijst van TabletRij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg migratie * ja/nee aan * ja/nee tablets * lijst van TabletRij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X DELETE "http://kassa:4000/api/beheer/tablets/<id>" \
-H "Authorization: Bearer <token>"
De gekoppelde tablets voor de knoppen "Naar …": { aan, tablets: [{ id, naam, online, scherm }] }
Antwoord 200
Veld Type Uitleg aan * ja/nee tablets * lijst van TabletRij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/tablets" \
-H "Authorization: Bearer <token>"
POST /api/tablets/{id}/ontkoppelen#
Op de tablet: deze tablet ontkoppelen ({ sleutel })
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg naam * tekst scherm * tekst of null Een van: "muziek" "camera"
bron * tekst of null versie * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg ok * truenaam * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Mogelijke meldingen:
Muziek bedienen staat uit (Instellingen → Zaak → Schermen en bediening). Camerabeelden staan uit (Instellingen → Zaak → Schermen en bediening).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg id * tekst naam * tekst sleutel * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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).
{ adressen: ['http://192.168.1.20:3000', …] }: hier opent een tablet in hetzelfde netwerk de schermen
Antwoord 200
Veld Type Uitleg adressen * lijst van tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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.
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
Veld Type Uitleg instelling * TeLaatInstelling migratie * ja/nee sms * ja/nee mail * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/telaat" \
-H "Authorization: Bearer <token>"
{ 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/telaat" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Te late bestellingen van de afgelopen 24 uur (open eerst), en wat er kan (excuus, tegoedbon)
Antwoord 200
Veld Type Uitleg aan * ja/nee bericht * tekst Een van: "uit" "automatisch" "vragen"
tegoed * ja/nee meldingen * lijst van TeLaatMelding
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/telaat" \
-H "Authorization: Bearer <token>"
POST /api/telaat/{id}/afgehandeld#
Afgehandeld: weg uit de open meldingen
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg aan * ja/nee bericht * tekst Een van: "uit" "automatisch" "vragen"
tegoed * ja/nee meldingen * lijst van TeLaatMelding
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg landzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg banken * lijst van object banken[].naam * tekst banken[].land * tekst banken[].logo * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg nieuw * getal geboekt * getal voorstel * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/bankkoppeling/verbinden" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg transacties * lijst van BankTransactie bron * tekst Een van: "camt" "mt940" "coda" "enablebanking"
gelezen * getal nieuw * getal geboekt * getal voorstel * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: op rekening afrekenen en betalingen op rekening ontvangen (zakelijke klanten). Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/oprekening/bank/afschrift" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/hotel" \
-H "Authorization: Bearer <token>"
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg ingevoerdalles
Antwoord 200
32 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * trueexternId * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg melding * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg sleutel * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/hotel/webhook" \
-H "Authorization: Bearer <token>"
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/hotel" \
-H "Authorization: Bearer <token>"
Parameters Naam Waar Type Uitleg zoekzoekterm (?…) tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/hotel/gasten" \
-H "Authorization: Bearer <token>"
Parameters Naam Waar Type Uitleg sleutelzoekterm (?…) tekst
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/hotel/sirvoy" \
-H "Authorization: Bearer <token>"
Parameters Naam Waar Type Uitleg sleutelzoekterm (?…) tekst
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Deze bestelling is al afgerekend.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg bon * pad tekst
Antwoord 200
Veld Type Uitleg bon * getal regels * lijst van object regels[].naam * tekst regels[].aantal * getal regels[].verrekend * getal regels[].prijsIncl * getal regels[].btwCode * tekst open * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/kassaopties" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Antwoord 200
Type: KassaOpties
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/kassaopties" \
-H "Authorization: Bearer <token>"
webshop
POST /api/beheer/webshop/instellingen#
beheer
Body (JSON) Veld Type Uitleg werkbonalles
Antwoord 200
Type: WebshopInstelling
Veld Type Uitleg werkbon * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/webshop/instellingen" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"werkbon": null
}'
GET /api/webshop/bestellingen#
Parameters Naam Waar Type Uitleg dagenzoekterm (?…) tekst
Antwoord 200
lijst van WsOverzicht
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
object of AfrekenResultaat
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden.
409Mogelijke 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) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Niet gevonden of al afgerekend (dan via een retour).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg statusalles
Antwoord 200
Foutmeldingen 400Onbekende status.
401Niet aangemeld. Voer je pincode opnieuw in.
404Bestelling niet gevonden of geannuleerd.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/webshop/bestellingen/<id>/status" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"status": null
}'
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) Veld Type Uitleg aanalles tekstalles drukteMinalles
Antwoord 200
Veld Type Uitleg pauze * ja/nee pauzeTekst * tekst of null drukteMin * getal
Foutmeldingen 400Druk: kies 0 tot 240 minuten extra.
401Niet aangemeld. Voer je pincode opnieuw in.
409De database is niet bijgewerkt. Draai npm run db:migrate (migratie 061).
Voorbeeld (curl) Kopieer 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
}'
Stand van de webshop (voor de knop in de bovenbalk en Instellingen → Zaak)
Antwoord 200
14 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg productenalles vanafalles
Antwoord 200
Veld Type Uitleg ok * truegewijzigd * getal gepland * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg ok * ja/nee planning * lijst van BtwPlanning
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * ja/nee planning * lijst van BtwPlanning
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: producten, groepen en keuzeopties beheren. Vraag een beheerder.
404Geplande wijziging niet gevonden (of al uitgevoerd).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/btw-planning/<id>/annuleren" \
-H "Authorization: Bearer <token>"
facturen
Facturen, nieuwste eerst; ?zoek= nummer, klant of bonnummer
Toegang Vereist recht omzet_periode (Omzet per periode).
Parameters Naam Waar Type Uitleg zoekzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
404Factuur niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst soortzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg naam * tekst type * tekst inhoud * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
404Factuur niet gevonden.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg ticketId * pad tekst
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/facturen/peppol" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg vanzoekterm (?…) tekst totzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg 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 400Mogelijke meldingen:
Kies een geldige periode. Kies een periode van hooguit een jaar. 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
20 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
20 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Meetpunt niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
20 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
20 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Taak niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/haccp/taken/<id>/verwijderen" \
-H "Authorization: Bearer <token>"
Meetpunten, taken, wat er vandaag nog moet en de registraties van vandaag
Antwoord 200
22 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 400Ongeldige invoer.
401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/haccp/registraties" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
tap
Bronnen (zonder sleutels), kranen en de lijst met merken en voorinstellingen
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg bron * TapBron sleuteltekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg bron * TapBron sleuteltekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg gelezen * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Bron niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Type: Ontvangen
Veld Type Uitleg ontvangen * getal geboekt * getal dubbel * getal onbekend * getal fouten * getal
Foutmeldingen 400Vul een kraan (of PLU) en eventueel ml in.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Bron niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Bron niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg ok * trueid * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg kranen * lijst van TapKraan
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Kraan niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg vanzoekterm (?…) tekst totzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg 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 400Kies een geldige periode (van en tot, hooguit een jaar).
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: omzet per periode. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/tap/overzicht" \
-H "Authorization: Bearer <token>"
{ tapIds: [...], reden: spoelen|breuk|proeven|personeel|gratis|overig, toelichting?
Toegang Vereist recht storno (Regels schrappen na bestellen (storno)).
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg taps * lijst van TapRij afgekeurd * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: regels schrappen na bestellen (storno). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/tap/afkeuren" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
{ tapIds: [...], bestellingId }: taps op deze bestelling zetten
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg taps * lijst van TapRij geboekt * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg fouten * getal ontvangen * getal geboekt * getal dubbel * getal onbekend * getal
Foutmeldingen 400Geen taps gevonden (verwacht JSON met kraan en ml, of een lijst daarvan).
401Mogelijke meldingen:
Onbekende bron of verkeerde sleutel. Niet aangemeld. Voer je pincode opnieuw in. 409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst vanzoekterm (?…) tekst totzoekterm (?…) tekst
Antwoord 200
Veld Type Uitleg verkopen * lijst van object
Foutmeldingen 400Kies een geldige periode (van en tot, hooguit een jaar).
401Mogelijke meldingen:
Onbekende bron of verkeerde sleutel. Niet aangemeld. Voer je pincode opnieuw in. 409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/tap/kegboard/<id>" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d 'null'
Taps die nog niet op een bon staan
Antwoord 200
Veld Type Uitleg taps * lijst van TapRij
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/tap/open" \
-H "Authorization: Bearer <token>"
Gedoseerd tappen: vrijgaven die lopen en die van het laatste uur
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/tap/vrijgaven/<id>/stoppen" \
-H "Authorization: Bearer <token>"
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
Veld Type Uitleg koppelingen * lijst van BiKoppeling diensten * lijst van BiDienst datasets * lijst van BiDatasetDef periodes * lijst van "vandaag"portaalAdres * tekst of null portaalVerbonden * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/bi" \
-H "Authorization: Bearer <token>"
{ 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/bi" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Wijzigen; geheimen leeg = houden, null = wissen; { nieuweSleutel: true } = nieuwe leessleutel
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
object
Foutmeldingen 400Bij een API-koppeling haalt het BI-pakket zelf op: kopieer het adres en de sleutel.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Koppeling niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Koppeling niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg dataset * pad tekst vanzoekterm (?…) tekst totzoekterm (?…) tekst periodezoekterm (?…) tekst formaatzoekterm (?…) tekst scheidingzoekterm (?…) tekst sleutelzoekterm (?…) tekst
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Onbekende gegevens.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg naam * tekst type * tekst base64 * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/bi/powerbi" \
-H "Authorization: Bearer <token>"
Welke gegevens er zijn (met kolommen), en welke periodes
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/bi" \
-H "Authorization: Bearer <token>"
Eén dataset: ?van=&tot= (JJJJ-MM-DD) of ?periode= (standaard 30d), ?formaat=json|csv, ?scheiding=;
Parameters Naam Waar Type Uitleg dataset * pad tekst vanzoekterm (?…) tekst totzoekterm (?…) tekst periodezoekterm (?…) tekst formaatzoekterm (?…) tekst scheidingzoekterm (?…) tekst sleutelzoekterm (?…) tekst
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
404Onbekende gegevens. Zie GET /api/bi voor de lijst.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg platformtekst
Antwoord 200
Veld Type Uitleg url * tekst of null melding * tekst platform * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg onderwerp * tekst tekst * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg gewist * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg platform * pad tekst
Antwoord 200
Veld Type Uitleg nieuw * getal bijgewerkt * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Koppeling niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg platform * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Koppeling niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg platform * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
404Koppeling niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/reviewbeheer/google/verbinden" \
-H "Authorization: Bearer <token>"
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Veld Type Uitleg gemarkeerd * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg codezoekterm (?…) tekst statezoekterm (?…) tekst errorzoekterm (?…) tekst
Antwoord 200 · text/html
tekst
Foutmeldingen
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: reviews lezen en beantwoorden (Google, Trustpilot). Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/reviews/ophalen" \
-H "Authorization: Bearer <token>"
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 Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/kiosk" \
-H "Authorization: Bearer <token>"
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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/kiosk/apparaten/<id>/verwijderen" \
-H "Authorization: Bearer <token>"
POST /api/kiosk/bestellingen#
Parameters Naam Waar Type Uitleg breedtezoekterm (?…) tekst
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst breedtezoekterm (?…) tekst
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/kiosk/bestellingen/<id>" \
-H "Authorization: Bearer <token>"
POST /api/kiosk/bestellingen/{id}/annuleren#
Parameters Naam Waar Type Uitleg id * pad tekst
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/kiosk/bestellingen/<id>/annuleren" \
-H "Authorization: Bearer <token>"
POST /api/kiosk/bestellingen/{id}/betalen#
Parameters Naam Waar Type Uitleg id * pad tekst breedtezoekterm (?…) tekst
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst breedtezoekterm (?…) tekst
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst breedtezoekterm (?…) tekst
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/kiosk/bestellingen/<id>/kassa" \
-H "Authorization: Bearer <token>"
Koppelen: { code } → { sleutel, naam } (de pagina bewaart de sleutel op het apparaat)
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
429Te veel pogingen. Probeer het over 10 minuten opnieuw.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/kiosk/koppelen" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
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 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/kiosk/opwaarderen" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Barcodescanner (optioneel): { code } → { soort: product | kortingscode | klant | cadeaubon | onbekend, ... }
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/kiosk/scan" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
Wat de kiosk moet weten om te starten: naam, aan/uit, instellingen (zonder groepen), talen en de zaak
Antwoord 200
24 velden tonen Veld Type Uitleg 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 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/kiosk/start" \
-H "Authorization: Bearer <token>"
GET /api/kiosk/status/{token}#
Parameters Naam Waar Type Uitleg token * pad tekst
Antwoord 200
alles
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
429Te vaak. Probeer het zo opnieuw.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/kiosk/status/<token>" \
-H "Authorization: Bearer <token>"
Tegoed opwaarderen (optioneel): saldo van een pas, en een bestelling met alleen de opwaardering
Body (JSON) Geen velden.
Antwoord 200
alles
Foutmeldingen 401Mogelijke meldingen:
Deze kiosk is niet (meer) gekoppeld. Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/kiosk/tegoed" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{}'
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
Veld Type Uitleg migratie114 * ja/nee groepen * lijst van tekst max * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/webshop-upsell" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d 'null'
pasje
Body (JSON)
Antwoord 200
Veld Type Uitleg 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 400Dit pasje kan de kassa niet lezen.
401Mogelijke meldingen:
Onbekend pasje. Niet aangemeld. Voer je pincode opnieuw in. 409Aanmelden met een pasje staat uit.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/aanmelden/pas" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"pas": null
}'
Toegang: Alleen voor de rol beheerder .
Toegang Alleen voor de rol beheerder .
Antwoord 200
Veld Type Uitleg migratie114 * ja/nee aan * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Alleen een beheerder mag het personeel beheren.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/pasje" \
-H "Authorization: Bearer <token>"
Toegang: Alleen voor de rol beheerder .
Toegang Alleen voor de rol beheerder .
Body (JSON)
Antwoord 200
Veld Type Uitleg migratie114 * ja/nee aan * ja/nee
Foutmeldingen 400Kies aan of uit.
401Niet aangemeld. Voer je pincode opnieuw in.
403Alleen een beheerder mag het personeel beheren.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg migratie115 * ja/nee aan * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Veld Type Uitleg migratie115 * ja/nee aan * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg regels * lijst van tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/etiketten" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d 'null'
Antwoord 200
Etiketten of object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg formaat * tekst Een van: "38x25" "57x32" "62x29" "100x50"
prijs * ja/nee streepjescode * ja/nee etiketten * lijst van Etiket
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
409Etiketten printen staat uit (Instellingen → Zaak → Etiketten printen).
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg migratie115 * ja/nee aan * ja/nee klantenkaart * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
Veld Type Uitleg migratie115 * ja/nee aan * ja/nee klantenkaart * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Antwoord 200
Veld Type Uitleg vip * ja/nee dieet * lijst van tekst voorkeuren * tekst of null naam * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
404Klant niet gevonden.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/klanten/<id>/gastprofiel" \
-H "Authorization: Bearer <token>"
POST /api/klanten/{id}/gastprofiel#
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Geen velden.
Antwoord 200
Veld Type Uitleg vip * ja/nee dieet * lijst van tekst voorkeuren * tekst of null naam * tekst
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/klanten/<id>/gastprofiel" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d 'null'
valutategoed
Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg migratie116 * ja/nee aan * ja/nee terugbetalen * ja/nee max * getal cadeaubonSaldo * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/tegoed" \
-H "Authorization: Bearer <token>"
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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/tegoed" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d 'null'
Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/valuta" \
-H "Authorization: Bearer <token>"
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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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
Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Er staat geen munt op een live koers.
502Koersen ophalen lukte niet: … De laatste koersen blijven staan.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/beheer/valuta/bijwerken" \
-H "Authorization: Bearer <token>"
POST /api/bestellingen/{id}/opwaarderen#
Parameters Naam Waar Type Uitleg id * pad tekst
Body (JSON) Veld Type Uitleg codealles bedragalles
Antwoord 200
Type: Bestelling
29 velden tonen Veld Type Uitleg 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 401Niet aangemeld. Voer je pincode opnieuw in.
409Kan nu niet (conflict met de huidige toestand).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/bestellingen/<id>/opwaarderen" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"code": null,
"bedrag": null
}'
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer 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) Veld Type Uitleg codealles bedragalles
Antwoord 200
Veld Type Uitleg code * tekst bedrag * getal saldo * getal
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Geen recht.
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/tegoed/terugbetalen" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"code": null,
"bedrag": null
}'
Antwoord 200
object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/valuta" \
-H "Authorization: Bearer <token>"
scanner
Toegang: Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Toegang Vereist recht instellingen_beheren (Zaak, betalen en printers instellen).
Antwoord 200
Veld Type Uitleg aan * ja/nee product * ja/nee kortingscode * ja/nee klantenkaart * ja/nee cadeaubon * ja/nee migratie117 * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/beheer/scanner" \
-H "Authorization: Bearer <token>"
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
Veld Type Uitleg aan * ja/nee product * ja/nee kortingscode * ja/nee klantenkaart * ja/nee cadeaubon * ja/nee migratie117 * ja/nee
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
Voorbeeld (curl) Kopieer 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)
Antwoord 200
object
Foutmeldingen 400Lege scan.
401Niet aangemeld. Voer je pincode opnieuw in.
403Je rol heeft geen recht op: zaak, betalen en printers instellen. Vraag een beheerder.
409Kan nu niet (conflict met de huidige toestand).
429Te veel scans achter elkaar. Wacht een minuut.
Voorbeeld (curl) Kopieer 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 Naam Waar Type Uitleg id * pad tekst
Body (JSON)
Antwoord 200
Veld Type Uitleg kaart * tekst of null
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
404Klant niet gevonden.
409De klantenkaart staat uit (Instellingen → Zaak).
Voorbeeld (curl) Kopieer curl -X POST "http://kassa:4000/api/klanten/<id>/kaart" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"kaart": null
}'
Antwoord 200
ScannerInstelling of object
Foutmeldingen 401Niet aangemeld. Voer je pincode opnieuw in.
Voorbeeld (curl) Kopieer curl "http://kassa:4000/api/scanner" \
-H "Authorization: Bearer <token>"
Body (JSON)
Antwoord 200
object
Foutmeldingen 400Lege scan.
401Niet aangemeld. Voer je pincode opnieuw in.
409De scanner staat uit (Instellingen → Scanner).
429Te veel scans achter elkaar. Wacht een minuut.
Voorbeeld (curl) Kopieer 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 Veld Type Uitleg 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 Veld Type Uitleg straat * tekst huisnummer * tekst postcode * tekst plaats * tekst
AfrekenResultaat Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg merk * tekst model * tekst ts6x * ja/nee aclas * tekst of null
ApparaatOpdracht Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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.
AyceDeelname Deelname van een groep aan tafel aan één arrangement.
Veld Type Uitleg 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.
Veld Type Uitleg aan * ja/nee all-you-can-eat gebruiken
arrangementen * lijst van AyceArrangement de arrangementen, op volgorde
BackupBestand Veld Type Uitleg naam * tekst gemaaktOp * tekst grootteKb * getal
BankTransactie Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg naamalles bestandsnaam: .xlsx = Excel (inhoud als base64), anders CSV-tekst
tekstalles base64alles
Bestelling Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg naam * tekst type * tekst Een van: "datum" "tekst" "bedrag" "tijdstip" "getal" "tijd" "ja/nee"
BiKoppeling Veld Type Uitleg 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 Veld Type Uitleg vantekst tottekst periodetekst formaattekst scheidingtekst sleuteltekst
BtwPlanning Veld Type Uitleg 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 Veld Type Uitleg code * tekst percentage * getal basis * getal grondslag exclusief btw, in centen
btw * getal btw-bedrag in centen
totaal * getal basis + btw
Campagne Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg codealles omschrijvingalles soortalles waardealles minimumalles geldigVanalles geldigTotalles maxGebruikalles aanKassaalles inWebshopalles actiefalles
Dagdeel Veld Type Uitleg 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 Veld Type Uitleg naamalles dagenalles vanalles totalles seizoenVanalles seizoenTotalles groepIdsalles artikelIdsalles actiefalles
DatabaseOverzicht Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg zaak * tekst nummer * getal Bonnummer en tijdstip (ISO).
tijdstip * tekst totaal * getal tekst * tekst De bon zelf, als tekst (zelfde als de papieren).
EerdereBestelling Veld Type Uitleg 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 Veld Type Uitleg artikelId * tekst naam * tekst prijs * getal centen; bij perKilo de prijs per kilo
perKilo * ja/nee code * tekst of null aantal * getal
EtiketRegel Veld Type Uitleg 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 Veld Type Uitleg 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
FactuurAfnemer Veld Type Uitleg 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 Veld Type Uitleg percentage * getal categorie * tekst S = standaard, Z = 0%
Een van: "S" "Z"
excl * getal btw * getal incl * getal
FactuurGegevens Veld Type Uitleg 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 Veld Type Uitleg naam * tekst aantal * getal prijsIncl * getal centen per stuk incl. btw
btwPercentage * getal btwCode * tekst
FactuurRij Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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).
Veld Type Uitleg fout * tekst codetekst Soms een vaste code, bv. DATABASE_OMZETTEN.
FraudeRegels Veld Type Uitleg 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.
Veld Type Uitleg vip * ja/nee dieet * lijst van tekst voorkeuren * tekst of null
GekozenOptie Veld Type Uitleg id * tekst naam * tekst prijsDelta * getal
GeldFuncties Wat de kassa met de automaat kan.
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg totaal * getal delen * lijst van object delen[].waarde * getal delen[].aantal * getal delen[].biljet * ja/nee
GevondenAdres Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg naamtekst kleurtekst nietBijalles leverwijze (migratie 084): waar deze groep niet verkocht wordt; niet meegestuurd = niet wijzigen
HaccpOpen Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg naamalles dagenalles vanalles totalles soortalles waardealles groepIdsalles artikelIdsalles actiefalles seizoenVanalles seizoenTotalles
HotelBoekregel Veld Type Uitleg naam * tekst bedrag * getal centen incl. btw (totaal van de regel)
btwPercentage * getal
HotelCatalogusItem Veld Type Uitleg 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).
Veld Type Uitleg 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.
Veld Type Uitleg sleutel * tekst Een van: "serviceId" "categorieId" "propertyId" "basisUrl" "btwCodes" "clientToken" "accessToken" "clientId" "clientSecret" "apiKey" "gebruiker" "wachtwoord"
label * tekst geheim * ja/nee
ImportTelling Veld Type Uitleg groepen * getal artikelen * getal optiegroepen * getal ruimtes * getal tafels * getal printers * getal rechten * getal instellingen * getal
Invoer Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg lat * getal lon * getal
Kanalen Veld Type Uitleg 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.
Veld Type Uitleg soort * tekst Een van: "in" "uit"
bedrag * getal reden * tekst door * tekst of null tijd * tekst
KassaOpties Veld Type Uitleg 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 Veld Type Uitleg fw * tekst of null meters * lijst van getal relays * lijst van getal
KioskApparaat Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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
Mogelijk Wat een bron kan (voor de knoppen in het paneel).
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg id * tekst titel * tekst artiest * tekst of null
OmzetRegel Veld Type Uitleg dag * tekst uur * getal excl * getal incl * getal
Ontvangen Veld Type Uitleg ontvangen * getal geboekt * getal dubbel * getal onbekend * getal fouten * getal
OpenTijden
Oproep Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg veld * tekst label * tekst geheimja/nee optioneelja/nee leeg laten mag
plaatshoudertekst keuzeslijst van object keuzes[].waarde * tekst keuzes[].label * tekst
PlatformKoppeling Veld Type Uitleg 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 (location id); 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 Veld Type Uitleg nu * getal of null nummers * lijst van Nummer
PortaalBackup Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg sleutel * tekst naam * tekst standaard * tekst rekening * tekst
RekeningKlant Veld Type Uitleg 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 Veld Type Uitleg 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).
Veld Type Uitleg maxPersonen * getal vooruitDagen * getal slotMin * getal tijdslot in minuten: 15, 30 of 60
minVoorafMin * getal minstens zoveel minuten van tevoren
tijden * WeekTijden
ResOntvangen Veld Type Uitleg nieuw * getal bijgewerkt * getal opTafel * getal fouten * getal
ResPlatform Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg sleutel * tekst label * tekst geheimja/nee geheim: wordt nooit teruggestuurd (alleen "ingevuld")
standaardtekst standaardwaarde (bv. een adres)
ReviewKoppeling Veld Type Uitleg 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)
ReviewLink Veld Type Uitleg naam * tekst Een van: "Google" "Trustpilot"
url * tekst
ReviewManierDef Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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)
alleenEigentruealleen nodig met een eigen app of sleutel (niet via de app van de leverancier)
Rij Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg product * ja/nee kortingscode * ja/nee klantenkaart * ja/nee cadeaubon * ja/nee
ScannerInstelling Veld Type Uitleg aan * ja/nee product * ja/nee kortingscode * ja/nee klantenkaart * ja/nee cadeaubon * ja/nee
SignaalRegel Veld Type Uitleg 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 Veld Type Uitleg 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
SignaleringInstelling
SpaarPlatformDef Veld Type Uitleg code * tekst Een van: "piggy" "joyn"
naam * tekst landen * lijst van tekst velden * lijst van SpaarVeld noot * tekst
SpaarVeld Veld Type Uitleg sleutel * tekst label * tekst geheimja/nee maniertekst alleen nodig bij deze manier
Een van: "api" "qr"
Stop Veld Type Uitleg 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 Veld Type Uitleg id * tekst naam * tekst online * ja/nee laatstGezien * tekst of null scherm * tekst of null Een van: "muziek" "camera"
TafelGroep Veld Type Uitleg id * tekst nummer * getal groepNummer * getal groepNaam * tekst of null totaal * getal aantalRegels * getal gasten * getal aantal personen in deze groep
geopendOp * tekst
TafelInvoer Veld Type Uitleg idtekst of null naamtekst xgetal ygetal breedtegetal hoogtegetal vormtekst plaatsengetal
TapBron Veld Type Uitleg 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 Veld Type Uitleg 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 (maxidle ms; standaard 30)
TapKraan Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg id * tekst code * tekst percentage * getal omschrijving * tekst
TbOverzicht Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg soort * tekst Een van: "procent" "bedrag"
waarde * getal procent: 1-100; bedrag: centen
dagen * getal zoveel dagen geldig (vanaf vandaag)
TelefonieBeheer Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg naamtekst terminalIdtekst apiSleuteltekst
TfOrder Veld Type Uitleg 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 Veld Type Uitleg aan * ja/nee menuAuto * ja/nee werkbon * ja/nee
Tijden Veld Type Uitleg 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 Veld Type Uitleg op * tekst begin van het tijdvak (ISO)
tijd * tekst "18:30"
bezet * getal bestellingen in dit tijdvak
vol * ja/nee vol (maximum bereikt)
Ts6xInstelling Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg ok * ja/nee fouttekst meldingtekst order * Order
Vestiging Veld Type Uitleg 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 (EXACTCLIENT ID en EXACTCLIENT SECRET)?
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.
Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg 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.
Veld Type Uitleg 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 Veld Type Uitleg naamalles telefoonalles personenalles wensalles wachttijdMinalles
WachtendeWerkbon Veld Type Uitleg 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 OPGEVENNA MS: niet meer vanzelf, alleen nog met "Opnieuw printen"
WebshopInstelling Veld Type Uitleg werkbon * ja/nee
WeegschaalInstelling Veld Type Uitleg 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 Veld Type Uitleg 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 Veld Type Uitleg kiosk * ja/nee webshop * ja/nee maxBedrag * getal
ZoekResultaat Veld Type Uitleg 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