Skip to content

TiagoSilvaPereira/laravel-nfse

Repository files navigation

Introdução

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. ⚠️

img

🚨 IMPORTANTE 🚨

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.

Como rodar o projeto

  1. Clone o repositório:
git clone https://github.com/TiagoSilvaPereira/laravel-nfse.git
cd laravel-nfse
  1. Instale as dependências via Composer:
composer install
  1. Se necessário, configure a versão da NFSe no arquivo .env:
NFSE_VERSION=1.01 # Valor padrão
  1. Rode a Queue Worker para processar as emissões de NFS-e:
php artisan queue:work
  1. E por fim rode o servidor local do Laravel:
php artisan serve

Documentação

Você pode acessar a documentação direto na Wiki do GitHub:

Onde encontrar as collections de API?

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.

Como contribuir

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!

Licença

Este projeto está licenciado sob a Licença MIT.

About

Emissão de NFSe Padrão Nacional com Laravel (Exemplo)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors