Skip to content

Background Check (company)

This endpoint assembles a full dossier of a company from its CNPJ (the Brazilian company taxpayer number): registration at the Brazilian Federal Revenue Service, address, CNAEs (economic activity codes), ownership structure, employees, tax health, Simples Nacional regime, administrative sanctions, lawsuits, vehicles and real estate.

It is the largest response of the API. For the lean ownership-structure lookup, use QSA; for the state tax registration, Sintegra.

🚧 The body is passed through from the provider, with no transformation

Unlike the other data endpoints, here the API does not reassemble the response: whatever the provider returns is delivered as is, inside the standard envelope. Three practical consequences:

  • The field names are in Portuguese, in the provider's vocabulary (razaoSocial, situacaoCadastral, socios), with a few blocks in English (activityLevelV2, tributaryHealth), and not in the English camelCase used by the rest of the API.
  • Every block is optional. A block only shows up when the provider has data for it. Never assume a key exists: test before accessing it.
  • There is no type guarantee. Since there is no conversion along the way, the same field may arrive as a number or as text depending on where the data came from. That is why the tables on this page describe the fields but do not pin down types.

Request

GET /background-check/v2/legal-entity/{CNPJ}

Parameters

ParameterDescriptionRequired
CNPJCNPJ of the company being queriedYes

The CNPJ can be sent with or without the mask (12.345.678/0001-95 or 12345678000195), always with all 14 characters. A CNPJ that fails the check-digit validation returns 422 before any lookup is performed.

Alphanumeric CNPJ

The endpoint accepts the alphanumeric CNPJ defined by IN RFB 2.229/2024 (a Federal Revenue Service normative instruction), in which the first eight positions of the root and the four of the order number may contain letters, while the two check digits remain numeric.

GET /background-check/v2/legal-entity/12ABC34501DE35

Uppercase, lowercase and the mask all amount to the same

The API normalizes the CNPJ before the lookup: it strips the mask and converts the letters to uppercase. 12abc34501de35, 12ABC34501DE35 and 12.ABC.345/01DE-35 are the same lookup.

Headers

http
Authorization: ApiKey <your-api-key>

Query parameters are ignored

This endpoint does not use query parameters. An unknown parameter in the URL does not raise an error: it is simply ignored, and the response comes back 200 as usual.

Example request

bash
curl -i 'https://api.nxcd.app/background-check/v2/legal-entity/12345678000195' \
  --header 'Authorization: ApiKey YOUR_API_KEY'

Response

The envelope is the API standard:

FieldDescriptionType
idUnique identifier of the requestString
versionAPI version that served the callString
dataThe dossier. Comes back empty ({}) when the CNPJ is not found.Object
metadataMetadata of the requestObject
metadata.timeSpentProcessing time of the request, in millisecondsNumber

data is assembled from the blocks below. None of them is guaranteed — each one shows up only when there is data.

BlockWhat it brings
RegistrationCNPJ, corporate name, legal form, company size, registration status
Address and contactFull address and phone numbers
Economic activityMain CNAE, other CNAEs, activity level
Size and revenueShare capital, presumed revenue bracket
Headquarters and affiliatesData of the headquarters, number of branches, affiliated companies
Ownership structurePartners according to the Federal Revenue Service and to the Board of Trade
EmployeesEmployees, former employees and the evolution of the headcount
Tax situationTax health, Simples Nacional, Sintegra, debts at the PGFN/DAU
Sanctions and restricted listsCEIS, CNEP, Central Bank, MTE
LawsuitsTotals by type and lawsuits from the CNJ/CNIA
AssetsReal estate and vehicle fleet
Programs and registrationsPAT and computer programs at the INPI
_metadataDate and source of each block

Registration

