Zum Inhalt springen

Authentifizierung

Alle fiskaly-APIs verwenden JWT-basierte Authentifizierung. Dieser Guide behandelt die verschiedenen Authentifizierungsmuster über alle Produkte hinweg.

API Key + Secret → POST /auth (or /tokens) → access_token + refresh_token
├─ Im Authorization-Header verwenden
└─ Bei 401 → erneuern oder erneut authentifizieren

Diese Produkte verwenden einen unkomplizierten Auth-Endpunkt:

curl -X POST https://kassensichv-middleware.fiskaly.com/api/v2/auth \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET"
  }'
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"access_token_expires_in": 86400,
"refresh_token": "eyJhbGciOiJSUzI1NiIs...",
"refresh_token_expires_in": 172800
}
FeldBeschreibung
access_tokenJWT-Token gültig für 24 Stunden — als Authorization: Bearer <token> einfügen
refresh_tokenToken gültig für 48 Stunden — zum Abrufen eines neuen Access-Tokens verwenden

SIGN ES umhüllt die Auth-Anfrage in einen content-Envelope:

curl -X POST https://test.es.sign.fiskaly.com/api/v1/auth \
  -H "Content-Type: application/json" \
  -d '{
    "content": {
      "api_key": "YOUR_API_KEY",
      "api_secret": "YOUR_API_SECRET"
    }
  }'

Diese neueren APIs verwenden /tokens mit dem content.type-Diskriminator und erfordern zusätzliche Header:

curl -X POST https://test.api.fiskaly.com/tokens \
  -H "Content-Type: application/json" \
  -H "X-Api-Version: 2026-02-03" \
  -d '{
    "content": {
      "type": "API_KEY",
      "key": "YOUR_API_KEY",
      "secret": "YOUR_API_SECRET"
    }
  }'

Um Anfragen auf eine bestimmte Organisation UNIT zu beschränken, fügen Sie den X-Scope-Identifier-Header ein:

Authorization: Bearer <access_token>
X-Api-Version: 2026-02-03
X-Scope-Identifier: <organization_unit_id>

Wenn der Access-Token abläuft, verwenden Sie den Refresh-Token anstatt sich erneut mit Zugangsdaten zu authentifizieren:

curl -X POST https://kassensichv-middleware.fiskaly.com/api/v2/auth \
  -H "Content-Type: application/json" \
  -d '{"refresh_token": "YOUR_REFRESH_TOKEN"}'
  1. Einmalig beim Start der Anwendung authentifizieren
  2. access_token und refresh_token im Speicher ablegen
  3. Bei 401-Antwort versuchen, mit dem refresh_token zu erneuern
  4. Wenn Erneuerung fehlschlägt (Token abgelaufen), mit API Key + Secret erneut authentifizieren
  5. Wenn erneute Authentifizierung fehlschlägt, den Fehler dem Betreiber anzeigen

Was this page helpful?