Technik 12 Min. Lesezeit

API & Programmierung: Kassensysteme erweitern

Wie du Kassensysteme per API anbindest, eigene Integrationen baust und welche Schnittstellen die gängigen Anbieter bieten.

Level: Fortgeschritten
Kategorie
Technik
Level
Fortgeschritten
Lesezeit
12 Minuten
Thema
Kassensysteme

Warum API-Zugang wichtig ist

Standardfunktionen decken den Grundbedarf. Doch wer individuelle Workflows abbilden will, braucht programmatischen Zugang zum Kassensystem. Die Grundlagen zu Schnittstellen und Buchhaltungsanbindungen sollten dabei bekannt sein.

Ein konkretes Beispiel: Ein Bäckerei-Filialist mit acht Standorten will jeden Abend automatisch die Tagesumsätze in sein Controlling-Tool laden. Ohne API bedeutet das acht manuelle CSV-Exporte, die jemand per Hand zusammenführt. Mit einer funktionierenden REST-Schnittstelle erledigt ein einziges Script diesen Job in unter 30 Sekunden — fehlerfrei und ohne Personalaufwand.

Auch für Betriebe, die ein einzelnes Kassensystem betreiben, lohnt sich der Blick auf die API-Fähigkeit. Denn selbst einfache Automatisierungen — etwa das automatische Anlegen neuer Artikel aus dem Warenwirtschaftssystem — sparen im Jahresverlauf dutzende Arbeitsstunden.

📖

Daten lesen

Umsätze, Artikel, Bestände und Bediener abfragen

✏️

Daten schreiben

Artikel anlegen, Preise ändern, Bestände aktualisieren

Aktionen auslösen

Bestellungen erstellen, Rabatte anwenden, Berichte generieren

🔔

Webhooks empfangen

Bei Verkauf, Storno oder Tagesabschluss automatisch benachrichtigt werden

Typische API-Architekturen

REST API

Der verbreitetste Ansatz. Daten werden über HTTP-Endpunkte als JSON ausgetauscht:

GET /api/v1/articles          → Alle Artikel abrufen
POST /api/v1/articles         → Neuen Artikel anlegen
GET /api/v1/sales?date=today  → Heutige Verkäufe abfragen
PUT /api/v1/articles/42       → Artikel 42 aktualisieren
DELETE /api/v1/articles/42    → Artikel 42 löschen

REST ist deshalb so verbreitet, weil es auf dem bewährten HTTP-Protokoll aufbaut und nahezu jede Programmiersprache HTTP-Anfragen senden kann. Die meisten Kassensystem-Anbieter — darunter Lightspeed und SumUp — setzen auf REST. Die Lernkurve ist überschaubar: Wer einmal einen GET-Request verstanden hat, kann innerhalb weniger Stunden erste produktive Integrationen bauen.

Typischerweise liefert eine REST-API paginierte Ergebnisse. Wenn du also 5.000 Artikel abrufst, bekommst du sie in Blöcken von z. B. 100 Stück. In deinem Script musst du dann alle Seiten durchlaufen, um den vollständigen Datensatz zu erhalten. Achte dabei auf die Rate-Limits des Anbieters — wer zu viele Requests in kurzer Zeit absetzt, wird temporär gesperrt.

GraphQL

Einige moderne Anbieter setzen auf GraphQL für flexible Abfragen:

query {
  sales(date: "2025-01-15") {
    total
    items { name, quantity, price }
  }
}

Der Vorteil von GraphQL gegenüber REST liegt in der Flexibilität: Du bekommst exakt die Daten, die du brauchst — nicht mehr und nicht weniger. Bei REST musst du oft mehrere Endpunkte nacheinander abfragen, um zusammengehörige Daten zu erhalten. Mit GraphQL formulierst du eine einzige Abfrage, die zum Beispiel Verkaufsdaten, die zugehörigen Artikel und die Kundendaten in einem Request zurückgibt. Das reduziert die Anzahl der Netzwerkanfragen und beschleunigt deine Integration spürbar.

In der Praxis ist GraphQL allerdings noch weniger verbreitet als REST. Wenn dein Anbieter beides anbietet, lohnt sich GraphQL vor allem bei datenintensiven Dashboards und Reporting-Tools. Ein typischer Anwendungsfall: Du willst für jeden Mitarbeiter die Gesamtumsätze der letzten 30 Tage, aufgeschlüsselt nach Zahlungsart, inklusive der meistverkauften Artikel pro Mitarbeiter. Mit REST brauchst du dafür drei bis vier separate Requests — mit GraphQL genau einen.

Webhooks

Für Event-getriebene Integrationen:

{
  "event": "sale.completed",
  "data": {
    "sale_id": "12345",
    "total": 47.80,
    "payment_method": "card"
  }
}