FieldDescription
empresa.cnpjCNPJ of the company
empresa.razaoSocialCorporate name
empresa.nomeFantasiaTrade name
empresa.porteSize of the company, for example ME
empresa.matrizIndicates whether the CNPJ queried is that of the headquarters
empresa.naturezaJuridica.codigoCode of the legal form
empresa.naturezaJuridica.descricaoDescription of the legal form
empresa.situacaoCadastral.statusRegistration status at the Federal Revenue Service, for example ATIVA
empresa.situacaoCadastral.motivoReason for the registration status
empresa.situacaoCadastral.dataDate the status took effect
empresa.situacaoEspecial.statusSpecial status, when there is one
empresa.situacaoEspecial.dataDate of the special status
natureza.classificacaoClassification of the legal nature, for example PRIVADO
info.idadeEmpresaAge of the company, in years
json
{
  "empresa": {
    "cnpj": "12345678000195",
    "razaoSocial": "EMPRESA EXEMPLO LTDA",
    "nomeFantasia": "EXEMPLO",
    "porte": "ME",
    "matriz": true,
    "naturezaJuridica": { "codigo": "2062", "descricao": "SOCIEDADE EMPRESARIA LIMITADA" },
    "situacaoCadastral": { "status": "ATIVA", "data": "2017-09-26T00:00:00Z" }
  },
  "natureza": { "classificacao": "PRIVADO" },
  "info": { "idadeEmpresa": 8 }
}

Address and contact

bairroOriginal and municipioOriginal bring the text as it came from the source; bairro and municipio bring the version normalized by the provider.

FieldDescription
endereco.logradouroStreet address
endereco.numeroNumber
endereco.complementoAddress complement
endereco.bairroDistrict, normalized
endereco.bairroOriginalDistrict as it came from the source
endereco.municipioMunicipality, normalized
endereco.municipioOriginalMunicipality as it came from the source
endereco.mesoRegiaoMesoregion
endereco.ufState
endereco.cepZIP code
endereco.precisaoPrecision of the location, for example REGIAO
endereco.enderecoResidencialIndicates whether the address declared is residential
telefones[].numeroPhone number
telefones[].fonteInformacaoSource the phone number came from
info.possuiEmailContadorIndicates whether the email on record is the accountant's
json
{
  "endereco": {
    "logradouro": "RUA SAO BENTO",
    "numero": "101010",
    "complemento": "ANDAR 2",
    "bairro": "CENTRO",
    "bairroOriginal": "CENTRO",
    "municipio": "SAO PAULO",
    "municipioOriginal": "SAO PAULO",
    "mesoRegiao": "METROPOLITANA DE SAO PAULO",
    "uf": "SP",
    "cep": "01010000",
    "precisao": "REGIAO",
    "enderecoResidencial": false
  },
  "telefones": [{ "numero": "1133334444" }]
}

Economic activity

FieldDescription
cnaePrincipal.codigoCode of the main CNAE
cnaePrincipal.descricaoDescription of the main CNAE
cnaes[].codigoCode of each secondary CNAE
cnaes[].descricaoDescription of each secondary CNAE
activityLevelV2.activityLevelActivity level estimated by the provider, for example MEDIO
json
{
  "cnaePrincipal": {
    "codigo": "6311900",
    "descricao": "TRATAMENTO DE DADOS, PROVEDORES DE SERVICOS DE APLICACAO E SERVICOS DE HOSPEDAGEM NA INTERNET"
  },
  "cnaes": [
    {
      "codigo": "6311900",
      "descricao": "TRATAMENTO DE DADOS, PROVEDORES DE SERVICOS DE APLICACAO E SERVICOS DE HOSPEDAGEM NA INTERNET"
    }
  ],
  "activityLevelV2": { "activityLevel": "MEDIO" }
}

Size and revenue

FieldDescription
potencialConsumo.valorCapitalSocialShare capital of the company
faturamentoPresumido.faixaIndividualPresumed revenue bracket of the company
faturamentoPresumido.faixaGrupoPresumed revenue bracket of the economic group
totalFuncionarios.quantidadeTotal employees of the company
totalFuncionarios.quantidadeGrupoTotal employees of the economic group

🚧 These are brackets, not values

faturamentoPresumido brings only the brackets — text such as DE R$ 360.000,01 A R$ 1.500.000,00. There is no field with the estimated numeric revenue.

json
{
  "potencialConsumo": { "valorCapitalSocial": 10000 },
  "faturamentoPresumido": {
    "faixaIndividual": "DE R$ 360.000,01 A R$ 1.500.000,00",
    "faixaGrupo": "DE R$ 360.000,01 A R$ 1.500.000,00"
  },
  "totalFuncionarios": { "quantidade": 1, "quantidadeGrupo": 1 }
}

Headquarters and affiliates

When the CNPJ queried is that of a branch, matriz describes the corresponding headquarters. When it is the headquarters, matriz.quantidadeFilial counts the branches.

