Export
TSE Export
The local TSE hardware data export is mandatory in Germany - please find the official information here (status June 2024).
GET /control/exportTSE
Query
| Name | Value | Example |
|---|---|---|
| serial | Serial number of TSE device to export from | 6a99971695369a2a0... |
| from | Optional from date (yyyy-mm-dd) | 2000-01-01 |
| till | Optional till date (yyyy-mm-dd) | 2001-01-01 |
| target | Optional, name of target path | C:/temp |
Response Header
Content-type: Application/octet-stream
Content-dispositio: Attachment;filename=export.tar
Request Example
http://localhost:5618/control/exportTSE?target=C:/temp
TSE Backup Export
Export of TSE backup data (according to BSI TR-3153, zipped) from local transaction journal (/EFR/rn/…/jou).
GET /control/exportBackup
Query
| Name | Value | Example |
|---|---|---|
| serial | Serial number of TSE device to export from | 6a99971695369a2a0... |
| from | Optional from date (yyyy-mm-dd) | 2000-01-01 |
| till | Optional till date (yyyy-mm-dd) | 2001-01-01 |
| target | Optional, name of target path | C:/temp |
Response Header
Content-type: Application/octet-stream
Content-disposition: Attachment;filename=tse_backup.tar
Request Example
http://localhost:5618/control/exportBackup?target=C:/temp
GET /control/proof – Formal Proof of TSE Export File
For support purposes only. A downloaded TSE Export can be proofed with this method.
| Query | file | Path to local export.tar file to decode |
| Request Example | http://localhost:5618/control/proof?file=C:/temp/export.tar | |
| Response Header | Content-type | text/plain |
| Response | List of contained files, signature verification is performed using the preceding certificate (.pem) file |
DSFinV-K Export
The DSFinV-K is the description of an interface for the export of data from electronic recording systems for data carrier transfer (“Z3 access”) in the context of external audits and cash register inspections. It is intended to ensure uniform structuring and designation of the files and data fields, regardless of the electronic recording system used by the company. The company must make the data available on a suitable data carrier in accordance with the conventions of the DSFinV-K. Please read more details here (status June 2024). It can be triggered via EFR user-interface.
GET /control/exportDSFinVK
Query
| Name | Value | Example |
|---|---|---|
| RN | Optional Register Number, default: 'def' | 1_1 |
| from | Optional from date (yyyy-mm-dd) | 2000-01-01 |
| till | Optional till date (yyyy-mm-dd) | 2001-01-01 |
| target | Optional, name of target path | C:/temp |
| open | Optional, include current (open) day data; default true | open=false |
Response Header
Content-type: Application/zip
Content-disposition: Attachment;filename=export.zip
Request Example
http://localhost:5618/control/exportDSFinVK?from=2020-01-01&open=true
Fields
In the following table, all fields which should be sent by the POS are described. These fields will be included if a DSFinV-K export is triggered. The detailed descriptions can be found in ESR – "efsta Simple Receipt" Format. For a valid DSFinV-K export, all data which is present in the POS has to be sent to the EFR.
| Element | Attribute | Name | Datatype | Info / Example |
|---|---|---|---|---|
| ESR | efsta Simple Receipt | |||
| D | Date Time | DateTime | "2019-01-01T13:28:22" | |
| D0 | Date Time Start | DateTime | "2019-01-01T12:15:56" | |
| TL | Transaction Location | Text | "4012" | |
| TT | Transaction Terminal | Text | "7" | |
| TN | Transaction Number | Text | "450023" | |
| T | Total | Currency | "123.00" | |
| TaxN | Net Tax Flag | Boolean 0/1 | 1 | |
| Opr | Operator ID | Text | ||
| OprN | Operator Name | Text | ||
| DT | Document Type | Text | "Fiscal", "ticket", "invoice" | |
| DN | Document Number | Text | "4586548" | |
| NF | Non-fiscal Transaction Type | Text | "PAYIN" | |
| NFS | Non-fiscal Signed | Text | "TRAINING" | |
| Void | Void Transaction | Boolean 0/1 | 1 | |
| TP | Transaction Point | Text | "Tisch 5" | |
| PosA | Position Array | |||
| Pos / Dep / Vou / Adv / Tip / OpI | Position, Deposit, Voucher, Advance Payment, Tip, Open Item | <Pos> | ||
| PTY | Position Type (Mod, Dep, Vou, Adv, Tip, OpI) | Text | PTY="Dep" | |
| PN | Position Number | Text | PN="1", PN="*" | |
| IN | Item Number | Text | ||
| ID | Item Identity | Text | ||
| SKU | Stock Keeping Unit | |||
| Dsc | Description | Text | ||
| TaxG | Tax Group | Text | "B", "B N" | |
| Amt | Position Amount | Currency | "199.00" | |
| Qty | Quantity | Decimal | ||
| QtyU | Quantity Unit | Text | ||
| Pri | Unit Price | Currency | ||
| DE_FAKTOR | Factor | Decimal | ||
| Info | Information | Text | ||
| VouN | Voucher Number | Text | "685485689658" | |
| Dev | Input Device ID | Integer | "1" | |
| InH | Consumption inhouse | Boolean 0/1 | 0 | |
| Void | Void Position | Boolean 0/1 | 0 | |
| DE_AGENTUR_ID | Agency ID | Integer | "2654" | |
| Cat | Category ID | Text | "24" | |
| CatN | Category Name / Description | Text | "Getränke" | |
| RD | Reference Date Time | Reference attributes only for void/reversal or return-of-good positions | ||
| RTL | Reference Transaction Location | Reference attributes only for void/reversal or return-of-good positions | ||
| RTT | Reference Transaction Terminal | Reference attributes only for void/reversal or return-of-good positions | ||
| RTN | Reference Transaction Number | Reference attributes only for void/reversal or return-of-good positions | ||
| RPN | Reference Position Number | Reference attributes only for void/reversal or return-of-good positions | ||
| Mod | Modifier | |||
| PN | Position Number | Text | "1", "1-3", "*", "1 2 7" | |
| Dsc | Description | Text | ||
| Amt | Modifier Amount | Currency | "-50.00" | |
| Tip | Tip | |||
| PN | Position Number | Integer | "1" | |
| Dsc | Description | Text | ||
| Amt | Tip Amount | Currency | "1.36" | |
| TaxG | Tax Group | Text | "A" | |
| Lin | Print Line | |||
| PN | Position Number | Integer | "1" | |
| Dsc | Description | Text | ||
| LAmt | Line Amount | Text | ||
| PayA | Payment Array | |||
| Pay | Payment | |||
| Dsc | Description | Text | "Cash" | |
| Amt | Payment Amount | Currency | "735.00" | |
| UID | Unique Identifier | Text | ||
| PayG | Payment type group | Text | ||
| CC | Foreign Currency Code | Text | "CHF" | |
| FAmt | Foreign Amount | Currency | "808.32" | |
| TaxA | Tax Array | |||
| Tax | Tax Line | |||
| TaxG | Tax Group | Text | "A" | |
| Prc | Tax Percent | Decimal | "21", "0" | |
| Net | Excluding Tax | Currency | "165.29" | |
| TAmt | Tax Amount | Currency | "34.71" | |
| Amt | Including Tax | Currency | "200.00" | |
| Ctm | Customer | |||
| CN | Customer Number | Text | "983248" | |
| Cat | Category | Text | "Mitarbeiter" | |
| Nam | Name | Text | "Max Mustermann" | |
| Nam2 | Name 2 | Text | ||
| Adr | Address | Text | "Musterstraße 10" | |
| Adr2 | Address 2 | Text | ||
| Zip | Postal Code | Text | "12345" | |
| City | City | Text | "Musterstadt" | |
| Ctry | Country | Text | "DE" | |
| TaxId | VAT Number | Text | "DE123456789" |
Set Sales Header
There is the possibility to enter the sales header data for the POS or for the company, locations, terminals, devices and agencies. (see also EFR API chapter Cfg - Base data/company header data). This data will be added to the DSFinV-K export.
{
"Cfg":{
"Cmp":{"Nam":"NAME","Adr":"STRASSE","Zip":"PLZ","City":"ORT","Ctry":"LAND","TaxId":"USTID","DE_STNR":"STNR"},
"Loc":{"TL":"CV","Nam":"LOC_NAME","Adr":"LOC_STRASSE","Zip":"LOC_PLZ","City":"LOC_ORT","Ctry":"LOC_LAND","TaxId":"LOC_USTID"},
"Trm":{"TT":"1","SW":"KASSE_SW_BRAND","DE_SW_Version":"KASSE_SW_VERSION","HW":"KASSE_BRAND","DE_Modell":"KASSE_MODELL","Serial":"KASSE_SERIENNR"},
"Dev":[
{"_":"Dev", "Id":"1234", "HW":"TERMINAL_BRAND", "DE_Modell":"TERMINAL_MODELL", "Serial":"TERMINAL_SERIENNR", "SW":"TERMINAL_SW_BRAND", "DE_SW_Version":"TERMINAL_SW_VERSION"},
{"_":"Dev", "Id":"12345", "HW":"TERMINAL_BRAND", "DE_Modell":"TERMINAL_MODELL", "Serial":"TERMINAL_SERIENNR", "SW":"TERMINAL_SW_BRAND", "DE_SW_Version":"TERMINAL_SW_VERSION"}
],
"DE_Agentur": [
{"_":"Agentur", "Id":"123", "Nam":"AGENTUR_NAME", "Adr":"AGENTUR_STRASSE", "Zip":"AGENTUR_PLZ", "City":"AGENTUR_ORT", "Ctry":"AGENTUR_LAND", "DE_STNR":"AGENTUR_STNR", "TaxId":"AGENTUR_USTID" },
{"_":"Agentur", "Id":"1233", "Nam":"AGENTUR_NAME", "Adr":"AGENTUR_STRASSE", "Zip":"AGENTUR_PLZ", "City":"AGENTUR_ORT", "Ctry":"AGENTUR_LAND", "DE_STNR":"AGENTUR_STNR", "TaxId":"AGENTUR_USTID" }
]
}}
<Cfg>
<Cmp Nam="NAME" Adr="STRASSE" Zip="PLZ" City="ORT" Ctry="LAND" TaxId="USTID" DE_STNR="STNR" />
<Loc TL="CV" Nam="LOC_NAME" Adr="LOC_STRASSE" Zip="LOC_PLZ" City="LOC_ORT" Ctry="LOC_LAND" TaxId="LOC_USTID" />
<Trm TT="1" SW="KASSE_SW_BRAND" DE_SW_Version="KASSE_SW_VERSION" HW="KASSE_BRAND" DE_Modell="KASSE_MODELL" Serial="KASSE_SERIENNR" />
<Dev>
<Dev Id="TERMINAL_ID" HW="TERMINAL_BRAND" DE_Modell="TERMINAL_MODELL" Serial="TERMINAL_SERIENNR" SW="TERMINAL_SW_BRAND" DE_SW_Version="TERMINAL_SW_VERSION" />
<Dev Id="TERMINAL_ID" HW="TERMINAL_BRAND" DE_Modell="TERMINAL_MODELL" Serial="TERMINAL_SERIENNR" SW="TERMINAL_SW_BRAND" DE_SW_Version="TERMINAL_SW_VERSION" />
</Dev>
<DE_Agentur>
<Agentur Id="123" Nam="AGENTUR_NAME" Adr="AGENTUR_STRASSE" Zip="AGENTUR_PLZ" City="AGENTUR_ORT" Ctry="AGENTUR_LAND" DE_STNR="AGENTUR_STNR" TaxId="AGENTUR_USTID" />
<Agentur Id="1233" Nam="AGENTUR_NAME" Adr="AGENTUR_STRASSE" Zip="AGENTUR_PLZ" City="AGENTUR_ORT" Ctry="AGENTUR_LAND" DE_STNR="AGENTUR_STNR" TaxId="AGENTUR_USTID" />
</DE_Agentur>
</Cfg>
DSFinV-K Mapping
Stamm_Abschluss (cashpointclosing.csv)
The table Stamm_Abschluss contains all z-Reports including totals. The totals are calculated automatically by the EFR and do not have to be sent along. This table also contains the company's current data.
Eg. for z-Report:
<Tra>
<ESR TL="001" TT="1" TN="17" NFS="Z" D="2019-09-20T08:27:28"/>
</Tra>
| DSFinV-K | EFR | Comment |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be filled automatically | |
| Z_BUCHUNGSTAG (Character, 25) | ESR.D | Date of the Z-Report |
| Z_TAXONOMIE_VERSION (Character, 10) | Will be filled automatically. Currently 2.1 | |
| Z_START_ID (Character, 40) | Will be filled automatically | |
| Z_END_ID (Character, 40) | Will be filled automatically | |
| NAME (Character, 60) | Cfg.Cmp.Nam | |
| STRASSE (Character, 60) | Cfg.Cmp.Adr | |
| PLZ (Character, 10) | Cfg.Cmp.Zip | |
| ORT (Character, 62) | Cfg.Cmp.City | |
| LAND (Character, 3) | Cfg.Cmp.Ctry | ISO 3166 ALPHA-3 |
| STNR (Character, 20) | Cfg.Cmp.DE_STNR | |
| USTID (Character, 15) | Cfg.Cmp.TaxId | |
| Z_SE_ZAHLUNGEN (Numeric, 2) | ∑ ESR.PayA.Pay.Amt | Will be filled automatically |
| Z_SE_BARZAHLUNGEN (Numeric, 2) | ∑ ESR.PayA.Pay.Amt with PayG=0 (default) | Will be filled automatically |
Stamm_Orte (location.csv)
The table Stamm_Orte contains all locations of this client entered via /cfg call.
| DSFinV-K | EFR | Comment |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| LOC_NAME (Character, 60) | Cfg.Loc.Nam | |
| LOC_STRASSE (Character, 60) | Cfg.Loc.Adr | |
| LOC_PLZ (Character, 10) | Cfg.Loc.Zip | |
| LOC_ORT (Character, 62) | Cfg.Loc.City | |
| LOC_LAND (Character, 3) | Cfg.Loc.Ctry | ISO 3166 ALPHA-3 |
| LOC_USTID (Character, 15) | Cfg.Loc.TaxId |
Stamm_Kassen (cashregister.csv)
The Stamm_Kassen table contains all the master data of the POS systems entered via /cfg on which this cash register client was used over the course of its life.
| DSFinV-K | EFR | Hinweis |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| KASSE_BRAND (Character, 50) | Cfg.Trm.HW | |
| KASSE_MODELL (Character, 50) | Cfg.Trm.DE_Modell | |
| KASSE_SERIENNR (Character, 70) | Cfg.Trm.Serial or ESR.TL/TT | |
| KASSE_SW_BRAND (Character, 50) | Cfg.Trm.SW | |
| KASSE_SW_VERSION (Character, 50) | Cfg.Trm.DE_SW_Version | |
| KASSE_BASISWAEH_CODE (Character, 3) | Is fixed "EUR" | |
| KEINE_UST_ZUORDNUNG (Character, 1) | Is fixed empty (assignment is made) |
Stamm_Terminals (slaves.csv)
The table Stamm_Terminals contains all master data of the input devices (i.e. Orderman, Orderbird, input terminals in cloud-based systems) entered via /cfg call that were used to record transactions.
| DSFinV-K | EFR | Hinweis |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| TERMINAL_ID (Character, 50) | Cfg.Dev.Id | |
| TERMINAL_BRAND (Character, 50) | Cfg.Dev.HW | |
| TERMINAL_MODELL (Character, 50) | Cfg.Dev.DE_Modell | |
| TERMINAL_SERIENNR (Character, 70) | Cfg.Trm.Serial or ESR.TL/TT | |
| TERMINAL_SW_BRAND (Character, 50) | Cfg.Dev.SW | |
| TERMINAL_SW_VERSION (Character, 50) | Cfg.Dev.DE_SW_Version |
Stamm_Agenturen (pa.csv)
Agencies are companies for which payments are collected on their behalf. The table contains all companies that were entered using the /cfg call. Attention: The position line of the affected article must contain the reference to the agency ID.
| DSFinV-K | EFR | Hinweis |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| AGENTUR_ID (Numeric, 0) | Cfg.DE_Agentur.Id | |
| AGENTUR_NAME (Character, 60) | Cfg.DE_Agentur.Nam | |
| AGENTUR_STRASSE (Character, 60) | Cfg.DE_Agentur.Adr | |
| AGENTUR_PLZ (Character, 10) | Cfg.DE_Agentur.Zip | |
| AGENTUR_ORT (Character, 62) | Cfg.DE_Agentur.City | |
| AGENTUR_LAND (Character, 3) | Cfg.DE_Agentur.Ctry | ISO 3166 ALPHA-3 |
| AGENTUR_STNR (Character, 20) | Cfg.DE_Agentur.DE_STNR | |
| AGENTUR_USTID (Character, 15) | Cfg.DE_Agentur.TaxId |
Stamm_USt (vat.csv)
The standard VAT rates (19%, 7%, 10.7%, 5.5% and 0%) are automatically written into this table by the EFR. If other tax rates are transferred to the EFR service, this table will be automatically expanded.
| DSFinV-K | EFR | Hinweis |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| UST_SCHLUESSEL (Numeric, 0) | Will be assigned automatically | |
| UST_SATZ (Numeric, 2) | ESR.TaxA.Tax.Prc | |
| UST_BESCHR (Character, 55) | ESR.TaxA.Tax.TaxG |
Stamm_TSE (tse.csv)
Stamm_TSE contains all information received from the TSE.
| DSFinV-K | EFR | Hinweis |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| TSE_ID (Numeric, 0) | Will be filled automatically | |
| TSE_SERIAL (Character, 68) | Will be filled automatically | |
| TSE_SIG_ALGO (Character, 21) | Will be filled automatically | |
| TSE_ZEITFORMAT (Character, 31) | Will be filled automatically | |
| TSE_PD_ENCODING (Character, 5) | Will be filled automatically. Currently UTF-8 | |
| TSE_PUBLIC_KEY (Character, 512) | Will be filled automatically | |
| TSE_ZERTIFIKAT_I (Character, 1000) | Will be filled automatically | |
| TSE_ZERTIFIKAT_II (Character, 1000) | Will be filled automatically | |
| TSE_ZERTIFIKAT_III (Character, 1000) | Will be filled automatically | |
| TSE_ZERTIFIKAT_IV (Character, 1000) | Will be filled automatically | |
| TSE_ZERTIFIKAT_V (Character, 1000) | Will be filled automatically |
Z_GV_TYP (businesscases.csv)
| DSFinV-K | EFR | Hinweis |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| GV_TYP (Character, 30) | ESR.PosA.Pos.Pty or ESR.NFS | |
| GV_NAME (Character, 40) | Currently not supported by EFR | |
| AGENTUR_ID (Numeric, 0) | ESR.PosA.Pos.DE_AGENTUR_ID | |
| UST_SCHLUESSEL (Numeric, 0) | Will be assigned automatically | |
| Z_UMS_BRUTTO (Numeric, 5) | ∑ ESR.TaxA.Tax.Amt | Will be calculated automatically |
| Z_UMS_NETTO (Numeric, 5) | ∑ ESR.TaxA.Tax.Net | Will be calculated automatically |
| Z_UST (Numeric, 5) | ∑ ESR.TaxA.Tax.TAmt | Will be calculated automatically |
Non-fiscal transactions (NFS) are also written to this table with a tax rate of 0% (Not taxable). This is actually not correct since taxes are generally not applicable on non-fiscal transactions, but the field cannot be left blank. However, the "lines_vat" and "transactions_vat" tables are not populated for non-fiscal transactions. This can lead to differences.
Z_Zahlungsart (payment.csv)
| DSFinV-K | EFR | Hinweis |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| ZAHLART_TYP (Character, 25) | ESR.PayA.Pay.PayG | |
| ZAHLART_NAME (Character, 60) | ESR.PayA.Pay.Dsc | |
| Z_ZAHLART_BETRAG (Numeric, 2) | ∑ ESR.PayA.Pay.Amt | Will be calculated automatically |
Z_Waehrungen (cash_per_currency.csv)
| DSFinV-K | EFR | Hinweis |
|---|---|---|
| Z_KASSE_ID (Character, 50) | Cfg.Trm.Serial or ESR.TL/TT | ClientId can also be set in the EFR Interface |
| Z_ERSTELLUNG (Character, 30) | ESR.D | Date of the Z-Report |
| Z_NR (Numeric, 0) | Will be assigned automatically | |
| ZAHLART_WAEH (Character, 3) | ESR.PayA.Pay.CC | ISO 4217 |
| ZAHLART_BETRAG_WAEH (Numeric, 2) |