Zum Inhalt springen

Deutschland Schnellstart

Dieser Schnellstart führt Sie durch die Authentifizierung mit der SIGN-DE-API, das Erstellen einer TSS (Technische Sicherheitseinrichtung) und das Signieren Ihrer ersten Transaktion. Am Ende verfügen Sie über einen funktionierenden Fiskalsignierungsablauf.

  • Ein fiskaly-Konto mit einer deutschen Organisation (Registrierung unter hub.fiskaly.com)
  • Ein API-Schlüssel und -Secret, erstellt in der TEST-Umgebung
  • Ein Tool für HTTP-Anfragen (cURL, Postman oder Ihr Anwendungscode)
  1. Authentifizieren

    Verwenden Sie Ihren API-Schlüssel und Ihr Secret, um ein Zugriffstoken zu erhalten:

    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"
      }'

    Die Antwort enthält ein access_token (gültig 24h) und ein refresh_token (gültig 48h).

  2. TSS erstellen und initialisieren

    TSS erstellen, Admin-PIN setzen, als Admin authentifizieren und initialisieren:

    # TSS erstellen
    TSS_ID=$(uuidgen)
    curl -X PUT "https://kassensichv-middleware.fiskaly.com/api/v2/tss/${TSS_ID}" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"description": "Quickstart TSS"}'
    
    # Admin-PIN ändern
    curl -X PATCH "https://kassensichv-middleware.fiskaly.com/api/v2/tss/${TSS_ID}/admin" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"admin_puk": "ADMIN_PUK_FROM_RESPONSE", "new_admin_pin": "my-secure-pin"}'
    
    # Als Admin authentifizieren
    curl -X POST "https://kassensichv-middleware.fiskaly.com/api/v2/tss/${TSS_ID}/admin/auth" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"admin_pin": "my-secure-pin"}'
    
    # TSS initialisieren
    curl -X PATCH "https://kassensichv-middleware.fiskaly.com/api/v2/tss/${TSS_ID}" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"state": "INITIALIZED"}'
  3. Client erstellen

    CLIENT_ID=$(uuidgen)
    curl -X PUT "https://kassensichv-middleware.fiskaly.com/api/v2/tss/${TSS_ID}/client/${CLIENT_ID}" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"serial_number": "POS-001"}'
  4. Erste Transaktion signieren

    Transaktion starten, dann mit Bondaten abschließen:

    TX_ID=$(uuidgen)
    
    # Transaktion starten
    curl -X PUT "https://kassensichv-middleware.fiskaly.com/api/v2/tss/${TSS_ID}/tx/${TX_ID}?tx_revision=1" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"state": "ACTIVE", "client_id": "'${CLIENT_ID}'"}'
    
    # Transaktion mit Bon abschließen
    curl -X PUT "https://kassensichv-middleware.fiskaly.com/api/v2/tss/${TSS_ID}/tx/${TX_ID}?tx_revision=2" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{
        "state": "FINISHED",
        "client_id": "'${CLIENT_ID}'",
        "schema": {
          "standard_v1": {
            "receipt": {
              "receipt_type": "RECEIPT",
              "amounts_per_vat_rate": [{"vat_rate": "NORMAL", "amount": "10.00"}],
              "amounts_per_payment_type": [{"payment_type": "CASH", "amount": "10.00"}]
            }
          }
        }
      }'

    Die Antwort enthält eine kryptografische signature der TSS, den signature_counter und alle für einen KassenSichV-konformen Beleg benötigten Daten.

Was this page helpful?