FieldDescription
matriz.cnpjCNPJ of the headquarters
matriz.razaoSocialCorporate name of the headquarters
matriz.situacaoRegistration status of the headquarters
matriz.dataAberturaDate the headquarters was opened
matriz.municipioMunicipality of the headquarters
matriz.quantidadeFilialNumber of branches
empresasColigadas[].cnaeCNAE of each affiliated company

Ownership structure

There are two lists, with the same structure and different sources: socios comes from the ownership structure held by the Federal Revenue Service and sociosJunta from the Board of Trade (Junta Comercial). A divergence between the two is precisely what info.qsaDivergente flags.

FieldDescription
socios[].nomeName of the partner
socios[].documentoCPF (the Brazilian individual taxpayer number) or CNPJ of the partner
socios[].qualificacaoRole, for example SOCIO ADMINISTRADOR
socios[].participacaoSocietariaOwnership interest of the partner
socios[].falecidoIndicates a death record for the partner
socios[].nivelPepLevel of political exposure of the partner
socios[].paisOrigemCountry of origin of the partner
sociosJunta[]The same fields, except paisOrigem
info.qsaDivergenteIndicates a divergence between the ownership structure of the two sources

paisOrigem only exists in socios

The sociosJunta list brings the same six remaining fields, but it does not bring paisOrigem. Code that walks both lists with the same function has to tolerate the absence.

json
{
  "socios": [
    {
      "nome": "JOAO DA SILVA",
      "documento": "12345678909",
      "qualificacao": "SOCIO ADMINISTRADOR",
      "participacaoSocietaria": 0,
      "falecido": false,
      "nivelPep": "NAO IDENTIFICADO"
    }
  ],
  "sociosJunta": [
    {
      "nome": "JOAO DA SILVA",
      "documento": "12345678909",
      "qualificacao": "SOCIO ADMINISTRADOR",
      "participacaoSocietaria": 0,
      "falecido": false,
      "nivelPep": "NAO IDENTIFICADO"
    }
  ],
  "info": { "qsaDivergente": false }
}

Employees

‼️ This block brings the CPF and the name of individuals

funcionarios and exfuncionarios bring personal data of third parties. Handle them with the same care as any individual lookup: collect only what you need, do not pass it on, and mind the legal basis for your processing.

FieldDescription
funcionarios[].cpfCPF of the employee
funcionarios[].nomeName of the employee
funcionarios[].dataNascimentoDate of birth
funcionarios[].dataAdmissaoDate of hire
exfuncionarios[].cpfCPF of the former employee
exfuncionarios[].nomeName of the former employee
exfuncionarios[].dataNascimentoDate of birth
exfuncionarios[].dataAdmissaoDate of hire
exfuncionarios[].anoMesDesligamentoMonth and year of termination, for example 06-2019
calc.totalExFuncionarios.porAno[].anoYear
calc.totalExFuncionarios.porAno[].quantidadeFormer employees in that year
crescimentoPorAnoRais[].anoReference year in the RAIS (the annual labor report)
crescimentoPorAnoRais[].qtdFuncionariosEmployees in that year
crescimentoPorAnoRais[].percentualPercentage change against the previous year
json
{
  "crescimentoPorAnoRais": [
    { "ano": 2019, "qtdFuncionarios": 1, "percentual": -66.67 },
    { "ano": 2018, "qtdFuncionarios": 3, "percentual": 100 }
  ],
  "calc": {
    "totalExFuncionarios": {
      "porAno": [{ "ano": 2019, "quantidade": 4 }]
    }
  }
}

Tax situation

