Olá! Este projeto estava sendo criado para ser um curso completo sobre a emissão de Nota Fiscal de Serviço Eletrônica (NFS-e) no padrão nacional com Laravel.
Mas, sendo muito sincero, estou totalmente sem energia e saco para terminá-lo. E queria aproveitar e dar meu apoio a todos programadores que trabalham com documentos fiscais, pois é um assunto extremamente complexo e burocrático.
Então resolvi reunir o que já foi feito e disponibilizar como um pacote open source para a comunidade.
Atualmente, o projeto consegue emitir algumas NFSe simples em ambiente de homologação.
⚠️ Esse código NÃO foi testado em produção e NÃO deve ser utilizado em ambientes reais sem uma revisão completa.⚠️
Este projeto está em estágio inicial e NÃO deve ser utilizado em produção sem uma revisão completa. Ele serve como um ponto de partida para desenvolvedores que desejam entender o fluxo de emissão de NFS-e no padrão nacional.
Não há garantias de funcionamento, segurança ou conformidade legal. Consulte sempre um contador ou especialista tributário antes de utilizar este código em ambientes reais.
Não me responsabilizo por quaisquer problemas decorrentes do uso deste código. Ele é totalmente aberto para que você possa adaptá-lo conforme suas necessidades e aprender com ele.
- Clone o repositório:
git clone https://github.com/TiagoSilvaPereira/laravel-nfse.git
cd laravel-nfse- Instale as dependências via Composer:
composer install- Se necessário, configure a versão da NFSe no arquivo
.env:
NFSE_VERSION=1.01 # Valor padrão- Rode a Queue Worker para processar as emissões de NFS-e:
php artisan queue:work- E por fim rode o servidor local do Laravel:
php artisan serveVocê pode acessar a documentação direto na Wiki do GitHub:
Utilizei o Bruno como cliente REST para testar a API. Você pode encontrar as collections exportadas na pasta resources/collections/bruno.
Alguns exemplos de requests:
- Emitir NFS-e:
POST /api/nfse
{
"company_id": 1,
"integration_id": "teste-1",
"customer": {
"name": "Nome de Exemplo",
"cpfCnpj": "12345678901"
},
"service": {
"code": "010101",
"nbs_code": "115021000",
"description": "Desenvolvimento de Software",
"amount": 1338.40
}
}- Consultar Detalhes da NFS-e:
GET /api/nfse/{id} - Obter PDF da NFS-e:
GET /api/nfse/{id}/pdf
IMPORTANTE: a API implementada não possui autenticação. Em um ambiente real, é crucial implementar mecanismos de segurança adequados, como OAuth2, API Keys ou JWT, para proteger os endpoints contra acessos não autorizados.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests com melhorias, correções de bugs ou novas funcionalidades.
Algo que está faltando são testes automatizados. Se você puder ajudar com isso, será muito apreciado!
Este projeto está licenciado sob a Licença MIT.
