Functionalities of the POS system
This document provides information concerning the audit of the cash register data for the tax office. The information applies to the regular operation of the cash register. In some rare cases, it is possible that errors caused by components from other manufacturers or in our own software may lead to exceptional situations that may deviate from the answers given in this documentation.
Architecture of Flexybox
Flexybox works offline without needing an active internet connection. A single on-premise server/desktop is installed locally inside the business location that stores and processes all data (alternatively a cloud server can be used which serves the same purpose).
Mobile clients act an extension of the User interface that must work alongside the server/desktop. In other words, the server act as the sole master and the mobile clients acts as the slaves, which forms the master-slave architecture.
A single Fiskaly TSE module is connected to and managed by the server/desktop.
If the internet connection is lost the TSE will not function.
Model 1. Visualizing the architecture of Flexybox.
Transaction types
Flexybox consists of 4 types of transactions that will be signed
Sales / Invoices
Customer payments
Payments
End of day
Sales / Invoices
A Sale / invoice is created each time something is paid and a sales receipt is generated.
These happens when a customer makes a purchase from the store.
Charged to customers account
A sale might be charged to a customers account and hence paid at a later time.
This will show up as a Forderungsentstehung in the lines.csv file
Giftcertificates
If a GiftCertificate/Voucher is purchased or redeemed the transaction is recognized as such based on the products used for the sale or redemption.
These are selected when configuring the GiftCertificateType.
Discounts
Discounts can be applied on a product or receipt level.
When discounts are applied on the product level the discounts are recognized as such and can be found in the DSFinV-K export as a discount.
If Discounts are receipt level an additional line will be added to the sale with a negative amount, still marked as a discount.
Voiding / cancelling sales
Sales are immutable and cannot be changed in any way once completed.
When a TSE is active only voids that are available are full voids of full receipts.
When voiding a sale a link will be established to the voided sale.
Customer payments
A customer payment is created if a customer pays an outstanding bill or a deposit payment is made for a future service.
This can be done either from the invocing system or from the customers account.
Transactions might also be made via a direct integration or manually.
In all situations the transaction will be signed.
Payments
Payments will be used for anything that is not a customer purchasing something from the business.
This could be Withdrawals, Money deposits, Salary payouts, Purchases.
The mapping of these payments are done as explained here.
End of day
End of day happens when the staff chooses to close the day.
When this happens they will count the cash and ensure data is correct, once the day is closed it cannot be altered in anyway.
At this time the Cashdifference and End of day cash balance is signed and sent to the TSE.
Numbering
Each of the above types have a Database generated id which ensure a continous numbering within their type, however to ensure all transactions have a continous number across all types; a transaction / signing table is used.
This tables database generated id is used as the actualy receipt id for all signed transactions and is also the one send to Fiskaly as the both the Transaction Export id and also the BON_NR.
Data rentention
All data saved to the system is saved permanently, thus all invoices, receipts, vouchers etc can be retrieved from the system at any time.
Only exception is GDPR compliance where data is anonymized and thus customer data will be removed using the configured anonymization rules.
Z-Reports
All Z-Reports can be viewed using the reporting engine within Flexybox and can be exported using the Fiskaly backend in DSFinV-K format for any given period.
Setup of the cash register
The initial loadout of FlexyBox
During the initial installation of Flexybox, initial settings are provided to assist the user in getting started.
These are as follows:
Two pre-installed user groups:
Administrator
Manager
User
Payment methods:
Cash
Card (integrated)
Bank transfer
Cash register setup and programming protocols
The operator can fully set up the Flexybox cash register themselves. Alternatively, they can commission Flexybox with the initial setup. In doing so, Flexybox sets up the products, payment methods, pos interface incl. order processes according to the operator's specifications.
The operator is responsible for checking the accuracy and completeness of the changes made by Flexybox and correcting them if necessary.
The operator is responsible for the accuracy and completeness of the settings made in the cash register. Each change in the settings is recorded and logged in the log.
Thus, the log serves as a programming protocol and is therefore part of the operational documentation.
User and admin manuals
All user and admin manuals are available live at https://help.flexybox.com.
This allows the user guidance on how they can configure the system on their own.
Providing an online TSE
Flexybox can be equipped with an online TSE (Technical Security Device) via a cloud-based solution. Clients of Flexybox can request the activation of the online TSE at a cost through the sales department in Flexybox associated with the cash register app. To ensure compliance with KassenSichV regulations, the Flexybox client must be updated to at least version 24.1.
Contact details of the provider of the online TSE:
The online TSE is developed and provided by our partner fiskaly and is integrated into Flexybox via an interface.
fiskaly Germany GmbH Zeilweg 4 60439 Frankfurt am Main HR Nr: HRB 117187 Owner: fiskaly GmbH.
Certification ID of the online TSE
The TSE provided by fiskaly has the certification number BSI-DSZ-CC-1130-V3-2021. Further information about the current status of the certification process can be obtained on the BSI website under "Products undergoing certification". The certification ID of the TSE will be provided as soon as it is available to us.
Compliance with KassenSichV
Flexybox integrates with fiskaly and uses the fiskaly product for both TSE and DSFinV-K exports.
The user needs to connect the fiskaly system to Flexybox - this is done during the onboarding of the system to ensure compliance.
Once activated all transactions are signed using the TSE and will be available for exported through the fiskaly UI.
Export of TSE and DSFinV-K
To export the data from the TSE or in DSFinV-K format, the user must log in to the fiskaly dashboard and select the requested time period.
Once the export is done it can be downloaded in ZIP format.
Reporting obligation for cash registers
The reporting obligation for cash registers has been postponed by the legislator until further notice. Currently, there is no possibility to report the operation of the Flexybox electronically (As of 14-04-2024).
Once ready we will use the Fiskaly reporting functionality to ensure electronic reporting.
Signing of receipts
Flexybox uses the QR code for all pos reciepts to ensure the required information is always available, the QR code is generated by the Fiskaly TSE and simply printed on the reciept as soon as the receipt has been signed.
Failure of TSE module
A temporary failure of the TSE, for example due to a network connection problem or a technical error in the execution of the TSE itself, will be reported on the invoice printout as follows:
!!! TSE FEHLER !!!
Any failure in the TSE will be reported directly to the Flexybox team which will start troubleshooting to ensure a continously active TSE.
Operation of Flexybox with an activated Fiskaly TSE
Once the TSE is active all pos transactions are stored securely in the fiskaly TSE as well as the POS database.
All transactions signed by the TSE and it is signature ensures data protection and data integrity.
Changes to Store Data
The store master data is linked to the user’s license and is managed by Flexybox.
The store master data cannot be changed by the user themselves.
The master data includes:
Name and address of the establishment
Name, telephone number and e-mail address of the contact person provided by the user
Tax number
If a user need to update their master data, then it has to be updated by the Flexybox support team.
Implementation of the invoice receipt obligation
It is possible for Flexybox users to finish the payment process and settle an order without printing an invoice (by choosing to disable automatic receipts).
Users are advised that they must be able to show an exemption from the invoice requirement for this. It is the sole responsibility of the user whether they disable invoice printing or not.
Malfunctions in the operation of TSE and DSFinV-K export
This section lists the bugs found in the implementation of TSE integration and DSFinV-K export.
As soon as the bugs were identified, they were fixed and a new version was released with the fix.
The following table can be used to track the malfunctions and when the issue was resolved on what version.
Issue | Fixed in |
The automatic export of data to Fiskaly DSFinV-K was not functional. | 24.1.112 |
TSE: Sales were signed with the TaxAmount instead of the full amount for each tax level | 24.1.112 |
TSE: Cash difference and customer payment (invoice payments) were not signed Solution: The new version retroactively signs all payments and cashdifferences | 24.1.112 |
TSE: All long running transactions were send at the time of the customer paying their bill. Solution: The system now continously, as soon as a product is entered into the POS signs the transactions (Bestellung-V1) | 24.1.112 |
Fixed edge cases and added BusinessDate to all DSFinV-K data and reuploaded to ensure all data is available for export when requested. | 24.1.272 |
Change ReceiptId to be a consecutive number used only for signed transaction and not "orders". | 24.2.213 |
Fix issue where days were signed before being closed resulting in the inability of counting the end of day cash. Ensure the new ReceiptId is also used in the legacy receipt overview to align with the new Receipt overview and the DSFinVK export | 24.2.248 |