Table of Contents

VAT Taxpayer Register

According to the regulations in Poland, if a transaction amount exceeds 15.000 PLN, the payment for contractors should be transferred to the contractor’s bank account. Starting from January 2020, such a payment should be transferred to a contractor’s bank account that the contractor submitted to the VAT taxpayer register. This ensures that payment transfers are safe and the VAT taxpayer cannot be held liable for any negative consequences by tax authorities.

If the payment is transferred to a bank account other than the bank account specified in the VAT taxpayer register, the related expense cannot be classified as a tax deductible amount. In such a case, the customer and the seller/vendor who is an active VAT Taxpayer are jointly liable for the part of overdue VAT tax payments equal to the amount of the transaction confirmed with an invoice, and transferred to a bank account other than the one specified in the VAT taxpayer register as of the transfer order date.

Important

Whether a payment amount is treated as a tax-deductible expense depends on whether the contractor's account was listed in the VAT taxpayer register on the date of the transfer order. The transfer order date is taken into account, not the date when the customer’s account is debited or the vendor’s account is credited.

If within 3 days starting from the transfer order date, the VAT taxpayer notifies the head of the tax office respective to the issuer of the invoice about the bank account number to be used for the transfer, the VAT taxpayer is entitled to post the expense as a tax deductible amount. In addition, the taxpayer does not share joint liability with the vendor even if the payment amount was transferred to a bank account other than the one specified in the VAT taxpayer register. Moreover, the VAT taxpayer is not be jointly liable, if it transfers the payment amount by using the split payment mechanism.

As part of Polish Localization, the verification of entities in the VAT taxpayer register is handled using a publicly available API or the so-called flat file. By default, the pair of the VAT Registration No. and bank account number is verified by querying the API provided by the Ministry of Finance. However, if the current flat file is loaded into the system, the verification takes place automatically based on the data from this file.

Important

According to the guidelines of the Ministry of Finance, the VAT taxpayer register API is not used for integration with systems for batch verification of entities, but as a system for one-off inquiries. Therefore, to ensure all data is verified in your financial and accounting system based on the complete up-to-date a list of the VAT Registration No. and bank account pairs, it is recommended to download the flat file into the system on a daily basis. If you exceed the permissible daily query limit specified on the API-Wykaz podatników page, access to the API is blocked until the end of the day.

Flat File

A flat file is a text file published daily on the website of the Ministry of Finance, which is used for mass verification of whether a given contractor and its bank account are included in the VAT taxpayer register.

The flat file contains pairs consisting of the settlement bank account number or a personal bank account in credit unions, or a virtual account and a VAT Registration No. on the current day appearing in the "Register of entities registered as VAT taxpayers, not registered, removed and restored to the VAT register", hereinafter referred to as the VAT taxpayer register.

Important

The flat file is published by the Ministry of Finance on the Ministry's website in the form of a compressed text file consisting of a string of characters created from the enumeration of an abbreviation function, the input parameters of which are:

  • the date the file was made available,
  • VAT Registration No.
  • the number of the settlement bank account or
  • personal bank account in the credit unions, of which the entity is a member, opened in connection with the conducted business activity, or
  • virtual bank account.

The flat file also contains information about virtual bank account masks, allowing you to build a mask for the bank account number in accordance with the documentation.

In Polish Localization, the flat file is supported using Azure Blob Storage. Due to the large volume of the file (the file size grows continuously) and the limitations of Business Central, it is not possible to directly upload the file in its original form. Therefore Polish Localization allows importing multiple smaller files into structures designed to store data from a flat file.

An example implementation of import assumes the preparation of an additional service that automatically downloads a flat file from the Ministry of Finance website, divides it into smaller parts, and then makes these files available to the indicated Azure Blob Storage account. The account is accessed by Polish Localization to load the files into the database using an job queue set in a dedicated codeunit available as part of the functionality. The service and the job queue in Business Central should run daily to retrieve regularly up-to-date data required for proper verification of contractors.

Note

