Empresas (companies)
O recurso $nfe->companies gerencia as empresas emissoras da sua conta — CRUD
completo mais a leitura do status do certificado digital. Tem escopo de
conta (não recebe $companyId como primeiro argumento), faz parte da
família main servida por api.nfe.io (/v1) e usa a apiKey.
remove(), não delete()Para excluir uma empresa, chame companies->remove($companyId) — retorna um
array{deleted, id}. O nome mantém paridade com os SDKs Node e Ruby.
Métodos
| Método | Descrição | Retorno |
|---|---|---|
create($data) | Cria uma empresa emissora. | Company |
list($options = []) | Lista paginada (pageIndex 1-based). | ListResponse |
listAll() | Todas as empresas (auto-paginação client-side). | array<Company> |
retrieve($companyId) | Consulta por id. | Company |
update($companyId, $data) | Atualiza. | Company |
remove($companyId) | Exclui. | array{deleted, id} |
findByTaxNumber($taxNumber) | Busca por CNPJ/CPF (varredura client-side). | ?Company |
findByName($name) | Busca por nome (varredura client-side). | array<Company> |
getCertificateStatus($companyId, $expiringSoonThreshold = 30) | Status do certificado digital. | CertificateStatus |
checkCertificateExpiration($companyId, $thresholdDays = 30) | Alerta de expiração. | array |
getCompaniesWithCertificates() | Empresas com certificado instalado. | array<Company> |
getCompaniesWithExpiringCertificates($thresholdDays = 30) | Empresas com certificado a vencer. | array<Company> |
O transporte do SDK é JSON-only (sem multipart) — não há
uploadCertificate()/validateCertificate() na v3.0. Faça o upload do
certificado .pfx pelo painel app.nfe.io (ou pela API
REST diretamente); use o SDK para ler o status e monitorar a expiração.
Exemplos
Criar e recuperar uma empresa
$company = $nfe->companies->create([
'name' => 'Acme Serviços LTDA',
'federalTaxNumber' => 12345678000199,
'email' => 'fiscal@acme.com.br',
]);
$nfe->companies->retrieve($company->id);
federalTaxNumber é int para empresasNo DTO Company (e LegalPerson), federalTaxNumber é inteiro; em
NaturalPerson é string. O SDK não valida nem coage no create — envie o tipo
que a API espera.
Paginar e localizar empresas
// Uma página por vez (pageIndex é 1-based):
$page = $nfe->companies->list(['pageIndex' => 1, 'pageCount' => 50]);
foreach ($page->data as $c) {
echo $c->name, PHP_EOL;
}
// Todas as empresas (auto-paginação client-side):
$todas = $nfe->companies->listAll();
// Buscas auxiliares (filtragem no cliente):
$acme = $nfe->companies->findByTaxNumber('12.345.678/0001-99');
$semelhantes = $nfe->companies->findByName('acme');
findByTaxNumber, findByName, listAll, getCompaniesWithCertificates e
getCompaniesWithExpiringCertificates percorrem todas as páginas e filtram
no cliente. Evite em contas com muitas empresas.
Monitorar o certificado digital
$status = $nfe->companies->getCertificateStatus($company->id);
$status->daysUntilExpiration; // calculado client-side a partir de expiresOn
$status->isExpiringSoon; // threshold padrão: 30 dias
$alerta = $nfe->companies->checkCertificateExpiration($company->id, thresholdDays: 15);
// Varredura da conta inteira:
$vencendo = $nfe->companies->getCompaniesWithExpiringCertificates(thresholdDays: 30);
Veja também
- Pessoas jurídicas e Pessoas físicas — tomadores vinculados à empresa.
- Webhooks — eventos por empresa.
- Tratamento de erros.