nfse-nacional / nfse-php
This is my package nfse
Installs: 513
Dependents: 0
Suggesters: 0
Security: 0
Stars: 120
Watchers: 4
Forks: 25
Open Issues: 7
pkg:composer/nfse-nacional/nfse-php
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.9
- spatie/data-transfer-object: ^3.9
Requires (Dev)
- brianium/paratest: ^7.3
- illuminate/support: ^10.0 || ^11.0 || ^12.0
- illuminate/translation: ^10.0 || ^11.0 || ^12.0
- illuminate/validation: ^10.0 || ^11.0 || ^12.0
- laravel/pint: ^1.0
- mockery/mockery: ^1.6
- pestphp/pest: ^2.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpunit/phpunit: ^10.0
- spatie/ray: ^1.28
Suggests
- spatie/typescript-transformer: Opcional (PHP >=8.2) para regenerar o arquivo types/generated.d.ts.
- dev-main
- v1.12.0-beta
- v1.11.0-beta
- v1.10.0-beta
- 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
This package is auto-updated.
Last update: 2026-02-12 17:50:15 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.