FieldDescription
tributaryHealth.saudeTributariaTax health classification, for example CINZA
tributaryHealth.cnds[].nomeName of the debt clearance certificate
tributaryHealth.cnds[].descricaoSituacaoStatus of the certificate
tributaryHealth.cnds[].numeroCertificacaoNumber of the certificate
tributaryHealth.cnds[].dataEmissaoDate of issue
tributaryHealth.cnds[].dataValidadeExpiry date
simplesNacional.optanteSimplesIndicates that the company opted into Simples Nacional
simplesNacional.optanteSimeiIndicates that the company opted into SIMEI
simplesNacional.simplesIrregularIndicates an irregularity in Simples Nacional
info.passivelIssIndicates whether the company is subject to ISS (the municipal service tax)
info.valorDividaPgfnDauTotal amount of the debt in the federal outstanding debt registry (PGFN/DAU)
debitosPgfnDau[].inscricaoRegistration number of the debt in the federal outstanding debt registry
debitosPgfnDau[].naturezaNature of the debt
debitosPgfnDau[].valorTotalTotal amount of the debt
debitosPgfnDau[].dataProcessamentoDate of processing
sintegra.inscricaoEstadualState tax registration (inscrição estadual)
sintegra.ufState of the registration
sintegra.situacaoCadastralRegistration status at the Sintegra
sintegra.dataSituacaoCadastralDate of the registration status
sintegra.regimeApuracaoTax assessment regime
empresaSintegra.inscricoes[].ieState tax registration
empresaSintegra.inscricoes[].ufState of the registration
empresaSintegra.inscricoes[].situacaoCadastralRegistration status
empresaSintegra.inscricoes[].dataSituacaoCadastralDate of the registration status
empresaSintegra.inscricoes[].regimeApuracaoTax assessment regime
empresaSintegra.inscricoes[].emailEmail of the registration
empresaSintegra.inscricoes[].telefone.telefonePhone number of the registration

sintegra and empresaSintegra cover the same subject

sintegra brings one state tax registration; empresaSintegra.inscricoes[] brings the list, with one item per state in which the company has a registration. For a company registered in more than one state, it is empresaSintegra that gives the full picture.

json
{
  "tributaryHealth": { "saudeTributaria": "CINZA", "cnds": [] },
  "simplesNacional": {
    "optanteSimples": true,
    "optanteSimei": false,
    "simplesIrregular": false
  },
  "info": { "passivelIss": true, "valorDividaPgfnDau": 0 }
}

Sanctions and restricted lists

These are independent blocks, one per source register. Each one shows up only when there is a record.

empresaCeis — the Register of Disreputable and Suspended Companies (Cadastro de Empresas Inidôneas e Suspensas, CEIS).

FieldDescription
empresaCeis.sancoes[].processoNumber of the proceeding
empresaCeis.sancoes[].tipoSancaoType of the sanction
empresaCeis.sancoes[].periodoSancao.inicioStart of the sanction period
empresaCeis.sancoes[].periodoSancao.finalEnd of the sanction period
empresaCeis.sancoes[].fundamentacaoLegalLegal grounds
empresaCeis.sancoes[].orgaoSancionadorBody that applied the sanction
empresaCeis.sancoes[].complementoOrgaoAdditional detail on the sanctioning body
empresaCeis.sancoes[].ufState
empresaCeis.sancoes[].origemInformacaoSource of the information
empresaCeis.sancoes[].dataInformacaoDate of the information

cnep — the National Register of Punished Companies (Cadastro Nacional de Empresas Punidas).

FieldDescription
cnep.processos[].numeroProcessoNumber of the proceeding
cnep.processos[].tipoSancaoType of the sanction
cnep.processos[].valorMultaAmount of the fine
cnep.processos[].dataInicioSancaoStart of the sanction
cnep.processos[].dataFinalSancaoEnd of the sanction
cnep.processos[].orgaoSancionadorBody that applied the sanction
cnep.processos[].ufOrgaoSancionadorState of the sanctioning body

bancoCentral — appellate rulings from the Brazilian Central Bank.

FieldDescription
bancoCentral.acordaos[].numeroRecursoNumber of the appeal
bancoCentral.acordaos[].numeroProcessoNumber of the proceeding
bancoCentral.acordaos[].numeroAcordaoCRSFNNumber of the ruling at the CRSFN
bancoCentral.acordaos[].recursoIdentification of the appeal
bancoCentral.acordaos[].parteParty involved in the ruling

There is no block of disqualified individuals for companies

In the Background Check (individual), bancoCentral also brings inabilitados[]. Here there is only acordaos[].

mteCnd and mteTrabalhoEscravo — the Brazilian Ministry of Labor (MTE).

FieldDescription
mteCnd.tipoCertidaoType of the certificate
mteCnd.situacaoDebitoStatus of the labor debt
mteCnd.codigoCode of the certificate
mteCnd.dataEmissaoDate of issue
mteCnd.processos[].numeroNumber of the proceeding
mteCnd.processos[].situacaoProcessoStatus of the proceeding
mteCnd.processos[].categoriaInfracaoCategory of the violation
mteCnd.processos[].capitulacaoInfracaoLegal classification of the violation
mteTrabalhoEscravo.estabelecimentos[].anoAcaoFiscalYear of the enforcement action
mteTrabalhoEscravo.estabelecimentos[].dataDecisaoProcedenciaDate the claim was upheld
mteTrabalhoEscravo.estabelecimentos[].numeroTrabalhadoresEnvolvidosWorkers involved
mteTrabalhoEscravo.estabelecimentos[].estabelecimentoAddress of the establishment, with logradouro, complemento, municipio and uf

