CNPJ

2 funções do TermoLeads para cnpj.

// npm install termo_core --save-exact
import * as leads from "termo_core/leads";
// ou: import { leads } from "termo_core";
FunçãoRotaO que faz
buscar_pelo_id_cnpjGET /api/cnpj/{cnpj}Consulta um estabelecimento pelo CNPJ
buscar_paginador_cnpjGET /api/empresasLista estabelecimentos da base CNPJ com filtros e paginação

buscar_pelo_id_cnpj

GET/api/cnpj/{cnpj} Pública

Consulta um estabelecimento pelo CNPJ

Rota pública, sem login. Devolve o cadastro completo de um estabelecimento da base CNPJ da Receita Federal: dados do estabelecimento (situação cadastral, CNAE principal e secundários, endereço, telefones, e-mail), da empresa (razão social, natureza jurídica, porte, capital social), do Simples Nacional e do MEI, e o quadro societário em socios. O CNPJ pode ir com ou sem máscara (04.252.011/0001-10 ou 04252011000110); só os dígitos contam e precisam ser 14. socios é uma lista de objetos em ordem alfabética do nome, com as chaves cnpj_basico, identificador_socio, identificador_socio_descricao, nome_socio_razao_social, cnpj_cpf_socio, qualificacao_socio, qualificacao_socio_descricao, data_entrada_sociedade, pais, pais_descricao, representante_legal, nome_representante, qualificacao_representante, qualificacao_representante_descricao e faixa_etaria, todas em texto. Datas e códigos vêm em texto, como a Receita publica. A situação cadastral 02 é a ativa.

