Brücke für externe Shop-Kassen
Falls Ihr Platz-Shop auf einer eigenen Kasse läuft — Lightspeed, Zettle, ein eigenes Python-Skript, oder etwas anderes — lässt diese Brücke die Kasse jede Transaktion an CampOne senden. So fliessen die Tagessummen (und damit die SAP-Sammelbuchung sowie die Auswertungen) über alle Erlöse zusammen, nicht nur über die Rezeption.
Anders als die übrigen Integrationen ist diese eingehend: Die externe Kasse ruft CampOne, nicht umgekehrt. Hier konfigurieren Sie also kein Anbieter-Konto — stattdessen erstellen Sie in CampOne einen API-Schlüssel mit den passenden Scopes und tragen ihn im externen System ein.
Was Sie damit erhalten
Abschnitt betitelt „Was Sie damit erhalten“- Eine öffentliche API unter
/api/v1/public/pos/transactions/, die externe Transaktionen entgegennimmt - Idempotent über
external_ref— ein Wiederversuch nach Netzwerk-Aussetzer erzeugt nie Duplikate - Standard-API-Schlüssel-Authentifizierung von CampOne mit zwei neuen Scopes:
pos:readundpos:write - Einen Lese-Endpoint für den Tagesabschluss-Abgleich
- Einen Produkt-Endpoint, damit die externe Kasse das Sortiment synchronisieren kann
- Aktivitätsprotokoll für eingehende Anfragen auf der Einstellungskarte
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“Auf der Anbieterseite keine — Sie brauchen weder einen Lightspeed-Vertrag noch ein Zettle-Konto, um die Integration zu aktivieren. Sie konfigurieren CampOne und richten dann das externe System darauf aus.
Was Sie schon brauchen:
- Eine externe Kasse, die HTTP-Anfragen mit Bearer-Token absetzen kann
- Wissen, wie Sie API-URL und Token in diesem System hinterlegen
Einrichtung
Abschnitt betitelt „Einrichtung“Einstellungen → Integrationen → API-Schlüssel (die bestehende API-Schlüssel-Oberfläche, neben dem Reiter Anbieter-Adapter):
- Klicken Sie auf Neuen Schlüssel erstellen.
- Vergeben Sie einen Namen (z. B.
Lightspeed Shop-Kasse). - Setzen Sie die Haken bei
pos:readundpos:write. - Klicken Sie auf Erzeugen. CampOne zeigt den Token nur einmal im Klartext — kopieren Sie ihn sofort und tragen Sie ihn im externen System ein.
- Der Token liegt nur als Hash gespeichert; falls Sie ihn verlieren, widerrufen Sie ihn und erzeugen einen neuen.
Konfigurieren Sie dann in Ihrer externen Kasse:
- API-URL:
https://ihr-mandant.campone.ch/api/v1/public/pos/transactions/ - Authentifizierung:
Authorization: Bearer <der-soeben-kopierte-Token>
Was die externe Kasse sendet
Abschnitt betitelt „Was die externe Kasse sendet“POST /api/v1/public/pos/transactions/Authorization: Bearer ck_…Content-Type: application/json
{ "external_ref": "lightspeed-2026-04-29-T-1234", "payment_method": "CASH", "total_amount": "12.50", "items": [ { "description": "Croissant", "quantity": 2, "unit_price": "3.50", "line_total": "7.00" }, { "description": "Coffee", "quantity": 1, "unit_price": "5.50", "line_total": "5.50" } ], "occurred_at": "2026-04-29T08:14:32Z"}Der external_ref ist Ihr Idempotenzschlüssel — er muss in Ihrem System pro Transaktion eindeutig sein. CampOne erzwingt die Eindeutigkeit pro Mandant; ein Wiederversuch derselben Transaktion liefert deshalb 200 mit dem bestehenden Datensatz statt 409 oder einer Dublette.
Tagesabschluss-Abgleich
Abschnitt betitelt „Tagesabschluss-Abgleich“Am Tagesende kann das externe System mit GET /api/v1/public/pos/transactions/<external_ref>/ prüfen, ob CampOne die Transaktion hat. Mit GET /api/v1/public/pos/products/ aktualisiert es das Sortiment.
Innerhalb von CampOne erscheinen Transaktionen aus externen Quellen unter /kasse/transaktionen wie jede andere Kassentransaktion, mit Quelle: Externe Kasse als Filter.
Sicherheit
Abschnitt betitelt „Sicherheit“- API-Schlüssel werden mit dem Passwort-Hasher von Django (Argon2 / bcrypt) gespeichert.
- Jeder API-Aufruf wird protokolliert: Methode, Pfad, Statuscode, Antwortzeit, Schlüssel-Präfix.
- Schlüssel lassen sich sofort widerrufen. Widerrufene Schlüssel liefern ab dem nächsten Aufruf 401.
- Scopes werden pro Endpoint geprüft — ein Schlüssel mit nur
pos:readkann keine Transaktionen senden, auch wenn man es versucht.
Einschränkungen
Abschnitt betitelt „Einschränkungen“- Live-Anbindungen an konkrete externe Kassen (Lightspeed, Zettle, Sumup) sind noch nicht zertifiziert — der oben beschriebene Standard-HTTP-Vertrag ist das, woran sich diese Systeme halten müssen. Auf der Roadmap: getestete Adapter pro Anbieter.
- Rückerstattungen aus der externen Kasse erscheinen in CampOne als eigenständige Transaktionen; CampOne verknüpft eine Rückerstattung systemübergreifend nicht automatisch mit dem ursprünglichen Verkauf.