mteCnd.situacaoDebito only exists for companies; in the Background Check (individual) the mteCnd block does not bring that field.

Lawsuits

processoJudicialTotalizadores brings two views: quantidades[], with one row per type of lawsuit, and the total amounts at the root of the block.

FieldDescription
processoJudicialTotalizadores.quantidades[].tipoType of lawsuit the counts refer to
processoJudicialTotalizadores.quantidades[].qtdTotalTotal of lawsuits of that type
processoJudicialTotalizadores.quantidades[].qtdAtivosLawsuits still in progress
processoJudicialTotalizadores.quantidades[].qtdParteAtivaLawsuits in which the company is on the claimant side
processoJudicialTotalizadores.quantidades[].qtdPartePassivaLawsuits in which the company is on the respondent side
processoJudicialTotalizadores.quantidades[].qtdOutrasPartesLawsuits in which the company appears in another position
processoJudicialTotalizadores.valorTotalTotal amount involved
processoJudicialTotalizadores.valorTotalAtivaTotal amount in which the company is on the claimant side
processoJudicialTotalizadores.valorTotalPassivaTotal amount in which the company is on the respondent side
processoJudicialTotalizadores.valorTotalOutrasPartesTotal amount in the other positions
cnjCnia.processos[].numeroProcessoNumber of the lawsuit at the CNJ/CNIA
cnjCnia.processos[].dataCadastramentoDate of registration
cnjCnia.processos[].esferaSphere of the lawsuit
cnjCnia.processos[].descricaoOrgaoJudicial body hearing the case
cnjCnia.processos[].cargoFuncao.ufState of the position or role related to the lawsuit
cnjCnia.processos[].assuntosRelacionadosSubject matters related to the lawsuit
cnjCnia.processos[].ressarcimentoIntegralDano.valorAmount of the full compensation for the damage

The total amounts only exist for companies

The four valorTotal* fields are exclusive to this endpoint. In the Background Check (individual), processoJudicialTotalizadores brings only quantidades[].

json
{
  "processoJudicialTotalizadores": {
    "valorTotal": 0,
    "valorTotalAtiva": 0,
    "valorTotalPassiva": 0,
    "valorTotalOutrasPartes": 0
  }
}

Assets

FieldDescription
imoveis[].imovelIdIdentifier of the property
imoveis[].areaTerrenoLand area
imoveis[].areaConstruidaBuilt area
imoveis[].valorAvaliacaoAppraisal value
imoveis[].logradouroStreet address of the property
imoveis[].numeroLogradouroNumber
imoveis[].complementoAddress complement
imoveis[].bairroDistrict
imoveis[].municipioMunicipality
imoveis[].ufState
imoveis[].cepZIP code
detran.totalVeiculosPesadosHeavy vehicles of the company
detran.totalVeiculosPesadosGrupoHeavy vehicles of the economic group
totalVeiculos.ateUmAnoVehicles up to one year old
totalVeiculos.entreDoisCincoAnosVehicles between two and five years old
totalVeiculos.entreCincoDezAnosVehicles between five and ten years old
totalVeiculos.acimaDezAnosVehicles over ten years old
totalVeiculos.grupoAteUmAnoSame bracket, in the economic group
totalVeiculos.grupoEntreDoisCincoAnosSame bracket, in the economic group
totalVeiculos.grupoEntreCincoDezAnosSame bracket, in the economic group
totalVeiculos.grupoAcimaDezAnosSame bracket, in the economic group

🚧 The totalVeiculos brackets do not cover everything

The brackets go from "up to one year" straight to "between two and five years". Vehicles between one and two years old are in none of them, and adding up the four brackets does not necessarily return the total fleet.

Programs and registrations

