Skip to main content

Start here

This guide contains public integration notes for Poland. Use it for identifier formats, search behavior, and country-specific caveats. The live source of truth for coverage, pricing, data sources, documents, legal forms, roles, and status values is the pricing page.

Poland coverage, pricing, and sources

Open the current catalog for supported datapoints, documents, sources, identifiers, and availability.
Country details below are preserved as integration notes. If a table or example conflicts with the live pricing page, use the pricing page as the source of truth and contact support.

Data Sources

Poland uses a hybrid approach with two different registries and APIs, routing company lookups based on entity type. For a given entity, data comes from a single source determined by the registration prefix.
  • KRS (Krajowy Rejestr Sadowy / National Court Register). Operated by the Ministry of Justice, the KRS is the primary source for all legal entities: limited liability companies (sp. z o.o.), joint-stock companies (S.A.), partnerships, associations, foundations, cooperatives, and other registered entities. Data is retrieved from two complementary API endpoints (odpisaktualny for current extracts and danepodmiotu for entity-level data), fetched in parallel with automatic failover. Provides company name, legal form, status, address, capital, activity codes (PKD), management board members, procurators, and shareholders (sp. z o.o. only).
  • CRBR (Centralny Rejestr Beneficjentow Rzeczywistych / Central Register of Beneficial Owners). Poland’s official UBO registry, mandatory for all entities registered in KRS. Provides ultimate beneficial owner data including ownership percentages, control types (direct/indirect), and management positions. Accessed programmatically.
  • eKRS Financial Documents Portal (ekrs.ms.gov.pl). Official portal for financial documents filed by KRS companies. Provides annual financial statements, consolidated statements, management reports, auditor opinions, and approval resolutions. Documents may be in XML format (automatically converted to PDF).

CEIDG sole proprietors (individual businesses)

  • biznes.gov.pl API. Government API for the Central Register and Information on Business Activity (CEIDG). Used for search across both registers (KRS + CEIDG) and as the sole data source for sole proprietors. Provides company name, owner name, address, PKD activity codes, status, and basic contact information.
Dual Register System: Poland maintains two separate registers — KRS for legal entities (companies, non-profits, cooperatives) and CEIDG for sole proprietors (individual businesses). Our system uses prefixed identifiers (krs- / nip-) to route requests to the correct register and API.
  • krs-{number} prefix: Routes to the KRS API. Used for all legal entities registered in the National Court Register (companies, associations, foundations, cooperatives).
  • nip-{number} prefix: Routes to the biznes.gov.pl API. Used for sole proprietors registered in CEIDG.
The prefix is required because both KRS and NIP numbers are 10-digit identifiers that could collide. Not all KRS entities have a NIP (e.g., some associations and foundations), making KRS the only reliable identifier for those entities.Key Takeaway: Always use the appropriate prefix when querying. Search results from the API already include the correct prefix.

Company Identifiers

Query Identifiers

Prefixed identifiers are required. Company IDs must use krs- or nip- prefixes to route to the correct register. Without a prefix, the system cannot determine the data source and will return an error.
KRS Number Padding: KRS numbers are always 10 digits with leading zeros (e.g., 0001010154). When searching by KRS number, shorter inputs are automatically padded to 10 digits.

Identifiers in API Response

Once you retrieve company data, the identifiers object contains all available identifiers for that entity:

Search Capabilities

Search Performance: Use identifier-based searches (KRS, NIP, REGON) for best performance and exact matching. Name searches query biznes.gov.pl and may return multiple results from both KRS and CEIDG registers.
Search queries multiple sources in parallel. For identifier searches, the system queries KRS by KRS number, KRS by NIP, CEIDG by NIP, and CEIDG by REGON simultaneously. Results are deduplicated by ID, with KRS results taking precedence over CEIDG when both match.

Company Status

Company status is determined from KRS register data and enhanced with AI mapping. CEIDG (sole proprietor) statuses use a separate mapping path.

KRS Companies (primary path)

Status is derived from multiple KRS data points: deletion indicators, bankruptcy proceedings, merger records, and name-based liquidation detection. Closure reasons (when status is Closed or Under Insolvency Proceeding):

CEIDG Sole Proprietors

Closure Date Priority

The system prioritizes closure dates in the following order:
  1. Deletion finalization date (dataUprawomocnienia in extract header) — highest priority
  2. Register deletion dates (dataWykreslenia from dzial6 KRS/RP deletion records)
  3. Bankruptcy completion date (dataZakonczeniaPostepowania)
  4. CEIDG cancellation/cessation dates (for sole proprietors)