function buscar_pelo_id_cnpj(
  cnpj: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Cnpj>
Exemplo
import { buscar_pelo_id_cnpj } from "termo_core/leads";

const resposta = await buscar_pelo_id_cnpj(cnpj);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Cnpj> · Rust: Result<tipos::Cnpj, ErroAoChamarServico> · veja Cnpj.

buscar_paginador_cnpj

GET/api/empresas Exige credencial

Lista estabelecimentos da base CNPJ com filtros e paginação

Exige qualquer permissão da área empresas (o master do TermoAuth tem todas). Lista os estabelecimentos da base CNPJ da Receita Federal em ordem de CNPJ, com um resumo de cada um (razão social, nome fantasia, capital social, situação, UF, município, endereço, telefones e e-mail); o cadastro completo sai em GET /api/cnpj/{cnpj}. Todos os filtros são opcionais e se somam; valor vazio é ignorado. tamanho tem padrão 12 e máximo 50 (valores fora do intervalo são ajustados para 1 a 50); pagina começa em 1 e é ajustada para o intervalo válido. total é a contagem dos registros que casam com o filtro, limitada a 2.000.000: quando passa desse teto, ou quando a contagem demora mais de 6 segundos, total vem 2.000.000 e estimado vem true.

function buscar_paginador_cnpj(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorCnpj = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaDeEmpresas>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_cnpj } from "termo_core/leads";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_cnpj(credencial_de_acesso, { pagina: 1 });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaDeEmpresas> · Rust: Result<tipos::PaginaDeEmpresas, ErroAoChamarServico> · veja PaginaDeEmpresas.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

Cnpj

import type { Cnpj } from "termo_core/leads";

export interface Cnpj {
  /**
   * Bairro
   */
  bairro?: string | null;
  /**
   * CEP, 8 dígitos sem máscara
   */
  cep?: string | null;
  /**
   * Código do CNAE fiscal principal, 7 dígitos
   */
  cnae_fiscal_principal?: string | null;
  /**
   * Descrição do CNAE fiscal principal
   */
  cnae_fiscal_principal_descricao?: string | null;
  /**
   * Códigos dos CNAEs secundários separados por vírgula, como a Receita publica
   */
  cnae_fiscal_secundaria?: string | null;
  /**
   * CNPJ do estabelecimento, 14 dígitos sem máscara
   */
  cnpj: string;
  /**
   * Oito primeiros dígitos do CNPJ, que identificam a empresa
   */
  cnpj_basico: string;
  /**
   * Dois dígitos verificadores do CNPJ
   */
  cnpj_dv?: string | null;
  /**
   * Quatro dígitos da ordem do estabelecimento (0001 é a matriz na maioria dos casos)
   */
  cnpj_ordem?: string | null;
  /**
   * Complemento do endereço
   */
  complemento?: string | null;
  /**
   * E-mail cadastrado na Receita
   */
  correio_eletronico?: string | null;
  /**
   * Data de início da atividade, no formato AAAAMMDD
   */
  data_inicio_atividade?: string | null;
  /**
   * Data da situação cadastral, no formato AAAAMMDD
   */
  data_situacao_cadastral?: string | null;
  /**
   * Data da situação especial, no formato AAAAMMDD
   */
  data_situacao_especial?: string | null;
  /**
   * DDD do telefone 1
   */
  ddd_1?: string | null;
  /**
   * DDD do telefone 2
   */
  ddd_2?: string | null;
  /**
   * DDD do fax
   */
  ddd_fax?: string | null;
  /**
   * Capital social em reais, em texto com vírgula decimal (ex.: `5000,00`)
   */
  empresa_capital_social?: string | null;
  /**
   * Ente federativo responsável, preenchido só para natureza jurídica de órgão público
   */
  empresa_ente_federativo_responsavel?: string | null;
  /**
   * Código da natureza jurídica
   */
  empresa_natureza_juridica?: string | null;
  /**
   * Natureza jurídica por extenso
   */
  empresa_natureza_juridica_descricao?: string | null;
  /**
   * Código do porte: 00 não informado, 01 microempresa, 03 empresa de pequeno porte, 05 demais
   */
  empresa_porte_empresa?: string | null;
  /**
   * Porte por extenso: `Não informado`, `Microempresa`, `Empresa de Pequeno Porte` ou `Demais`
   */
  empresa_porte_empresa_descricao?: string | null;
  /**
   * Código da qualificação do responsável pela empresa
   */
  empresa_qualificacao_responsavel?: string | null;
  /**
   * Qualificação do responsável por extenso
   */
  empresa_qualificacao_responsavel_descricao?: string | null;
  /**
   * Razão social da empresa
   */
  empresa_razao_social?: string | null;
  /**
   * Fax, sem o DDD
   */
  fax?: string | null;
  /**
   * Código da Receita: 1 matriz, 2 filial
   */
  identificador_matriz_filial?: string | null;
  /**
   * `Matriz` ou `Filial`
   */
  identificador_matriz_filial_descricao?: string | null;
  /**
   * Nome do logradouro
   */
  logradouro?: string | null;
  /**
   * Código do motivo da situação cadastral
   */
  motivo_situacao_cadastral?: string | null;
  /**
   * Motivo da situação cadastral por extenso
   */
  motivo_situacao_cadastral_descricao?: string | null;
  /**
   * Código do município na tabela da Receita
   */
  municipio?: string | null;
  /**
   * Nome do município em maiúsculas
   */
  municipio_descricao?: string | null;
  /**
   * Cidade no exterior, quando o estabelecimento fica fora do Brasil
   */
  nome_cidade_exterior?: string | null;
  /**
   * Nome fantasia do estabelecimento
   */
  nome_fantasia?: string | null;
  /**
   * Número do endereço
   */
  numero?: string | null;
  /**
   * Código do país, quando o estabelecimento fica no exterior
   */
  pais?: string | null;
  /**
   * Nome do país
   */
  pais_descricao?: string | null;
  /**
   * Data da exclusão do MEI, no formato AAAAMMDD
   */
  simples_data_exclusao_mei?: string | null;
  /**
   * Data da exclusão do Simples Nacional, no formato AAAAMMDD
   */
  simples_data_exclusao_simples?: string | null;
  /**
   * Data da opção pelo MEI, no formato AAAAMMDD
   */
  simples_data_opcao_mei?: string | null;
  /**
   * Data da opção pelo Simples Nacional, no formato AAAAMMDD
   */
  simples_data_opcao_simples?: string | null;
  /**
   * Opção pelo MEI: `S` ou `N`
   */
  simples_opcao_pelo_mei?: string | null;
  /**
   * Opção pelo MEI por extenso: `Sim` ou `Não`
   */
  simples_opcao_pelo_mei_descricao?: string | null;
  /**
   * Opção pelo Simples Nacional: `S` ou `N`
   */
  simples_opcao_pelo_simples?: string | null;
  /**
   * Opção pelo Simples Nacional por extenso: `Sim` ou `Não`
   */
  simples_opcao_pelo_simples_descricao?: string | null;
  /**
   * Código da situação cadastral: 01 nula, 02 ativa, 03 suspensa, 04 inapta, 08 baixada
   */
  situacao_cadastral?: string | null;
  /**
   * Situação cadastral por extenso: `Nula`, `Ativa`, `Suspensa`, `Inapta` ou `Baixada`
   */
  situacao_cadastral_descricao?: string | null;
  /**
   * Situação especial do estabelecimento, quando houver
   */
  situacao_especial?: string | null;
  /**
   * Quadro societário em ordem alfabética do nome; cada sócio é um objeto com textos nas chaves `cnpj_basico`, `identificador_socio` (1 pessoa jurídica, 2 pessoa física, 3 estrangeiro), `identificador_socio_descricao`, `nome_socio_razao_social`, `cnpj_cpf_socio` (CPF parcialmente mascarado pela Receita), `qualificacao_socio`, `qualificacao_socio_descricao`, `data_entrada_sociedade` (AAAAMMDD), `pais`, `pais_descricao`, `representante_legal`, `nome_representante`, `qualificacao_representante`, `qualificacao_representante_descricao` e `faixa_etaria`. Lista vazia quando não há sócios
   */
  socios: Array<Record<string, unknown>>;
  /**
   * Telefone 1, sem o DDD
   */
  telefone_1?: string | null;
  /**
   * Telefone 2, sem o DDD
   */
  telefone_2?: string | null;
  /**
   * `true` quando os dados da empresa (razão social, natureza, porte, capital) foram encontrados na base
   */
  tem_empresa: boolean;
  /**
   * `true` quando a empresa tem registro do Simples Nacional ou do MEI na base
   */
  tem_simples: boolean;
  /**
   * Tipo do logradouro (ex.: RUA, AVENIDA)
   */
  tipo_logradouro?: string | null;
  /**
   * Sigla da UF
   */
  uf?: string | null;
}

CnpjResumo

import type { CnpjResumo } from "termo_core/leads";

export interface CnpjResumo {
  /**
   * CNPJ do estabelecimento, 14 dígitos sem máscara
   */
  cnpj: string;
  /**
   * E-mail cadastrado na Receita
   */
  correio_eletronico?: string | null;
  /**
   * DDD do telefone 1
   */
  ddd_1?: string | null;
  /**
   * DDD do telefone 2
   */
  ddd_2?: string | null;
  /**
   * Capital social em reais, em texto com vírgula decimal (ex.: `5000,00`)
   */
  empresa_capital_social?: string | null;
  /**
   * Razão social da empresa
   */
  empresa_razao_social?: string | null;
  /**
   * Nome do logradouro
   */
  logradouro?: string | null;
  /**
   * Nome do município em maiúsculas
   */
  municipio_descricao?: string | null;
  /**
   * Nome fantasia do estabelecimento
   */
  nome_fantasia?: string | null;
  /**
   * Número do endereço
   */
  numero?: string | null;
  /**
   * Situação cadastral por extenso: `Nula`, `Ativa`, `Suspensa`, `Inapta` ou `Baixada`
   */
  situacao_cadastral_descricao?: string | null;
  /**
   * Telefone 1, sem o DDD
   */
  telefone_1?: string | null;
  /**
   * Telefone 2, sem o DDD
   */
  telefone_2?: string | null;
  /**
   * Tipo do logradouro (ex.: RUA, AVENIDA)
   */
  tipo_logradouro?: string | null;
  /**
   * Sigla da UF
   */
  uf?: string | null;
}

PaginaDeEmpresas

import type { PaginaDeEmpresas } from "termo_core/leads";

export interface PaginaDeEmpresas {
  /**
   * `true` quando `total` é o teto de 2.000.000 (a contagem passou do teto ou demorou mais de 6 segundos), e não a contagem exata
   */
  estimado: boolean;
  /**
   * Estabelecimentos da página, em ordem de CNPJ
   */
  itens: Array<CnpjResumo>;
  /**
   * Página devolvida, já ajustada ao intervalo válido
   */
  pagina: number;
  /**
   * Itens por página usados, já ajustados ao intervalo de 1 a 50
   */
  tamanho: number;
  /**
   * Quantidade de estabelecimentos que casam com o filtro, limitada a 2.000.000
   */
  total: number;
}

Nesta página