Skip to content
v26.3

API-Zugänge und Rechte: Was brauche ich wofür?

DiKAS kennt mehrere Arten, sich an einer Schnittstelle anzumelden. Jede hat eigene Rechte und einen eigenen Zweck. Diese Seite hilft bei der Frage „Welchen Zugang brauche ich für meine Aufgabe?" – und beantwortet für Ketten-Gutscheine, welches Recht zu welchem Aufruf gehört.

Die Zugangsarten im Überblick

Zugang Wer legt ihn an Anmeldung Rechte bestimmen Typischer Einsatz
Benutzer-Anmeldung (REST API Version 1) Administrator der Instanz (Benutzer) POST /api/v1/auth/login → Bearer-Token Die Rechte des angemeldeten Benutzers Eigene Auswertungen, Artikel- und Kundenpflege, lokale Gutscheinabfrage
API-Key (Legacy-Schnittstelle /rest/…) Administrator unter Admin → Einstellungen → API-Keys Header X-Api-Key (Pfadsegment {key} dann -) Der Zugriffstyp des Schlüssels Online-Shop, Kunden-/Gutschein-Anbindung bestehender Software, Zahlautomaten, Drehkreuz
Integrationszugang einer Kette Ketten-Eigentümer über das Kundenportal Header Authorization: Bearer <schlüssel> oder X-Api-Key Rechte (voucher:…) und Filialen des Zugangs Fremdkassen, die Kettengutscheine prüfen, einlösen, erstatten, ausgeben
Portal-Anmeldung Kunde mit seinem Kundenkonto (konto.dikas.de) Portal-Login Rolle in der Kette: Eigentümer oder Filiale Kette verwalten, Integrationszugänge anlegen, Verrechnung, Berichte

Faustregel: Ein Zugang, der Geld bewegt, bekommt nur die Rechte, die seine Aufgabe braucht, und nur die Filialen, in denen er arbeitet. Vergeben Sie lieber einen eigenen Zugang je Kasse oder Dienstleister – so lässt sich ein einzelner sperren, ohne die anderen zu stören.

„Ich will …" – welcher Zugang?

Aufgabe Zugang Recht / Typ
Einen lokalen Gutschein abfragen Benutzer-Anmeldung (GET /api/v1/vouchers/…) oder API-Key Benutzerrechte bzw. Zugriffstyp Voucher
Einen lokalen Gutschein aus einer bestehenden Anwendung anlegen oder belasten API-Key (/rest/extern/voucher/-/…) Zugriffstyp Voucher
Einen Kettengutschein prüfen Integrationszugang voucher:lookup
Kettengutschein einlösen (reservieren, ankündigen, bestätigen, freigeben) Integrationszugang voucher:redeem
Kettengutschein erstatten Integrationszugang voucher:refund
Kettengutscheine ausgeben oder Karten aktivieren (samt Abschluss und Abbruch) Integrationszugang voucher:issue
Änderungen an Kettengutscheinen abholen Integrationszugang voucher:export
Einen Vorgang abfragen (operations/…) oder das Programm (programs) lesen Integrationszugang irgendein Recht
Einen Integrationszugang anlegen, erneuern oder sperren Portal-Anmeldung Ketten-Eigentümer
Bestellungen aus einem eigenen Online-Shop annehmen API-Key Zugriffstyp OnlineOrder
Einen Zahlautomaten (Disco) anbinden API-Key Zugriffstyp Disco
Kunden, Artikel, Buchungen oder Druckaufträge per Legacy-Schnittstelle bearbeiten API-Key passender Zugriffstyp (siehe unten)
Verrechnung, Abrechnung, DATEV-Konfiguration, Kartenbögen der Kette sehen Portal-Anmeldung Ketten-Eigentümer

API-Keys: Zugriffstypen

Beim Anlegen eines Schlüssels unter Admin → Einstellungen → API-Keys wählen Sie den Zugriffstyp. Er legt fest, was der Schlüssel darf. Technisch gibt es folgende Typen: OnlineOrder (Online-Bestellungen), LagerOrder, Datev, Bookings, Customer, Article, Print, CustomerBookings, Voucher, Disco und CustomerContacts.

  • Ein Schlüssel hat genau einen Zugriffstyp. Brauchen Sie zwei Aufgaben, legen Sie zwei Schlüssel an.
  • Bei Zahlautomaten bestimmt der Schlüssel zusätzlich den Arbeitsplatz (siehe REST API).
  • Vertrauliche Schlüssel gehören nicht in URLs. Neue Clients senden sie im Header X-Api-Key und lassen im Pfad - stehen.
  • Ein Schlüssel kann jederzeit gelöscht und ersetzt werden; die Anbindung muss dann umgestellt werden.

Integrationszugang: Welches Recht für welchen Aufruf?

