Minha saga com a emissão de NFS-e
Olá pessoal 👋 Sou programador e quero compartilhar com vocês um desafio que enfrentei nos últimos meses: emitir NFS-e. Parece algo básico, mas foi uma verdadeira jornada.
Minha primeira tentativa foi buscar soluções prontas, aquelas APIs pagas que prometem resolver tudo. Entrei em contato com várias empresas, comparei preços e funcionalidades, e até cheguei a começar a integração com uma delas. Mas, no teste final com um cliente… Descobri que não havia suporte para a cidade dele.
Ok, segui para outra API. Dessa vez até conseguimos a homologação junto à prefeitura. Porém, veio outro problema: o ambiente de homologação liberado era de uma cidade diferente (o que em teoria não importa, já que os dados de homologação são fictícios). Só que a API simplesmente não permitia emitir notas de outra cidade que não seja a do cadastro no site da API, mesmo em homologação.
Outro ponto crítico que percebi: muitas dessas APIs só liberam acesso ao ambiente de homologação depois que você paga. Ou seja, só dá pra descobrir se funciona para o seu caso quando já estiver pagando, e muitas vezes com valores bem altos. E pior ainda, após pagar e liberar o acesso, é capaz de perder mais tempo com problemas na integração.
Tentando o ACBR
Na sequência, fui atrás de alternativas gratuitas e encontrei o ACBR, que já tinha visto comentarem por aqui no TabNews. A ferramenta é realmente completa, cobre praticamente tudo que eu precisaria.
Mas aí vem o grande problema: não é nada dev-friendly.
- Documentação fraca ou inexistente.
- Tutoriais confusos ou voltados para linguagens que usam DLL diretamente.
- Interface gráfica da
acbrlib_phpque não faz o menor sentido sem explicação. - Zero quickstart ou guia prático.
Até encontrei cursos pagos, mas com valores na casa de R$ 1.500/ano, o que foge totalmente da ideia de algo acessível.
A luz no fim do túnel
Quando já estava quase desistindo, achei exatamente o que eu precisava: um projeto open source chamado php-nfse.
Ele tinha tudo — integrações com várias cidades, simples de usar, gratuito… mas estava abandonado havia 8 anos.
Pesquisando mais, encontrei alguns forks que ainda recebiam atualizações e mantinham compatibilidade. Então tomei uma decisão: juntar os updates desses forks e tentar trazer o php-nfse de volta à vida.
Já estou corrigindo os schemas atualizados de alguns provedores e sei que não será uma tarefa fácil, mas acredito que vale a pena lutar por isso.
👉 Meu objetivo: emissão de NFS-e gratuita e acessível para todos.
Opiniões
Gostaria de saber o que vocês acham da idea de trazer o php-nfse de volta a vida. Se tiverem sugestões de API's acessiveis, projetos opensource existentes ou tutoriais gratuitos ACBR. Meu objetivo é apenas um jeito de emitir NFS-e de forma que não precise tirar uma fortuna do bolso.
Quem quiser contribuir também com a lib vou estar deixando o link do repositório.