Poland Company Check (KRS, VAT whitelist, REGON) avatar

Poland Company Check (KRS, VAT whitelist, REGON)

Pricing

from $20.00 / 1,000 company records

Go to Apify Store
Poland Company Check (KRS, VAT whitelist, REGON)

Poland Company Check (KRS, VAT whitelist, REGON)

Check Polish companies by NIP, KRS or REGON: KRS registry, VAT whitelist status and bank accounts, liquidation and bankruptcy flags. Official government APIs only.

Pricing

from $20.00 / 1,000 company records

Rating

0.0

(0)

Developer

Precision Labs

Precision Labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Categories

Share

Check any Polish company in seconds: is it real, is it active, is it a VAT payer, and is this really its bank account? Paste NIP, KRS or REGON numbers and get one clean record per company, with red flags. Built by Precision Labs on official government APIs only.

What it does

For each company it combines two official registers:

  • KRS, the National Court Register (Ministry of Justice):
    • name, legal form, address, share capital
    • main business activity (PKD code)
    • how the company is represented, and its board roles
    • date of its latest annual accounts
    • liquidation, bankruptcy, restructuring or deregistration
  • VAT whitelist, "Biała lista" (Ministry of Finance):
    • VAT status on any date in the last 5 years
    • registered bank accounts
    • an official request ID, which serves as proof that you made the check

It works out which register to ask first, whichever number you give it. It then turns all of this into red flags and an overall risk level (high, medium or low).

Who it's for

  • Accounts payable: confirm a supplier's bank account is on the VAT whitelist before paying an invoice over PLN 15,000. Paying a different account can cost you the tax deduction and make you jointly liable for the supplier's VAT.
  • Onboarding, compliance and KYB (know your business) teams: verify Polish customers and suppliers in bulk.
  • Foreign companies trading with Poland: get English field names and clear statuses, so you don't have to read Polish registry extracts.
  • AI agents: call it as a tool for supplier due diligence.

Input

FieldDescription
CompaniesOne per line: 7740001454, KRS 0000028860, REGON 610188201. Dashes and spaces are fine.
↳ with a bank account7740001454 PL30 1020 1026 0000 1402 0355 0589 also checks the account against the whitelist.
Modeprofile (full record) or monitor (only what changed since the last run).
VAT status on dateFor example, an invoice date. Defaults to today.
Include bank accountsList the whitelist bank accounts (on by default).
Include sole tradersOff by default. See Personal data below.
{
"companies": ["7740001454", "KRS 0000010681", "7740001454 PL30 1020 1026 0000 1402 0355 0589"],
"mode": "profile"
}

Output

One record per company. This one is shortened:

{
"input": "7740001454",
"found": true,
"name": "ORLEN SPÓŁKA AKCYJNA",
"legalForm": "SPÓŁKA AKCYJNA",
"nip": "7740001454",
"regon": "610188201",
"krs": "0000028860",
"status": "active",
"riskLevel": "low",
"flags": [],
"addressLine": "CHEMIKÓW 7, 09-411 PŁOCK",
"registeredAt": "2001-07-19",
"shareCapital": { "amount": 1451177561.25, "currency": "PLN" },
"mainActivity": { "code": "19.20.Z", "description": "WYTWARZANIE I PRZETWARZANIE PRODUKTÓW RAFINACJI ROPY NAFTOWEJ..." },
"representation": { "body": "ZARZĄD", "rule": "DWAJ CZŁONKOWIE ZARZĄDU DZIAŁAJĄCY ŁĄCZNIE...", "members": [{ "role": "PREZES ZARZĄDU", "suspended": false }] },
"lastAnnualAccounts": { "filedAt": "2026-06-16", "period": "OD 01.01.2025 DO 31.12.2025" },
"vat": {
"status": "active",
"bankAccounts": ["30102010260000140203550589", "..."],
"proof": { "requestId": "av76s-9926i48", "requestedAt": "18-10-2026 20:16:09", "checkedForDate": "2026-10-18" }
},
"bankAccountCheck": { "account": "30102010260000140203550589", "onWhitelist": true, "proof": { "requestId": "KeVch-9926i49" } }
}

You can download results as JSON, CSV or Excel, or read them through the Apify API.

Red flags

CodeSeverityMeaning
DEREGISTEREDhighRemoved from KRS.
BANKRUPTCYhighBankruptcy proceedings that haven't closed.
LIQUIDATION / DISSOLUTIONhighThe company is being wound up.
ARREARShighUnpaid debts recorded in KRS.
VAT_NOT_ACTIVEhighNot an active VAT payer on the date checked.
BANK_ACCOUNT_NOT_ON_WHITELISThighThe account you gave isn't registered for this NIP.
NOT_FOUNDhighIn neither register.
RESTRUCTURINGmediumRestructuring proceedings are open.
CURATORmediumA court-appointed curator is recorded.
NO_RECENT_ANNUAL_ACCOUNTSmediumNo annual accounts filed in over 20 months.
PAST_BANKRUPTCYinfoPast bankruptcy proceedings, now closed.
RECENTLY_REGISTEREDinfoLess than a year old.
RECENT_REGISTRY_CHANGEinfoThe KRS entry changed in the last month.
VAT_EXEMPTinfoRegistered as VAT-exempt.
NOT_IN_KRSinfoA VAT payer outside KRS, such as a sole trader.

The risk level is a simple rule based on these flags. It isn't a credit rating.

Monitor changes

Set Mode to monitor and schedule the Actor, for example daily or weekly. The first run saves a baseline. Each run after that outputs only the companies that changed, and shows what changed:

{
"changeType": "changed",
"changes": [
{ "field": "status", "before": "active", "after": "in liquidation" },
{ "field": "bankAccounts", "added": ["11114015601234567890123456"], "removed": [] }
]
}

To get alerts, connect the run to email, Slack or a webhook using Apify integrations. Use Monitor name to keep separate watch lists apart.

Pricing

You pay per event, and you can cap your spend with Maximum cost per run:

EventWhen
company-profileA company was looked up and returned, including "not found" answers, or added to a monitor's baseline.
monitor-checkA monitored company was checked and hadn't changed.
change-detectedA monitored company changed.

Free: numbers that fail the checksum (rejected before any lookup), and lookups where a register was unavailable. The run stops as soon as it reaches your Maximum cost per run. In monitor mode, a change that didn't fit within that limit isn't lost: it's reported, and charged, on the next run.

Personal data

  • Board members: the KRS API masks their names and PESEL numbers (personal ID numbers). This Actor returns only their roles.
  • Free text: any PESEL quoted in registry text is removed.
  • Sole traders: VAT payers outside KRS are mostly sole traders, whose name and address are personal data. By default the Actor returns only their VAT status. Turn on Include sole traders only if you have a lawful basis, such as verifying a supplier you are about to pay.

FAQ

Where does the data come from? Directly from the Ministry of Justice KRS API and the Ministry of Finance VAT whitelist API, at the moment you run the Actor. There's no cache and no scraping.

Does the request ID really count as proof? It's the identifier the Ministry of Finance gives every whitelist query. Keep it with the payment records to show you checked the account on that date.

Why are some values in Polish? Legal forms, activity descriptions and representation rules come straight from the registers. Field names and statuses are in English.

Why is the REGON 9 digits when KRS shows 14? KRS pads the main unit's REGON with 00000. The Actor returns the standard 9-digit form.

Something looks wrong? Open an issue on the Actor's Issues tab and include the input line.