Micro serviço

1 função do TermoLeads para micro serviço.

// npm install termo_core --save-exact
import * as leads from "termo_core/leads";
// ou: import { leads } from "termo_core";
FunçãoRotaO que faz
cnpj_salvar_lotePOST /api/micro_servico/cnpj/loteRecebe um lote da base CNPJ montada no localhost

cnpj_salvar_lote

POST/api/micro_servico/cnpj/lote Pública

Recebe um lote da base CNPJ montada no localhost

Sem JWT: exige o header x-secret-api-micro-service igual a GLOBAL_SECRET_API_MICRO_SERVICE do servidor (sem a variável, a rota fica fechada). Usada pela sincronização do localhost, que monta a base da Receita e manda as linhas prontas em lotes. Faz upsert por cnpj: insere o CNPJ novo e atualiza o que já existe, regravando só as linhas que mudaram. No máximo 5.000 registros por lote.

function cnpj_salvar_lote(
  corpo_da_requisicao: tipos.SalvarLoteCnpjInput,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.SalvarLoteCnpjOutput>
Exemplo
import { cnpj_salvar_lote } from "termo_core/leads";

const resposta = await cnpj_salvar_lote(corpo_da_requisicao);

Argumentos

Nome

Tipo

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

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;
}

SalvarLoteCnpjInput

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

export interface SalvarLoteCnpjInput {
  /**
   * Linhas completas da tabela `cnpj` (os mesmos campos de `Cnpj`), no máximo 5.000 por lote
   */
  registros: Array<Record<string, unknown>>;
}

SalvarLoteCnpjOutput

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

export interface SalvarLoteCnpjOutput {
  /**
   * Quantidade de registros inseridos ou alterados (os iguais ao que já estava no banco não contam)
   */
  gravados: number;
  /**
   * Quantidade de registros recebidos no lote
   */
  recebidos: number;
}

Nesta página