Biblioteca NFE.io em PHP para Emissão de Notas Fiscais (NFS-e, NF-e, NFC-e, CT-e)
SDK PHP oficial da NFE.io — PHP 8.2+, zero dependências de runtime, cliente único com recursos tipados e retorno discriminado por union types nativos.
Biblioteca PHP NFE.io
SDK oficial da NFE.io para PHP: emissão e gestão de documentos fiscais eletrônicos brasileiros (NFS-e, NF-e, NFC-e, CT-e) com PHP moderno e zero dependências de runtime.
- Cliente único
Nfe\Clientcom acessorescamelCasepor recurso, em propriedadespublic readonly. - PHP 8.2+ estrito —
readonly, enums, argumentos nomeados e union types nativos para o retorno discriminado da emissão assíncrona. - Paridade 1:1 com o SDK Node.js — mesmos recursos, mesmos hosts, mesmos payloads.
Requisitos
- PHP 8.2, 8.3 ou 8.4.
- Extensões:
ext-curl,ext-json,ext-mbstring. - Zero dependências de runtime — cURL nativo; PSR-3 (log) e PSR-18 (transporte HTTP) são opcionais.
Instalação
composer require "nfe/nfe:^3.0"
Primeiros passos
use Nfe\Client;
$nfe = new Client(apiKey: $_ENV['NFE_API_KEY']);
$result = $nfe->serviceInvoices->create('55df4dc6b6cd9007e4f13ee8', [
'cityServiceCode' => '2690',
'description' => 'Manutenção e suporte técnico',
'servicesAmount' => 100.0,
'borrower' => [
'federalTaxNumber' => 191,
'name' => 'Banco do Brasil SA',
],
]);
O fluxo completo (retorno discriminado + polling) está em Primeiros passos.
Guias
| Guia | Conteúdo |
|---|---|
| Primeiros passos | Instalação, cliente, primeira emissão e polling. |
| Configuração | Argumentos do cliente, Nfe\Config, modelo de duas chaves, retry e transportes. |
| Emissão assíncrona e polling | Contrato 202 Pending/Issued e o laço de polling com FlowStatus. |
| Tratamento de erros | Hierarquia Nfe\Exception\* e padrões de catch. |
| Webhooks | Verificação HMAC-SHA1 com Nfe\Webhook e idempotência/replay. |
| Paginação | Estilos page e cursor; ListResponse e ListPage. |
| Downloads | PDF/XML como bytes em string. |
| Roteamento multi-host | Os hosts por família de recurso. |
| Cookbook por recurso | Um exemplo por recurso (os 17 recursos do cliente). |
Migração
Vindo da série 2.x (NFe_io, prefixo NFe_)? Veja o
guia de migração —
a v3.0 é uma reescrita completa, sem camada de compatibilidade. As linhas v2 e
v3 compartilham o mesmo pacote Composer (nfe/nfe); o Composer resolve cada
constraint (^2.0 / ^3.0) para a major correta automaticamente.