Skip to main content

πŸ‡©πŸ‡ͺ Germany

This document describes all necessary configuration for a compliant setup in Germany.

Local mode support

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.

Fiskaly fees

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:

SettingValueOrganization unitDescription
Auditing:ProviderGERMANY or DEFAULTGERMANY 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:IdentifierProvided upon requestContainer OUThe Identifier of the Management API of Fiskaly
Auditing:FiskalyManagement:ApiSecretProvided upon requestContainer OUThe password for the Fiskaly management API
Auditing:FiskalyManagement:ApiKeyProvided upon requestContainer OUThe Fiskaly management API key
Auditing:FiskalyManagement:OrganizationPrefixProvided upon requestContainer OUA prefix that can be set before the store name within Fiskaly. For example EVA - Berlin
tip

Once an account is properly set up, you can access the Fiskaly dashboard at https://dashboard.fiskaly.com/.

Checking missed configuration(s)

Once you're done with all configuration steps. Make sure to run the service: AuditingValidateConfiguration which should return any step(s) that you may have missed or possibly undocumented.


Setting for Fiskaly offline (testing purposes only)​

danger

This setting is for testing purposes only.

Using this setting will simulate an offline Fiskaly scenario, and accordingly force transactions offline.

SettingValue
Auditing:FiskalyKassenSichV:Hosta 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.
note

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.


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
note

The following fields are synced to Fiskaly:

Name in EVACorresponding name in Fiskaly
VAT NumberVAT Number
Registration NumberW-IdNr.
Fiscal IDTax 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
note

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:

HierarchyFiskaly organization typeNameBilling detailsDescription
1Non ManagedNew BlackNew Black CompanyOur company account. All New Black customers that are active in Germany will be linked to this account for billing purposes.
2Non ManagedYour company nameNew BlackTo link the billing details to us
3Managedyour store nameYour company nameEach store will have its own managed organization within Fiskaly. The billing details are linked to the non managed organization unit(s).
note

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.

Warning

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
JavaScript
<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.

note

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.

danger

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.
note

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.

note
  • 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.

Sample PDF and thermal receipts