Reference adapters
- PL White List (wykaz podatników VAT)
- EU VIES
- KRS (National Court Register)
- CEIDG (sole proprietors)
- REGON / GUS
- CRBR (beneficial owners)
- Verified example NIPs
All reference adapters speak PSR-18 only and are mocked in tests (no live network in CI).
PL White List (wykaz podatników VAT)
HttpWhiteListClient + WhiteListCheck / WhiteListRegistryDriver.
- Capabilities:
VatStatus,BankAccountMatch. - Public, no key. Endpoint
https://wl-api.mf.gov.pl. - Returns the VAT status, the entity’s assigned bank accounts, the KRS number, and the
official search identifier which is persisted as
CheckResult::$proofId(due-diligence proof). An IBAN on the counterparty is matched against the assigned accounts.
EU VIES
HttpViesClient + ViesCheck / ViesRegistryDriver.
- Capability:
EuVatValidation(all 27 member states). - Public, no key. Validates the EU VAT number; reads
valid/isValidfrom the response.
KRS (National Court Register)
KrsRegistryDriver - capabilities LegalEntityData, BusinessRegistration.
The Ministry of Justice API is keyed by KRS number, not NIP, so this driver first resolves NIP -> KRS via the (public) White List, then fetches the current extract (“OdpisAktualny”). An entity with no KRS (e.g. a sole proprietor) yields not-found.
CEIDG (sole proprietors)
CeidgRegistryDriver - capabilities LegalEntityData, BusinessRegistration.
Requires a bearer token from biznes.gov.pl; pass it as the Authorization header via the
$headers constructor argument (or CEIDG_TOKEN in the bridges). A company that is not a
sole proprietor correctly returns not-found.
REGON / GUS
RegonRegistryDriver - capabilities StatisticalData, LegalEntityData.
The official GUS BIR service is SOAP and session-keyed. The bundled driver is a JSON template; for production you will likely point it at a JSON gateway or implement a SOAP client. It surfaces as
inconclusiveuntil wired.
CRBR (beneficial owners)
CrbrRegistryDriver - capability BeneficialOwners. Resolves the ultimate beneficial owners
of a Polish entity by NIP. Endpoint specifics may need adjusting for your environment.
Verified example NIPs
Useful for trying the public adapters (White List + VIES + KRS):
| NIP | Entity | KRS |
|---|---|---|
| 5252674798 | Allegro sp. z o.o. | 0000635012 |
| 5252344078 | Google Poland sp. z o.o. | 0000240611 |
| 7342867148 | CD Projekt S.A. | 0000006865 |
| 7740001454 | Orlen S.A. | 0000028860 |
| 6770065406 | Comarch S.A. | 0000057567 |
| 5260250995 | Orange Polska S.A. | 0000010681 |