The service that imports and splits the flat file must be performed on the client's resources and is not part of Polish Localization. After downloading the file from the website of the Ministry of Finance, it can be processed in any way, but the component files must be compatible with the required file structure, so that the codeunit designed for for the flat file functionality can be used. The setup of the solution for processing a flat file published by the Ministry of Finance is prepared by the system administrator or by IT.integro as a paid service in accordance with the terms of services.

The following is the file structure required for the import mechanism, which is available in the Polish Localization version. The application has been designed to allow for extracting each section from the original flat file into separate smaller data sets of a certain size. In the case of active and tax-exempt taxpayers, the data should be divided into smaller files, each of which contains, for example, 10,000 records.

The folder and files that should be stored on Azure Blob Storage have been shown below. Each file should meet the following criteria:

  • the maximum file size is 100 MB;
  • file names are arbitrary;
  • the header file should be unique;
  • the number of files for the remaining sections according to defined parameters.

The root folder created on a given day, which contains split files, e.g. 20250903, represents the exact name of the file published by the Ministry of Finance and is the date of publication of the file. Each folder should contain the following elements:

  • nagłowek.json - a file containing the "header" section
        "naglowek":  {
                     "dataGenerowaniaDanych":  "20250903",
                     "liczbaTransformacji":  "5000",
                     "schemat":  "RRRRMMDDNNNNNNNNNNBBBBBBBBBBBBBBBBBBBBBBBBBB lub RRRRMMDDNNNNNNNNNN, gdzie R to cyfra roku, M miesiąca, D - dnia daty generowania pliku, N to cyfra NIPu, a B to cyfra rachunku bankowego"
                 }
    
  • skrotyPodatnikowCzynnych_chunk_0.json - a file containing a package of records (e.g. 10,000 rows) from the "skrotyPodatnikowCzynnych" section
    "skrotyPodatnikowCzynnych":  [
                                     "efe700b217d82bb31d006e36d5d26f95cd30a6c2cf2ed3055c70f27bc69cbe7dffa6c7de12bf9dff08d1a97928f09bd629ba1449a67c566cd2c55f271f451b42",
                                     "efe701edfda96f69da187c126480ffaf14b0a7fbe5f1ee7169bad30c6b3fadee7e1e8f24cc353e42c9604b2deaab0632dc924e13a5a85e623594601c95fab51f",
                                     "efe7049f71eb6dc6eb8776e9f141a6fb2f28a59741b5e1e241eb5e2b51827065250a5a2317d969900a29044be5c5ac6e002e5f40ac885c81b53e6c42cfce96d7",
                                     "efe70737b27be82c06b4607eeffa05ea318d250c930c6bc0589fed7c69f5dfdeecb3da93bfaeb672bcda6a18914058920134964ffa88f62ca532d7df6a826c55",
                                     "efe71526c50dcde9791c2211a1ad1722e2ad8cb6c2b1dfdbc8681ffe58d66e36a01c91a73119457e36eb62cf2300331b7790962273a640bac861cf6edb9c0ddd",
                                     ...
    
  • skrotyPodatnikowCzynnych_chunk_0.json - a file containing a package of records (e.g. 10,000 rows) from the "skrotyPodatnikowZwolnionych" section
    "skrotyPodatnikowZwolnionych":  [
                                        "0000099791743f2aa80782fd47fde633363525e2b3ea619f59e6d3b10ff361cd50931044a822335bb2b0798b3b06f96a35e0f7023c97a7b00ebf28b53aa3f633",
                                        "0000258351cfe454733c1545d3459c1d4a57b7055e1f927a405699e723b8065febdc987e3e27fcfbee38199368a9840f5c04c2df718b6fa92866ae0f03305902",
                                        "00006a98f777cd1329161b1f5cec6fb3eb0cb52234c7f4a7b9ac89cca82de1d7580912e9818b1dab0932b87a63fdb85ee44659b5edc63b1b0b976fee87103f3d",
                                        "0000b260b5d3c7caa60cd8427a3818130322fbe0f7b79fbf6541d678db0859ea8e494e8df70f9ee726d1f56726f29b02c12936272adecacf179fbcfc42c69f0b",
                                        ...
    
  • maski_chunk_0.json - a file containing a package of records 10,000 rows) from the "maski" section
     "maski":  [
                  "XX10100055YYYXXXXXXXXXXXXX",
                  "XX10100068YYYYXXXXXXXXXXXX",
                  "XX10200032YYYXXXXXXXXXXXXX",
                  ...
    

Split files retain the JSON format and key-value structure, just like the original file published on the website of the Ministry of Finance. Because the files are created in the appropriate structure, they can be directly imported into the database using the ITI Insert VTR File Data codeunit. To start automatic data retrieval, you need to set the dedicated codeunit unit in the job queue so that it automatically loads new files into the Polish Localization.

The data is stored in the following tables: ITI VTR File Shortcut, ITI VTR File Mask and ITI VTR File Reg. In these tables, property DataPerCompany = false, which means that in multi-site organization environments, the data is made available to all companies in the environment just with a single upload.

Once the file is properly imported into the tables above, the file details are visible on the VTR File Register page.

VTR Setup Card

API Settings

Field Name Descriptions
Max. API Request Size Specifies the maximum size of a request package sent to API (i.e. the maximum number of entities in one request.) This value should not be greater than the value specified by the Ministry of Finance, because a greater value may cause an error. The default is 30.
API Timeout Parameter (ms) Specifies the API response timeout. The default API timeout value is 5000 ms, but it can be increased, which will result in a longer wait time for the API response. In case of API overload, the increased time can help get the correct response from the API.

Azure Blob Storage Settings for a Flat File

Field Name Descriptions
Azure Account Name Specifies the Azure storage account name.
Azure Blob Container Name Specifies the container name.

The access key must be set using the Set Azure Blob Storage Shared Key action.

These are technical settings, and therefore only system administrators should have access to the system.

Note

To ensure that it is possible to validate the status of a bank account for a vendor or customer in the VAT taxpayer register, the Country/Region Code field for the vendor/customer should contain PL. (On the Countries/Regions page in the ISO Code field set the EN value in the rows where EN is set in the Country/Region Code field.) The VAT taxpayer register includes only companies registered in Poland. In the case of any other country, the status of the bank accounts will be displayed as Not applicable.

Factoring

If you want to verify a bank account that is a factoring bank account, select the Factoring field on the General FastTab on the Customer/Vendor Bank Account Card page. This ensures that the bank account status is verified regardless of the VAT registration number entered.

Downloading Data from Government Services

The Get Data From Gov. Services functionality, formerly known as Get BIR Data, is available on the Contact Card, Vendor Card and Contact Card pages.

This function enables data upload from the BIR and the VAT taxpayer register. The functionality enhancement was intended to create new vendor's bank accounts and the customer's bank accounts on the basis of data taken from the VAT taxpayer register. The feature enabling the user to download data based on the REGON (Registration No. 2) has also been added.

The procedure for creating a new customer, vendor, or contact has been extended with additional steps. Now the user can decide whether to download data from BIR or from the VAT taxpayer register. If data is downloaded from the VAT taxpayer register the system additionally suggests bank accounts for the customer or vendor. If the user does not have any permissions to create new bank accounts, bank accounts will not be suggested.

Getting Data from BIR

The procedure for uploading bank account data from BIR will be described on the basis of a vendor. This procedure works the same for the customer and the contact. To get data from BIR:

  1. Open the Vendor Card page for a selected vendor.

  2. On the Vendor Card page, on the ribbon choose the Get Data From Gov. Services action.The Gov. Services Data page is displayed then.

    In the fields on the Updating Data FastTab, a copy of the data from Regon Internet Database or the VAT taxpayer register is created. All fields are editable - the user can change the values in these fields. The data can be copied from these fields to the Customer Card page after choosing the Update Customer Card action.

  3. In the VAT Reg. No. field on the Search Data FastTab on the Gov. Services Data page, enter the VAT registration number (NIP) (10 digits).

  4. On the ribbon, select Actions, Getting Data, Get BIR Data.

    The updating data fields will be filled in with the data from BIR. The other fields on the BIR Data page are non-editable - they show the customer’s data that was registered in BIR.

Note

If you have previously downloaded the data from the VAT taxpayer register or manually entered data on the Updating Data FastTab, answer if you want to replace the updating data with the data from BIR.

Getting Data from the VAT Payer Register

To get data from the VTR register.

  1. In the VAT Reg. No. field on the Search Data FastTab, enter the number in the Search VAT Registration No. or Search Regon fields.

  2. On the ribbon, select Actions, Getting Data, Get VTR Data.

    The updating data fields will be filled in with the data downloaded from the VAT taxpayer register. The other fields on the Data page are non-editable - they show the customer’s data that was registered in the VAT Payer Register.

Note

If you have previously downloaded the data from the VAT taxpayer register or manually entered data on the Updating Data FastTab, answer if you want to replace the updating data with the data from the VAT taxpayer register.

Bank Accounts from VAT Payer Register

If you download data for a customer or vendor, you must also select the bank accounts that you want to add within the system. If you do not have any permissions to add bank accounts, bank account data will not be downloaded.

To select bank accounts:

  1. On the ribbon, choose the Get VTR Data action.

  2. If the Number of Bank Accounts (WPV) field on the VTR Data FastTab contains a number greater than 0, select the number or choose Open Bank Account List to open the list of bank accounts.

A list of bank accounts is displayed from the VAT taxpayer register.

The Existing Account Code field indicates that a bank account with this number has already been added. The bank account code for an existing bank account with the same IBAN number is entered, then. The Bank Account No. (WPV) field displays the bank account number that has been downloaded from the VAT taxpayer register. The Action field indicates the action you want to perform for the bank account. By default, the Create New action is selected for all the bank accounts that do not exist in the system.

Editing an Existing Bank Account

To edit bank account data:

  1. Select the bank account that you want to edit.

  2. Choose Edit. The VAT Taxpayers Register Bank Account page is displayed.

  3. On the Updating Data FastTab, you can see the bank account data suggested for the customer or vendor. You can edit the data, and then close the page.

Note

If you modify the updating data, the Action field automatically changes to Create New or Update Existing.

Updating Bank Account Data

To add or update a customer's bank accounts, on the VAT Taxpayers Register Bank Account List page choose the Update Customer Bank Accounts action.

To update the customer card, choose the Update Customer Card action.

Note

If you forget to update the bank accounts on the VAT Taxpayers Register Bank Account List page, and bank accounts with the Create New or Update Existing options exist, you will be asked if you want to update the bank accounts when the vendor or customer card is updated.

If the customer card already contains the data, answer if you want the current data to be replaced with the data displayed on the Updating Data FastTab.

Getting Only Bank Account Data

Bank account data can be downloaded from the VAT taxpayer register independently from other data. This allows you to add the customer bank account and vendor bank account.

The bank account download feature works the same for the customer and vendor bank account, so only the process has been described only for vendor bank accounts.

To get the vendor bank account data:

  1. Open the Vendor Card page for a selected vendor.

  2. On the ribbon, choose Bank Accounts.

  3. On the Bank Account List page, choose the Get Data from VTR action.

Bank account data will be downloaded from the VAT taxpayer register. The action opens the VAT Taxpayers Register Bank Account List page.

Note

Bank accounts will not be downloaded for a vendor if the VAT Reg. No. has not been filled in properly for the vendor for which accounts are downloaded. A 10-digit number is required in this field.

VAT Taxpayer Register Request Log

Any information about the verification of whether the contractor's bank account number is included in the VAT taxpayer register shall be recorded on the VAT Taxpayers Register Request Log page. You can check the request ID that was returned as a result of the verification in the VAT taxpayer register.

  • VAT Registration No./Regon - Specifies the number in the request.

  • Bank Account No. - Specifies the bank account number that was entered for the request submitted.

  • User ID - Specifies the user who performed the verification process.

  • Status - Specifies the message returned by the API of the Ministry of Finance.

  • Verification Date - Specifies the date when the bank account was submitted.

  • Request Date Time – Specifies the date and time when the request was sent to the API. This parameter is returned by the API.

  • Request ID – Specifies the ID returned when the request was sent to the API and it is an evidence that the request was submitted. If data is verified using a flat file, the file name is used as the query ID (by default, the file name is the file's date of publication on the website of the Ministry of Finance).

Note

On the purchase order, the Check VAT Taxpayer function has been replaced with the function of Check Contractor. This functionality performs the same actions as the previous one.