The package exposes every full and bulk report type supported by
gusapi/gusapi as a native PHP enum. This avoids passing undocumented GUS
report-name strings through application code.
Start a search, select a ReportType, and call getFullReport():
use cieplik206\BirRegon\Enums\ReportType;
use cieplik206\BirRegon\Facades\BirRegon;
$report = BirRegon::forRegon('123456789')
->reportType(ReportType::Organization)
->getFullReport();
Full reports may also start with a NIP or KRS. The package first resolves the entity’s REGON and then requests the selected report:
$report = BirRegon::forNip('1234567890')
->reportType(ReportType::OrganizationActivity)
->getFullReport();
The result is a FullCompanyReportData object:
$report->basicData; // CompanyData
$report->reportData; // array<int, array<string, string>>
| Enum case | GUS report scope |
|---|---|
NaturalPerson |
Natural person |
NaturalPersonCeidg |
CEIDG activity |
NaturalPersonAgro |
Agricultural activity |
NaturalPersonOther |
Other natural-person activity |
NaturalPersonDeletedBefore20141108 |
Activity deleted before 2014-11-08 |
NaturalPersonLocals |
Local units of a natural person |
NaturalPersonLocal |
A natural-person local unit |
NaturalPersonActivity |
Natural-person PKD activity |
NaturalPersonLocalActivity |
Local-unit PKD activity for a natural person |
Organization |
Legal entity or organizational unit |
OrganizationActivity |
Organization PKD activity |
OrganizationLocals |
Local units of an organization |
OrganizationLocal |
An organization local unit |
OrganizationLocalActivity |
Local-unit PKD activity for an organization |
OrganizationPartners |
Organization partners |
UnitType |
Unit type |
The selected report must match the entity represented by the REGON. GUS decides whether a report is available and which fields it contains.
Bulk reports describe registry changes for a given date. Start with
forDate(), select a BulkReportType, and call get():
use cieplik206\BirRegon\Enums\BulkReportType;
use cieplik206\BirRegon\Facades\BirRegon;
use DateTimeImmutable;
$report = BirRegon::forDate(new DateTimeImmutable('2026-08-22'))
->reportType(BulkReportType::NewLegalEntitiesAndNaturalPersons)
->get();
getBulkReport() is an alias for get().
| Enum case | Registry change |
|---|---|
NewLegalEntitiesAndNaturalPersons |
Newly registered legal entities and natural persons |
UpdatedLegalEntitiesAndNaturalPersons |
Updated legal entities and natural persons |
DeletedLegalEntitiesAndNaturalPersons |
Deleted legal entities and natural persons |
NewLocalUnits |
Newly registered local units |
UpdatedLocalUnits |
Updated local units |
DeletedLocalUnits |
Deleted local units |
The result is a BulkReportData object:
$report->date; // DateTimeImmutable
$report->reportType; // BulkReportType
$report->reportData; // array<int, string>
Calling a report method without first selecting reportType() throws a
BirException.
Continue with Data objects.