Aller au contenu

Intégration étape par étape

Ce guide vous accompagne tout au long du processus complet d’intégration de l’API fiskaly SIGN IT pour la conformité fiscale italienne, en utilisant une combinaison du fiskaly HUB et des requêtes API. À la fin, vous aurez un Système entièrement fonctionnel avec des Records transmis à l’Agenzia delle Entrate (AdE).

Le diagramme ci-dessous illustre le flux de travail et met en évidence les étapes essentielles nécessaires pour compléter avec succès votre intégration. Chaque vignette pointe directement vers l’étape de configuration correspondante ci-dessous.

SIGN IT integration workflowEleven-step SIGN IT integration workflow with tiles linking to the matching setup steps below.Register on HUBHUBCreate Account &Organization GROUPHUBCreate API KeyHUBCreate TokenSIGN IT APICreate OrganizationUNITSIGN IT APICreate SubjectAPI_KEYSIGN IT APICreate TokenSIGN IT APICreate TaxpayerCOMPANY orINDIVIDUALSIGN IT APICreate LocationBRANCHSIGN IT APICreate SystemFISCAL_DEVICESIGN IT APICreate RecordSIGN IT API
  1. S'inscrire sur HUB

    Commencez par vous inscrire sur le fiskaly HUB.
    Pour plus de conseils sur la prise en main, rendez-vous dans notre section HUB - Premiers pas.

    S'inscrire sur HUB
  2. Créer un Account et une Organization GROUP

    La création d’un Account fiskaly est la première étape, après quoi vous pouvez procéder à la mise en place de la première structure organisationnelle pour votre entreprise et générer votre API Key.

    L’Account représente le fournisseur PoS ou un détaillant qui gère son propre système PoS. C’est l’organisation de niveau supérieur dans la structure.

    Après avoir créé votre Account fiskaly, vous serez dirigé vers le Sélecteur d’Organisation où vous pouvez créer votre Group. Un Group est un niveau intermédiaire au sein d’un Account qui vous aide à organiser plusieurs Units en clusters logiques.

  3. Créer une API Key

    L’étape suivante consiste à générer une API Key pour votre Organisation via HUB au sein de votre Group.

    Vous recevrez une API Key et un secret API. Sauvegardez-les en toute sécurité — vous en aurez besoin pour vous authentifier dans l’API SIGN IT et créer vos Organisation(s) de type UNIT (étape 5). Le secret API n’est affiché qu’une seule fois. Assurez-vous de le sauvegarder en toute sécurité avant de fermer la boîte de dialogue.

  1. Créer un Token

    À partir de cette étape, vous utiliserez l’API SIGN IT.

    Appelez l’endpoint createToken avec la API Key et le secret de l’étape 3 pour obtenir un token bearer. Incluez ce token dans l’en-tête Authorization des étapes 5 et 6.

    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"
        }
      }'
    Exemple de réponse (200 OK)
    {
    "content": {
    "id": "6f1c5c9e-3d9c-4f8c-9f20-7de8f3a91b11",
    "authentication": {
    "type": "JWT",
    "bearer": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expires_at": "2026-03-02T12:00:00Z"
    },
    "organization": {
    "id": "b7b6f971-5a3c-4e1e-9f58-2f2a8457bb2d"
    },
    "subject": {
    "id": "2d4a0c2a-c2c9-4e3b-a0e8-b8f7e70d6f33"
    }
    }
    }
  2. Créer une Organization UNIT

    Créez une Organisation de type UNIT via l’endpoint createOrganization. Une UNIT représente une seule entité juridique (commerçant). Vous devrez créer une Organisation UNIT pour chaque représentation de contribuable que vous gérez.

    L’utilisation du token bearer généré à l’étape 4 avec la API Key et le secret créés pour votre Group garantit que la UNIT est correctement imbriquée sous ce Group dans la hiérarchie.

    curl -X POST https://test.api.fiskaly.com/organizations \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -d '{
        "content": {
          "type": "UNIT",
          "name": "My Retail Store"
        }
      }'
    Exemple de réponse (201 Created)
    {
    "content": {
    "id": "9a746f13-0ef7-4a0f-a7df-8e52089c5f3a",
    "state": "ENABLED",
    "type": "UNIT",
    "name": "My Retail Store",
    "organization": {
    "id": "d4c7b3d1-71f6-45d6-a289-4adf5d54b9c1"
    }
    },
    "metadata": {
    "trace_identifier": "trace_abc123",
    "api_version": "2026-02-03"
    }
    }
  3. Créer un Subject (API Key)

    Créez un Subject de type API_KEY pour l’Organisation UNIT via l’endpoint createSubject.

    Pour associer le Subject (API Key) à votre UNIT, incluez l’en-tête X-Scope-Identifier défini sur l’id de l’Organisation UNIT dans votre requête.

    curl -X POST https://test.api.fiskaly.com/subjects \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "X-Scope-Identifier: ${ORGANIZATION_ID}" \
      -d '{
        "content": {
          "type": "API_KEY",
          "name": "my-api-key-03"
        }
      }'
    Exemple de réponse (201 Created)
    {
    "content": {
    "id": "2d4a0c2a-c2c9-4e3b-a0e8-b8f7e70d6f33",
    "state": "ENABLED",
    "type": "API_KEY",
    "name": "my-api-key-03",
    "credentials": {
    "api_key": "fsk_unit_abc123",
    "api_secret": "secret_only_shown_once"
    }
    },
    "metadata": {
    "trace_identifier": "trace_abc123",
    "api_version": "2026-02-03"
    }
    }
  4. Créer un Token

    Créez un token en utilisant la API Key et le secret du Subject que vous venez de générer. Ce token bearer sera utilisé pour toutes les étapes suivantes afin de créer des ressources au sein de l’Organisation UNIT correspondante.

    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": "subject_api_key",
          "secret": "subject_api_secret"
        }
      }'
    Exemple de réponse (200 OK)
    {
    "content": {
    "id": "3a5b4c61-2e8d-4a9d-9ac1-6df5a4e9138d",
    "authentication": {
    "type": "JWT",
    "bearer": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expires_at": "2026-03-02T12:00:00Z"
    },
    "organization": {
    "id": "9a746f13-0ef7-4a0f-a7df-8e52089c5f3a"
    },
    "subject": {
    "id": "2d4a0c2a-c2c9-4e3b-a0e8-b8f7e70d6f33"
    }
    },
    "metadata": {
    "trace_identifier": "trace_abc123",
    "api_version": "2026-02-03"
    }
    }
  5. Créer un Taxpayer

    Vous êtes maintenant prêt à créer les parties opérationnelles requises pour la fiscalisation en Italie.

    Utilisez l’endpoint createTaxpayer pour ajouter les informations du Taxpayer à l’Organisation UNIT que vous avez précédemment créée :

    • Définissez le Taxpayer comme type COMPANY (personne morale) ou INDIVIDUAL (personne physique). Dans les deux cas, le name et l’address doivent être fournis.
    • Dans les informations de fiscalization italiennes, les données de contribuable suivantes doivent être fournies :
      • tax_id_number : Code fiscal italien (Codice fiscale) de l’entreprise
      • vat_id_number : Numéro de TVA italien (Partita IVA) de l’entreprise
      • credentials : PIN, mot de passe et numéro fiscal de l’utilisateur Fisconline requis pour accéder aux services de l’AdE
    curl -X POST https://test.api.fiskaly.com/taxpayers \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -H "Authorization: Bearer ${UNIT_TOKEN}" \
      -d '{
        "content": {
          "type": "COMPANY",
          "name": {
            "legal": "La Pizzeria di Mario S.r.l.",
            "trade": "La Pizzeria di Mario"
          },
          "address": {
            "line": {
              "type": "STREET_NUMBER",
              "street": "Via Roma",
              "number": "123"
            },
            "code": "00100",
            "city": "Rome",
            "country": "IT"
          },
          "fiscalization": {
            "type": "IT",
            "tax_id_number": "12345678901",
            "vat_id_number": "12345678901",
            "credentials": {
              "type": "FISCONLINE",
              "pin": "1234567890",
              "password": "MySecurePassword123",
              "tax_id_number": "RSSMRA85M01H501Z"
            }
          }
        }
      }'
    Exemple de réponse (201 Created)
    {
    "content": {
    "address": {
    "city": "Rome",
    "code": "00100",
    "country": "IT",
    "line": {
    "number": "123",
    "street": "Via Roma",
    "type": "STREET_NUMBER"
    }
    },
    "country": "Italy",
    "created_at": "2026-03-05T14:58:05.729928Z",
    "fiscalization": {
    "credentials": {
    "password": "ccf9ac1c",
    "pin": "c775e7b7",
    "tax_id_number": "RSSMRA85M01H501Z",
    "type": "FISCONLINE"
    },
    "tax_id_number": "12345678901",
    "type": "IT",
    "vat_id_number": "12345678901"
    },
    "id": "019cbe81-8721-7e27-99d9-1bb4a267ba56",
    "locations": [
    {
    "description": "Head office location.",
    "type": "HEAD_OFFICE"
    },
    {
    "description": "Branch location.",
    "type": "BRANCH"
    }
    ],
    "mode": "INACTIVE",
    "name": {
    "legal": "La Pizzeria di Mario S.r.l.",
    "trade": "La Pizzeria di Mario"
    },
    "state": "ACQUIRED",
    "type": "COMPANY",
    "updated_at": "2026-03-05T14:58:05.729928Z",
    "vat_number": "IT12345678901"
    }
    }

    Une fois un Taxpayer créé, son state est défini sur ACQUIRED par défaut. Pour le rendre entièrement fonctionnel, mettez à jour l’état à COMMISSIONED en utilisant l’endpoint updateTaxpayer :

    curl -X PATCH "https://test.api.fiskaly.com/taxpayers/${TAXPAYER_ID}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "Authorization: Bearer ${UNIT_TOKEN}" \
      -d '{
        "content": {
          "state": "COMMISSIONED"
        }
      }'
    Exemple de réponse (200 OK)
    {
    "content": {
    "address": {
    "city": "Rome",
    "code": "00100",
    "country": "IT",
    "line": {
    "number": "123",
    "street": "Via Roma",
    "type": "STREET_NUMBER"
    }
    },
    "country": "Italy",
    "created_at": "2026-03-05T14:58:05.729928Z",
    "fiscalization": {
    "credentials": {
    "password": "ccf9ac1c",
    "pin": "c775e7b7",
    "tax_id_number": "RSSMRA85M01H501Z",
    "type": "FISCONLINE"
    },
    "tax_id_number": "12345678901",
    "type": "IT",
    "vat_id_number": "12345678901"
    },
    "id": "019cbe81-8721-7e27-99d9-1bb4a267ba56",
    "locations": [
    {
    "description": "Head office location.",
    "type": "HEAD_OFFICE"
    },
    {
    "description": "Branch location.",
    "type": "BRANCH"
    }
    ],
    "mode": "OPERATIVE",
    "name": {
    "legal": "La Pizzeria di Mario S.r.l.",
    "trade": "La Pizzeria di Mario"
    },
    "state": "COMMISSIONED",
    "type": "COMPANY",
    "updated_at": "2026-03-05T15:02:41.223565Z",
    "vat_number": "IT12345678901"
    }
    }
  6. Créer un Location

    Pour chaque emplacement commercial opérationnel, vous devez créer un Location de type BRANCH via l’endpoint createLocation.

    curl -X POST https://test.api.fiskaly.com/locations \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -H "Authorization: Bearer ${UNIT_TOKEN}" \
      -d '{
        "content": {
          "type": "BRANCH",
          "taxpayer": {
            "id": "your_taxpayer_id"
          },
          "name": "Roma Centro Branch",
          "address": {
            "line": {
              "type": "STREET_NUMBER",
              "street": "Via Roma",
              "number": "1"
            },
            "code": "00100",
            "city": "Roma",
            "country": "IT"
          }
        },
        "metadata": {
          "store_code": "STORE001"
        }
      }'
    Exemple de réponse (201 Created)
    {
    "content": {
    "address": {
    "city": "Roma",
    "code": "00100",
    "country": "IT",
    "line": {
    "number": "1",
    "street": "Via Roma",
    "type": "STREET_NUMBER"
    }
    },
    "created_at": "2026-03-05T15:07:09.776328Z",
    "id": "019cbe89-d450-7501-9928-1e7d94339208",
    "mode": "INACTIVE",
    "name": "Roma Centro Branch",
    "state": "ACQUIRED",
    "systems": [
    {
    "description": "Fiscal device (SIGN IT lite).",
    "type": "FISCAL_DEVICE"
    }
    ],
    "taxpayer": {
    "id": "019cbe81-8721-7e27-99d9-1bb4a267ba56"
    },
    "type": "BRANCH",
    "updated_at": "2026-03-05T15:07:09.776328Z"
    },
    "metadata": {
    "store_code": "STORE001"
    }
    }

    Une fois un Location créé, son state est défini sur ACQUIRED par défaut. Mettez à jour l’état à COMMISSIONED en utilisant l’endpoint updateLocation avant de continuer.

  7. Créer un System (FISCAL_DEVICE)

    L’endpoint createSystem vous permet de créer une abstraction de chaque Système d’Enregistrement Électronique (ERS) utilisé pour les opérations fiscales. Chaque caisse enregistreuse ou point de vente doit être fourni comme un nouveau System de type FISCAL_DEVICE.

    • Un System sera connecté à un Location spécifique précédemment créé.
    • Pour chaque System, vous devez fournir des informations sur le producer et le software pour suivre quel appareil effectue les transactions fiscales. Pour plus d’informations, consultez cet article FAQ.
    curl -X POST https://test.api.fiskaly.com/systems \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -H "Authorization: Bearer ${UNIT_TOKEN}" \
      -d '{
        "content": {
          "type": "FISCAL_DEVICE",
          "location": {
            "id": "your_location_id"
          },
          "producer": {
            "type": "MPN",
            "number": "FD-001",
            "details": {
              "name": "My Fiscal Device"
            }
          },
          "software": {
            "name": "My POS Software",
            "version": "1.0.0"
          }
        }
      }'
    Exemple de réponse (201 Created)
    {
    "content": {
    "compliance": {
    "software": {
    "name": "My POS Software",
    "version": "1.0.0"
    }
    },
    "created_at": "2026-03-05T13:57:00.016909Z",
    "id": "019cbe49-97f0-7dde-adae-e10fea9d64c9",
    "journal": {
    "cryptography": {
    "certificate": {
    "expires_at": "2029-03-05T13:57:00Z",
    "serial_number": "7E7D991D5D1768AF224A754A3E815537",
    "x509_pem": "-----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIQfn2ZHV0XaK8iSnVKPoFVNzANBgkqhkiG9w0BAQsFADAT\nMREwDwYDVQQKEwhmaXNrYWx5LjAeFw0yNjAzMDUxMzU3MDBaFw0yOTAzMDUxMzU3\nMDBaMBMxETAPBgNVBAoTCGZpc2thbHkuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\nMIIBCgKCAQEAzE++CjP6UrE9d4ftaRU50yWWycU1/ql5iLgpFjjBZdXAuay82ely\n11sMfjlL3RJaIkIF8w9VcrnaCnSJLzSihEPcohFF8B9iX+/GLHA9FNHMpRrNBaC/\nMmXv7iuPkOFZDTxueWtkti0BqEE+H3RoCsOkPxzMMQ0UYCtZx9V5i/bXO+Akb8HC\nuq80+73m/DP1WFQgD6d/vwfqr+eM4jZTUiRPyy9W6yBOj02SbFL6Oeop2yDNo7Ws\nhZLoquNgVe9lEHZV2N62AVe1OEXdDzn2BlNvCnlwb9RJCGTVCMQbOsN84EMhpwOG\nsRNHgezSeGhO7aca+/igmiuSW7Uw3YdWWwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC\nAoQwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUn+BqmtpyTeC4wdZNEMYf96hV\ny78wDQYJKoZIhvcNAQELBQADggEBACXaL/EXGW4PnjC+Dj5ZUySE5vtysPUV0Tkw\n4+EtLJUs86itNZgyhQpXfwzvpgj/wL7XA+GAnPqpUbrMOXLawsWGtID8BZHrQRRJ\ny/ZcHRQyIwoHNNl5bbDDNC/icG78GhK+RmdCw3wcVyxABBzpE/CckNn4hltsCqUo\n01eqms+SmY+MBUBj3ec1iVcD0bz/pyMmIQSVfWjKWtHofwUTCkgEm9cKqtyfajzB\ne6bKoScTziojhlCtnEfPb20vtQ+UE183FOG36WfuRV8EtS+3Cgx83yEj8QXVuYcA\nKQAgoPy6/6xHMDkZH3P/XTOfBf8UkZvQy5egibgC6k2wqjxYWtY=\n-----END CERTIFICATE-----\n"
    },
    "signature": {
    "hash": "SHA-256",
    "type": "RSA"
    }
    }
    },
    "kind": "INTERNAL",
    "location": {
    "id": "019cbe89-d450-7501-9928-1e7d94339208"
    },
    "mode": "INACTIVE",
    "producer": {
    "details": {
    "name": "My Fiscal Device"
    },
    "number": "FD-001",
    "type": "MPN"
    },
    "records": [
    {
    "description": "Intention of an upcoming transaction.",
    "type": "INTENTION::TRANSACTION"
    },
    {
    "description": "Receipt transaction information.",
    "type": "TRANSACTION::RECEIPT"
    },
    {
    "description": "Correction of an issued transaction.",
    "type": "TRANSACTION::CORRECTION"
    },
    {
    "description": "Cancellation of an issued transaction.",
    "type": "TRANSACTION::CANCELLATION"
    }
    ],
    "software": {
    "name": "SIGN IT Lite",
    "version": "v1.0.0"
    },
    "state": "ACQUIRED",
    "type": "FISCAL_DEVICE",
    "updated_at": "2026-03-05T13:57:00.016909Z",
    "vat_exemptions": [
    {
    "code": "NOT_SUBJECT",
    "description": "Not subject (Non soggette)"
    },
    {
    "code": "NOT_TAXABLE",
    "description": "Not taxable (Non imponibili)"
    },
    {
    "code": "CAUSE_1",
    "description": "Exempt (Esenti)"
    },
    {
    "code": "CAUSE_2",
    "description": "Exclusive Art. 15"
    },
    {
    "code": "CAUSE_3",
    "description": "Marginal scheme (Regime del margine)"
    },
    {
    "code": "CAUSE_4",
    "description": "Other (Altre non IVA)"
    }
    ],
    "vat_rates": [
    {
    "code": "STANDARD",
    "description": "Standard VAT rate",
    "historic": false,
    "percentage": "22"
    },
    {
    "code": "REDUCED_1",
    "description": "Reduced VAT rate 1",
    "historic": false,
    "percentage": "10"
    },
    {
    "code": "REDUCED_2",
    "description": "Reduced VAT rate 2",
    "historic": false,
    "percentage": "5"
    },
    {
    "code": "REDUCED_3",
    "description": "Super-reduced VAT rate",
    "historic": false,
    "percentage": "4"
    }
    ]
    }
    }

    Une fois un System créé, son state est défini sur ACQUIRED par défaut. Pour créer des Records, son état doit être mis à jour à COMMISSIONED en utilisant l’endpoint updateSystem.

  8. Créer un Record

    Pour chaque opération commerciale effectuée dans le Système, l’endpoint createRecord doit être utilisé en deux appels successifs :

    • Partie A) INTENTION : enregistre l’intention de démarrer une TRANSACTION
    • Partie B) TRANSACTION : fournit les données de la transaction

    Partie A) Créer l’Intention

    Un Record de type INTENTION contient l’association avec le System qui effectuera la transaction et une Operation de type TRANSACTION, représentant l’intention du System d’enregistrer une transaction.

    curl -X POST https://test.api.fiskaly.com/records \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -H "Authorization: Bearer ${UNIT_TOKEN}" \
      -d '{
        "content": {
          "type": "INTENTION",
          "system": {
            "id": "your_system_id"
          },
          "operation": {
            "type": "TRANSACTION"
          }
        }
      }'
    Exemple de réponse (201 Created)
    {
    "content": {
    "file": {
    "location": "SERVICE"
    },
    "id": "019cbe96-8e57-7693-a4ef-4ed89a76ef9b",
    "journal": {
    "signature": "yrrXNoHGF0YYPVgUWH81tXQYCf6H3BCjTed6YUT2ZvmmRaq8qoZAUOaP8wJI4ipN",
    "signed_at": "2026-03-05T15:21:03.84326335Z"
    },
    "mode": "PROCESSING",
    "operation": "{\"type\":\"TRANSACTION\"}",
    "state": "ACCEPTED",
    "system": {
    "id": "019cbe96-7245-7b49-91d6-ba66a235fc72"
    },
    "type": "INTENTION::TRANSACTION"
    }
    }

    Partie B) Créer la Transaction

    Un Record de type TRANSACTION est associé à l’INTENTION précédemment créée et peut effectuer l’une des opérations suivantes :

    • RECEIPT : Représente la vente d’un bien ou service, incluant les informations sur le document (par ex. numéro de document, montants totaux TVA incluse et TVA exclue) et les lignes (identification d’une SALE, description, si c’est un GOOD ou SERVICE, etc.).
    • CORRECTION : Représente un processus de retour. Contient les mêmes données qu’une opération RECEIPT, plus un id de référence au document RECEIPT original.
    • CANCELLATION : Utilisé pour invalider une transaction entière. Nécessite l’id d’un enregistrement précédemment créé.
    curl -X POST https://test.api.fiskaly.com/records \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -H "Authorization: Bearer ${UNIT_TOKEN}" \
      -d '{
        "content": {
          "type": "TRANSACTION",
          "record": {
            "id": "your_intention_id"
          },
          "operation": {
            "type": "RECEIPT",
            "document": {
              "number": "1",
              "total_vat": {
                "amount": "2.20",
                "exclusive": "10.00",
                "inclusive": "12.20"
              }
            },
            "entries": [
              {
                "type": "SALE",
                "details": {
                  "concept": "GOOD"
                },
                "data": {
                  "type": "ITEM",
                  "text": "Margherita Pizza",
                  "unit": {
                    "quantity": "1",
                    "price": "12.20"
                  },
                  "value": {
                    "base": "10.00",
                    "discount": "0.00"
                  },
                  "vat": {
                    "type": "VAT_RATE",
                    "code": "STANDARD",
                    "percentage": "22.00",
                    "exclusive": "10.00",
                    "inclusive": "12.20",
                    "amount": "2.20"
                  }
                }
              }
            ],
            "payments": [
              {
                "type": "CASH",
                "details": {
                  "amount": "12.20"
                }
              }
            ]
          }
        }
      }'
    Exemple de réponse (201 Created)
    {
    "content": {
    "compliance": {
    "data": "DCW0000/0000-0000",
    "url": "https://ivaservizi.agenziaentrate.gov.it/ser/api/documenti/v1/doc/documenti/00000000/stampa/"
    },
    "file": {
    "location": "SERVICE"
    },
    "id": "019cbea1-4775-7b70-9b83-79cac7107266",
    "journal": {
    "record": {
    "id": "019cbe96-8e57-7693-a4ef-4ed89a76ef9b"
    },
    "signature": "vGQtUR29rogalpYCVIJPnu-3gPLScA5wEEyxrllfviUGvoK2lkLj5bw3OimfvzuP",
    "signed_at": "2026-03-05T15:32:46.594042649Z"
    },
    "mode": "FINISHED",
    "operation": "{\"document\":{\"number\":\"1\",\"total_vat\":{\"amount\":\"2.20\",\"exclusive\":\"10.00\",\"inclusive\":\"12.20\"}},\"entries\":[{\"data\":{\"text\":\"Margherita Pizza\",\"type\":\"ITEM\",\"unit\":{\"price\":\"12.20\",\"quantity\":\"1\"},\"value\":{\"base\":\"10.00\",\"discount\":\"0.00\"},\"vat\":{\"amount\":\"2.20\",\"code\":\"STANDARD\",\"exclusive\":\"10.00\",\"inclusive\":\"12.20\",\"percentage\":\"22.00\",\"type\":\"VAT_RATE\"}},\"details\":{\"concept\":\"GOOD\",\"purpose\":\"STANDARD\"},\"type\":\"SALE\"}],\"payments\":[{\"details\":{\"amount\":\"12.20\"},\"type\":\"CASH\"}],\"type\":\"RECEIPT\"}",
    "record": {
    "id": "019cbe96-8e57-7693-a4ef-4ed89a76ef9b"
    },
    "state": "COMPLETED",
    "system": {
    "id": "019cbe49-97f0-7dde-adae-e10fea9d64c9"
    },
    "transmission": {
    "request": {
    "data": "e30A",
    "type": "application/json"
    },
    "response": {
    "data": "e30A",
    "type": "application/json"
    }
    },
    "type": "TRANSACTION::RECEIPT"
    }
    }

    Une fois la transaction correctement enregistrée et les informations du document commercial transmises avec succès au portail web de l’AdE (état COMPLETED, mode FINISHED), le compliance.data retourné dans la réponse API inclut le numéro progressif attribué par l’AdE au document commercial (numéro DCW) et, si fourni, le code Loterie du consommateur.

    Remarque : Si un état REJECTED ou FAILED est retourné à la place, veuillez consulter notre section États et modes des Records pour plus de conseils.

Was this page helpful?