WebScraping NFCe Sefaz ES
Motivação
A busca por informações de Nota Fiscal de Consumidor eletrônica (NFC-e) pode ser um processo complexo e demorado, especialmente quando se trata de decodificar QR codes e acessar dados diretamente do Sefaz ES. Este projeto foi criado para simplificar esse processo, oferecendo uma solução automatizada e eficiente para desenvolvedores que precisam integrar a busca de NFC-e em seus sistemas.
Descrição
Este sistema realiza a busca de NFC-e diretamente do Sefaz ES, retornando um objeto estruturado com os dados da nota fiscal. Ele suporta tanto links de QR codes quanto imagens contendo QR codes, tornando-o versátil e fácil de usar.
Como Utilizar
Instalação
Escolha seu gerenciador de pacotes preferido para instalar a biblioteca:
Usando npm:
npm install scraping-nfce-sefazes
Usando yarn:
yarn add scraping-nfce-sefazes
Usando pnpm:
pnpm add scraping-nfce-sefazes
Importação
Após instalar, importe o buscador em seu projeto:
import SefazES from "scraping-nfce-sefazes";
Crie uma função assíncrona que ficará responsável por acionar o método de busca.
async function gerarNota(item) {
const busca = SefazES.buscarNfce(item);
const resultadoBusca = await busca;
return resultadoBusca;
}
Ao chamar sua função, você poderá passar o link do QR-code da NFC-e que deseja buscar ou a imagem com o QR-code e deixar que o buscador decodifique o endereço.
gerarNota(SEU_LINK_OU_ENDERECO_DO_QRCODE_AQUI)
.then((resultado) => {
console.log("Resultado:", JSON.stringify(resultado, null, 2));
})
.catch((erro) => {
console.error("Erro:", erro);
});
Busca com imagem do QR code
const caminhoImagem = "./caminho/para/qrcode.png";
buscarNota(caminhoImagem)
.then((resultado) => {
console.log("Resultado:", JSON.stringify(resultado, null, 2));
})
.catch((erro) => {
console.error("Erro:", erro);
});
Estrutura do resultado
O método buscarNfce
retorna um objeto com a seguinte estrutura:
{
resultadoBusca: {
estabelecimento: {
nome: string,
cnpj: number,
endereco: string
},
consumidor: {
cpf?: number,
nome?: string,
logradouro?: string
},
infoGerais: {
emissaoTipo?: string,
numero?: number,
serie?: number,
emitidaEm?: string,
protocolo?: number,
chave?: string
},
listaItens: [
{
nome: string,
codigo: number,
quantidade: number,
unidade: string,
valorUnitario: number,
valorTotal: number
}
],
totalizadores: {
qtdTotalItens?: number,
valorPagar?: number,
descontos?: number,
valorTotal?: number,
tributos?: number
}
}
}
Desenvolvimento
Para rodar o projeto localmente (por exemplo, para testes ou desenvolvimento):
git clone <URL_DO_REPOSITORIO>
cd scraping-nfce-sefaz-es
pnpm install
- Execute o build para compilar a biblioteca:
pnpm run build
- Execute o script de teste:
pnpm start
O script de teste (index.js
) está configurado para buscar uma NFC-e de exemplo. Edite o arquivo index.js
para testar com outras URLs ou imagens.
Notas
- Puppeteer: Requer o Chromium, que é instalado automaticamente com o
puppeteer
. Certifique-se de ter espaço suficiente e permissões adequadas.
- Imagens: A leitura de QR codes depende da biblioteca
qrcode-reader
. Certifique-se de que as imagens fornecidas sejam claras e contenham um QR code válido.
- Ambiente: Testado com Node.js 20.12.2. Outras versões podem requerer ajustes.
Contribuidores
Reportar Vulnerabilidades
Se você identificar alguma vulnerabilidade ou problema de segurança neste projeto, envie um e-mail para sistemas@devix.co. Sua contribuição é essencial para mantermos este projeto seguro e confiável.