Salta ai contenuti

Avvio rapido Germania

Questa guida rapida ti accompagna nell’autenticazione con l’API SIGN DE, nella creazione di una TSS (Technische Sicherheitseinrichtung) e nella firma della tua prima transazione. Al termine avrai un flusso di firma fiscale funzionante.

  • Un account fiskaly con un’organizzazione tedesca (registrati su hub.fiskaly.com)
  • Una chiave API e un segreto generati nell’ambiente di TEST
  • Uno strumento per effettuare richieste HTTP (cURL, Postman o il codice della tua applicazione)
  1. Autenticarsi

    Usa la tua chiave API e il segreto per ottenere un token di accesso:

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

    La risposta contiene un access_token (valido 24h) e un refresh_token (valido 48h).

  2. Creare e inizializzare una TSS

    Crea una TSS, imposta il PIN amministratore, autenticati come amministratore e inizializza:

    # Creare TSS
    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"}'
    
    # Cambiare PIN amministratore
    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"}'
    
    # Autenticarsi come amministratore
    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"}'
    
    # Inizializzare TSS
    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. Creare un Client

    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. Firmare la prima transazione

    Avvia una transazione, poi completala con i dati della ricevuta:

    TX_ID=$(uuidgen)
    
    # Avviare la transazione
    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}'"}'
    
    # Completare la transazione con ricevuta
    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"}]
            }
          }
        }
      }'

    La risposta include una signature crittografica della TSS, il signature_counter e tutti i dati necessari per una ricevuta conforme a KassenSichV.

Was this page helpful?