Webhooks kehren das Kommunikationsmodell um: Statt regelmäßig beim Kassensystem nach neuen Daten zu fragen (Polling), erhältst du aktiv eine Benachrichtigung, sobald ein bestimmtes Ereignis eintritt. Das ist nicht nur effizienter, sondern ermöglicht Echtzeit-Reaktionen.

Typische Webhook-Events sind: Verkauf abgeschlossen, Storno durchgeführt, Tagesabschluss erstellt, neuer Artikel angelegt oder Bestand unter Mindestmenge gefallen. Ein gut designtes Webhook-System bietet dir eine Retry-Logik: Wenn dein Server nicht erreichbar ist, versucht der Anbieter die Zustellung mehrmals mit zunehmendem Abstand. Trotzdem solltest du deine Webhook-Verarbeitung idempotent gestalten — also so, dass ein doppelt zugestelltes Event keinen Schaden anrichtet.

Praxis-Anwendungen

📊

Auto-Buchhaltung

Webhook bei Tagesabschluss → Daten an lexoffice/sevDesk pushen. Kein manueller Export mehr. So lassen sich z. B. Lightspeed oder SumUp nahtlos anbinden.

📈

Custom Dashboard

Echtzeit-Umsätze aller Standorte, Vorjahresvergleich und Top-Seller-Analyse auf einen Blick.

📦

Smart-Bestellung

API prüft Mindestbestand → Automatische Nachbestellung beim Lieferanten per EDI oder E-Mail.

Loyalty-Programm

Punkte gutschreiben per Webhook, einlösen per API-Aufruf, Kunden-App zeigt Punktestand.

Auto-Buchhaltung im Detail

Die häufigste API-Integration ist die automatisierte Buchhaltungsanbindung. Der typische Ablauf sieht so aus: Dein Kassensystem erstellt den Tagesabschluss und feuert einen Webhook. Dein Server empfängt die Daten, transformiert sie in das Format deiner Buchhaltungssoftware (z. B. lexoffice, sevDesk oder DATEV) und schickt sie per API dorthin. Das spart nicht nur die tägliche manuelle Arbeit, sondern eliminiert auch Übertragungsfehler. Bei einer Fehlbuchung von nur 10 Euro pro Woche summiert sich das auf über 500 Euro pro Jahr — Geld, das du nie zurückbekommst, wenn du den Fehler nicht entdeckst.

Multi-Standort-Dashboards

Wenn du mehrere Filialen betreibst, wird ein zentrales Dashboard zum unverzichtbaren Steuerungsinstrument. Per API aggregierst du die Umsätze aller Standorte in Echtzeit. So erkennst du sofort, wenn eine Filiale am Freitagmittag einbricht, während die anderen boomen — und kannst reagieren, statt erst beim Monatsabschluss die Überraschung zu erleben. Anbieter wie Vectron bieten hier bereits integrierte Multi-Standort-Funktionen, aber ein eigenes Dashboard gibt dir die volle Kontrolle über die Darstellung.

Inventar-Automatisierung

Ein weiterer praxisrelevanter Anwendungsfall ist die automatisierte Bestandsführung. Per API verknüpfst du dein Kassensystem mit deinem Lieferantenportal: Fällt der Bestand eines Artikels unter einen definierten Schwellenwert (z. B. 20 Stück), wird automatisch eine Nachbestellung ausgelöst. In einem Gastronomiebetrieb mit 200 Artikeln spart das pro Woche leicht 2-3 Stunden, die sonst für manuelle Bestandskontrollen draufgehen.

Sicherheitsaspekte

Sicherheit beachten API-Keys niemals im Frontend oder in Versionskontrolle speichern. HTTPS für alle API-Aufrufe verwenden. Rate-Limiting beachten und Fehlerbehandlung robust gestalten.

Authentifizierung

API-Keys

Einfach zu implementieren, aber bei Verlust problematisch. Regelmäßig rotieren!

OAuth 2.0

Sicherer, mit Token-Rotation und Scopes für granulare Berechtigungen.

IP-Whitelisting

Zusätzliche Absicherung: Nur definierte Server dürfen auf die API zugreifen.

Sicherheitskonzept in der Praxis

Ein durchdachtes Sicherheitskonzept umfasst mehrere Ebenen. Die erste Ebene ist die Authentifizierung selbst: API-Keys sind der einfachste Weg, aber du solltest sie mindestens alle 90 Tage rotieren. Besser ist OAuth 2.0, bei dem du kurzlebige Access-Tokens (Gültigkeit: 1 Stunde) mit langlebigen Refresh-Tokens kombinierst. So ist das Schadenspotenzial bei einem kompromittierten Token begrenzt.

Die zweite Ebene ist die Autorisierung. Nicht jede Integration braucht Vollzugriff. Ein Reporting-Script benötigt nur Leserechte, während ein Bestandsmanagement-Tool auch schreiben muss. Achte darauf, dass dein Anbieter granulare Scopes unterstützt — also die Möglichkeit, Berechtigungen pro Integration einzuschränken.

