TL;DR
- CRBR (Centralny Rejestr Beneficjentow Rzeczywistych) is Poland's official register of beneficial owners (UBO) - required by EU Anti-Money Laundering directives
- Every Polish company must disclose who ultimately controls it - mandatory since October 2019
- The portal allows manual lookups by NIP (tax ID) or KRS (court registry number) - but no bulk API
- I built an Apify actor that queries CRBR and returns structured JSON for $0.055 per query
What Is CRBR and Why It Exists
The Centralny Rejestr Beneficjentow Rzeczywistych (Central Register of Beneficial Owners) was established under Poland's Anti-Money Laundering Act (ustawa o przeciwdzialaniu praniu pieniedzy) implementing the EU's 4th and 5th Anti-Money Laundering Directives (AMLD4/AMLD5). Since October 13, 2019, every Polish legal entity - including sp. z o.o. (limited liability companies), spolki akcyjne (joint-stock companies), spolki komandytowe, foundations, and associations - must report their beneficial owners to CRBR.
A beneficial owner (beneficjent rzeczywisty) is defined as any natural person who:
- Holds more than 25% of shares or voting rights
- Exercises control through other arrangements
- Is a senior managing official if no other beneficial owner can be identified
The register is publicly accessible at crbr.podatki.gov.pl and is maintained by the Ministry of Finance. It serves as a critical tool for anti-money laundering compliance across the EU.
CRBR Portal Limitations for Bulk KYC/AML
If you work in KYC/AML compliance, you need to answer one question repeatedly: who is the ultimate beneficial owner of this company?
The CRBR portal lets you search by NIP (Numer Identyfikacji Podatkowej - tax ID) or KRS (Krajowy Rejestr Sadowy - court registry number). You enter one identifier, solve a CAPTCHA, and get the results for that single company.
For compliance teams screening hundreds of counterparties, this creates serious bottlenecks:
- No bulk access - one company at a time through the web form
- No export - results are displayed in HTML, no CSV or JSON download
- No API - the Ministry of Finance has not published any programmatic interface
- CAPTCHA protection - prevents simple HTTP-based automation
- No change notifications - you cannot subscribe to updates when a company changes its UBO declaration
For periodic re-verification of client portfolios (quarterly or annual KYC refresh), manual lookups become a full-time job.
CRBR Beneficial Owners Scraper: How to Use
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("minute_contest/crbr-beneficial-owners-scraper").call(
run_input={"nip": "5213103635"} # or use "krs": "0000123456"
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
for record in items:
print(f"Company: {record.get('companyName')}")
for owner in record.get("beneficialOwners", []):
print(f" UBO: {owner.get('name')} - {owner.get('sharePercentage')}%")
JavaScript (Node.js)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('minute_contest/crbr-beneficial-owners-scraper').call({
nip: '5213103635'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const record of items) {
console.log(`Company: ${record.companyName}`);
record.beneficialOwners?.forEach(owner => {
console.log(` UBO: ${owner.name} - ${owner.sharePercentage}%`);
});
}
CRBR Data Fields: What You Get Back
Each query returns a structured JSON object containing:
- Company name - full registered name of the legal entity
- NIP and KRS - tax identification and court registry numbers
-
Beneficial owners list - each UBO entry includes:
- Full name (first name, last name)
- Citizenship
- Country of residence
- Share percentage or nature of control
- Date the UBO declaration was filed
- Company legal form - sp. z o.o., S.A., sp. k., etc.
The data reflects what companies self-report to the Ministry of Finance. Companies face fines up to 1,000,000 PLN for failing to file or filing false UBO declarations.
Real-World Use Case: Onboarding Screening Pipeline
A fintech payment processor onboards 50 new merchant accounts per week. EU AML regulations require them to identify the beneficial owners of every merchant before activating the account. Their compliance workflow:
- Sales submits a new merchant application with the company's NIP
- The compliance system calls the CRBR actor via Apify API
- UBO data is returned in structured JSON within seconds
- The system flags merchants where the UBO is on a sanctions list or PEP (Politically Exposed Person) database
- Clean merchants are auto-approved; flagged ones go to manual review
Without automation, a compliance officer would spend 5-10 minutes per company on manual CRBR lookups. At 50 merchants per week, that is 4-8 hours of repetitive portal work - eliminated entirely by the actor.
Who Needs CRBR Beneficial Ownership Data
- AML compliance officers - verify UBO declarations as part of customer due diligence (CDD)
- Banks and financial institutions - screen counterparties for beneficial ownership before onboarding
- Law firms - identify ultimate controllers in M&A transactions and corporate restructuring
- Tax advisory firms - verify ownership structures for transfer pricing documentation
- Investigative journalists - trace corporate ownership networks and identify hidden controllers
- Payment processors and fintechs - automate KYC checks for merchant onboarding
CRBR Scraper Pricing vs Alternatives
| Method | Cost |
|---|---|
| Manual CRBR portal lookup | Free (one at a time, CAPTCHA required) |
| MGBI CRBR API | Included in 200-500 EUR/month subscription |
| This actor | ~$5.50 per 100 queries |
Free $5 Apify credits on signup = ~90 UBO lookups at no cost.
FAQ
Can I search CRBR by company name instead of NIP or KRS?
No. The CRBR portal only accepts NIP (tax ID) or KRS (court registry number) as search identifiers. If you only have a company name, you can first look up the NIP or KRS number through the KRS (eKRS) or REGON registry, then use that identifier to query CRBR.
How current is the CRBR data?
Companies are required to update their CRBR declarations within 7 business days of any change in beneficial ownership. In practice, some companies delay updates. The data reflects what has been self-reported - there is no independent verification by the Ministry of Finance.
Does CRBR cover sole proprietorships (jednoosobowa dzialalnosc gospodarcza)?
No. CRBR only covers legal entities that are registered in KRS - primarily sp. z o.o., S.A., sp. k., sp. j., foundations, and associations. Sole proprietorships registered only in CEIDG are not required to report to CRBR.
Try it: apify.com/minute_contest/crbr-beneficial-owners-scraper
This is part of the Polish Business Data APIs series covering programmatic access to Polish government registries.
Top comments (0)