Status classification is AI-enhanced. The local Polish status name from KRS is always preserved verbatim. The AI analyzes the status in context to provide standardized mapping. Deterministic rules (deletion, bankruptcy, liquidation) take precedence before AI enrichment.
Poland ships a closed enum of 51 legal forms sourced directly from the Polish registers. The enum covers the 50 distinct formaPrawna strings the KRS returns, plus one canonical entry for CEIDG sole traders. There is no AI fallback: an unknown value is rejected with invalid at ingestion time so the enum stays accurate and any new form the register introduces surfaces as a deploy blocker. Provenance:
  • KRS values were harvested from the full July 2024 snapshot of the Krajowy Rejestr Sadowy (849,757 entities across the commercial register RejP and the association register RejS). The top 13 forms cover 99.7% of the register and the full set is 50 distinct strings.
  • CEIDG sole traders are projected onto a single canonical entry (Osoba fizyczna prowadząca działalność gospodarczą), because the biznes.gov.pl API does not expose a formaPrawna field for CEIDG entries (a sole trader has no entity-level legal form under Polish law).
  • ISO 20275 (ELF) codes are attached as a cross-reference where GLEIF publishes one. Out of the 51 entries, 33 have an ELF code and 18 do not. GLEIF is not the source of the enum; the register is. We attach ELF codes opportunistically for LEI matching and nothing more.
GLEIF’s ISO 20275 list for Poland is incomplete and is not a safe source of truth. 18 of the 50 KRS-returned forms have no ELF code at all (for example the granular stowarzyszenie subtypes, public-benefit organizations, and church-related entities). This is why the enum is built from the register itself, not from ISO 20275.

Core commercial forms

Cooperatives and mutuals

State and public-sector entities

Associations and foundations

Trade unions and employer associations

Guilds, chambers, and business organizations

Agricultural and transport associations

Sports bodies

Public-benefit organizations and church entities

Sole traders (CEIDG)

Legal representatives are extracted from two KRS data sections: the management board (reprezentacja.sklad) and procurators (prokurenci). Role classification is AI-enriched — the AI analyzes each role in the context of the company’s legal form to assign ISO 5009 codes.
Board member and shareholder names: use verification mode. Poland’s National Court Register masks personal data on its online lookup, returning names like W***** L********. Topograph reads the full names from the official court extract instead, so in verification mode legalRepresentatives and shareholders come back with complete first names and surnames for companies, associations, and foundations. The names are read from the court extract by AI, so verify against the source document before relying on them for compliance.Details for the response payload:
  • Onboarding mode returns only the company identity fields (name, legal form, registered seat, status, capital, activity codes, dates). It does not include board members or shareholders. Use verification mode (the default) when you need the people.
  • legalRepresentatives[].individual.name.firstName and lastName are full and unredacted in verification mode.
  • legalRepresentatives[].individual.birthDate and gender are not currently populated for Polish entities.
  • shareholders are listed for limited liability companies (sp. z o.o.) where the register publishes them, with full names.
  • The role (localName and standardized), structural fields, addresses, capital, and dates are all complete.
The ultimate beneficial owners datapoint comes from CRBR, a separate Polish register, with full names, birth dates, and nationalities. UBOs and legal representatives answer different questions and one is not a substitute for the other.

KRS Management Board Roles

PESEL-Based Data Extraction

For KRS management board members and procurators, birth dates and gender would normally be extracted from PESEL numbers (Polish Personal Identification Number, 11 digits). The parser is in place, but birthDate and gender are not currently populated for Polish legal representatives. Full names are returned in verification mode (see the note above); the PESEL itself is sensitive personal data and is not part of the response today.
PESEL format: YYMMDDCCCSS (11 digits)
  • YY — Year (last 2 digits)
  • MM — Month (with century indicator: 01-12 = 1900s, 21-32 = 2000s)
  • DD — Day of birth
  • CCC — Serial number
  • S — Gender digit (even = female, odd = male)
  • S — Checksum digit
When unredacted PESEL becomes available, the parser will extract birth date (year, month, day) and gender for each representative without code changes.
Procurators (authorized signatories) from KRS are mapped as additional legal representatives with the PROKURENT role and standardized as Other. For CEIDG sole proprietors, the entrepreneur is automatically mapped as the sole legal representative with role “Wlasciciel” (Owner).

Other Key Persons

Other key persons are not currently extracted from Polish registries. All management board members and procurators are mapped as legal representatives.

Shareholders

Shareholders are extracted from the KRS register for sp. z o.o. (Limited Liability Companies) only, from the wspolnicySpzoo section (Section 1 of the KRS extract).
Individual shareholder names are redacted by the KRS API, the same way representative names are. Where the KRS used to return a full first name and surname for an individual shareholder, the API now returns first-character masks (J***** K******). Corporate shareholder records are unaffected: the company name, KRS, NIP and REGON identifiers all come through intact, and you can use those identifiers to fetch the corporate shareholder’s own profile if needed.

Extraction Logic

Share Count Parsing

Share counts are parsed from Polish KRS text strings using a combination of regex (fast path) and AI (complex cases):
Polish number format: Poland uses dot (.) as thousands separator and comma (,) as decimal separator. The parser handles this automatically. Share percentages are not directly available from KRS — only absolute share counts are extracted.

Shareholder Type Detection

Limitations

For corporate shareholders, Polish identifiers (KRS, NIP, REGON) are included when available. Foreign corporate shareholders without Polish identifiers are included with name only. Share percentages are not directly available from KRS; only share counts are extracted.

Ultimate Beneficial Owners

