π©πͺ Germany
This document describes all necessary configuration for a compliant setup in Germany.
Local mode is currently not supported. Activating local mode is done at your discretion and risk. We strongly recommend conducting thorough testing of local mode before going live to ensure it aligns with your expectations.
If you require support for local mode in compliance countries, please submit a JIRA development ticket, namely a request for change.
Configurationβ
In order to comply with the German KassenSichV regulations, an integration with Fiskaly is required. Fiskaly is the leading cloud based fiscalization provider for the German market.
When using Fiskaly, additional fees imposed by Fiskaly will apply.
Settingsβ
In order to configure your store in Germany to be compliant, the following configurations are needed.
Furthermore: once an account is properly set up, you can access the Fiskaly dashboard at https://dashboard.fiskaly.com/.
Setting | Value | Organization unit | Description |
---|---|---|---|
Auditing:Provider | GERMANY or DEFAULT | GERMANY on store OU's when phased go live or country level when big bang go live. DEFAULT to be used on Ecom organizations like DGC, SOS & Consumer Apps in that country. | Sets the certified aspects |
Auditing:FiskalyManagement:Identifier | Provided upon request | Container OU | The Identifier of the Management API of Fiskaly |
Auditing:FiskalyManagement:ApiSecret | Provided upon request | Container OU | The password for the Fiskaly management API |
Auditing:FiskalyManagement:ApiKey | Provided upon request | Container OU | The Fiskaly management API key |
Auditing:FiskalyManagement:OrganizationPrefix | Provided upon request | Container OU | A prefix that can be set before the store name within Fiskaly. For example EVA - Berlin |
Once you're done with all configuration steps. Make sure to use the Validate audit configuration button to check if any compliance-related configurations or data is missing or successfully configured.
Setting for Fiskaly offlineβ
Using this setting will simulate an offline Fiskaly scenario, and accordingly force transactions offline.
Setting | Value |
---|---|
Auditing:FiskalyKassenSichV:Host | a dummy URL of your choice, such as https://www.google.com/ Ensure that the URL is valid and includes a protocol, 'www', domain name, and top-level domain. |
In test or live instances where Fiskaly is offline, the wording "TSS nicht verfΓΌgbar" (TSS not available) will be printed on the receipt where normally the "Signature QR code" would be.
This setting is for testing purposes only.
Settings for e-commerceβ
For e-commerce in Germany, we adopt a Default auditing provider.
This approach allows for fully customizable invoice templates according to customer preferences. Moreover, the sequencing of documents will adhere to a specific format: OU ID - Sequential Number
.
Please configure the following settings:
Auditing:Provider
- DEFAULTAuditing:UseOrganizationUnitSequence
- true
Note that you must also have the stencil template for the non-certified invoice configured.
There is no need for Fiskaly integration for E-com.
Companyβ
When configuring your German organization unit(s), a company needs to be attached. If there is no German company present yet on EVA, a new one should be created within Admin Suite under the Companies chapter. The following fields need to be filled:
- Name
- VatNumber
- RegistrationNumber
- Address (VisitorAddress)
- Street
- HouseNumber
- ZipCode
- City
- CountryID
The following fields are synced to Fiskaly:
Name in EVA | Corresponding name in Fiskaly |
---|---|
VAT Number | VAT Number |
Registration Number | W-IdNr. |
Fiscal ID | Tax number |
Company details are instantly synced to Fiskaly, no need to run the task to sync OUβs.
Create organization unit(s) in EVAβ
Once a company is in place, you need to attach it to an organization unit(s).
Make sure the following fields are filled when creating an organization unit:
- Name
- BackendID (store number)
- RegistrationNumber
- VatNumber (aka TaxRegistrationNumber)
- BranchNumber
- Address
- Street
- ZipCode
- City
- CountryID
- CompanyID
It is crucial that you have the CompanyID
field filled when creating the organization unit. You can retrieve this ID from the German company you created/have for Germany. This is the legal entity under which this Organization unit/store is operating and will be referred to when communicating respective details on invoices and receipts.
Create EVA organization units in Fiskalyβ
Every organization unit on EVA of type Shop
and is part of the German container, will need to be synched to Fiskaly to become a Managed Organization.
In order to keep a good overview of all the stores per client we've created a hierarchy within Fiskaly. The setup is as follows:
Hierarchy | Fiskaly organization type | Name | Billing details | Description |
---|---|---|---|---|
1 | Non Managed | New Black | New Black Company | Our company account. All New Black customers that are active in Germany will be linked to this account for billing purposes. |
2 | Non Managed | Your company name | New Black | To link the billing details to us |
3 | Managed | your store name | Your company name | Each store will have its own managed organization within Fiskaly. The billing details are linked to the non managed organization unit(s). |
Any changes made to the OU name or postal code in EVA, will instantly be synced to Fisklay.
Managing organization units in Fiskalyβ
In order to avoid unnecessary Fiskaly fees in scenarios where a store is closed, please mark the TSS (Technical Security System) as disabled in Fiskaly by deleting the organization unit in EVA.
Deleting an organization unit using the service DeleteOrganizationUnit will automatically set the TSS to disabled in Fiskaly.
When configuring in a testing environment, Fiskaly will erase all organization units that you've synced every two weeks. Once deleted, there is no means of restoration, and you cannot resync it; instead, you must reconfigure it in EVA by creating new OUs with new fiscal stations and applying the configuration settings to that OU, along with the synchronization task. If you're in a production environment, there's no need to worry.
Fiskaly Organization unit sync reportβ
In order to keep track of all the organization units that are being synced with Fiskaly and status of the sync, we've created an e-mail report.
To set this up a stencil configuration is required. Details as follows:
- Stencil type: Template
- Name: SyncStoresWithFiskaly
- Destination: Mail
- Content: Please copy and paste this in the content box
<html lang="en">
{#subject}German Fiskaly Sync{#/subject}
<head>
<title>Sync organization units</title>
<meta charset="utf-8" />
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
</head>
<body>
<div class="container">
<h2>Hello, here is your syncronization task report:</h2>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Is synced</th>
<th>Failure message</th>
</tr>
</thead>
<tbody>
{{for SyncMessages}}
<tr>
<td>{{>OrganizationUnitID}}</td>
<td>{{>OrganizationUnitName}}</td>
<td>{{>IsSynced}}</td>
<td>{{>ReasonOfFailure}}</td>
<td></td>
</tr>
{{/for}}
</tbody>
</table>
</div>
</body>
The email will contain a list of every OU of type shop
that is part of the Germany container and its respective status within Fiskaly (true for success or false for fail). If the sync result is false, a failure reason will be provided to ease traceability.
The sync task needs to be setup in order for this sync report to run.
Create stations in EVAβ
You can find steps on adding a new station here.
When creating a station, make sure the following mandatory fields are filled:
- Station name.
- The checkmark This station is a fiscal station and will be used for transactions needs to be checked if you want this station to be synced on Fiskaly.
Further, please leave the fields Proxy ID and Fiscal System ID empty, and station BackendID
is optional.
If a station is not marked as fiscal station or when the station is not synced to Fiskaly, you won't be able to create any transactions, and an error will be thrown back on our apps. Therefore, it is crucial that you check this box.
Tasksβ
Task can be set up from Admin 1.0 under Management β Tasks.
In order to sync all the EVA Organization Units to Fiskaly the follow task needs to be set up: EVA.Auditing.Germany.SyncGermanyOrganizationUnitWithFiskalyTask
, this task can be scheduled to run daily or once.
Within the task the following settings can be set:
- Name: A readable name for your task. Example:
SyncGermanyOrganizationUnitWithFiskalyTask
- Cron: A Cron of choice to let the task run at a certain interval. Itβs recommended to let this task run daily.
- ContainerID: If you want to sync all the stores from your container you can fill in the ID from your
Germany
container. It will sync all stores at once. This field is recommended if you want this task to run automatically every day. - ShopID: If you run this task once, you can add a specific Organziation Unit ID in here. For example to sync just one Organization Unit to Fiskaly. If you schedule this task to run daily, it's recommended to leave this field empty and only use the ContainerID field.
Please note that this task can only run, when the above EVA settings are present. An Organization unit needs to have a full address and needs to be of type shop
. If one of these details are missing, the Organization Unit will not sync to Fiskaly & will show up in the sync report if the report is configured.
DSFinV-K exportsβ
When an audit is requested, it would be quite handy to make use of the DSFinV-K exports.
Trigger an exportβ
The export will provide a set of .csv files according to DSFinV-K standard thus, compliant with financial regulations.
In order to trigger an export, navigate to the Fiskaly Dashboard β DSFinV-k, then click on trigger export.
- Only completed cash point closings will be considered for exports.
- Transactions that for whatever reason could not be signed (e.g. Fiskaly offline) are still added to the DSFinV-K export.
Download an exportβ
The exports can then be downloaded via the same Fiskaly Dashboard, so Fiskaly Dashboard β DSFinV-k.
Stencil for certified invoicesβ
German laws are very specific when it comes to receipts therefore, EVA has a predefined CertifiedInvoice
template in place which is automatically included.
For configuration and more details about Certified Invoices please refer to the general concepts section under Certified invoice stencil for thermal &/or PDF . A separate stencil is required to set up the email in which a certified invoice would be attached to. Configurations for such stencil can be found under Email invoice stencil.