Aller au contenu

Démarrage rapide

fiskaly fournit des API de conformité fiscale dans toute l’Europe. Choisissez votre pays ci-dessous pour accéder directement au guide d’intégration, ou faites défiler vers le bas pour une procédure pratique SIGN DE.


La procédure ci-dessous utilise l’Allemagne (SIGN DE) comme exemple concret. Le flux est : s’authentifier → créer un TSS → signer une transaction.

Temps de réalisation : ~5 minutes avec cURL, ~15 minutes si vous l’intégrez dans le code de l’application.

Vous avez besoin de trois choses avant de commencer :

  1. Un compte fiskaly — inscrivez-vous gratuitement sur hub.fiskaly.com
  2. Des identifiants API — générez une clé et un secret API dans le HUB au sein de votre organisation
  3. Un client HTTP — cURL, Postman ou la bibliothèque HTTP de votre langage

Ce guide utilise l’environnement sandbox (TEST). Toutes les nouvelles organisations démarrent ici. Aucune donnée fiscale réelle n’est créée et vous ne serez pas facturé.

Sandbox (TEST)Production (LIVE)
URL de basehttps://kassensichv-middleware.fiskaly.com/api/v2https://kassensichv.fiskaly.com/api/v2
DonnéesÉphémères — sûres pour expérimenterPermanentes — pertinentes pour l’audit
FacturationGratuiteSelon contrat
BasculementPar défaut pour les nouvelles orgsActiver via HUB

Échangez votre clé et votre secret API contre un token Bearer.

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

Réponse attendue (200 OK) :

{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"access_token_expires_in": 86400,
"refresh_token": "eyJhbGciOiJSUzI1NiIs...",
"refresh_token_expires_in": 172800
}

L’access_token est valable 24 heures. Le refresh_token est valable 48 heures. Incluez le token d’accès comme Authorization: Bearer <token> dans toutes les requêtes suivantes.

Un TSS (Technical Security System) est la ressource de signature certifiée. Vous en avez besoin d’un par emplacement physique. La création d’un TSS comporte trois sous-étapes : créer, définir le PIN Admin et initialiser.

a) Créer le 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": "Mon premier TSS"
  }'

Réponse attendue (200 OK) — notez le champ admin_puk :

{
"_id": "a1b2c3d4-...",
"description": "Mon premier TSS",
"state": "UNINITIALIZED",
"admin_puk": "123456"
}

b) Définir le PIN Admin (en utilisant l’admin_puk de la réponse ci-dessus) :

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": "123456",
    "new_admin_pin": "your-secure-admin-pin"
  }'

c) S’authentifier en tant qu’Admin et initialiser :

# S'authentifier en tant qu'admin
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": "your-secure-admin-pin" }'

# Initialiser le 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" }'

Après l’initialisation, le state du TSS passe à INITIALIZED. Vous êtes prêt à créer des clients et à signer des transactions.

Un client représente un seul terminal POS ou une instance d’application connectée au TSS.

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

Les transactions ont un cycle de vie : démarrage (état ACTIVE) puis finalisation (état FINISHED). La réponse de finalisation contient la signature cryptographique.

a) Démarrer la transaction :

TX_ID=$(uuidgen)

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

b) Finaliser la transaction (c’est là que la signature est générée) :

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": "YOUR_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" }
          ]
        }
      }
    }
  }'

Réponse attendue (200 OK) — les champs clés sont signature et qr_code_data :

{
"_id": "tx-uuid-...",
"state": "FINISHED",
"number": 1,
"time_start": 1700000000,
"time_end": 1700000001,
"signature": {
"value": "dGVzdC1zaWduYXR1cmU=",
"algorithm": "ecdsa-plain-SHA384",
"counter": 1,
"public_key": "BHHz..."
},
"qr_code_data": "V0;TSS-ID;TX-NUMBER;..."
}

La chaîne qr_code_data est celle que vous encodez dans le QR code imprimé sur le reçu.

Une fois la configuration terminée, déconnectez l’admin du TSS :

Fenêtre de terminal
curl -X POST "https://kassensichv-middleware.fiskaly.com/api/v2/tss/${TSS_ID}/admin/logout" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"

Erreurs courantes lors de la première utilisation

Section intitulée « Erreurs courantes lors de la première utilisation »
ErreurCauseSolution
401 UnauthorizedToken expiré ou incorrectRé-authentifiez-vous avec /auth. Vérifiez que vous utilisez la bonne clé API pour cet environnement.
400 E_TSS_NOT_INITIALIZEDTentative de créer un client ou une transaction sur un TSS non initialiséSuivez les trois étapes de configuration du TSS : créer, définir le PIN Admin, initialiser.
400 avec erreur “admin_puk”PUK incorrect lors de la définition du PIN AdminUtilisez la valeur admin_puk de la réponse de création du TSS, pas une valeur que vous avez choisie.
409 ConflictUUID réutilisé qui existe déjàGénérez un nouveau UUID pour chaque ressource (TSS, client, transaction).
422 E_TX_INVALID_STATETentative de finaliser une transaction qui n’est pas ACTIVEDémarrez d’abord la transaction (révision 1 avec state: ACTIVE), puis finalisez (révision 2).

Pour la référence complète des erreurs, consultez Codes d’erreur.

Si vous préférez un workflow basé sur une interface graphique, téléchargez la collection Postman préconfigurée :

  1. Télécharger

    Obtenez les fichiers Postman Collection et Environment.

  2. Importer

    Importez les deux fichiers dans Postman.
  3. Configurer

    Définissez api_key et api_secret dans les variables d’environnement.

  4. Exécuter

    Exécutez les requêtes dans l’ordre — la collection utilise des variables pour enchaîner automatiquement les réponses.

Consultez le Tutoriel Postman pour une procédure détaillée.

Was this page helpful?