Poland Company Check (KRS, VAT whitelist, REGON)
Pricing
from $20.00 / 1,000 company records
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
Maintained by CommunityActor 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
| Field | Description |
|---|---|
| Companies | One per line: 7740001454, KRS 0000028860, REGON 610188201. Dashes and spaces are fine. |
| ↳ with a bank account | 7740001454 PL30 1020 1026 0000 1402 0355 0589 also checks the account against the whitelist. |
| Mode | profile (full record) or monitor (only what changed since the last run). |
| VAT status on date | For example, an invoice date. Defaults to today. |
| Include bank accounts | List the whitelist bank accounts (on by default). |
| Include sole traders | Off 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
| Code | Severity | Meaning |
|---|---|---|
DEREGISTERED | high | Removed from KRS. |
BANKRUPTCY | high | Bankruptcy proceedings that haven't closed. |
LIQUIDATION / DISSOLUTION | high | The company is being wound up. |
ARREARS | high | Unpaid debts recorded in KRS. |
VAT_NOT_ACTIVE | high | Not an active VAT payer on the date checked. |
BANK_ACCOUNT_NOT_ON_WHITELIST | high | The account you gave isn't registered for this NIP. |
NOT_FOUND | high | In neither register. |
RESTRUCTURING | medium | Restructuring proceedings are open. |
CURATOR | medium | A court-appointed curator is recorded. |
NO_RECENT_ANNUAL_ACCOUNTS | medium | No annual accounts filed in over 20 months. |
PAST_BANKRUPTCY | info | Past bankruptcy proceedings, now closed. |
RECENTLY_REGISTERED | info | Less than a year old. |
RECENT_REGISTRY_CHANGE | info | The KRS entry changed in the last month. |
VAT_EXEMPT | info | Registered as VAT-exempt. |
NOT_IN_KRS | info | A 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:
| Event | When |
|---|---|
company-profile | A company was looked up and returned, including "not found" answers, or added to a monitor's baseline. |
monitor-check | A monitored company was checked and hadn't changed. |
change-detected | A 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.