scraping-nfce-sefazes
v3.0.1
Published
Webscraping de busca de NFCe
Readme
WebScraping NFCe Sefaz ES
Biblioteca para busca de informações de Nota Fiscal de Consumidor Eletrônica (NFC-e) no site da SEFAZ-ES. Retorna um objeto com os dados da NFC-e, como informações do estabelecimento, consumidor, itens, totalizadores e dados gerais.
Pré-requisitos
- Node.js: Versão 18 ou superior.
- Dependências: As dependências são instaladas automaticamente com o pacote. Incluem
puppeteer,jimp,moment-timezoneeqrcode-reader.
Instalação
Instale a biblioteca usando npm ou pnpm:
npm install @devix-tecnologia/scraping-nfce-sefaz-es
# ou
pnpm install @devix-tecnologia/scraping-nfce-sefaz-esUso
Importando a biblioteca
Importe a classe SefazES no seu projeto. A biblioteca suporta ESM e CommonJS:
// ESM (recomendado)
import { SefazES } from "@devix-tecnologia/scraping-nfce-sefaz-es";
// CommonJS
const { SefazES } = require("@devix-tecnologia/scraping-nfce-sefaz-es");Criando a função de busca
Crie uma função assíncrona para chamar o método buscarNfce. O método aceita um link do QR code da NFC-e ou o caminho de uma imagem contendo o QR code.
async function buscarNota(item) {
try {
const { resultadoBusca } = await SefazES.buscarNfce(item);
return resultadoBusca;
} catch (erro) {
console.error("Erro:", erro);
throw erro;
}
}Exemplos de uso
Busca com URL do QR code
const url =
"http://app.sefaz.es.gov.br/ConsultaNFCe/qrcode?p=08240100813024000129650010000383801000383801|2|1|1|1";
buscarNota(url)
.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):
- Clone o repositório:
git clone <URL_DO_REPOSITORIO>
cd scraping-nfce-sefaz-es- Instale as dependências:
pnpm install- Execute o build para compilar a biblioteca:
pnpm run build- Execute o script de teste:
pnpm startO 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.
