À l'aide de la méthode
- point de terminaison POST /api/v1/transactions/storeDocument
, un document est transmis au service fiscal et y est stocké.
Résultat
En cas de traitement réussi (code 200), le client du service fiscal concerné renvoie une réponse de type « fiscalResponse ».
Utilisation
- À chaque finalisation d’un document dans le système d’enregistrement électronique (caisse enregistreuse).
Conditions préalables
-
L’appel de la méthode storeDocument doit être précédé de l’appel du point de terminaison PUT /api/v1/transactions/createDocument
- Les données issues de la réponse de createDocument doivent être intégrées dans la structure JSON de storeDocument. Reportez-vous à la section suivante.
Processus de transmission
Comme décrit précédemment, une requête storeDocument nécessite qu’une requête createDocument l’ait précédée. La fiscalResponse de createDocument contient les champs suivants :
"fiscalisationDocumentNumber": 0,
"fiscalisationDocumentRevision": 0,
"fiscalDocumentStartTime": 0,
Les informations contenues dans ces champs doivent figurer dans la structure JSON transmise avec `storeDocument`. Ces champs contiennent des valeurs générées par un matériel fiscal obligatoire (dispositif technique de sécurité « TSE » en Allemagne) et sont utilisées pour l’enchaînement des transactions.
Attention : veuillez noter les particularités suivantes :
La réponse « fiscalResponse » de la fonction « createDocument » renvoie les champs « fiscalisationDocumentNumber » et « fiscalisationDocumentRevision ». Dans la fonction « storeDocument », ces champs doivent toutefois être transmis avec
"fiscalDocumentNumber": 24,
"fiscalDocumentRevision": 1,
sans le suffixe « -isation » ! Veuillez également noter : transaction non lancée
Exemple :
L’exemple suivant présente un simple ticket de caisse pour l’Allemagne (documentType = [0] = ticket de caisse), qui est envoyé au point de terminaison POST /api/v1/transactions/storeDocument.
{
"uniqueClientId": "c1062c55-57c4-4ed2-9c53-aff1762326a4",
"documentGuid": "7d4a7761-e9e9-4759-8591-ed147a581da4",
"documentId": "HAM01-00010329",
"documentNumber": "00010329",
"createDate": "2023-04-18T21:34:45",
"bookDate": "2023-04-18T21:34:46",
"cancellationDocument": false,
"isTraining": false,
"documentType": 0,
"user": {
"id": "1234",
"caption": "1234"
},
"fiscalDocumentNumber": 2853,
"fiscalDocumentStartTime": 1681803100,
"fiscalDocumentRevision": 1,
"Positions": [
{
"positionNumber": 0,
"netValue": 10.66,
"grossvalue": 12.90,
"taxValue": 2.24,
"quantity": 1,
"itemId": "1101202930050",
"itemCaption": "Pizza Margherita",
"cancellationPosition": "false",
"type": "0",
"businessTransactionType": 0,
"vatPercent": 19,
"vatIdentification": 1,
}
],
"Payments": [
{
"Amount": 12.90,
"paymentType": "cash",
"uniqueReadablePaymentIdentifier": "Cash",
"caption": "Bar+Euro",
"currencyIsoCode": "EUR"
}
]
}
fiscalResponse
La réponse « fiscalResponse » d’un « storeDocument » doit être persistée dans la base de données du point de vente à des fins de référence.
La fiscalResponse contient :
- des informations génériques
- des informations spécifiques au pays
Exemple de « fiscalResponse » :
{
"fiscalCountry": "[0] = Germany",
"fiscalisationDocumentNumber": 52,
"fiscalisationDocumentRevision": 2,
"fiscalDocumentStartTime": 1674819139,
"processStartTime": 0,
"errorDescription": null,
"cashRegisterId": "00345-00345",
"signature": "pCeGi98gNNhshcGJkbw0DwtSzuJkaawON8l5QwsFDEaDHOyYK2aNVO4ZAlpkYYnub7oxM/2R1/KB36UzmOQwew==",
"userMessage": null,
"printMessage": "***Test***",
"requestTime": "2023-01-27T12:34:21.3088836+01:00",
"requestCompletionTime": "2023-01-27T12:34:22.4379009+01:00",
"AdditionalFields": {
"QrCodeDataString": "V0;00345-00345;Kassenbeleg-V1;Beleg^13.90_0.00_0.00_0.00_0.00^13.90:Unbar;52;197;2023-01-27T11:32:19.000Z;2023-01-27T11:34:20.000Z;ecdsa-plain-SHA256;unixTime;pCeGi98gNNhshcGJkbw0DwtSzuJkaawON8l5QwsFDEaDHOyYK2aNVO4ZAlpkYYnub7oxM/2R1/KB36UzmOQwew==;BNHckCuXF2fEktIp8qwtnMLLgvpJDX6wEOqFENlHXZpekBHxHniQh9gbigjWS9UbCwZSrOTJTMK7WiV5owAfXkk=",
"TransactionStartTime": 1674819139,
"TransactionEndTime": 1674819260,
"ProcessData": "Beleg^13.90_0.00_0.00_0.00_0.00^13.90:Unbar",
"ProcessType": "Kassenbeleg-V1",
"TseSerial": "e5f5836a57c50c526d4bed37f18823608f2f44e2c98cab73278a7676c5ea0885",
"TseTimeFormat": "unixTime",
"TseHashAlgorithm": "ecdsa-plain-SHA256",
"TsePublicKey": "BNHckCuXF2fEktIp8qwtnMLLgvpJDX6wEOqFENlHXZpekBHxHniQh9gbigjWS9UbCwZSrOTJTMK7WiV5owAfXkk=",
"TseSignatureCounter": 197,
"TseCertificate": "MIIB0jCCAVmgAwIBAgIhAOX1g2pXxQxSbUvtN/GII2CPL0TiyYyrcyeKdnbF6giFMAoGCCqGSM49BAMDMDExFTATBgNVBAoTDGZpc2thbHkgR21iSDEYMBYGA1UEAxMPZmlza2FseSBUZXN0IENBMB4XDTIyMTAzMDEyMjgzMloXDTIzMTAzMDEyMjgzMlowMjEVMBMGA1UEChMMZmlza2FseSBHbWJIMRkwFwYDVQQDExBmaXNrYWx5IFRlc3QgVFNFMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dyQK5cXZ8SS0inyrC2cwsuC+kkNfrAQ6oUQ2Uddml6QEfEeeJCH2BuKCNZL1RsLBlKs5MlMwrtaJXmjAB9eSaNBMD8wDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUlllBymQBup6ldKGojZVpZtWG5tQwCgYIKoZIzj0EAwMDZwAwZAIwEFsoSON9cIBqA5d9vsGI2jSjDlZxHokDvJ4yBmayvigrDbdhMYe3hw3HyQbO2B/FAjBXSVNbYR6Wg2TVzL9BhCla+tewRDGcs6vnetJ4i3VRtya1+ejt+vRjWnb/RUyo0Uw="
}
}
Informations génériques
Ces éléments sont situés dans l’en-tête de la « fiscalResponse ».
Remarque :
- Le contenu du champ « fiscalisationDocumentNumber » doit figurer sur le document (DE).
- Le contenu du champ « PrintMessage » doit figurer sur le reçu.
Informations spécifiques au pays
Les informations spécifiques à chaque pays sont fournies dans la zone « AdditionalFields » et contiennent des données qui doivent être imprimées sur le ticket de caisse (par exemple, un code QR ou, en Allemagne, les données TSE).
Veuillez vous reporter aux exemples de documents du pays concerné.
Remarque : si la valeur « -1 » est renvoyée dans la fiscalResponse de la fonction storeDocument dans le champ
"fiscalDocumentNumber": -1,
le client a identifié le document correspondant comme non fiscal.
Réponse
Réponses possibles :
| Code | Description | Exemple |
| 200 |
Le document a été transmis avec succès et sans erreur, puis enregistré dans le documentStore. |
fiscalResponse |
| 404 |
Allemagne : le fiscalDocumentNumber indiqué est introuvable. La transaction associée au fiscalDocumentNumber indiqué n’a pas encore été créée (lancée). Dépannage :
|
- |
| 406 |
Le type de document transmis n’est pas pris en charge Dépannage :
|
- |
| 422 |
Le contenu du document est vide ou incorrect Dépannage :
|
- |
Cet article a été traduit automatiquement.
Commentaires
0 commentaire
Vous devez vous connecter pour laisser un commentaire.