Alle Aufrufe liegen unter /api/v1/integrations/vouchers. Ein Aufruf ohne das nötige Recht endet mit 403 INSUFFICIENT_SCOPE, bevor etwas gebucht wird.

Aufruf Benötigtes Recht
GET /programs irgendein Recht
POST /lookup voucher:lookup
POST /reservations voucher:redeem
POST /reservations/{id}/prepare voucher:redeem
POST /reservations/{id}/commit voucher:redeem
POST /reservations/{id}/release voucher:redeem
POST /refunds voucher:refund
POST /issues voucher:issue
POST /activations voucher:issue
POST /operations/{id}/complete voucher:issue
POST /operations/{id}/cancel voucher:issue
GET /changes, GET /transactions voucher:export
GET /operations/{id}, GET /operations/by-reference/{referenz} irgendein Recht

Typische Rechte-Pakete

Einsatz Rechte
Fremdkasse, die nur einlöst voucher:lookup, voucher:redeem
Fremdkasse mit Storno/Retoure zusätzlich voucher:refund
Kasse, die auch Gutscheine verkauft zusätzlich voucher:issue
Buchhaltung oder BI-Werkzeug, das nur mitliest voucher:export

Ein Zugang, der nur mitliest, braucht weder redeem noch refund noch issue. Umgekehrt braucht eine Kasse, die einlöst, kein export, solange sie keinen Feed abholt.

Filialen

Zusätzlich zu den Rechten bekommt jeder Integrationszugang eine Liste von Filialen. Er sieht und bucht nur dort:

  • Eine Filiale außerhalb der Liste antwortet wie „unbekannt" (BRANCH_UNKNOWN, 404) – nicht „verboten". Das verrät nicht, welche Filialen es gibt.
  • Erstattet wird nur in der Filiale, die eingelöst hat.
  • Tritt eine Filiale aus der Kette aus, wirkt das bei der nächsten Anfrage.

Zugang verwalten

Nur der Ketten-Eigentümer darf Zugänge anlegen, erneuern und sperren (mit Portal-Anmeldung, siehe Externe Gutscheinsysteme anbinden). Eine Filiale der Kette kann das nicht, auch nicht mit Teilnahme „Voll".

Aktion Folge
Anlegen Schlüssel wird einmal angezeigt; DiKAS speichert nur einen Hash
Schlüssel erneuern Der alte Schlüssel gilt sofort nicht mehr
Sperren Aufrufe antworten mit CLIENT_BLOCKED
Rechte oder Filialen ändern Wirkt ab der nächsten Anfrage

Rollen in der Kette (Portal)

Im Kundenportal unterscheidet DiKAS drei Sichten. Was sie sehen, steht ausführlich in Filialen & Ketten – Wer sieht was?:

Rolle Kann
Ketten-Eigentümer Alles der Kette: Mitglieder, Einstellungen, Artikelstamm, Verrechnung, Abrechnung, DATEV-Konfiguration, Kartenbögen, Integrationszugänge; sieht Gutscheine und Kunden vollständig
Filiale mit Teilnahme „Voll" Gutscheine und Kunden der eigenen Filiale sehen (Nummern maskiert), eigene Einlösungen und Erstattungen durchführen; keine Verwaltung der Kette
Filiale mit „Nur Reporting" Berichte und Kennzahlen; kein Zugriff auf Kundenverlauf

Die Teilnahme „Voll" ist Voraussetzung dafür, dass eine Filiale überhaupt Gutscheine einlöst oder ausgibt. Eine Filiale mit „Nur Reporting" löst nicht ein – auch nicht über einen Integrationszugang.

Fehlerbilder: Wo liegt es am Recht?

Meldung Wahrscheinliche Ursache Was tun
401 / INVALID_CREDENTIALS Schlüssel falsch, abgelaufen oder erneuert Aktuellen Schlüssel prüfen; beim Eigentümer neu erzeugen lassen
403 INSUFFICIENT_SCOPE Dem Zugang fehlt das Recht für diesen Aufruf Tabelle oben; Recht beim Eigentümer ergänzen lassen
404 BRANCH_UNKNOWN Filiale nicht für den Zugang freigegeben, oder ausgetreten Filialenliste des Zugangs prüfen
CLIENT_BLOCKED Zugang gesperrt Beim Eigentümer klären
429 RATE_LIMITED Mehr als 600 Aufrufe pro Minute Retry-After abwarten, mit demselben Key wiederholen
Legacy: Antwort ohne Daten trotz 200 Falscher Zugriffstyp des API-Keys IsOk und ErrorId prüfen; Typ des Schlüssels kontrollieren

Prinzip der geringsten Rechte

Beginnen Sie mit voucher:lookup und fügen Sie Rechte erst hinzu, wenn die Anbindung sie braucht. Ein Fehler in einer Anbindung kann dann höchstens das auslösen, wofür sein Zugang gedacht war.