From bebc2394318a5a36f6b9ef096c6f55eba4d710c1 Mon Sep 17 00:00:00 2001 From: LGuichet Date: Wed, 8 Apr 2026 10:56:21 +0200 Subject: [PATCH 1/4] Add NF525 compliance details for archive receipts and signature excerpts --- .../cash-register-integration/cash-register-integration.md | 7 ++++++- .../data-structures/data-structures.md | 5 +++++ .../reference-tables/reference-tables.md | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md index 003bf09..fcf381a 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md @@ -72,7 +72,12 @@ The results will be shown, and the content will be available for download on a d The procedure archives the requested period. An archive can contain a maximum of 12 months from the start of the queue or from the last archive date, up to the receipt's date. If the archiving period is longer than 12 months, multiple archive receipts have to be sent with the start date of each consecutive receipt beginning right after the end date of the previous one. -Every time an archive receipt is sent to the middleware, a hash recalculation is performed. If any discrepancies are found in the hashes, an error message will be displayed in the portal, under (Configuration-\> Queues\>ActionJournal) +Every time an archive receipt is sent to the middleware, a hash recalculation is performed. If any discrepancies are found in the hashes, an error message starting by `Code 90` will be displayed in the portal, under (Configuration-\> Queues\>ActionJournal) + + +For NF525 compliant cash registers, this error message must be checked after each archive request by calling the journal endpoint. + +The action journal request call is type 1, and will respond with a list of entries. If one or more entries's message starts by "Code 90" : `"Message": "Code 90 , \\NF525\\ Detection of an integrity flaw in secured data or a tax archive"`, the cash register must send a Technical Event Log receipt request to the middleware including : `"ftReceiptCaseData" : "{\"Code\": \"90\", \"Message\": \"Detection of an integrity flaw in secured data or a tax archive\"}"` ## Receipt Structure diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md index 28e8389..1486b4f 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md @@ -135,6 +135,11 @@ There are no special requirements or laws for the French market. A Signature Entry can include an electronic signature for printing on the receipt and further information regarding the operational state of the fiskaltrust.SecurityMechanism. Furthermore, but only when receipts with special functions are used, the previous state of the totalizers (in case of a temporal closure), can also be sent back in this block. **All SignatureItems send back to the POS-System must be printed on the receipt, therefore it's mandatory to print the content of the fields _Caption_ and _Data_.** +The signature excerpt (ftSignatureType 0x4652000000000008) is only mandatory for NF525 compliance and the caption "-----" must not be printed. It is 4 characters extracted from the JWT signature part and following NF525 specification (characters 3, 7, 13 and 19). +NF525 requires that the signature exerpt has to be printed after the product number shown on the NF525 certificate. + +Exemple with signature excerpt "Wxi2" and product number "1234" : `(NF525) B 1234 Wxi2 HAPPYPOS v1.1` + This table describes additional fields of the Signature Entry applicable to the French market. | **Field Name** | **Data Type** | **Default Value**
**Mandatory Field** | **Description** | **Version** | diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/reference-tables/reference-tables.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/reference-tables/reference-tables.md index 112730d..dfd59b1 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/reference-tables/reference-tables.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/reference-tables/reference-tables.md @@ -166,6 +166,7 @@ The `ftSignatureType` indicates the type and origin of the signature. | `0x4652000000000005` | Year Closing Sum | 1.2 | | `0x4652000000000006` | Archive Totals Sum | 1.2 | | `0x4652000000000007` | Perpetual Total Sum | 1.2 | +| `0x4652000000000008` | Signature Excerpt | 1.2 | From d8fc0df30e91127764c5fbc7a16f75b489b9e11d Mon Sep 17 00:00:00 2001 From: LGuichet Date: Wed, 8 Apr 2026 10:56:21 +0200 Subject: [PATCH 2/4] Add NF525 compliance details for archive receipts and signature excerpts --- .../cash-register-integration/cash-register-integration.md | 7 ++++++- .../data-structures/data-structures.md | 5 +++++ .../reference-tables/reference-tables.md | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md index 003bf09..fcf381a 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md @@ -72,7 +72,12 @@ The results will be shown, and the content will be available for download on a d The procedure archives the requested period. An archive can contain a maximum of 12 months from the start of the queue or from the last archive date, up to the receipt's date. If the archiving period is longer than 12 months, multiple archive receipts have to be sent with the start date of each consecutive receipt beginning right after the end date of the previous one. -Every time an archive receipt is sent to the middleware, a hash recalculation is performed. If any discrepancies are found in the hashes, an error message will be displayed in the portal, under (Configuration-\> Queues\>ActionJournal) +Every time an archive receipt is sent to the middleware, a hash recalculation is performed. If any discrepancies are found in the hashes, an error message starting by `Code 90` will be displayed in the portal, under (Configuration-\> Queues\>ActionJournal) + + +For NF525 compliant cash registers, this error message must be checked after each archive request by calling the journal endpoint. + +The action journal request call is type 1, and will respond with a list of entries. If one or more entries's message starts by "Code 90" : `"Message": "Code 90 , \\NF525\\ Detection of an integrity flaw in secured data or a tax archive"`, the cash register must send a Technical Event Log receipt request to the middleware including : `"ftReceiptCaseData" : "{\"Code\": \"90\", \"Message\": \"Detection of an integrity flaw in secured data or a tax archive\"}"` ## Receipt Structure diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md index 28e8389..7dc576f 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md @@ -135,6 +135,11 @@ There are no special requirements or laws for the French market. A Signature Entry can include an electronic signature for printing on the receipt and further information regarding the operational state of the fiskaltrust.SecurityMechanism. Furthermore, but only when receipts with special functions are used, the previous state of the totalizers (in case of a temporal closure), can also be sent back in this block. **All SignatureItems send back to the POS-System must be printed on the receipt, therefore it's mandatory to print the content of the fields _Caption_ and _Data_.** +The signature excerpt (ftSignatureType 0x4652000000000008) is only mandatory for NF525 compliance and the caption "-----" must not be printed. It is 4 characters extracted from the JWT signature part and following NF525 specification (characters 3, 7, 13 and 19). +NF525 requires that the signature excerpt must to be printed after the product number shown on the NF525 certificate. + +Exemple with signature excerpt "Wxi2" and product number "1234" : `(NF525) B 1234 Wxi2 HAPPYPOS v1.1` + This table describes additional fields of the Signature Entry applicable to the French market. | **Field Name** | **Data Type** | **Default Value**
**Mandatory Field** | **Description** | **Version** | diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/reference-tables/reference-tables.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/reference-tables/reference-tables.md index 112730d..dfd59b1 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/reference-tables/reference-tables.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/reference-tables/reference-tables.md @@ -166,6 +166,7 @@ The `ftSignatureType` indicates the type and origin of the signature. | `0x4652000000000005` | Year Closing Sum | 1.2 | | `0x4652000000000006` | Archive Totals Sum | 1.2 | | `0x4652000000000007` | Perpetual Total Sum | 1.2 | +| `0x4652000000000008` | Signature Excerpt | 1.2 | From 8242b01f2021c8ced8cb1e9cf4cf3323334fbba5 Mon Sep 17 00:00:00 2001 From: LGuichet <79939701+LGuichet@users.noreply.github.com> Date: Thu, 9 Apr 2026 10:44:50 +0200 Subject: [PATCH 3/4] Debora's review feedback changes Co-authored-by: deboragracio <63159404+deboragracio@users.noreply.github.com> --- .../data-structures/data-structures.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md index 7dc576f..7077094 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/data-structures/data-structures.md @@ -133,12 +133,16 @@ There are no special requirements or laws for the French market. ### Signature Entry A Signature Entry can include an electronic signature for printing on the receipt and further information regarding the operational state of the fiskaltrust.SecurityMechanism. Furthermore, but only when receipts with special functions are used, the previous state of the totalizers (in case of a temporal closure), can also be sent back in this block. -**All SignatureItems send back to the POS-System must be printed on the receipt, therefore it's mandatory to print the content of the fields _Caption_ and _Data_.** +:::info -The signature excerpt (ftSignatureType 0x4652000000000008) is only mandatory for NF525 compliance and the caption "-----" must not be printed. It is 4 characters extracted from the JWT signature part and following NF525 specification (characters 3, 7, 13 and 19). +All SignatureItems Data and Caption returned to the POS system must be printed on the receipt unless specified otherwise. + +::: + +The signature excerpt (ftSignatureType 0x4652000000000008) is only mandatory for NF525 compliance, and the caption "-----" must not be printed. It consists of four characters extracted from the JWT signature part, following the NF525 specification (characters 3, 7, 13, and 19). NF525 requires that the signature excerpt must to be printed after the product number shown on the NF525 certificate. -Exemple with signature excerpt "Wxi2" and product number "1234" : `(NF525) B 1234 Wxi2 HAPPYPOS v1.1` +Example with signature excerpt "Wxi2" and product number "1234": `(NF525) B 1234 Wxi2 HAPPYPOS v1.1`. This table describes additional fields of the Signature Entry applicable to the French market. From b47eb6be52b19f0b8c8370e6bc847a7b83bf2a64 Mon Sep 17 00:00:00 2001 From: LGuichet <79939701+LGuichet@users.noreply.github.com> Date: Thu, 9 Apr 2026 14:22:35 +0200 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: deboragracio <63159404+deboragracio@users.noreply.github.com> --- .../cash-register-integration/cash-register-integration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md index fcf381a..7caa577 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/cash-register-integration/cash-register-integration.md @@ -72,12 +72,12 @@ The results will be shown, and the content will be available for download on a d The procedure archives the requested period. An archive can contain a maximum of 12 months from the start of the queue or from the last archive date, up to the receipt's date. If the archiving period is longer than 12 months, multiple archive receipts have to be sent with the start date of each consecutive receipt beginning right after the end date of the previous one. -Every time an archive receipt is sent to the middleware, a hash recalculation is performed. If any discrepancies are found in the hashes, an error message starting by `Code 90` will be displayed in the portal, under (Configuration-\> Queues\>ActionJournal) +Every time an archive receipt is sent to the middleware, a hash recalculation is performed. If any discrepancies are found, an error message starting with `Code 90` is displayed in the portal under `Configuration` / `Queues`/ `ActionJournal`. For NF525 compliant cash registers, this error message must be checked after each archive request by calling the journal endpoint. -The action journal request call is type 1, and will respond with a list of entries. If one or more entries's message starts by "Code 90" : `"Message": "Code 90 , \\NF525\\ Detection of an integrity flaw in secured data or a tax archive"`, the cash register must send a Technical Event Log receipt request to the middleware including : `"ftReceiptCaseData" : "{\"Code\": \"90\", \"Message\": \"Detection of an integrity flaw in secured data or a tax archive\"}"` +The action journal request call is of type 1 and returns a list of entries. If one or more entries contain a message starting with "Code 90", for example,`"Message": "Code 90 , \\NF525\\ Detection of an integrity flaw in secured data or a tax archive"`, the cash register must send a Technical Event Log receipt request to the middleware including : `"ftReceiptCaseData" : "{\"Code\": \"90\", \"Message\": \"Detection of an integrity flaw in secured data or a tax archive\"}"`. ## Receipt Structure