FieldDescription
novoPat.modalidades[].descricaoType of the Worker Food Program (Programa de Alimentação do Trabalhador, PAT)
novoPat.modalidades[].numeroTrabBeneficiadosWorkers benefited
novoPat.modalidades[].razaoSocialForcenedorCorporate name of the supplier
novoPat.modalidades[].cnpjForcenedorCNPJ of the supplier
empresaInpiProgramas.processos[].tituloTitle of the computer program registered at the INPI (the Brazilian patent and trademark office)
empresaInpiProgramas.processos[].numeroProcessoNumber of the proceeding at the INPI
empresaInpiProgramas.processos[].dataDepositoFiling date
empresaInpiProgramas.processos[].procuradorAttorney in charge
empresaInpiProgramas.processos[].autores[].autorAuthors of the program

🚧 razaoSocialForcenedor and cnpjForcenedor really are spelled that way

Both supplier fields in novoPat.modalidades[] come with Forcenedor, and not Fornecedor. That is the real name of the field in the response — writing the correct spelling returns undefined.

_metadata

Apart from the metadata of the envelope, data itself brings a _metadata with the provenance of each block: when the data was collected, which source it came from, and whether the lookup found nothing.

The keys of _metadata are the internal names of the sources (empresa, empresas, socios, sociosJunta, funcionarios, exfuncionarios, calc, empresa-ceis, empresa-cnep, empresa-banco-central, empresa-mte-trabalho-escravo, datascience-tributary-health…), and they vary with the blocks that came filled in. Each one brings some of these fields:

FieldDescription
noMatchFoundtrue when the source was queried and found no record
sourceList with the origin sources of the data
processingTimestampWhen the source processed the data
lastUpdateLast update of the data in the provider's database
insertDateWhen the data entered the provider's database
updatedAtWhen the record was last updated

noMatchFound is the difference between "there is none" and "it was not queried"

A block missing from data can mean two things. If the corresponding source appears in _metadata with noMatchFound: true, the lookup was performed and nothing was found — a clean result. If the source does not appear in _metadata, there is no such guarantee.

json
{
  "_metadata": {
    "empresa": {
      "insertDate": "2025-10-05T16:41:45.974Z",
      "lastUpdate": "2025-10-05T16:32:25Z",
      "processingTimestamp": "2025-10-05T16:32:25Z",
      "source": ["rf-pj"],
      "updatedAt": "2025-10-05T16:41:51.718Z"
    },
    "socios": {
      "lastUpdate": "2025-10-10T14:14:39.657Z",
      "processingTimestamp": "2025-08-18T03:00:00Z",
      "source": ["QSA RF PPD2"],
      "updatedAt": "2025-10-10T18:53:20.837Z"
    },
    "sociosJunta": {
      "lastUpdate": "2025-10-10T14:14:39.678Z",
      "source": ["JUCESP"],
      "updatedAt": "2025-10-10T14:39:22.63Z"
    },
    "empresa-ceis": { "noMatchFound": true },
    "empresa-cnep": { "noMatchFound": true },
    "empresa-banco-central": { "noMatchFound": true },
    "empresa-mte-trabalho-escravo": { "noMatchFound": true }
  }
}

Full example

A response with the most common blocks filled in. Blocks with no data simply do not appear — in a real lookup, expecting all of them is the most frequent integration mistake.

