Counterparty verification in your ERP: from tax ID to VIES, registry and sanctions lists

· 7 min read · SilverData team

A new counterparty lands in the ERP in 30 seconds — someone types the tax ID, adds the name from memory, pastes the address from an email and hits save. Two months later it turns out the company was struck from the court registry six months earlier, the tax ID had a typo, and the counterparty has been on the EU sanctions list for five months. All of these things could have been checked automatically — and it's worth doing before the first invoice goes out.

Counterparty verification in a typical Polish SME usually comes down to two things: someone, somewhere, checks the tax ID against the Ministry of Finance "white list" (on a good day), and glances at CEIDG to see if the company still exists. Everything else — status in the KRS court registry, VAT-UE registration in VIES, presence on sanctions lists, consistency between the name/address and what the official REGON registry holds — falls through the cracks. It surfaces later, at an audit, a tax inspection, or a payment that never arrives.

What you can actually check automatically

Most public registries in Poland and the EU now expose an API — free, or at a price that's irrelevant to an SME. Pulling them into your ERP at the moment a counterparty record is created gives you five things in one move:

None of these sources is hard to wire in. The hard part is maintaining the discipline that "it happens on every new record, no exceptions".

Why pre-fill by tax ID is more than a convenience

The cheapest and fastest-paying part of this puzzle is pulling data from the REGON registry automatically after someone types the tax ID. The counterparty form looks almost identical in Comarch Optima, enova365, Subiekt GT and Microsoft Dynamics — the fields are the same, only the order differs. Most Polish ERPs already have REGON integration built in; some need a plugin, some a bit of custom automation.

The effect is threefold. First, typos in names and addresses disappear — and they are responsible for most undelivered parcels, postal returns and JPK reporting problems. Second, it becomes much harder to create two records for the same counterparty under two slightly different names (the classic "ABC Sp. z o.o." vs "ABC Spółka z o.o."). Third, the "full name" field matches what the white list of VAT taxpayers holds — which means that comparing the bank account against the MF list even starts to make sense.

At one of our clients — a 25-person wholesaler of building materials in Lower Silesia, running on Comarch Optima — creating a new counterparty record took an average of 4 minutes and generated roughly one error per 15 records (usually a street-name typo or "sp. z o.o." vs "sp.z o.o."). After we switched on pre-fill from REGON and automatic checks against VIES, KRS and sanctions lists, the time dropped to 20 seconds and the number of record corrections in a quarter fell from 42 to 3. One of the checks caught a company that had been struck from KRS three months earlier — the deal was supposed to go out on PLN 47 000 of trade credit. It went out on prepayment instead.

When to verify: not just on creation

A one-off check at record creation is the bare minimum, and it's not enough. Public registries are living data — companies go bankrupt, VAT-UE numbers expire, sanctions lists are updated every few weeks. A pragmatic cadence looks like this:

That split spreads the API cost over time and still catches most changes early enough to react.

Pitfalls that will definitely happen

None of this works unthinkingly. Three things worth knowing up front:

How to start this week

You don't need to do everything at once. A practical order, by payback speed:

The whole thing fits into 2–4 weeks of work, depending on the ERP and how much custom code lives around the counterparty record. Payback — measured in time saved on record creation and in one bad transaction avoided per year — is usually around six months.

A new counterparty record in your ERP is the last moment when verification is cheap. After that there's an invoice, a transfer, and a problem.

← Back to blog