Business verification — VIES, VAT whitelist, and GUS REGON
Check a customer’s VAT number in three registers: VIES for EU businesses, the VAT whitelist, and GUS REGON for Polish tax IDs. Enable each register separately; copy company data from GUS to the customer only after you approve it.
The system queries three public registers to check whether a customer’s VAT number exists and who it belongs to:
| Register | For | What it reports |
|---|---|---|
| VIES (European Commission) | EU businesses outside Poland | Whether an EU VAT number is active |
| VAT whitelist (Ministry of Finance) | Polish tax IDs (NIP) | Whether the company is an active VAT taxpayer, exempt, or unregistered |
| GUS REGON | Polish tax IDs (NIP) | Whether the business is active, suspended, or removed from the register; name, address, and REGON |
The registers are independent. If the VAT whitelist does not respond, the system does not query GUS or VIES instead. You get Register unavailable and can try again later.
Step by step
Enable registers
- Open Integrations and add a connection from the Business registers category: VIES, VAT whitelist, or GUS REGON. Enable each separately; while a register is off, no customer number is sent to it.
- VIES and the VAT whitelist need no credentials. They work immediately after being added.
- GUS REGON requires an API key. GUS issues it to companies free of charge on request (Regon API, api.stat.gov.pl). Enter it in the GUS connection settings; saving requires two-step verification. The key is encrypted. After saving, only a mask is shown, and it never appears in any history.
- The GUS test environment switch directs queries to the test database (fictional data). Leave it off for regular use.
Each enabled register counts as one integration connection toward your plan’s limit.
If your company has a plan, each register must be enabled separately in that plan; registers are not included automatically. If adding a connection produces a feature access error, ask the platform administrator to add the register (and the Integrations module) to the company’s plan.
Check a customer
- Open the customer card (or the customer in order details).
- Small buttons appear next to the VAT number only for registers enabled and configured for the company (GUS also needs an API key) and supported for the country of the number: VAT whitelist and GUS for a Polish tax ID; VIES for a number from another EU country.
- Click a register button. The result appears as a colored badge next to the register, with the check date. Each check is saved in the customer history—who checked, when, and what the register reported.
The system caches a register response for 24 hours. Clicking again during that period does not query the register; it returns the saved result. The result shows the current check date even though the data may be up to 24 hours old. The history screen does not yet distinguish cached results from fresh queries. Register unavailable responses are not cached; the next attempt queries again.
If the register does not respond, the customer keeps the previous verdict (for example, Valid from yesterday) and its date. You will see Register unavailable only for a customer who has not been checked before. The failed attempt is still added to history.
If you change the customer’s VAT number or country—manually, through import, or when importing an order from a marketplace—all three statuses return to Not checked. The old verdict applied to a different number.
If the VAT number changes while a check is in progress, the result is saved only in history; the customer will not show a verdict for a number they no longer have.
If an order has a VAT number on its billing address, a rule action checks that number and the country from the billing address, even when the customer has a different personal number (the invoice uses the billing number). The result is saved only in history (which notes that the number came from the invoice); the customer’s status does not change. If the invoice has the same number as the customer, or no number, the customer’s number is checked. A rule condition always evaluates the number on that order: a verdict for the tax ID on one invoice does not carry over to another order with a different number or no number.
The Ministry of Finance whitelist has a daily query limit, so the system counts requests:
- your company’s limit (30 per day by default): once reached, you see Register unavailable with a message about the company’s daily MF limit; other companies can continue checking;
- the entire system’s limit (100 per day by default): a safeguard. If other companies exhaust it, you see a message about the MF register’s daily limit, but rules in “stop” mode will not stop an order for this reason.
Limits reset at midnight Polish time. Responses cached for 24 hours do not use the limit, so check again on the whitelist during that period displays the cached result.
Copy company data from GUS
Available only for customers in Poland and when GUS REGON is enabled.
- On the customer card, select Fill in data from GUS.
- A field-by-field comparison appears for company name, street, number, postal code, and city, with current values next to GUS values. REGON is shown for reference.
- Select only the fields you want to copy and confirm. Nothing changes automatically; unselected fields remain as they are. If your role cannot see customer address data (it is masked), it will be masked in the comparison too, and you cannot copy it from GUS.
- You can copy data from GUS only when the check was for the customer’s current tax ID. If you changed the customer’s tax ID or country after checking, the system will ask you to check GUS again.
- If the customer’s address is already used by orders, the system saves a new copy of the address for the customer; orders keep the address they were placed with.
- Each update is saved in history: who changed which fields, when, and from what to what. For now, this history is available only through the API; there is no screen for it yet.
Automate checks with rules
Each register has its own action and condition in Actions — what a rule can do / Workflow conditions — every listed condition must be met:
- actions Check VAT number in VIES, Check NIP on VAT whitelist, and Check NIP in GUS REGON, for example, in a rule for new orders;
- conditions Customer VIES status, Customer VAT whitelist status, and Customer GUS REGON status, for example, in a subsequent rule that holds an order from a customer with an inactive number.
An action skips customers without a VAT number, customers from countries the register does not support, and registers that are not enabled. The When the register does not respond setting decides whether the rule continues or stops and creates an issue on the order. Copying data from GUS cannot be automated; it always requires a human decision.
What the statuses mean
| Status | Meaning |
|---|---|
| Valid | Number exists; taxpayer is active; business is active |
| Invalid | Not found in the register, taxpayer unregistered, business removed, NIP invalidated in REGON, or invalid tax ID checksum |
| VAT exempt | VAT whitelist: taxpayer is exempt from VAT |
| Business suspended | GUS: business is suspended and has not resumed activity |
| Register unavailable | Register did not respond, rejected the GUS key, or the daily MF limit (company or system) was reached, and the customer has never been checked; try later or check the key |
| Not checked | Customer has not been checked in this register, or their VAT number or country has changed |
Why the button is missing
- The register is not enabled for the company; add it in Integrations.
- GUS REGON is enabled but has no API key; enter one in the connection settings.
- The number’s country is not supported by the register: Polish NIP cannot be checked in VIES, and a German number cannot be checked on the whitelist or in GUS.
- The customer has no VAT number.
- Your role does not have write permission for customers; the check saves a result on the customer.
- Customer data was removed after the retention period. There is no number to check and the verification history is empty; numbers and register responses from the customer’s orders have been replaced with
DELETED.
More about the customer card: Customer card — what the statistics tell you.
Want to see this with your orders? We’ll show you NOXTI with your sales channels and warehouse.
Book a demo