PHPackages                             rumbleh/laravel-nfse - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. rumbleh/laravel-nfse

ActiveLibrary[Payment Processing](/categories/payments)

rumbleh/laravel-nfse
====================

Pacote Laravel para emissão de NFS-e pelo Sistema Nacional NFS-e (gov.br): DPS, assinatura A1, SEFIN Nacional, ADN, Parâmetros Municipais, DANFSE e eventos.

v1.0.0(3d ago)025↓40%MITPHP ^8.2

Since Jul 7Compare

[ Source](https://github.com/rumbleh/laravel-nfse)[ Packagist](https://packagist.org/packages/rumbleh/laravel-nfse)[ RSS](/packages/rumbleh-laravel-nfse/feed)WikiDiscussions Synced today

READMEChangelogDependencies (4)Versions (2)Used By (0)

rumbleh/laravel-nfse
====================

[](#rumblehlaravel-nfse)

Pacote Laravel para emissão de **NFS-e pelo Sistema Nacional NFS-e (gov.br)**: monta e assina a DPS (layout oficial **v1.01**), transmite ao **SEFIN Nacional**, consulta **Parâmetros Municipais** no **ADN**, cancela, substitui e baixa o **DANFSE** — com suporte a **homologação (Produção Restrita)** e **produção**por configuração.

Foco de primeira classe: **prestação de serviço de frete municipal**(cTribNac `160201`), com presets e validações específicas.

```
use Rumbleh\Nfse\Facades\Nfse;

$resultado = Nfse::emitir(
    Nfse::dps()
        ->numero(1)
        ->servicoFreteMunicipal('Frete de carga fracionada dentro de São Paulo', '3550308')
        ->valor(350.00)
);

$resultado->chaveAcesso;          // 50 dígitos
$resultado->nfseXml;              // XML da NFS-e autorizada
$resultado->urlConsultaPublica(); // link do QR Code
```

O que o pacote faz
------------------

[](#o-que-o-pacote-faz)

RecursoAPIEndpointEmitir NFS-e (DPS assinada)`Nfse::emitir()``POST {sefin}/nfse`Consultar NFS-e pela chave`Nfse::consultarNfse()``GET {sefin}/nfse/{chave}`Chave a partir do nº da DPS`Nfse::consultarChavePorNumero()``GET {sefin}/dps/{id}`Verificar duplicidade`Nfse::numeroJaEmitido()``HEAD {sefin}/dps/{id}`Cancelar (evento e101101)`Nfse::cancelar()``POST {sefin}/nfse/{chave}/eventos`Substituir NFS-e`Nfse::dps()->substituirNfse()`via `POST /nfse` (evento e105102 automático)Consultar eventos`Nfse::consultarEventos()``GET {sefin}/nfse/{chave}/eventos`DANFSE em PDF`Nfse::danfse()`ADN + fallback Emissor Nacional webConvênio do município`Nfse::parametros()->consultarConvenio()``GET {adn}/parametrizacao/{mun}/convenio`Alíquota parametrizada`Nfse::parametros()->consultarAliquota()``GET {adn}/parametrizacao/{mun}/{serv}/{comp}/aliquota`Retenções/regimes/benefícios`Nfse::parametros()->...``GET {adn}/parametrizacao/...`Caixa de DF-e (distribuição)`Nfse::adn()->distribuirDfe()``GET {adn}/contribuintes/DFe/{nsu}`Por baixo: certificado A1 (PFX→PEM), mTLS, assinatura XMLDSig (rsa-sha1 padrão do manual oficial; sha256 opcional), GZip+Base64, validação local contra os **XSDs oficiais** distribuídos com o pacote, parser de erros tolerante às variações reais da API e retry para instabilidades do ambiente.

Requisitos
----------

[](#requisitos)

- PHP ≥ 8.2 com `ext-openssl`, `ext-dom`, `ext-zlib`, `ext-curl`
- Laravel 10, 11 ou 12 (ou uso standalone — ver `examples/`)
- Certificado digital **ICP-Brasil A1** (e-CNPJ) — arquivo `.pfx`/`.p12` + senha
- Município do prestador **conveniado** ao Sistema Nacional e aderente aos emissores públicos nacionais (verifique com `php artisan nfse:status`)

Instalação
----------

[](#instalação)

```
composer require rumbleh/laravel-nfse
php artisan vendor:publish --tag=nfse-config
```

`.env`:

```
NFSE_AMBIENTE=homologacao            # ou "producao"
NFSE_CERT_PATH=/storage/certificado.pfx
NFSE_CERT_PASSWORD=senha-do-certificado
NFSE_PRESTADOR_CNPJ=12345678000195
NFSE_PRESTADOR_MUNICIPIO=3550308     # código IBGE (7 dígitos) do SEU estabelecimento
NFSE_SERIE=1
```

Diagnóstico inicial (certificado + convênio do município):

```
php artisan nfse:status
```

Primeira emissão de teste em homologação (frete municipal):

```
php artisan nfse:emitir-teste --valor=100.00
```

Homologação → Produção
----------------------

[](#homologação--produção)

O ambiente é **uma configuração**: `NFSE_AMBIENTE=homologacao` usa a Produção Restrita (`sefin.producaorestrita.nfse.gov.br`, `tpAmb=2`, notas sem validade jurídica); `NFSE_AMBIENTE=producao` usa `sefin.nfse.gov.br` com `tpAmb=1`. O pacote ajusta URLs e `tpAmb` juntos (evita a rejeição E0006). Checklist completo em [docs/03-homologacao-e-producao.md](docs/03-homologacao-e-producao.md).

Documentação
------------

[](#documentação)

GuiaConteúdo[01 · Conceitos](docs/01-conceitos.md)O Sistema Nacional: SEFIN, ADN, CNC, DPS, NFS-e, DANFSE, chave de acesso[02 · Instalação e configuração](docs/02-instalacao-configuracao.md)Config completa, certificado A1, problemas comuns de PFX[03 · Homologação e produção](docs/03-homologacao-e-producao.md)Produção Restrita passo a passo, checklist de virada[04 · Emissão](docs/04-emissao.md)Builder da DPS campo a campo, numeração, substituição[05 · **Frete**](docs/05-frete.md)ISS×ICMS, código 160201, local de incidência, alíquota, retenção[06 · Consultas](docs/06-consultas.md)Por chave, por DPS, eventos, distribuição de DF-e[07 · Cancelamento](docs/07-cancelamento.md)Evento e101101, prazos municipais, substituição[08 · DANFSE](docs/08-danfse.md)PDF: API suspensa (NT 008), fallback web, geração local[09 · Parâmetros municipais](docs/09-parametros-municipais.md)Convênio, alíquotas, retenções, benefícios[10 · Erros comuns](docs/10-erros-comuns.md)Códigos E\*\*\*\*, causas e correçõesExemplos executáveis (sem precisar de app Laravel) em [`examples/`](examples/README.md).

Testes
------

[](#testes)

```
composer test                          # unitários (geram certificado fake em runtime)

# integração real com a Produção Restrita (requer seu certificado):
NFSE_CERT_PATH=/caminho/cert.pfx NFSE_CERT_PASSWORD=senha \
NFSE_PRESTADOR_CNPJ=... NFSE_PRESTADOR_MUNICIPIO=... \
vendor/bin/phpunit --filter Homologacao
```

Os testes validam os XMLs gerados contra os **XSDs oficiais**(`NFSe-ESQUEMAS_XSD-v1.01-20260209`) incluídos em `resources/xsd/`.

Limites e avisos importantes
----------------------------

[](#limites-e-avisos-importantes)

- **Frete intermunicipal/interestadual NÃO é NFS-e** — é ICMS, documentado por CT-e (modelo 57). Este pacote cobre apenas transporte de natureza municipal (LC 116/2003, item 16). Detalhes em [docs/05-frete.md](docs/05-frete.md).
- Emissão exclusivamente como **prestador** (`tpEmit=1`) — o Sistema Nacional rejeita emissão por tomador/intermediário na versão atual (E9996).
- O grupo **IBS/CBS** (Reforma Tributária) é facultativo no layout v1.01 em produção (NT-004); há suporte via `->ibscbs([...])` para quando a obrigatoriedade for religada.
- Guarde os XMLs retornados (`storage_path` na config) — eles são o documento fiscal; o DANFSE é só a representação impressa.

Licença
-------

[](#licença)

MIT.

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance99

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e980334c9ca4544b40667b0b34eed9202f815930a375845f744b1439874c6651?d=identicon)[rumbleh](/maintainers/rumbleh)

---

Tags

laraveldpsnota fiscalnfsenfse-nacionaldanfsegovbradnsefin

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/rumbleh-laravel-nfse/health.svg)

```
[![Health](https://phpackages.com/badges/rumbleh-laravel-nfse/health.svg)](https://phpackages.com/packages/rumbleh-laravel-nfse)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M3.2k](/packages/craftcms-cms)[sebdesign/laravel-viva-payments

A Laravel package for integrating the Viva Payments gateway

4851.0k](/packages/sebdesign-laravel-viva-payments)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5022.6k](/packages/simplestats-io-laravel-client)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

293.1k](/packages/eslazarev-wildberries-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
