Kontakt und Support

cbird - JSON-Schnittstelle

Bonierungen in cbird können über folgende JSON-Schnittstelle automatisiert werden. Die Schnittstelle funktioniert folgendermaßen:

Aktivierung der Schnittstelle

Es muß folgendes Import-Verzeichnis für die Kasse angelegt werden:

USERHOME\cbirdWatch\KASSENNUMMER

Die Kassennummer ist bei cbird "weltweit" eindeutig. Daher ist es auch kein Problem, wenn mehrere Kassensticks angeschlossen sind.

Die Demokasse hat die Kassennummer: "0"

Sobald das Verzeichnis USERHOME\cbirdWatch existiert und cbird danach gestartet wird, wird das "automatische Bonieren" aktiviert (Kann dann im Menüpunkt "Kassa->Automatisches Bonieren" ein- und ausgeschaltet werden).

Automatisches Bonieren

In obiges Kassenverzeichnis können Textdateien mit den Bondaten im JSON-Format geschrieben werden. Der Dateiname muß folgender Konvention entsprechen:

JJJJ-MM-TT-xxxxxxx.json

xxxxxxx ist frei wählbar und kann "beliebig" lang sein. cbird importiert die Dateien aufgrund des Dateinamens per Stringsortierung aufsteigend.

Das ist wichtig, weil in der Kassa chronologisch boniert werden muß.

In der JSON-Datei gibt es folgende Felder:

  1. "zahlungsmittel": Erlaubte Werte sind "Bar", "Bankomat", "Kreditkarte"
  2. optional "nachbonieren": true oder false
  3. "positionen": Ein Array aus Text oder Produktpositionen

Eine Textposition beinhaltet nur das Feld "bezeichnung"

Eine Produktposition besteht aus folgenden Feldern:
  1. "bezeichnung": Text mit maximal 200 Zeichen ohne Tab, Newline, Carriage Return. Ein leerer Text, oder ein Text der nur aus Leerzeichen oder Zeilenumbrüchen besteht, ist nicht erlaubt.
  2. "menge": Integerzahl zwischen -99999 und 99999
  3. "einzelpreis": Betrag in Eurocent. Integerzahl zwischen -99999999 und 99999999
  4. "ust": 0, 10, 12, 13, 20

Menge * Einzelpreis muß zwischen -99999999 und 99999999 liegen. Auch die Gesamtsumme muß in diesem Bereich liegen.

Falls das Dateidatum älter als der heutige Tag ist, wird eine Nachbonierung gemacht (wäre ein Kassenausfall). Das könnte passieren, falls cbird nicht gestartet wurde oder der Import deaktiviert wurde. Ist gesetzlich dann aber nicht mehr korrekt, weil sofort bei Zahlung boniert werden muß! Der Unternehmer ist verantwortlich, dass das nicht passiert.

Wenn das Datum der heutige Tag ist, dann wird normal boniert außer in der JSON Datei wird der boolean Wert "nachbonieren" auf true gesetzt.

Stornos müssen in cbird gemacht werden, weil nur cbird weiß welche Bons es wirklich gibt.

Im Fehlerfall oder wenn eine Bonierung aufgrund der Chronologie (z.b. es existiert schon ein späteres Datum) nicht möglich ist, dann wird der automatische Import gestoppt und in cbird erscheint eine Fehlermeldung.

Tagesabschluß und Monatsabschluß werden automatisch vor der ersten Bonierung am nächsten Tag/Monats gemacht. Ohne Benutzerinteraktion.

Encoding der json-Datei

Das Encoding der json-Datei hängt vom Default-Encoding von java auf dem jeweiligen Betriebssystems (und den Spracheinstellungen auf diesem) ab. Dieses Encoding können Sie folgendemaßen herausfinden:

Der Wert vom Property "file.encoding" bestimmt das Encoding der json-Datei.

Ändern Sie bitte nicht die Startskripts von cbird um das Encoding zu verändern. Diese Skripts könnten bei einem cbird-Update automatisch ausgetauscht werden!

Beispiele