Status Code: 200
json
{
  "id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
  "version": "v2",
  "data": {
    "_metadata": {
      "empresa": {
        "lastUpdate": "2025-10-05T16:32:25Z",
        "source": ["rf-pj"],
        "updatedAt": "2025-10-05T16:41:51.718Z"
      },
      "empresa-ceis": { "noMatchFound": true },
      "empresa-cnep": { "noMatchFound": true },
      "empresa-banco-central": { "noMatchFound": true },
      "empresa-mte-trabalho-escravo": { "noMatchFound": true }
    },
    "empresa": {
      "cnpj": "12345678000195",
      "razaoSocial": "EMPRESA EXEMPLO LTDA",
      "nomeFantasia": "EXEMPLO",
      "porte": "ME",
      "matriz": true,
      "naturezaJuridica": { "codigo": "2062", "descricao": "SOCIEDADE EMPRESARIA LIMITADA" },
      "situacaoCadastral": { "status": "ATIVA", "data": "2017-09-26T00:00:00Z" }
    },
    "natureza": { "classificacao": "PRIVADO" },
    "info": {
      "idadeEmpresa": 8,
      "passivelIss": true,
      "possuiEmailContador": false,
      "qsaDivergente": false,
      "valorDividaPgfnDau": 0
    },
    "matriz": { "quantidadeFilial": 0 },
    "endereco": {
      "logradouro": "RUA SAO BENTO",
      "numero": "101010",
      "complemento": "ANDAR 2",
      "bairro": "CENTRO",
      "municipio": "SAO PAULO",
      "uf": "SP",
      "cep": "01010000",
      "precisao": "REGIAO",
      "enderecoResidencial": false
    },
    "telefones": [{ "numero": "1133334444" }],
    "cnaePrincipal": {
      "codigo": "6311900",
      "descricao": "TRATAMENTO DE DADOS, PROVEDORES DE SERVICOS DE APLICACAO E SERVICOS DE HOSPEDAGEM NA INTERNET"
    },
    "cnaes": [
      {
        "codigo": "6311900",
        "descricao": "TRATAMENTO DE DADOS, PROVEDORES DE SERVICOS DE APLICACAO E SERVICOS DE HOSPEDAGEM NA INTERNET"
      }
    ],
    "activityLevelV2": { "activityLevel": "MEDIO" },
    "potencialConsumo": { "valorCapitalSocial": 10000 },
    "faturamentoPresumido": {
      "faixaIndividual": "DE R$ 360.000,01 A R$ 1.500.000,00",
      "faixaGrupo": "DE R$ 360.000,01 A R$ 1.500.000,00"
    },
    "totalFuncionarios": { "quantidade": 1, "quantidadeGrupo": 1 },
    "socios": [
      {
        "nome": "JOAO DA SILVA",
        "documento": "12345678909",
        "qualificacao": "SOCIO ADMINISTRADOR",
        "participacaoSocietaria": 0,
        "falecido": false,
        "nivelPep": "NAO IDENTIFICADO"
      }
    ],
    "crescimentoPorAnoRais": [
      { "ano": 2019, "qtdFuncionarios": 1, "percentual": -66.67 },
      { "ano": 2018, "qtdFuncionarios": 3, "percentual": 100 }
    ],
    "simplesNacional": {
      "optanteSimples": true,
      "optanteSimei": false,
      "simplesIrregular": false
    },
    "tributaryHealth": { "saudeTributaria": "CINZA", "cnds": [] },
    "detran": { "totalVeiculosPesados": 0, "totalVeiculosPesadosGrupo": 0 },
    "totalVeiculos": {
      "ateUmAno": 0,
      "entreDoisCincoAnos": 0,
      "entreCincoDezAnos": 0,
      "acimaDezAnos": 0,
      "grupoAteUmAno": 0,
      "grupoEntreDoisCincoAnos": 0,
      "grupoEntreCincoDezAnos": 0,
      "grupoAcimaDezAnos": 0
    },
    "processoJudicialTotalizadores": {
      "valorTotal": 0,
      "valorTotalAtiva": 0,
      "valorTotalPassiva": 0,
      "valorTotalOutrasPartes": 0
    }
  },
  "metadata": {
    "timeSpent": 5800
  }
}

When the CNPJ is not found

data comes back empty. The response is still 200.

Status Code: 200
json
{
  "id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
  "version": "v2",
  "data": {},
  "metadata": {
    "timeSpent": 1300
  }
}

Response headers

HeaderWhen it appears
Nextid-ReqIdOn every response. Carries the request identifier, the same one as the id field of the body.

Errors

CodeWhen it happens
401 UnauthorizedAPI key missing, invalid, or without the nextid.bureaus.backgroundCheckCompany permission.
404 Not FoundThe version informed in the URL does not exist. Only v2 is accepted.
422 Unprocessable EntityCNPJ that fails the check-digit validation.
500 Internal Server ErrorUnexpected failure during processing.

Example of a response with an invalid CNPJ:

Status Code: 422
json
{
  "id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
  "error": {
    "statusCode": 422,
    "error": "Unprocessable Entity",
    "message": "Invalid Legal Entities National Register"
  }
}

The format of the error responses is described in HTTP response codes.

Versions

The only version is v2, and it is the one that answers when the version is omitted from the URL. /background-check/legal-entity/{CNPJ} and /background-check/v2/legal-entity/{CNPJ} are equivalent.

VersionStatusWhat changes
v2RecommendedThe only version. It is what answers when the version is omitted from the URL.

Any other value in place of v2 returns 404.

For the dossier of an individual, see Background Check (individual).

Nextcode | Identity Verification Solutions