nfse-nacional / nfse-php
This is my package nfse
Installs: 180
Dependents: 0
Suggesters: 0
Security: 0
Stars: 99
Watchers: 2
Forks: 16
Open Issues: 4
pkg:composer/nfse-nacional/nfse-php
Requires
- php: ^8.4
- guzzlehttp/guzzle: ^7.9
- illuminate/support: ^12.0
- illuminate/translation: ^12.0
- illuminate/validation: ^12.0
- spatie/data-transfer-object: ^3.9
Requires (Dev)
- laravel/pint: ^1.0
- mockery/mockery: ^1.6
- pestphp/pest: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-deprecation-rules: ^2.0
- spatie/ray: ^1.28
- spatie/typescript-transformer: dev-main
- dev-main
- v1.9.0-beta
- v1.8.0-beta
- v1.7.5-beta
- v1.7.4-beta
- v1.7.3-beta
- v1.7.2-beta
- v1.7.1-beta
- v1.7.0-beta
- v1.6.0-beta
- v1.5.0-beta
- v1.4.0-beta
- v1.3.0-beta
- v1.2.2-beta
- v1.2.1-beta
- v1.2.0-beta
- v1.1.0-beta
- v1.0.0-beta
- v0.2.0-beta
- v0.1.1-beta
- v0.1.0-beta
- dev-13-v2-beta
- dev-10-verificar-possibilidade-de-substituir-pacote-data-transfer-object
- dev-5-quebra-de-linha-no-xml
This package is auto-updated.
Last update: 2026-01-11 02:39:41 UTC
README
A maneira mais moderna e eficiente de integrar PHP com a NFS-e Nacional.
📦 Instalação
composer require nfse-nacional/nfse-php
🛠️ Uso dos Serviços
O pacote expõe dois serviços principais através da NfseContext: ContribuinteService (para emissores) e MunicipioService (para prefeituras).
Configuração Inicial
use Nfse\Nfse; use Nfse\Http\NfseContext; use Nfse\Enums\TipoAmbiente; $context = new NfseContext( ambiente: TipoAmbiente::Homologacao, certificatePath: '/path/to/certificate.pfx', certificatePassword: 'password' ); $nfse = new Nfse($context);
🏢 ContribuinteService
Focado nas necessidades de empresas que emitem notas.
$service = $nfse->contribuinte(); // Principais Métodos: // 1. Emitir NFS-e $nfseData = $service->emitir($dps); // Retorna NfseData // 2. Consultar NFS-e $nfseData = $service->consultar('CHAVE_ACESSO'); // 3. Baixar Documentos (Notas recebidas/emitidas) $docs = $service->baixarDfe(nsu: 100); // 4. Outros métodos úteis $service->consultarDps('ID_DPS'); $service->downloadDanfse('CHAVE_ACESSO'); // Retorna PDF binário $service->registrarEvento('CHAVE_ACESSO', $xmlEvento); // Ex: Cancelamento $service->consultarParametrosConvenio('CODIGO_MUNICIPIO');
🏛️ MunicipioService
Focado nas necessidades de prefeituras e órgãos gestores.
$service = $nfse->municipio(); // Principais Métodos: // 1. Baixar Arrecadação e Notas $docs = $service->baixarDfe(nsu: 100, tipoNSU: 'GERAL'); // 2. Consulta Cadastral (CNC) $dados = $service->consultarContribuinte('CPF_CNPJ'); // 3. Parâmetros e Configurações $params = $service->consultarParametrosConvenio('CODIGO_MUNICIPIO'); $aliquotas = $service->consultarAliquota('COD_MUN', 'COD_SERV', 'COMPETENCIA');
📝 Exemplo de DPS (Declaração de Prestação de Serviço)
Abaixo, um exemplo completo de como montar o objeto DPS para emissão.
use Nfse\Dto\Nfse\DpsData; use Nfse\Support\IdGenerator; // Gerar ID único para a DPS $idDps = IdGenerator::generateDpsId('12345678000199', '3550308', '1', '1001'); $dps = new DpsData([ '@attributes' => ['versao' => '1.00'], 'infDPS' => [ '@attributes' => ['Id' => $idDps], 'tpAmb' => 2, // 1-Produção, 2-Homologação 'dhEmi' => date('Y-m-d\TH:i:s'), 'verAplic' => '1.0.0', 'serie' => '1', 'nDPS' => '1001', 'dCompet' => date('Y-m-d'), 'tpEmit' => 1, // 1-Prestador 'cLocEmi' => '3550308', // Código IBGE Município 'prest' => [ 'CNPJ' => '12345678000199' ], 'toma' => [ 'CPF' => '11122233344', 'xNome' => 'Cliente Exemplo' ], 'serv' => [ 'locPrest' => [ 'cLocPrestacao' => '3550308' ], 'cServ' => [ 'cTribNac' => '01.01', // Código Tributação Nacional 'xDescServ' => 'Desenvolvimento de Software' ] ], 'valores' => [ 'vServPrest' => [ 'vReceb' => 1000.00, 'vServ' => 1000.00 ], 'trib' => [ 'tribMun' => [ 'tribISSQN' => 1, // 1-Tributável 'tpRetISSQN' => 2, // 1-Retido, 2-Não Retido 'pAliq' => 5.00 ] ] ] ] ]); // Emitir $nfse->contribuinte()->emitir($dps);
📚 Documentação Completa
Para detalhes profundos sobre cada DTO e configurações avançadas, visite nossa Documentação Oficial.
License
The MIT License (MIT). Please see License File for more information.