Die dritte Ebene betrifft die Netzwerkebene: IP-Whitelisting stellt sicher, dass nur deine bekannten Server auf die API zugreifen. In Kombination mit HTTPS (Pflicht!) und einer Web Application Firewall bist du gegen die meisten Angriffsvektoren abgesichert. Gerade im Kontext der KassenSichV und TSE-Anforderungen ist die lückenlose Absicherung der Datenkommunikation ein Muss.

Fehlerbehandlung und Monitoring

Jede API-Integration muss mit Fehlern rechnen. Netzwerk-Timeouts, Server-Ausfälle beim Anbieter, ungültige Daten — all das kann und wird passieren. Implementiere deshalb ein Retry-Pattern mit exponentiellem Backoff: Erster Versuch nach 1 Sekunde, zweiter nach 4 Sekunden, dritter nach 16 Sekunden. Wenn nach fünf Versuchen immer noch kein Erfolg eintritt, schicke dir eine Benachrichtigung per E-Mail oder Slack.

Mindestens ebenso wichtig ist Logging. Protokolliere jeden API-Call mit Zeitstempel, Endpunkt, HTTP-Statuscode und Antwortzeit. So erkennst du Performance-Probleme frühzeitig und hast bei Fehlern eine lückenlose Nachverfolgung. Professionelle Setups nutzen dafür Tools wie Grafana oder Datadog, aber auch ein einfaches Log-File auf dem Server ist besser als nichts.

Ein Praxistipp: Richte dir ein einfaches Health-Check-Script ein, das alle 5 Minuten einen harmlosen API-Call absetzt (z. B. einen Abruf der Artikelanzahl) und die Antwortzeit misst. Wenn die Antwortzeit plötzlich von 200 Millisekunden auf 2 Sekunden springt, weisst du sofort, dass etwas nicht stimmt — noch bevor dein Team im Laden die Auswirkungen spürt.

Anbieter-Checkliste API

KriteriumGutMangelhaft
DokumentationVollständig, mit BeispielenVeraltet oder lückenhaft
SandboxTestumgebung vorhandenNur Produktion
VersionierungKlare API-Versionen (v1, v2)Breaking Changes ohne Warnung
Rate LimitsTransparent kommuniziertNicht dokumentiert
SupportEntwickler-Support verfügbarNur allgemeiner Support
SDKsOffizielle Bibliotheken (Python, PHP, JS)Kein SDK vorhanden
WebhooksKonfigurierbar mit Retry-LogikKeine Webhooks oder unzuverlässig

Worauf du bei der Anbieter-Wahl achten solltest

Die API-Qualität unterscheidet sich zwischen den Anbietern erheblich. Bevor du dich für ein Kassensystem entscheidest, fordere Zugang zur API-Dokumentation an und prüfe folgende Punkte:

Dokumentation: Eine gute API-Doku enthält nicht nur die Endpunkte, sondern auch konkrete Code-Beispiele, Fehlercodes und Best Practices. Teste, ob die Beispiele tatsächlich funktionieren — veraltete Dokus sind ein rotes Warnsignal.

Sandbox-Umgebung: Ohne Testumgebung musst du deine Integration direkt im Produktivsystem entwickeln. Das ist riskant, weil du versehentlich echte Bestellungen auslösen oder Bestände verändern kannst. Eine gute Sandbox spiegelt die Produktivumgebung, enthält aber Testdaten.

Community und Ökosystem: Anbieter wie orderbird und Lightspeed haben aktive Entwickler-Communities. Wenn du bei einem Problem nicht weiterkommst, ist die Wahrscheinlichkeit hoch, dass jemand anderes das gleiche Problem bereits gelöst hat. Achte auch darauf, ob es fertige Plugins oder Integrationen gibt, die dir Entwicklungsarbeit ersparen.

Wenn du planst, dein System langfristig zu betreiben und kontinuierlich weiterzuentwickeln, wirf auch einen Blick auf unseren Langzeittest zu Kassensystemen — dort erfährst du, wie sich die API-Zuverlässigkeit über Monate hinweg entwickelt.

Fazit Eine gute API macht ein Kassensystem zum Baustein in deiner digitalen Infrastruktur. Wer individuelle Anforderungen hat, sollte den API-Zugang als Pflichtkriterium betrachten. In Zukunft wird die API-Fähigkeit auch für [KI-gestützte Kassensysteme](/wissen/ki-kassensysteme/) und die [Automatisierung des Kundenservice](/wissen/kundenservice-einzelhandel-automatisieren-ki/) immer wichtiger. Investiere die Zeit in eine saubere Integration -- der Return on Investment zeigt sich spätestens nach drei Monaten in Form von weniger manueller Arbeit, weniger Fehlerquellen und schnelleren Entscheidungen.