npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@cnpja/sdk

v1.1.3

Published

APIs de consultas CNPJ a Receita Federal, Simples Nacional, Cadastro de Contribuintes e SUFRAMA, fornecidas pelo CNPJá!

Downloads

145

Readme

CNPJá! Node.js SDK

Pacote para interagir com a API de consultas CNPJ em tempo real fornecida pelo CNPJá.

Baseado na especificação da API disponível em:
https://cnpja.com/api


Requisitos

  • Node.js 18 ou superior: Necessário para suporte ao fetch() nativo.
  • Chave de API: Disponível gratuitamente registrando-se pelo website CNPJá!

Instalação

Instale o pacote utilizando o gerenciador de sua preferência:

npm i @cnpja/sdk
pnpm i @cnpja/sdk
yarn add @cnpja/sdk

Autenticação

Instancie o pacote utilizando sua chave de API:

import { Cnpja } from '@cnpja/sdk';

const cnpja = new Cnpja({ apiKey: 'sua_api_key' });

Guia Rápido

Utilize o método office.read() para ler múltiplos dados de forma consolidada com suporte a consulta em tempo real:

import { Cnpja } from '@cnpja/sdk';

const cnpja = new Cnpja({ apiKey: 'sua_api_key' });

const office = await cnpja.office.read({
  taxId: '37335118000180', // CNPJ a ser consultado
  maxAge: 7, // Defasagem máxima dos dados em dias
  simples: true, // Adiciona se optante pelo Simples Nacional e MEI
  registrations: [ 'BR' ], // Adiciona as Inscrições Estaduais de todas UFs
  geocoding: true, // Adiciona latitude e longitude do endereço
});

console.log(office);

Dados Empresariais

Permite navegar estabelecimentos, empresas e pessoas:

const office = await cnpja.office.read({ taxId: '37335118000180' });
const company = await cnpja.company.read({ id: 37335118 });
const person = await cnpja.person.read({ id: '0ee5ad51-e58d-4400-a68a-1ae0aaf394c6' });

console.log(office);
console.log(company);
console.log(person);

É possível utilizar as APIs de dados empresariais para explorar relacionamentos complexos, como por exemplo encontrar todos os outros estabelecimentos que os sócios de um CNPJ estão relacionados:

const office = await cnpja.office.read({ taxId: '33131541000108' });

const peopleIds = office.company.members.map((m) => m.person.id);
const people = await Promise.all(peopleIds.map((id) => cnpja.person.read({ id })));

const relatedCompaniesIds = people.flatMap((p) => p.membership).map((c) => c.company.id);
const relatedCompaniesUniqueIds = [ ...new Set(relatedCompaniesIds) ];

const relatedCompanies = await Promise.all(relatedCompaniesUniqueIds.map((id) => cnpja.company.read({ id })));
const relatedOffices = relatedCompanies.flatMap((c) => c.offices);

console.log(relatedCompanies);

Mapas e Visão da Rua

Gera arquivos de imagens referentes ao mapa aéreo e visão da rua do estabelecimento desejado:

import fs from 'fs/promises';

const officeMap = await cnpja.office.map({ taxId: '37335118000180' });
const officeStreet = await cnpja.office.street({ taxId: '37335118000180' });

fs.writeFileSync('./office.map.png', officeMap);
fs.writeFileSync('./office.street.png', officeStreet);

Receita Federal

Dados de cadastro na RFB, bem como emissão do comprovante em PDF:

const rfb = await cnpja.rfb.read({ taxId: '37335118000180' });
const rfbCertificate = await cnpja.rfb.certificate({ taxId: '37335118000180' });

console.log(rfb);
fs.writeFileSync('./rfb.certificate.pdf', rfbCertificate);

Simples Nacional

Dados de cadastro na Simples Nacional, bem como emissão do comprovante em PDF:

const simples = await cnpja.simples.read({ taxId: '37335118000180' });
const simplesCertificate = await cnpja.simples.certificate({ taxId: '37335118000180' });

console.log(simples);
fs.writeFileSync('./simples.certificate.pdf', simplesCertificate);

Cadastro de Contribuintes

Dados das Inscrições Estaduais:

const ccc = await cnpja.ccc.read({ taxId: '00028986014753' });

console.log(ccc);

SUFRAMA

Dados da inscrição SUFRAMA, bem como emissão do comprovante em PDF:

const suframa = await cnpja.suframa.read({ taxId: '28575910000111' });
const suframaCertificate = await cnpja.suframa.certificate({ taxId: '28575910000111' });

console.log(suframa);
fs.writeFileSync('./suframa.certificate.pdf', suframaCertificate);

Correios

Consulta de CEP:

const zip = await cnpja.zip.read({ zip: '01452922' });

console.log(zip);

Utilitários

Ferramentas para assinatura de URLs públicas e consulta de créditos

const signature = await cnpja.signature.create({ url: 'https://api.cnpja.com/company/37335118' });
const credit = await cnpja.credit.read();

console.log(signature);
console.log(credit);