How To Guide Fiscal France
Fiscal Overview
For shared background, see Fiscal Overview.
French Fiscalisation
In France, POS fiscalisation is a legal requirement for businesses to ensure accurate and transparent financial reporting.
The process of POS fiscalisation in France involves several key components:
-
Certified POS Software: Businesses must use certified POS software that meets the requirements set by the French tax authorities. The software must have built-in features to record and store transaction data securely.
-
Electronic Signature: The certified POS software generates a secure electronic signature for each transaction. This signature ensures the integrity and authenticity of the recorded data. The signature of the prior transaction is used as part of the data signed to create the signature for the next transaction. In this way a chain of signatures is created which allows the Tax Authority to detect transactions that have been altered after being signed, which could indicate potential fraud.
-
Transaction Recording: The POS system records all sales transactions, including details such as the date, time, amount, and VAT (Value Added Tax) information which is also part of the signature for each transaction. This data must be securely stored and retained for a period of six years.
-
Technical Event Log (JET): In addition to recording transactions the POS system must also record technical events such as closing reporting periods, exporting data, and purging data. In a similar fashion to transactions these events must be signed at the time of recording, also using a chaining mechanism to ensure that they cannot be altered without detection. It should be noted, the JET uses a different signature chain to that used for transactions.
-
Reporting and Archiving: Periodically, the retailer must generate a Tax Archive from the POS system, at least once per year, summarising the recorded transactions and technical events. These reports can be requested by the French tax authorities for fiscal reporting and tax compliance.
-
Auditing and Compliance Checks: Tax authorities in France conduct periodic audits and compliance checks to ensure businesses are adhering to fiscalisation regulations. During these checks, businesses must provide access to their POS system and transaction records to validate the accuracy and completeness of their financial reporting.
It's important for businesses in France to select a certified POS software provider and ensure proper installation and configuration of the system to meet fiscalisation requirements. Failure to comply with POS fiscalisation regulations can result in penalties, fines, or legal consequences.
Overall, POS fiscalisation in France aims to enhance transparency, combat tax evasion, and streamline the process of tax collection by leveraging electronic recording and reporting of sales transactions.
Notes
The Enactor solution has been certified with Infocert. Details of which can be found at https://certificates.infocert.org/ by searching for the product ENACTOR FRENCH FISCAL MODULE.
Enactor French Fiscal System Overview
French fiscal legislation defines two types of cash register system. Category A, stand alone hardware or software cash register system, and Category B which includes systems that have both in store and centralised components. The Enactor solution is category B.
There are two types of events that are recorded by the system to meet the requirements of the legislation. Cash transactions and invoices such as, sales, and returns; and technical events such as sign on, sign off, end of period operations and data exports.
In the case of both transactions and events each is signed, with the private key of a public/private key pair, using the signature of the previous event/transaction as part signed data. The signature is then recorded as part of the transaction/event record. In this way a chain of signatures is established which allows any modifications or omissions to be detected when verifying the chain with the public key. Since the private key used to sign data is only known to Enactor it is not possible for a bad actor to modify the chain without this being detectable by the Tax Authority who are able to verify the chain using the public key at the time of any audit.
Cash transactions are always recorded and signed at the POS and the signature chain is unique to the POS. Technical events happen at the POS but can also happen on other devices such as the estate manager, for example in the case of a data export which occurs on the Estate Manager. Therefore each device has its own signature chain for the technical event log.
In the event of the Tax Authority needing to verify a transaction or a series of transactions they can first hash the relevant transaction data in the same manner as Enactor did, then use the public key to decrypt the hash signed by Enactor to ensure it matches. In this way the Tax Authority can be sure that
-
Enactor signed the transaction, since only they have the private key.
-
The signed data has not been modified since the hashes match.
-
No transactions have been deleted, since the prior receipt signature matches.
However, this is all dependent on the private key being known only to Enactor. This poses a technical challenge as the private key is required on each POS since this is where the signing of transactions takes place. This means that a mechanism must be in place to share the private key with each device in a secure manner.
To achieve this, an approved person at Enactor will generate the key pair and then encrypt the private key in an account credential using the Enactor system key which is known only to Enactor. Account Credentials are an Entity that is used within the Enactor solution for securely sharing credentials. This account credential can then be shared with the customer as an XML file, imported into their system and broadcast to all French POS devices. When a transaction needs to be signed on the POS (which has the System Key securely embedded within it) it can decrypt the private key and sign the transaction. Enactor has taken industry standard steps to ensure that both the system key and the decrypted private key are protected whilst they are being used.
The technical event log has some events which are purgeable and some which must be retained indefinitely. This version of the Enactor solution does not support purging of events but it will be added in a future version.
Transactions and events are transmitted to the estate manager using the standard process which ensures their delivery, see Enactor Books: Setup and Administration for further details. However in France the process differs from a non fiscal country, when they are processed at the estate manager, as well as all the usual processing, these events will also be stored in additional fiscal databases. It is these databases from which the Tax Archive will be produced, and which are the legal fiscal records for the purposes of the fiscal legislation. The storage requirements for fiscal transactions and events mean that these databases will become large and separating them allows the data to be stored without impacting the Retail Transaction Archive performance for things like return lookups. It is important that these databases are properly backed up and that the backups are stored securely and safely since being able to produce the data held in them is a legal requirement and disaster recovery scenarios will require their recovery. Enactor will work with each customer to ensure that appropriate disaster recovery processes are in place.
It is necessary in France to be able to demonstrate that POS running in a store has been certified by running some function on the POS. To do this an additional data is added to the POS version screen when the French fiscal module is installed. This screen will display details of the certification and the certified version. If this screen does not include this data, the retailer would not be considered to be using a certified POS. Steps have been taken to prevent the POS from starting if it is configured to be a French fiscal POS and the fiscal module is not present. Similarly if the fiscal module is present but the necessary fiscal config is missing the POS will also not start.
It is a requirement for retailers to produce Exports of the fiscal data on at least an annual basis, this is known as a Tax Archive. These archives must be stored by the retailer for a period of time, defined in the fiscal legislation, on multiple external secure mediums. The retailer may be asked to produce these tax archives if they are inspected. These archives are produced from an application within the Estate Manager called the Tax Archive Exporter. Please see the Tax Archive documentation for more details of how to produce this file as well as its format.
All of the fiscal functionality is contained within a fiscal module that sits on top of the Enactor solution. This is called the Enactor French Fiscal Module. This module must be installed on any French POS for it to be considered a fiscally compliant POS in France. The module is the component that is certified. Its installation is achieved by using a standard application updater deployment; please see the separate Fiscal POS Module Deployment How to Guide provided with this document for details.
If a POS is configured to use French Fiscalisation on the EM but the Fiscal Module is not present on that POS, the POS will fail to start or complete any transactions.
There is also a set of services that must be deployed at the centre alongside the EM. This is provided as a set of JAR’s to be deployed to the EM, these must be deployed for French Fiscal Transactions to be correctly processed at the EM. The separate Fiscal Microservice Deployment How to Guide should be referred to for the deployment procedure.
Enactors invoicing functionality has been enabled on POS that have the French Fisal Module installed. This is because there are special requirements for the handling of Invoices in the NF525 which have been included in the current version of the Enactor French Fiscal Module, due to time constraints.
Both training mode and duplicate receipts have complex fiscal requirements in France and it has been incorporated in the second version of the fiscal module.
Limitations
Although Enactor offers a hospitality module this is not certified for use in France at present. The Accounting functions that are covered by the NF525 documentation are not provided by the Enactor solution and therefore have not been certified.
Configuration Overview
The following configuration changes are required and must be broadcast to all French devices in preparation for go live. Detailed steps for how to do this are contained in supplementary How to Guides available on the Enactor Insights portal, as well as being covered in the Introduction to Enactor training course. Although steps have been taken to ensure that the POS will not start or perform transactions without a valid configuration it is the retailers responsibility to ensure a valid configuration is present and not to try to circumnavigate any of the requirements of the French Fiscal Legislation through misconfiguration of the solution.
A limitation of the regulations is that a transaction must not be recorded in the archive with a timestamp that predates the latest transaction. This will not present a problem for the solution during normal operation. However, if a transaction is performed on a POS that has its system time incorrectly set in the future, when the time is corrected it will not be possible to perform a transaction on that POS until the correct system time has passed the time of the last transaction. For this reason we strongly recommend the POS device OS is set to synchronise its time with a reliable time server, prior to the installation of the Enactor solution.
Groups
Group Type | Group ID | Group Name |
---|---|---|
Menu | FR | France |
Region | FRANCE | FRANCE |
Tax Region | FRANCE | FRANCE |
Price | FRANCE | FRANCE |
Menu Group:
Region Group:
Tax Region:
Price Group:
Tax Configuration
Tax Groups
The following tax groups should be configured and broadcast to the appropriate French devices.
Tax Group ID | Description |
---|---|
FR1 | FR Tax Group A |
FR2 | FR Tax Group B |
FR3 | FR Tax Group C |
FR4 | FR Tax Group D |
FR5 | FR Tax Group E |
Tax Scheme
The following tax scheme should be configured and broadcast to the appropriate French devices.
Tax Scheme ID | Description |
---|---|
FRANCE | FRANCE Tax Scheme |
Tax Rates
The following tax rates should be configured and broadcast to the appropriate French devices.
Tax Rate ID | Description | Display Code | Percentage | Fiscal Tax Rate Reference | |
---|---|---|---|---|---|
FR-1 | Standard VAT - 20% | 20% | 20% | 1 | |
FR-2 | Reduced Rate 10% | 10% | 10% | 2 | |
FR-3 | Reduced Rate 5.5% | 5.50% | 5.50% | 3 | |
FR-4 | Reduced Rate 2.1% | 2.10% | 2.10% | 4 | |
FR-5 | Zero Rate - 0% | 0% | 0% | 5 |
Tax Region
If it does not already exist, a Tax Region for France should be created within the Tax Region Group Hierarchy. It should have the ID: “FR” and the Name: “France”, it is not necessary to configure an External Reference ID.
Tax Group Tax Methods
The following tax group tax methods should be configured and broadcast to the appropriate French devices.
Tax Group ID | Tax Scheme ID | Description | Tax Rate |
---|---|---|---|
FR Tax Group A | France | Standard VAT - 20% | Standard VAT - 20% |
FR Tax Group B | France | Reduced Rate 10% | Reduced Rate 10% |
FR Tax Group C | France | Reduced Rate 5.5% | Reduced Rate 5.5% |
FR Tax Group D | France | Reduced Rate 2.1% | Reduced Rate 2.1% |
FR Tax Group E | France | Zero Rate - 0% | Zero Rate - 0% |
POS Terminal Template
The POS Terminal Template used by all devices in France must be configured to have the fiscalisation Type set to France. Currency should be set to Euros and Locale to French. If a POS terminal configuration with the fiscalisation type set to France is broadcast to a POS device that does not have the French fiscal module installed the POS will fail to start. Similarly if a POS device with the French fiscal module installed is configured with anything but the French fiscalisation type the POS will also fail to start. This is to ensure that only versions of the enactor solution that have been certified for use in France are used in France.
Field Description | Value | Comment |
---|---|---|
Fiscalisation Type | France | General Tab, select from dropdown menu. |
Receipt Printer Type | Test Printer | Peripherals Tab - Output sub-tab, select from dropdown menu. |
Primary Receipt | Fiscal Standard Receipt 44 Col | Printing Tab, select from dropdown menu. |
Print Tax Details on Receipt | True | Printing Tab - Flags Tab, select from dropdown menu. |
Tax Region | FRANCE | Tax Tab, select from dropdown menu. |
Tax Scheme | FRANCE Tax Scheme | Tax Tab, select from dropdown menu. |
Offer to email the receipt | True | Printing Tab → Flags tab |
General Tab
The primary Receipt should be set to Fiscal 44 Standard Receipt and no sale receipt should be set to Fiscal No Sale 44 Col.
Peripherals Tab
Printing Tab
The ‘Print Tax Details on Receipt’ flag within Printing > Flags should be ticked.
Within the Tax section the Tax region should be set to France and the tax scheme to the French tax scheme configured in the previous section.
Tax Tab
Location
Create a new Location with the following details.
Location ID | Name | Region | Price Group | Base Currency |
---|---|---|---|---|
FR0001 | Enactor Store France | FRANCE | France (All Regions) | Euros |
The VAT number should be configured to the retailers intra community VAT number. The fiscal location reference should be configured to the SIRET for that location.
Device
Create a new Device for the FRANCE Region.
Location | Type | Device | Host Name | Http Port | RMI Port |
---|---|---|---|---|---|
Enactor Store France | POS | pos1@FR0001.enactor | localhost | 8080 | 2099 |
User
Create a new user for FRANCE.
User Role
Create the following user roles for FRANCE and enable the related function names.
Privileges
The following privileges will need to be configured against the appropriate roles and broadcast to the French devices. Consideration should be given to whether it is desirable for all operators to have all of these privileges or if some should only be granted to managers. For more detail on Privileges and roles refer to the How-To Guide Configuring User, User Roles and User Templates
Privilege ID | Application Package |
---|---|
enactor.admin.Run | Enactor POS |
enactor.pos.RequestSimpleFiscalInvoiceAllowed | Enactor POS |
enactor.pos.ReprintArchiveAllowed | Enactor POS |
enactor.pos.AuthorisesReprintArchive | Enactor POS |
enactor.pos.AuthorisesToggleTraining | Enactor POS |
enactor.pos.ToggleTrainingAllowed | Enactor POS |
enactor.pos.AllowReturnTaxRefundItemAlreadyRedeemed | Enactor POS |
enactor.pos.fiscal.PrintInvoiceFromArchiveAllowed | POS Fiscalisation |
enactor.pos.fiscal.AuthorisesPrintInvoiceFromArchive | POS Fiscalisation |
enactor.pos.AuthorisesPrintFiscalReports | POS Fiscalisation |
enactor.pos.PrintFiscalReportsAllowed | POS Fiscalisation |
enactor.fiscalInformationDetails.Run | POS Fiscalisation |
Account Credentials
Account credentials will be provided by enactor since they contain a pre-encrypted version of the private key which must not be disclosed to the retailer. For completeness below is included a description of all the properties this account credential record will contain.
Value | Description | Comments |
---|---|---|
NAF | The retailers NAF code | This number is used to identify the sector the business operates in. |
PRIVATE_KEY | The private key used to sign transactions, JET Events and the Tax Archive. | The key is encrypted with the Enactor System key and is therefore not readable or editable. Enactor will provide this to all customers. |
PRIVATE_KEY_VERSION | The version of the private key. | Enactor does not currently support modifying the private key but this feature will be added in a future version. This value will be used to manage that process. |
SIREN_NUMBER | The retailers SIREN number. | Once this number has been used it is not possible to change it without recreating all POS devices since it can’t change in a signature chain. |
Menu
Sale Menu
Sales:
Management:
France Fiscal Information Details Screen
Users should have the Privilege - “enactor.fiscalInformationDetails.Run” in order to view this screen.
The screen contains the Fiscalisation Version, Fiscalisation Certificate No, Fiscal Application Name, Standard, NF Category and NF525 logo.
Tender Menu
Tender
Create the relevant Tenders for France and Currency as Euros.
Reason
Create new reasons for the region FRANCE under the following reason types.
Product
Product Tax
The following tax configurations should be configured againts the products and broadcast to the appropriate France devices.Tax group can be defined to either configure the tax group or have a tax group by tax region.
Product price
JET Event Exporter
- Log in to the Estate Manager.
- Navigate to Operations → Fiscalisation → Fiscalisation Exports.
- Configure the button as follows.
Menu
Tax Archive Validator
- Log in to the Estate Manager.
- Navigate to Operations → Fiscalisation → Fiscalisation Reports.
- Click on ‘Add’.
- Choose ‘Add a new Execute Process Item’.
- Configure the button as follows.
Menu
Tax Archive Exporter
- Log in to the Estate Manager.
- Navigate to Operations → Fiscalisation → Fiscalisation Reports.
- Click on ‘Add’.
- Choose ‘Add a new Execute Process Item’.
- Configure the button as follows.
Menu
Diary
Create a new System Job with the following details.
Disaster Recovery
In the case of a disaster regarding a POS terminal, when rebuilding the POS a new POS ID must be issued.