Aller au contenu

Guide pour les nouveaux clients

Ce guide vous accompagne tout au long du processus complet de configuration de votre système avec fiskaly SIGN DE, en utilisant une combinaison du fiskaly HUB et des requêtes API. À la fin, vous disposerez d’un TSS entièrement fonctionnel avec un client prêt à signer des transactions.

Avant de plonger dans la configuration, voici ce que vous allez configurer :

🏢

Organisation

Votre entité de niveau supérieur dans fiskaly. Les organisations gérées représentent des emplacements physiques individuels.

🔑

Clé API et secret

Identifiants générés dans le HUB, utilisés pour authentifier toutes les requêtes API suivantes.

🔐

Authentification

Utilisez votre clé API et votre secret pour générer un jeton d'accès utilisé dans tous les appels API ultérieurs.

🛡️

TSS (Système de sécurité technique)

Le composant de signature principal. Doit être créé, configuré avec un code PIN administrateur et initialisé.

💻

Client

Représente un terminal de point de vente ou une application qui crée des transactions contre un TSS.

🧾

Transaction

Un enregistrement fiscal signé. Une fois votre TSS et votre Client prêts, vous pouvez créer et signer des transactions.

Regardez notre tutoriel vidéo pour une explication visuelle du processus de configuration.

Vous aurez également besoin d’un outil pour effectuer des requêtes HTTP — par exemple cURL (ligne de commande), Postman ou votre propre code d’application.

  1. Créer une organisation

    Lorsque vous vous connectez au HUB pour la première fois, vous êtes invité à créer une organisation. Il s’agit de votre organisation principale, et toutes les organisations gérées sont créées en dessous.

    En général, chaque organisation gérée correspond à un emplacement physique (p. ex. un magasin ou un restaurant).

    Création d'organisation HUB

    Après avoir créé votre organisation, le HUB affichera votre configuration actuelle — initialement avec 0 TSS et 0 client.

    Vue d'ensemble HUB
  2. Générer une clé API et un secret

    Accédez à la section Clés API dans le fiskaly HUB et créez une nouvelle clé API.

    Génération de clé API

    Vous recevrez une Clé API et un Secret API. Conservez-les en lieu sûr — vous en aurez besoin pour toutes les requêtes API suivantes.

    Notre tutoriel vidéo montre le processus de génération d’une clé et d’un secret API.

  3. S'authentifier avec l'API

    Utilisez votre clé et votre secret API pour obtenir un jeton d’accès. Ce jeton est requis pour toutes les requêtes suivantes.

    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"
      }'
    Exemple de réponse (200 OK)
    {
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
    "access_token_claims": {
    "env": "TESTING",
    "organization_id": "your-org-id"
    },
    "access_token_expires_in": 86400,
    "access_token_expires_at": "2026-03-02T12:00:00Z",
    "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
    "refresh_token_expires_in": 172800,
    "refresh_token_expires_at": "2026-03-03T12:00:00Z"
    }

    La réponse contient un access_token que vous devez inclure en tant que jeton Bearer dans l’en-tête Authorization de toutes les requêtes suivantes.

  4. Créer un TSS

    Créez un nouveau Système de Sécurité Technique (TSS) en envoyant une requête PUT avec un identifiant TSS unique (UUID).

    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": "My first TSS"
      }'
    Exemple de réponse (200 OK)
    {
    "_id": "your-tss-id",
    "_type": "TSS",
    "_env": "TESTING",
    "_version": 1,
    "admin_puk": "initial-puk-from-creation",
    "state": "CREATED",
    "certificate": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
    "serial_number": "a1b2c3d4e5f6...",
    "public_key": "BHxw...",
    "signature_algorithm": "ECDSA",
    "signature_timestamp_format": "ISO8601",
    "transaction_data_encoding": "UTF-8",
    "max_number_registered_clients": 100,
    "max_number_active_transactions": 1000,
    "time_creation": "2026-03-01T10:00:00Z",
    "metadata": {}
    }

    Après la création, vous devez initialiser le TSS. Cela implique trois sous-étapes :

    a) Modifier le code PIN administrateur

    Le TSS est créé dans un état UNINITIALIZED. Vous devez définir un nouveau code PIN administrateur avant l’initialisation.

    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": "initial-puk-from-creation",
        "new_admin_pin": "your-secure-admin-pin"
      }'

    b) S’authentifier en tant qu’administrateur

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

    c) Initialiser le TSS

    Mettez à jour l’état du TSS à INITIALIZED :

    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"
      }'
    Exemple de réponse (200 OK)
    {
    "_id": "your-tss-id",
    "_type": "TSS",
    "_env": "TESTING",
    "_version": 2,
    "state": "INITIALIZED",
    "certificate": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
    "serial_number": "a1b2c3d4e5f6...",
    "public_key": "BHxw...",
    "signature_algorithm": "ECDSA",
    "signature_timestamp_format": "ISO8601",
    "transaction_data_encoding": "UTF-8",
    "max_number_registered_clients": 100,
    "max_number_active_transactions": 1000,
    "time_creation": "2026-03-01T10:00:00Z",
    "metadata": {}
    }
  5. Créer un client

    Une fois le TSS initialisé, créez un client représentant votre terminal de point de vente ou votre application.

    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"
      }'
    Exemple de réponse (200 OK)
    {
    "_id": "your-client-id",
    "_type": "CLIENT",
    "_env": "TESTING",
    "_version": 1,
    "serial_number": "POS-001",
    "state": "REGISTERED",
    "tss_id": "your-tss-id",
    "time_creation": "2026-03-01T10:00:00Z",
    "metadata": {}
    }
  6. Créer une transaction

    Vous pouvez maintenant créer votre première transaction signée. Les transactions suivent un cycle de vie : démarrer la transaction, puis la terminer.

    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"
      }'
    Exemple de réponse (200 OK)
    {
    "_id": "your-tx-id",
    "_type": "TRANSACTION",
    "_env": "TESTING",
    "_version": 1,
    "number": 1,
    "state": "ACTIVE",
    "client_id": "your-client-id",
    "client_serial_number": "POS-001",
    "tss_id": "your-tss-id",
    "tss_serial_number": "a1b2c3d4e5f6...",
    "time_start": "2026-03-01T10:00:00Z",
    "revision": 1,
    "latest_revision": 1,
    "log": {
    "operation": "START",
    "timestamp": "2026-03-01T10:00:00Z",
    "timestamp_format": "ISO8601"
    },
    "signature": {
    "value": "MEUCIQDx...",
    "timestamp": "2026-03-01T10:00:00Z",
    "timestamp_format": "ISO8601",
    "serial_number": "a1b2c3d4e5f6..."
    },
    "metadata": {}
    }

    b) Terminer la transaction

    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"
                }
              ]
            }
          }
        }
      }'
    Exemple de réponse (200 OK)
    {
    "_id": "your-tx-id",
    "_type": "TRANSACTION",
    "_env": "TESTING",
    "_version": 2,
    "number": 1,
    "state": "FINISHED",
    "client_id": "your-client-id",
    "client_serial_number": "POS-001",
    "tss_id": "your-tss-id",
    "tss_serial_number": "a1b2c3d4e5f6...",
    "time_start": "2026-03-01T10:00:00Z",
    "time_end": "2026-03-01T10:05:00Z",
    "revision": 2,
    "latest_revision": 2,
    "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" }
    ]
    }
    }
    },
    "qr_code_data": "V0;955002-00;Kassenbeleg-V1;...",
    "log": {
    "operation": "FINISH",
    "timestamp": "2026-03-01T10:05:00Z",
    "timestamp_format": "ISO8601"
    },
    "signature": {
    "value": "MEUCIQDx...",
    "timestamp": "2026-03-01T10:05:00Z",
    "timestamp_format": "ISO8601",
    "serial_number": "a1b2c3d4e5f6..."
    },
    "metadata": {}
    }

    La réponse inclut les données de transaction signées avec une signature cryptographique du TSS.

  7. Déconnecter l'administrateur

    Après avoir terminé la configuration, déconnectez l’utilisateur administrateur du TSS.

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

Vous pouvez également exécuter ces requêtes avec Postman. Téléchargez les fichiers de collection et d’environnement pour démarrer rapidement :

Télécharger la collection Postman

 

Télécharger l’environnement Postman

Consultez le tutoriel Postman pour des instructions détaillées.

Was this page helpful?