Fiscal device (Bulgaria)
Updated on 2026-11-04
Settings → Integrations → Bulgaria → Fiscal device
In Bulgaria, every sale you receive in cash, by voucher or by card requires a fiscal receipt (Наредба Н-18). With this integration, every payment that requires a receipt gets a row on a list. You print the receipt on your own fiscal device through a small program on the reception PC, or you enter the number of the receipt from your own till.
The receipt remains the legal obligation of the hotel. You buy the device and register it with НАП yourself. BedFlow does not replace a fiscal device and is not on the НАП list of sales software (СУПТО). If you have already chosen listed software for this site, only that software may manage your sales: speak to your accountant before you switch on this integration.
The tile only appears for a property in Bulgaria and is off by default. This is not tax advice: check your way of working with your accountant.
Which payment gets a receipt?
| Payment | Receipt? | In BedFlow |
|---|---|---|
| Cash | Yes | Row on the list, to the device |
| Card at reception | Yes. The slip from the payment terminal is not a receipt | Row on the list, to the device |
| Voucher | Yes | Row on the list, to the device |
| Online card: payment link, widget, bar QR, gift voucher | Yes | Row on the list, to the device |
| A booking channel's card that you charge yourself | Probably yes, НАП has not confirmed this | Row on the list; you can switch this off |
| Bank transfer, deposit into an account | No | No row |
| Payout from Booking or Airbnb to your bank account | No НАП text found | No row |
| Other, offset security deposit | You decide | Row To review, never goes to the device by itself |
An online card payment also requires a receipt. The fact that the guest pays online and the money comes through Stripe or Mollie changes nothing: the way of paying decides. The receipt is ready at the moment of payment and is printed as soon as the agent is connected. If you sell online through your own website, also ask your accountant whether you must report that to НАП as an електронен магазин (art. 52м).
Switching it on
- Open the Fiscal device tile with Configure.
- Switch on Keep track of fiscal receipts for this property. Payments from before this moment do not require a receipt in BedFlow.
- Leave the two toggles under Online payments on, unless НАП tells you otherwise.
- If you print through BedFlow, add your device under Devices: a name, the model, the till number and the operator number. If you keep your own till, do not add a device.
- Click Save.
You cannot delete a device, only take it out of use: the receipts stay linked to it.
You keep your own till
Then you do not need an agent. Every payment that requires a receipt appears under Daily → Fiscal receipts → Payments without receipt. Make the receipt on your own till and click Enter receipt number: the number, the fiscal memory number and the date. You need that memory number if you later want a storno.
Installing the agent
The agent is a small program on the reception PC that is connected to the device. It fetches the receipts from BedFlow itself and prints them. No port is opened on your network and BedFlow cannot reach your PC.
What you need:
- a Windows PC (or Linux or Mac) that is on during the opening hours of the reception;
- a Datecs device from the X series: FP-700X, FMP-350X, FMP-55X, WP-500X, WP-50X, DP-25X or DP-150X, fiscalised and reachable through USB, serial cable or network. Daisy and older Datecs series do not work yet;
- Node.js 22 on that PC;
- the installation package: ask the team for it through support.
Installing:
-
Unpack the package into its own folder, e.g.
C:\BedFlowAgent. -
Open the Fiscal device tile and under Access for the agent click Create token. Copy the token straight away: you only see it once.
-
Copy
config.voorbeeld.jsontoconfig.jsonand fill in:Field What server_urlThe address of your BedFlow, with https://tokenThe token from step 2 toestel.verbinding{"soort":"serial","pad":"COM3","baud":115200}or{"soort":"tcp","host":"192.168.1.50","poort":4999}toestel.operator_wachtwoordThe password of the operator on the device. It stays on this PC toestel.tekst_breedteCharacters per line minus two: 30 on an FMP-55X, 40 on the others toestel.betaalsoortenWhich payment number on the device goes with which payment -
With a USB or serial cable: run
npm installin that folder. -
Test the connection:
node bin/bedflow-fiscaal-agent.js test-toestel config.json. You see the serial number and whether the device is ready. Nothing is printed. -
Start the agent:
node bin/bedflow-fiscaal-agent.js start config.json. -
Have it start by itself: in Windows Task Scheduler, create a task At log on with that command.
-
Look in the tile: your device shows agent connected and device ready.
Test run first. This connection follows the public manual from Datecs, but has not yet been checked on every model. Enter one small cash payment in your own name and check the receipt together with your service technician: the VAT group, the text in Cyrillic and the payment type. Do the same for a partial payment and a storno, before you serve guests.
Security: each device has its own token that only sees the receipts of that device, every message is signed, and the token is in config.json: give only the user of the agent access to that file. PC stolen or replaced? Click Revoke token. Receipts then wait until you create a new token.
The Fiscal receipts list
You find it under Daily → Fiscal receipts, with three views: Payments without receipt, Storno needed and All receipts.
| Status | Meaning | What you can do |
|---|---|---|
| To print | Waiting for the device or for your number | Enter receipt number |
| Printed | The device returned a receipt number | Storno |
| Failed | The device refused, or it is uncertain | Send to device, or enter receipt number |
| Manual | You entered the number from your till | Storno |
| To review | BedFlow does not decide this by itself | Send to device, enter receipt number or No receipt needed with a reason |
| No receipt needed | You established this, the reason is shown with it | |
| Cancelled | The payment disappeared before there was a receipt |
If it says Uncertain: check on the device, the connection dropped at a moment when BedFlow cannot know whether the receipt exists. Check on the device. If it is there, enter the number; otherwise you get a duplicate receipt.
Every hour, BedFlow compares the payments on the invoice with the receipts. A payment that escaped registration or whose method you changed appears as To review. If there is a receipt whose payment has disappeared, you see it under Storno needed. BedFlow then prints nothing by itself. A receipt is never deleted; the invoice and its amounts do not change because of this integration.
Partial payments
According to art. 26а of Н-18:
- Advance or partial payment: the receipt shows the amount in ЧАСТИЧНИ ПЛАЩАНИЯ, divided over the VAT groups as on the invoice, with the services as free text between
#characters. Program a department per VAT group on the device and fill in the numbers at the device in the tile; if you leave 0, there is no department. - Final payment: the receipt shows all services, then a value discount equal to what has already been paid, with the explanation between
#characters. An earlier bank transfer also counts towards this.
Storno
Open the receipt and click Storno. Choose the reason from art. 31 and the amount; more than what is on the receipt, minus earlier stornos, is not possible.
| Reason | When |
|---|---|
| Operator error | Until the 7th of the month after the error |
| Refund or complaint | At the moment you give the money back |
| Reduction of the tax base | At the moment you give the money back |
The storno itself states the number, date, time and memory number of the receipt. If you refund a guest through BedFlow, the storno with the reason Refund or complaint is on the list straight away. If you remove a payment, you must choose the reason yourself: that is a statement on a fiscal document.
If the memory number is missing on a manual receipt, the device cannot make a storno. In that case, make it on your own till and enter the number.
VAT groups and euro
| Group | Rate on the invoice |
|---|---|
| А | 0%, exempt or without VAT |
| Б | 20% |
| Г | 9% |
Any other rate on the invoice comes onto the list as To review. A receipt is in euro, like all amounts on a Bulgarian device since 01.01.2026. If your property uses another currency, BedFlow does not make a receipt.
What is not settled yet
НАП has not spoken publicly about this. Check it for your own hotel:
- the moment of the receipt with an online card payment;
- a booking channel's card and the payout from Booking or Airbnb;
- the receipt with an advance by bank and the rest at reception;
- a storno when refunding to a card or by bank.
If the answer changes anything, you flip the toggle concerned.
Problems
| What you see | What you do |
|---|---|
| agent not seen yet | Is the agent running? Is the token in config.json correct? Does the PC have internet? |
The agent reports klok |
The clock of the PC is off by more than five minutes: set it right |
| device not ready, paper or cover | Solve it at the device; the receipt prints by itself |
| a receipt is still open | Close or cancel it on the device |
| device clock is more than an hour off | The law allows two hours at most (art. 25 ал. 12). Set the clock on the device |
| Receipt Failed with a code | The code comes from the device. Look it up in the manual of the device or ask your service technician |
See also Payment handling per channel.