🇨🇭 Switzerland
This document describes all necessary configuration for a compliant setup in Switzerland.
Configuration
In order to configure your store in Switzerland to be compliant, the following configurations need to take place.
Settings
All settings below should be set on the most convenient level possible. In other words, if your organization structure has a country organization which houses all Swiss stores, then that's where they should go.
Setting | Value | Organization unit | Description |
---|---|---|---|
Auditing:Provider | CH | CH on store OU's when go-live is in phases or on country level when big bang go live. | Sets the certified aspects |
UseInvoiceOutputFacade | true | Root level or container level | Attaches the Certified Invoice PDF when emailing the Invoice from POS &/or Companion App. This setting enables the use of the CertifiedInvoice stencil with destination Mail |
Auditing:UseInvoiceCloning | true | Root level or container level | Used to create a duplicate of an original invoice whenever a customer is attached or mutated |
Auditing:PublicKeyBlobID | - | Root level or container level | ID of the blob that was uploaded that contains the public key. Note: we can provide a service to generate it for you |
Auditing:PrivateKeyBlobID | - | Root level or container level | Part of the key-pair used in your public key blob setting |
Auditing:EnforceTransactionValidation | true | Root level or container level | Enforces validation to happen during the transaction to prevent obvious configuration mistakes |
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.
Public and private key
You'll need to reach out to us to generate a public and private key. Once you have these, you can follow the steps below.
Private key
To set the private key the service AuditingSetPrivateKey can be used. This will upload the private key file and also increment the version setting automagically. It will also update the setting Auditing:PrivateKeyBlobID
. We will have this setup done for you at the start of the project.
Public key
The public key should be uploaded to EVA via the StoreBlob
service. Please note that the blob needs to have an "OriginalName" otherwise, it'll expire immediately. We will get this done for you at the start.
The public key should be shared with the authorities whenever they ask for it, so they can verify signatures.
Infrastructure
Cosmos DB will be setup by us, as this is required to keep track of the technical event log and the X/Z reports. If this is not set up, you won't be able to see any details in de technical event log section of EVA Admin.
Company
When configuring your Swiss organization unit(s), a company needs to be attached. If there is no Swiss 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
Organization unit(s)
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)
- 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 Swiss company you created/have. This is the legal entity under which this OU/store is operating and will be referred to when filling in the details on the invoices and receipts.
Stations
You can find steps on adding a new station here.
When creating a station, make sure the following fields are filled in:
- Station name.
- The checkmark
This station is a fiscal station and will be used for transactions
needs to be checked.
All payment types must have a category, otherwise the payment can't be correctly mapped, and Ship Orders would fail.
Tasks
The following two tasks need be set up from Admin 1.0 under Management → Tasks.
Financial period audit
The CreateFinancialPeriodAuditTask
should be configured every second day of the month at 04:00. This task will basically do an automated generation of an audit file, which you can also trigger manually from the Audit files chapter of Admin Suite.
The following fields need to be set:
- Name - (can be any unique name you want).
- Cron:
0 4 2 * *
- Arguments
- Type - (can be left blank).
- Organization unit - (the ID of the country of the Swiss OU).
- Email address - (In case of task failures the email address you mention here will receive a notification. This is an optional field but quite handy).
Financial reporting period
The CloseFinancialReportingPeriodsTask
should be configured every night at 03:00. This task will check and close reporting periods (months, years, fiscal years).
The following fields need to be set:
- Name - (can be any unique name you want).
- Cron:
0 3 * * *
- Type - (
1
for shops2
for webshops) - Email address - (Again, this is an optional field but quite handy in case the task run fails).
Unlike the financial period audit task, this task does not require an organization unit. It will simply look at all the automatically opened reporting periods and make sure to close them.
Stencils for certified invoices
Switzerland is a multilingual country therefore, there are multiple CertifiedInvoice
stencils present. Currently, there is a stencil in French, German, English, and Italian. These can be recognized by the Country CH
and the language fr
, de
, en
or it
in the stencil module of EVA. Based on the set language on the organization unit, the corresponding language template will be used.
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.