Belgium¶
Modules¶
The following modules are installed automatically with the Belgian localization:
Name |
Technical name |
Description |
|---|---|---|
Belgium - Accounting |
|
Belgian fiscal localization package, complete with the Belgian chart of accounts, taxes, tax report, and fiscal positions |
Belgium - Accounting Reports |
|
Module providing Belgian accounting reports |
Belgium - Accounting Reports - SMS |
|
Bridge module between Belgian accounting and SMS |
Belgium - Accounting Reports Client Nihil |
|
Extension for accounting returns in Belgium |
Belgian Intervat & Myminfin Edi |
|
Integration with Intervat and MyMinFin APIs, allowing the sending and receipt of electronic VAT declarations |
Belgium - Import SODA files |
|
Module to import SODA files |
Belgium - Import Bank CODA Statements |
|
Module to import CODA bank statements |
Belgium - Fiscal Categories Data |
|
Fiscal categories data |
Note
In some cases, such as when upgrading to a version with additional modules, it is possible that modules may not be installed automatically. Any missing modules can be manually installed.
Configuration¶
Install the Belgian fiscal localization package to get all the default accounting features of the Belgian localization, following the IFRS rules.
Chart of accounts¶
You can reach the Chart of accounts by going to .
The Belgian chart of accounts includes pre-configured accounts as described in the PCMN or MAR. To add a new account, click New. A new line appears. Fill it in, click Save, and then Setup to configure it further.
See also
Taxes¶
Default Belgian taxes are created automatically when the Belgium - Accounting and the Belgium - Accounting Reports modules are installed. Each tax impacts the Belgian Tax Report, available by going to .
In Belgium, the standard VAT rate is 21%, but there are lower rates for some categories of goods and services. An intermediate rate of 12% is applied on social housing and food served in restaurants, while a reduced rate of 6% applies to most basic goods, such as food, water supply, books, and medicine. A 0% rate applies to some exceptional goods and services, such as some daily and weekly publications, as well as recycled goods.
See also
Intervat¶
Note
Make sure the Belgian Intervat & Myminfin Edi (
l10n_be_intervat) module is installed on your database.When submitting your VAT returns, make sure to use XML or VAT format files. These are the only file formats accepted by Intervat.
Intervat is the electronic platform used to submit VAT returns to the Belgian tax authorities. You can file your returns directly from NightPOS using the Intervat integration.
To set this up, open the Accounting app, go to , and scroll down to the Taxes section. From there, select a Server Mode, enter your VAT Number, and select an Accounting firm if applicable.
See also
Non-deductible taxes¶
In Belgium, some taxes are not fully deductible, such as taxes on the maintenance of cars. This means a part of these taxes is considered as a non-deductible expense.
In NightPOS, you can configure non-deductible taxes by creating tax rules for these taxes and linking them to the corresponding accounts. This way, the system automatically calculates the taxes and allocates them to the appropriate accounts.
To configure a new non-deductible tax, go to , and click New:
Add a line and select Base in the Based On column;
Add a line, then select on tax in the Based on column and enter the non-deductible percentage in the % column;
On the of tax line, select the Tax Grid(s) related to your tax;
Add a line with the deductible percentage in the % column;
Set of tax in Based On;
Select 411000 VAT recoverable as account, and select the related tax grid.
Once you have created a non-deductible tax, you can apply it to your transactions by selecting the appropriate tax during the encoding of bills and credit notes. The system automatically calculates the tax amount and allocates it to the corresponding accounts based on the tax rules configured.
Example
With the Belgian localization, the 21% car tax is created by default (50% non-deductible).
Vehicle tax deductibility¶
Note
To see the tax deductibility of a vehicle, the Belgium - Disallowed Expenses Fleet
(l10n_be_account_fiscal_categories_fleet) module must be installed.
A vehicle’s tax deductibility rate varies depending on its type (car or bicycle) and several factors, such as fuel type, CO2 emissions, engine power, etc.
To view the tax deductibility percentage for a specific model, open the Fleet app, navigate to , and select a vehicle model. Locate the Tax Deduction field, which is found under the Engine section for cars, or the Vehicle Information section for bicycles.
Important
The Tax Deduction field is strictly informative and is computed automatically based on the vehicle’s specifications. It is not used for any automated calculations within the Accounting app and should not be confused with the tax rate deductibility used on tax grids. Instead, your accountant can reference this field to manually apply the correct deductible rate to invoices or disallowed expenses.
See also
Reports¶
Here is the list of Belgian-specific reports available:
Balance sheet;
Profit & loss;
Tax report;
Partner VAT Listing;
EC Sales List;
Intrastat.
You can access Belgian-specific versions of reports by clicking on the book icon when on a report and selecting its Belgian version: (BE).
See also
Disallowed expenses¶
Disallowed expenses are business costs that are not fully tax-deductible. While they count as business expenses in your accounting, tax laws do not allow you to use them to lower your taxable income.
The Fiscal Report tracks disallowed expenses and is available by opening the Accounting app and going to . This report provides real-time financial results and allows for periodic adjustments.
The report is generated based on fiscal categories, which can be managed by opening the Accounting app, activating the developer mode and going to . While several default categories are provided, you can create new ones by clicking New. Categories themselves do not contain rates. Instead, categories are linked to accounts via the Related Account(s) field.
Tip
If the Fleet app is installed, check the Requires a Vehicle box where applicable. This makes selecting a vehicle mandatory when logging a vendor bill.
In a multi-company environment, you can restrict the category to a specific company by selecting it from the Company dropdown menu.
To set a rate on an account, open the Accounting app and go to and open the account linked in the previous step. Under the Fiscal Rates tab, click Add a line and enter a Start Date and Fiscal Rate (%).
Thereafter, whenever an expense is recorded using this account, the disallowed expense amount is automatically calculated based on the rate specified in the Fiscal Rates tab.
Tip
You can add multiple rates for different dates. The system will automatically apply the correct rate based on the date the expense is recorded.
Restaurant expenses¶
Restaurant expenses are 69% deductible. To configure this, create a new Fiscal Category, specify its Related Account(s), then set the relevant fiscal rates on the respective related account(s).
Vehicle expenses: vehicle split¶
The deductibility percentage varies and must be defined individually for each vehicle in NightPOS. To do this, open the Fleet app and select a vehicle. In the Tax info tab, locate the Fiscality section and click Add a line under the Fiscal Deductibility field. Set the Start Date to indicate when the rate takes effect, and enter the corresponding Non-deductible (%). Note that, regardless of the deductibility percentage for each vehicle, expenses for all cars are recorded under the same account in NightPOS.
When creating a vendor bill for vehicle expenses, you can link each expense line to a specific vehicle by filling in the Vehicle column (accessible by clicking the (slider) icon beside Amount, then selecting Vehicle). This ensures the correct non-deductible percentage is applied.
To view the specific rates and disallowed amounts calculated for each vehicle in the Fiscal Report, enable the Vehicle Split filter (located under Posted Entries).
Fee form 281.50 and form 325¶
Fee form 281.50¶
Annually, a 281.50 fee form must be reported to the fiscal authorities. To do so, the tag
281.50 must be added on the contact form of the entities concerned by the 281.50 fee. To
add the tag, open , select the person or company you want to create a
281.50 fee form for, and add the 281.50 tag in the Tags field.
Note
Make sure the street, zip code, country, and VAT number are also informed on the Contact form.
Then, depending on the nature of the expense, add the corresponding 281.50 tag on the impact
accounts. To do so, go to , and click on Setup to add the corresponding 281.50 tag on the impacted
accounts, i.e., 281.50 - Commissions, depending on the nature of the expense.
Form 325¶
You can create a 325 form by going to . A new page pops up: select the right options and click Generate 325 form. To open an already generated 325 form, go to .
CODA and SODA statements¶
CODA¶
CODA is an electronic XML format used to import Belgian bank statements. You can download CODA files from your bank and import them directly into NightPOS by clicking Import file from your Bank journal on your dashboard.
See also
SODA¶
SODA is an electronic XML format used to import accounting entries related to salaries. SODA files can be imported into the journal you use to record salaries by going to your Accounting dashboard and clicking Upload in the related journal card form.
Once your SODA files are imported, the entries are created automatically in your salary journal.
CodaBox¶
CodaBox is a service that allows Belgian companies and accounting firms to access bank information and statements. NightPOS provides a way to import such statements automatically.
Configuration¶
To configure and use Codabox, first install the CodaBox module.
Configure the Connection¶
Important
Make sure the company settings are correctly configured, i.e., the country is set to Belgium and the Tax ID or Company ID field is filled.
Go to , then go to the CodaBox & SODA section.
Click on Manage Connection to open the connection wizard, which shows the Company VAT/ID number that will be used for the connection.
If this is your first connection, click on Create connection. The wizard confirms that the connection has been created on NightPOS’s side. Follow the steps to validate the connection on CodaBox’s side too.
If this is not your first connection, the Password provided by NightPOS during the first connection will be requested to create a new connection.
Note
This Password is unique to NightPOS and must be stored securely on your side.
Note
Accounting firms must manage their clients on separate databases and configure them individually to avoid mixing up their data. The connection must be made by an accounting firm with valid CodaBox Connect credentials. In the following instructions, we will refer to your client’s company as Company and to your accounting firm as Accounting Firm.
Important
Make sure the company settings are correctly configured, i.e., the country is set to Belgium, the Tax ID or Company ID and Accounting Firm fields are filled, as well as the Tax ID of the Accounting Firm.
Go to , then go to the CodaBox & SODA section.
Click on Manage Connection to open the connection wizard, which shows the Accounting Firm VAT number and the Company VAT/ID number that will be used for the connection.
If this is your first connection, click on Create connection. The wizard confirms that the connection has been created on NightPOS’s side. Follow the steps to validate the connection on CodaBox’s side, too.
If this is not your first connection, the Accounting Firm Password provided by NightPOS during the first connection will be requested to create a new connection.
Note
This Accounting Firm Password is unique to NightPOS and must be stored securely on your side.
The Status should have now switched to Connected.
Configure the journals¶
Set the right IBAN in the Account Number field.
Select CodaBox synchronization as the Bank Feed.
Tip
When working with bank transactions that use different currencies, it is recommended to create multiple journals with the same bank account but different currencies.
Create a new miscellaneous journal.
Go to , then go to the CodaBox section.
Select the journal you just created in the SODA journal field.
Synchronization¶
Once the connection is established, NightPOS can be synchronized with CodaBox.
CODA files are automatically imported from CodaBox every 12 hours. You do not have to do anything. However, if you wish, it can also be done manually, by clicking on Fetch from CodaBox in the Accounting Dashboard.
SODA files are automatically imported from CodaBox once a day as a draft. You do not have to do anything. However, if you wish, it can also be done manually by clicking on Fetch from CodaBox in the Accounting Dashboard.
By default, if an account in the SODA file is not mapped to an account in NightPOS, the Suspense Account (499000) is used, and a note is added to the created journal entry.
Note
You can access the mapping between the SODA and NightPOS accounts by going to and clicking on the Open SODA Mapping button in the CodaBox section.
Potential issues¶
CodaBox is not configured. Please check your configuration.
Either the Company VAT or the Accounting Firm VAT is not set.
No connection exists with these accounting firms and company VAT numbers. Please check your configuration.
This can happen when checking the connection status, and the Accounting Firm VAT and Company VAT combination still needs to be registered. This may happen if you have changed the Company VAT after the connection was established. For security reasons, you have to recreate a connection for this Company VAT.
It seems that your CodaBox connection is not valid anymore. Please connect again.
This can happen if you revoke NightPOS’s access to your CodaBox account or still need to complete the configuration process. In this case, you must revoke the connection and create a new one.
The provided password is not valid for this accounting firm. You must reuse the password you received from NightPOS during your first connection.
The password you provided is different from the one you received from NightPOS during your first connection. You must use the password you received from NightPOS during your first connection to create a new connection for this accounting firm. If you have lost your password, you must first revoke the NightPOS connection on CodaBox’s side (i.e., on your myCodaBox portal). Then, you can revoke the connection on NightPOS’s side and create a new one.
It seems that the company or accounting firm VAT number you provided is not valid. Please check your configuration.
Either the Company VAT or the Accounting Firm VAT is not in a valid Belgian format.
It seems that the accounting firm VAT number you provided does not exist in CodaBox. Please check your configuration.
The Accounting Firm VAT number you provided is not registered in CodaBox. You may not have a valid CodaBox license linked to this VAT number.
It seems you have already created a connection to CodaBox with this accounting firm. To create a new connection, you must first revoke the old one on myCodaBox portal.
You must go to your myCodaBox portal and revoke NightPOS’s access to your CodaBox account. Then, you can create a new connection on NightPOS’s side.
Tip
To revoke the connection between NightPOS and CodaBox, go to , scroll down to the CodaBox section, click on Manage Connection, then click on Revoke.
Codaclean¶
Codaclean is a service that allows Belgian companies and accounting firms to access bank information and statements. NightPOS provides a way to import such statements and their transactions automatically.
Configuration¶
Note
Make sure to install the Codaclean (l10n_be_codaclean)
module.
Connection with NightPOS¶
To connect NightPOS with Codaclean, follow these steps:
Open the Settings app, navigate to the Companies section, and click Manage Companies to make sure the company’s Country is set to Belgium.
Go to and scroll to the Codaclean section.
Click Manage Connection to open the connection wizard, enter the Codaclean Username and Password and click Connect.
The Status is updated to Connected.
Tip
Once the connection is established, the Manage Connection wizard provides two options:
Update Codaclean credentials: Enter the new Username and Password, then click Change Credentials.
Remove Codaclean connection: Click Disconnect; no Username or Password is required.
Journal creation¶
A specific bank journal must be created for Codaclean synchronization. To do so, create a new bank journal, make sure to enter the correct IBAN in the Bank Account Number field, and select Codaclean Syncronization in the Bank Feeds field.
Tip
For bank transactions in different currencies, it is recommended to create a separate journal for each currency, using the same bank account.
Synchronization¶
Once the connection is established, NightPOS is synchronized with Codaclean, and new CODA files received via Codaclean are checked every twelve hours.
Tip
To manually check for new CODA files, go to the Accounting Dashboard and click Fetch from Codaclean on the relevant journal .
Electronic invoicing with Peppol¶
As of 1 January 2026, all Belgian companies must be registered on the Peppol network to send and receive electronic invoices.
To activate Peppol, refer to the Peppol documentation, ensuring during registration that:
The Peppol EAS field is set to 0208 - Numero d’entreprise / ondernemingsnummer / Unternehmensnummer.
the Peppol Endpoint field is set to the company registry number.
In addition, when veryfing that a customer is registered as a Peppol participant, ensure the Format field is set to BIS Billing 3.0.
See also
Cash discount¶
In Belgium, if an early payment discount is offered on an invoice, the tax is calculated based on the discounted total amount, whether the customer benefits from the discount or not.
To apply the right tax amount and report it correctly in your VAT return, set the tax reduction as Always (upon invoice).
See also
Fiscal certification: POS restaurant¶
In Belgium, the owner of a cooking business such as a restaurant or food truck is required by law to use a government-certified Cash Register System for their receipts. This applies if their yearly earnings (excluding VAT, drinks, and take-away food) exceed 25,000 euros.
This government-certified system entails the use of a certified POS system, along with a device called a Fiscal Data Module (or black box) and a VAT Signing Card.
Important
Do not forget to register as foodservice industry manager on the Federal Public Service Finance registration form.
Certified POS system¶
The NightPOS POS system is certified for databases hosted on NightPOS Online, NightPOS.sh, and On-Premise.
See also
A certified POS system must adhere to rigorous government regulations, which means it operates differently from a non-certified POS.
On a certified POS, you cannot:
Set up and use the global discounts feature (the
pos_discountmodule is blacklisted and cannot be activated).Set up and use the loyalty programs feature (the
pos_loyaltymodule is blacklisted and cannot be activated).Reprint receipts (the
pos_reprintmodule is blacklisted and cannot be activated).Modify prices in order lines.
Modify or delete order lines in POS orders.
Sell products without a valid VAT number.
Use a POS that is not connected to an IoT box.
The cash rounding feature must be activated and set to a Rounding Precision of
0,05and a Rounding Method set as Nearest.Taxes must be set as included in the price. To set it up, go to , and from the Accounting section, open the Default Sales Tax form by clicking the arrow next to the default sales tax field. There, click Advanced Options and enable Included in Price.
At the opening of the POS register, users must click Work in to clock in. Doing so allows the registration of POS orders. If users are not clocked in, they cannot make POS orders. Likewise, they must click Work Out to clock out at the end of the session.
Warning
If you configure a POS to work with a FDM, you cannot use it again without it.
Fiscal Data Module (FDM)¶
An FDM, or black box, is a government-certified device that works together with the Point of Sale application and saves your POS orders information. Concretely, a hash (unique code) is generated for each POS order and added to its receipt. This allows the government to verify that all revenue is declared.
Warning
Only the FDM from Boîtenoire.be with the FDM certificate number BMC04 is supported by NightPOS. Contact the manufacturer (GCV BMC) to order one.
Configuration¶
Before setting up your database to work with an FDM, ensure you have the following hardware:
a Boîtenoire.be (certificate number BMC04) FDM;
an RS-232 serial null modem cable per FDM;
an RS-232 serial-to-USB adapter per FDM;
an IoT Box (one IoT box per FDM); and
a receipt printer.
Black box module¶
As a pre-requisite, activate the Belgian Registered Cash Register module
(technical name: pos_blackbox_be).
Once the module is activated, add your VAT number to your company information. To set it up, go to , and fill in the VAT field. Then, enter a national registration number for every staff member who operates the POS system. To do so, go to the Employees app and open an employee form. There, go to , and fill in the INSZ or BIS number field.
Tip
To input your information, click on your avatar, go to , and enter your INSZ or BIS number in the designated field.
Warning
You must configure the FDM directly in the production database. Utilizing it in a testing environment may result in incorrect data being stored within the FDM.
IoT Box¶
In order to use an FDM, you need a registered IoT Box. To register your IoT box, you must contact us through our support contact form and provide the following information:
your VAT number;
your company’s name, address, and legal structure;
the identifier of your IoT Box.
Once your IoT box is certified, connect it to your database. To verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the IOT Device section, which should display the FDM.
Then, add the IoT to your POS. To do so, go to , select your POS, scroll down to the Connected Device section, and enable IoT Box. Lastly, add the FMD in the Fiscal Data Module field.
Note
To be able to use an FDM, you must at least connect one Receipt Printer.
VAT signing card¶
When you open the POS register and make your initial transaction, you are prompted to enter the PIN provided with your VSC. The card is delivered by the FPS upon registration.