UBO data is sourced from CRBR (Centralny Rejestr Beneficjentów Rzeczywistych), the Polish Central Register of Beneficial Owners operated by the Ministry of Finance. CRBR is a separate register from KRS, established under Polish AML law (transposing 4AMLD/5AMLD), and it is mandatory for almost every entity registered in KRS to disclose its beneficial owners there. A beneficial owner in CRBR is the natural person who ultimately owns or controls the entity, defined by the Polish AML act as direct or indirect ownership above 25%, or any other form of effective control. Where no natural person meets that threshold (typical for state-owned entities, listed companies, and complex structures), CRBR records senior managing officials as a fallback per the AML directive.
CRBR is not redacted. Unlike the KRS API, CRBR returns full first names, surnames, birth dates, nationalities, and a description of how control is exercised. The redaction policy the Ministry of Justice applies to KRS does not apply to CRBR, because the whole point of CRBR is to expose this data for AML and KYC compliance.
Each UBO record returned by the API contains: CRBR returns no UBOs for entities that are exempt from disclosure (state-owned enterprises, the State Treasury, certain public-benefit organizations) or for entities whose ownership chain resolves to a listed parent. In those cases the response contains an empty ultimateBeneficialOwners array, which is correct, not a gap. UBO data is fetched on demand. Use either the dedicated endpoint topo api ubo PL <krs> / GET /v2/company/{id}/ubo, or include ultimateBeneficialOwners in the dataPoints array on a profile request. The ubo_extract document catalog item (pol-ubo-data) returns the full CRBR PDF excerpt for filing in compliance dossiers.

Activity Code Mapping

Poland uses the PKD (Polska Klasyfikacja Dzialalnosci) classification, which is the Polish adaptation of the European NACE Rev. 2 standard. PKD codes are structurally identical to NACE codes and are mapped directly without transformation.
The KRS provides both the main activity (przedmiotPrzewazajacejDzialalnosci) and secondary activities (przedmiotPozostalejDzialalnosci). CEIDG provides mainPkd (primary) and otherPkd[] (additional).
AI Enrichment: When ISIC codes cannot be derived from NACE via formal mapping tables, the system uses an LLM to match activity descriptions to ISIC Rev. 4 codes. Every activity item includes an isAIInferred flag. PKD/NACE codes are never AI-inferred for Poland.

Activity Codes by Source

Data Availability Matrix

Legend: Yes = Available | No = Not Available | Async = Asynchronous processing

Documents by Company Type

KRS Companies (prefix: krs-)

CEIDG Sole Proprietors (prefix: nip-)

Current KRS Extract availability: The current extract (tradeRegisterExtract) is only available for active companies. Inactive, dissolved, or deleted companies can only access the historical extract (otherDocuments[]), which contains the full history including closure details.

Financial Document Types

Available financial document types from the eKRS portal include:
  • Roczne sprawozdanie finansowe — Annual Financial Statements
  • Skonsolidowane roczne sprawozdanie finansowe — Consolidated Annual Financial Statements
  • Sprawozdanie z dzialalnosci — Management Reports
  • Opinia bieglego rewidenta — Auditor’s Opinions
  • Uchwaly o zatwierdzeniu sprawozdan — Approval Resolutions
  • Uchwaly o podziale zysku — Profit Distribution Resolutions
Automatic XML-to-PDF Conversion: Financial documents in Poland are often published in XML format using the Ministry of Finance schema. We automatically convert these XML files to human-readable PDF format using the official Polish government visualization tool at e-sprawozdania.mf.gov.pl. Both the original XML and the converted PDF are stored and accessible. If conversion fails, the original XML file is still returned.
Due to technical limitations of the Polish financial documents portal, the document format (XML vs PDF) is not available in the availableDocuments listing. The format field will be undefined during listing and is only determined when the document is actually downloaded.

Example API Responses

All examples use placeholder data. Query: POST /v2/company with { "id": "<id>", "countryCode": "PL", "dataPoints": ["company", "legalRepresentatives"] }
Note: First names, surnames and PESEL of individual representatives and shareholders are first-character masked at the source by the KRS API. The example above shows the actual on-the-wire shape for a real Polish company today. PESEL-derived birthDate and gender are unavailable for the same reason.
Note: Dissolved companies are mapped from the danepodmiotu endpoint only when the full extract (odpisaktualny) is not available. Shareholders are not available in this case. Only the historical trade register extract is available as a document. Personal data is first-character masked the same way as for active companies.
Note: CEIDG entities have the entrepreneur mapped as the sole legal representative with role “Wlasciciel” (Owner). No shareholders, UBOs, or financial statements are available.
Query with "dataPoints": ["ultimateBeneficialOwners"]:
Note: UBO records are unredacted and verified live. CRBR is operated by the Polish Ministry of Finance, not by the Ministry of Justice that runs KRS, and the redaction policy on KRS does not apply here. Note: UBOs are fetched from the CRBR (Central Register of Beneficial Owners). Three control types are recognized: (1) direct ownership of shares/assets, (2) indirect control through controlling entity, (3) senior management position under AML law. Ownership amounts may be in PLN (monetary) or percentage.
Documents are returned when "dataPoints": ["availableDocuments"] is requested.For active KRS companies:For inactive KRS companies:For CEIDG entities:

Quirks & Gotchas