Fiscal Requirements
Features of EFR
The EFR serves as system interfacing to certified fiscal printers. It does not replace a fiscal printer, this is still needed to fulfil the requirements of Hungarian fiscal law. EFR keeps secure journals, as it does for other fiscal countries. Sales transactions have to be printed using the fiscal functions of the printer.
For this to work two elements have to be in place:
- a transaction, sent via REST web request to the EFR, which contains sales data, and
- a formatting file, which defines formal representation of this data.
POS Buttons
Following buttons must be included in the POS application to comply with HU fiscal law:
Ping Tax authority server
Buttontext: PING NAV SZERVER
URL: http://localhost:5618/peri/print/ping
Method: POST
Query: RN client to use, default "def"
On success EFR will display the mandatory text on the display:
KOMMUNIKÁCIÓS CSATORNA ÉL COMMUNICATION SUCCES
Enable USB mode
Buttontext: AEE USB MÓD BE
URL: http://localhost:5618/peri/print/usb-mode
Method: POST
Query: enable=1
RN client to use, default "def"
Disable USB mode
Buttontext: AEE USB MÓD KI
URL: http://localhost:5618/peri/print/usb-mode
Method: POST
Query: enable=0
RN client to use, default "def"
Print document list
Buttontext: Bizonylat-összesítő nyomtatása
URL: http://localhost:5618/peri/print/list
Method: POST
Query: ZI (Z-index)
RN client to use, default "def"
Other Printing Functions
Direct Printing
see EFR API Direct Printing
Reprint Fiscal Transaction
URL: http://localhost:5618/peri/print/reprint
Method: POST
Body: empty
Query: FN
RN client to use, default "def" This function invokes the reprint of a receipt on the fiscal printer.
Specific documents can be reprinted by specifying FN as query parameter.
Line Display
see EFR API Line Display
Cash Drawer
By default the cash drawer should be managed by the cash register application.
Open Drawer and Wait
see EFR API Open Drawer and Wait
Open Drawer
see EFR API Open Drawer
Poll Drawer
URL: http://localhost:5618/peri/drawer
Method: GET
Query: RN client to use, default "def"
Response
{"PeriDrawer":"1"}
or (when request header accept=text/xml is set):
<DrawerState>
<PeriDrawer>1</PeriDrawer>
</DrawerState>
until final closing
{"PeriDrawer":"0"}
Printer State
State varies between different printer models, fields ModuleName, ErrorCode, Warning and SimpleState are unified across different printers.
Printer State request
see EFR API Printer State
Response:
{
"ModuleName": "BBAS",
"SimpleState": {
"DayOpen": true,
"ZRequired": false,
"NextZRequired": "2023-09-19T14:20:59",
"DrawerOpen": true,
"PaperNearEnd": false,
"PaperEnd": false,
"CoverOpen": false,
"MemAlmostFull": false,
"MemFull": false,
"CertExpires": null
},
"Registered": "true",
"Assigned": "Assigned",
"CashRegisterCode": "Y07900042",
"StorageOnline": "true",
"PrinterWork": "true",
"MaxSpace": "13990848",
"FreeSpace": "13968864",
"DocPrintPending": "false",
"MiddlewareVersion": "adele-mid-hu-v0002-HF1",
"VAT1": "5.0",
"VAT2": "18.0",
"VAT3": "27.0",
"VAT4": "0.0",
"VAT5": "0.0",
"EuroMode": "Preparation",
"Preparation": "2020-09-15T10:39:09+02:00",
"Switch": "2020-09-30T10:38:09+02:00",
"TransitionEnd": "2020-10-24T10:38:09+02:00",
"Rate": "359.99",
"Drawer": "1",
"PaperEnd": "0",
"PaperNearEnd": "0",
"Cover": "0",
"NextDayClosingRequired": "2023.09.19 14:20:59"
}
Payment Types
It is possible to define different payment types in the Pay element with Pay.PayG.
Following payment types are possible:
PayG | Description |
---|---|
Cash | Cash payment |
Bankcard | Card payment |
ForeignCurrency | Foreign currency payment, e.g. Euro |
HealthCardPayment | Health card payment |
ERZSU | Elizabeth voucher |
SZÉCHK | Széchenyi card |
AJÁND | Gift card |
HŰSÉG | Loyalty card |
SMART | Smart card |
GÖNGY | Empties ref. |
KUPON | Coupon |
The values must be sent as PayG, e.g.:
<Pay Dsc="Card" PayG="Bankcard" Amt="9.99" />
If ForeignCurrency is used the foreign amount goes to FAmt and the currency rate goes to FRate:
<Pay Dsc="Cash EURO" PayG="ForeignCurrency" Amt="3775.00" FAmt="10.00" FRate="377.5" CC="EUR" />
VAT Handling
As in other countries transaction data is normalised upon registration (details see EFR rule set Tax Group Assignment). Tax rates are controlled via ESR.TaxA, Tax.Prc is used for eKasa or matched against the printer configuration.
Prc | Description | TaxG |
---|---|---|
27% | normal | A |
18% | reduced 1 | B |
5% | reduced 2 | C |
0% | AJT Adójegyes | D |
0% | TAM Tárgyi adómentes | E |
Specifics
Pay
Pay-ins and Pay-outs are done with NFS=”Pay” and amounts declared in PayA. Additionally a predefined reason must be defined as Rsn=”XX”. A detailed description and an example can be found in the country specific business cases Payment Transaction
Pay-in reasons
Rsn | Description |
---|---|
01 | Change pay-in |
02 | Cashier pay-in |
03 | Fee collection |
04 | Lottery ticket selling |
05 | Deposit |
06 | Cash shortage |
07 | Tip |
08 | Other pay-in |
Pay-out reasons
Rsn | Description |
---|---|
31 | SKIM |
32 | Cashier log-out |
33 | Voucher out |
34 | Gift card out |
35 | Salary payout |
36 | Wages payout |
37 | Post fee payout |
38 | Other costs |
39 | Buy goods |
40 | Closure amount payout |
41 | Other payout |
Opening Balance
It is mandatory after a Daily Closure to open the fiscal day with a NFS=”INI” transaction with the opening balance included as payments. A detailed description and an example can be found in the country specific business cases Opening Balance
Daily Closure
The fiscal printer's closure function ("Print Z Report") is invoked by sending a non-fiscal transaction with NFS=”Z”: Like in other country implementations tag NFS="Z" is required. A detailed description and an example can be found in the country specific business cases Z-Report / End of Day
Void/Return
Voids and returns are done by setting Pos.Amt to a negative value and referring to the original document by ESR.RFN. Additionally the date of the original document sent as ESR.RD, the customer data sent as ESR.Ctm and a reason as ESR.Rsn are required. A detailed description and an example can be found in the country specific business cases Void
Return reasons
Rsn | Description |
---|---|
V1 | Faulty goods |
V2 | Customer cancels the purchase |
V3 | Other |
Void reasons
Rsn | Description |
---|---|
S1 | Customer cancels the purchase |
S2 | Cashier: incorrect entry |
S3 | Cashier: incorrect currency entered |
S4 | Cashier: item out of stock |
S5 | Technical: incorrect document issued |
S6 | Technical: unsuccessful currency usage |
S7 | Technical: incorrect customer data/incorrect entry |
S8 | Technical: mystery shopping |
S0 | Other |
Healthcard
Not available in beta version.
Fuelcard
Not available in beta version.
NTAK
Under the terms of operative legislation, all domestic accommodation providers, catering establishments and tourist attraction operators must use software certified by the Hungarian Tourism Agency (HTA) which is suitable for reporting data to NTAK.
To report the relevant data to NTAK, include the NTAK item category on the Pos object:
<Tra>
<ESR TL="001" TT="1" TN="30" T="500">
<PosA>
<Pos PN="1" Dsc="Breakfast" Amt="500" TaxG="A" HU_NTAK="1001" />
</PosA>
<PayA>
<Pay Dsc="Cash" PayG="Cash" Amt="500"/>
</PayA>
</ESR>
</Tra>
NTAK categories
HU_NTAK value | Description HU | Description EN |
---|---|---|
1001 | Étel, reggeli | Food, breakfast |
1002 | Étel, szendvics | Food, sandwich |
1003 | Étel, előétel | Food, appetizer |
1004 | Étel, leves | Food, soup |
1005 | Étel, főétel | Food, main course |
1006 | Étel, köret | Food, garnish |
1007 | Étel, savanyúság/saláta | Food, pickles/salad |
1008 | Étel, desszert | Food, dessert |
1009 | Étel, snack | Food, snacks |
1010 | Étel, egyéb | Food, other |
2001 | Helyben készített alkoholmentes ital,limonádé/szörp/frissen facsart ital | Locally made non-alcoholic drink, lemonade/syrup/freshly squeezed drink |
2002 | Helyben készített alkoholmentes ital, alkoholmentes koktél | Locally made non-alcoholic drink, non-alcoholic cocktail |
2003 | Helyben készített alkoholmentes ital, tea/forrócsoki | Locally made non-alcoholic drink, tea/hot chocolate |
2004 | Helyben készített alkoholmentes ital, kávé | Locally made non-alcoholic drink, coffee |
2005 | Helyben készített alkoholmentes ital, víz | Locally made non-alcoholic drink, water |
2006 | Helyben készített alkoholmentes ital, rostos üdítő | Locally produced non-alcoholic drink, soft drink |
2007 | Helyben készített alkoholmentes ital, szénsavas üdítő | Locally made non-alcoholic drink, carbonated soft drink |
3001 | Alkoholos Ital, koktél | Alcoholic drink, cocktail |
3002 | Alkoholos Ital, likőr | Alcoholic drink, liqueur |
3003 | Alkoholos Ital, párlat | Alcoholic drink, distillate |
3004 | Alkoholos Ital, sör | Alcoholic drink, beer |
3005 | Alkoholos Ital, bor | Alcoholic drink, wine |
3006 | Alkoholos Ital, pezsgő | Alcoholic drink, champagne |
4001 | Egyéb, egyéb | Other, other |
4002 | Egyéb, szervizdíj | Other, service fee |
4003 | Egyéb, borravaló | Other, tips |
4004 | Egyéb, kiszállítási díj | Other, delivery fee |
4005 | Egyéb, környezetbarát csomagolás | Other environmentally friendly packaging |
4006 | Egyéb, műanyag csomagolás | Other, plastic packaging |
4007 | Egyéb, kedvezmény | Other, discount |