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 EnglishcamelCaseused 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
| Parameter | Description | Required |
|---|---|---|
| CNPJ | CNPJ of the company being queried | Yes |
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/12ABC34501DE35Uppercase, 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
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
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:
| Field | Description | Type |
|---|---|---|
| id | Unique identifier of the request | String |
| version | API version that served the call | String |
| data | The dossier. Comes back empty ({}) when the CNPJ is not found. | Object |
| metadata | Metadata of the request | Object |
| metadata.timeSpent | Processing time of the request, in milliseconds | Number |
data is assembled from the blocks below. None of them is guaranteed — each one shows up only when there is data.
| Block | What it brings |
|---|---|
| Registration | CNPJ, corporate name, legal form, company size, registration status |
| Address and contact | Full address and phone numbers |
| Economic activity | Main CNAE, other CNAEs, activity level |
| Size and revenue | Share capital, presumed revenue bracket |
| Headquarters and affiliates | Data of the headquarters, number of branches, affiliated companies |
| Ownership structure | Partners according to the Federal Revenue Service and to the Board of Trade |
| Employees | Employees, former employees and the evolution of the headcount |
| Tax situation | Tax health, Simples Nacional, Sintegra, debts at the PGFN/DAU |
| Sanctions and restricted lists | CEIS, CNEP, Central Bank, MTE |
| Lawsuits | Totals by type and lawsuits from the CNJ/CNIA |
| Assets | Real estate and vehicle fleet |
| Programs and registrations | PAT and computer programs at the INPI |
_metadata | Date and source of each block |
Registration
| Field | Description |
|---|---|
empresa.cnpj | CNPJ of the company |
empresa.razaoSocial | Corporate name |
empresa.nomeFantasia | Trade name |
empresa.porte | Size of the company, for example ME |
empresa.matriz | Indicates whether the CNPJ queried is that of the headquarters |
empresa.naturezaJuridica.codigo | Code of the legal form |
empresa.naturezaJuridica.descricao | Description of the legal form |
empresa.situacaoCadastral.status | Registration status at the Federal Revenue Service, for example ATIVA |
empresa.situacaoCadastral.motivo | Reason for the registration status |
empresa.situacaoCadastral.data | Date the status took effect |
empresa.situacaoEspecial.status | Special status, when there is one |
empresa.situacaoEspecial.data | Date of the special status |
natureza.classificacao | Classification of the legal nature, for example PRIVADO |
info.idadeEmpresa | Age of the company, in years |
{
"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.
| Field | Description |
|---|---|
endereco.logradouro | Street address |
endereco.numero | Number |
endereco.complemento | Address complement |
endereco.bairro | District, normalized |
endereco.bairroOriginal | District as it came from the source |
endereco.municipio | Municipality, normalized |
endereco.municipioOriginal | Municipality as it came from the source |
endereco.mesoRegiao | Mesoregion |
endereco.uf | State |
endereco.cep | ZIP code |
endereco.precisao | Precision of the location, for example REGIAO |
endereco.enderecoResidencial | Indicates whether the address declared is residential |
telefones[].numero | Phone number |
telefones[].fonteInformacao | Source the phone number came from |
info.possuiEmailContador | Indicates whether the email on record is the accountant's |
{
"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
| Field | Description |
|---|---|
cnaePrincipal.codigo | Code of the main CNAE |
cnaePrincipal.descricao | Description of the main CNAE |
cnaes[].codigo | Code of each secondary CNAE |
cnaes[].descricao | Description of each secondary CNAE |
activityLevelV2.activityLevel | Activity level estimated by the provider, for example MEDIO |
{
"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
| Field | Description |
|---|---|
potencialConsumo.valorCapitalSocial | Share capital of the company |
faturamentoPresumido.faixaIndividual | Presumed revenue bracket of the company |
faturamentoPresumido.faixaGrupo | Presumed revenue bracket of the economic group |
totalFuncionarios.quantidade | Total employees of the company |
totalFuncionarios.quantidadeGrupo | Total 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.
{
"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.
| Field | Description |
|---|---|
matriz.cnpj | CNPJ of the headquarters |
matriz.razaoSocial | Corporate name of the headquarters |
matriz.situacao | Registration status of the headquarters |
matriz.dataAbertura | Date the headquarters was opened |
matriz.municipio | Municipality of the headquarters |
matriz.quantidadeFilial | Number of branches |
empresasColigadas[].cnae | CNAE 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.
| Field | Description |
|---|---|
socios[].nome | Name of the partner |
socios[].documento | CPF (the Brazilian individual taxpayer number) or CNPJ of the partner |
socios[].qualificacao | Role, for example SOCIO ADMINISTRADOR |
socios[].participacaoSocietaria | Ownership interest of the partner |
socios[].falecido | Indicates a death record for the partner |
socios[].nivelPep | Level of political exposure of the partner |
socios[].paisOrigem | Country of origin of the partner |
sociosJunta[] | The same fields, except paisOrigem |
info.qsaDivergente | Indicates 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.
{
"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.
| Field | Description |
|---|---|
funcionarios[].cpf | CPF of the employee |
funcionarios[].nome | Name of the employee |
funcionarios[].dataNascimento | Date of birth |
funcionarios[].dataAdmissao | Date of hire |
exfuncionarios[].cpf | CPF of the former employee |
exfuncionarios[].nome | Name of the former employee |
exfuncionarios[].dataNascimento | Date of birth |
exfuncionarios[].dataAdmissao | Date of hire |
exfuncionarios[].anoMesDesligamento | Month and year of termination, for example 06-2019 |
calc.totalExFuncionarios.porAno[].ano | Year |
calc.totalExFuncionarios.porAno[].quantidade | Former employees in that year |
crescimentoPorAnoRais[].ano | Reference year in the RAIS (the annual labor report) |
crescimentoPorAnoRais[].qtdFuncionarios | Employees in that year |
crescimentoPorAnoRais[].percentual | Percentage change against the previous year |
{
"crescimentoPorAnoRais": [
{ "ano": 2019, "qtdFuncionarios": 1, "percentual": -66.67 },
{ "ano": 2018, "qtdFuncionarios": 3, "percentual": 100 }
],
"calc": {
"totalExFuncionarios": {
"porAno": [{ "ano": 2019, "quantidade": 4 }]
}
}
}Tax situation
| Field | Description |
|---|---|
tributaryHealth.saudeTributaria | Tax health classification, for example CINZA |
tributaryHealth.cnds[].nome | Name of the debt clearance certificate |
tributaryHealth.cnds[].descricaoSituacao | Status of the certificate |
tributaryHealth.cnds[].numeroCertificacao | Number of the certificate |
tributaryHealth.cnds[].dataEmissao | Date of issue |
tributaryHealth.cnds[].dataValidade | Expiry date |
simplesNacional.optanteSimples | Indicates that the company opted into Simples Nacional |
simplesNacional.optanteSimei | Indicates that the company opted into SIMEI |
simplesNacional.simplesIrregular | Indicates an irregularity in Simples Nacional |
info.passivelIss | Indicates whether the company is subject to ISS (the municipal service tax) |
info.valorDividaPgfnDau | Total amount of the debt in the federal outstanding debt registry (PGFN/DAU) |
debitosPgfnDau[].inscricao | Registration number of the debt in the federal outstanding debt registry |
debitosPgfnDau[].natureza | Nature of the debt |
debitosPgfnDau[].valorTotal | Total amount of the debt |
debitosPgfnDau[].dataProcessamento | Date of processing |
sintegra.inscricaoEstadual | State tax registration (inscrição estadual) |
sintegra.uf | State of the registration |
sintegra.situacaoCadastral | Registration status at the Sintegra |
sintegra.dataSituacaoCadastral | Date of the registration status |
sintegra.regimeApuracao | Tax assessment regime |
empresaSintegra.inscricoes[].ie | State tax registration |
empresaSintegra.inscricoes[].uf | State of the registration |
empresaSintegra.inscricoes[].situacaoCadastral | Registration status |
empresaSintegra.inscricoes[].dataSituacaoCadastral | Date of the registration status |
empresaSintegra.inscricoes[].regimeApuracao | Tax assessment regime |
empresaSintegra.inscricoes[].email | Email of the registration |
empresaSintegra.inscricoes[].telefone.telefone | Phone 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.
{
"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).
| Field | Description |
|---|---|
empresaCeis.sancoes[].processo | Number of the proceeding |
empresaCeis.sancoes[].tipoSancao | Type of the sanction |
empresaCeis.sancoes[].periodoSancao.inicio | Start of the sanction period |
empresaCeis.sancoes[].periodoSancao.final | End of the sanction period |
empresaCeis.sancoes[].fundamentacaoLegal | Legal grounds |
empresaCeis.sancoes[].orgaoSancionador | Body that applied the sanction |
empresaCeis.sancoes[].complementoOrgao | Additional detail on the sanctioning body |
empresaCeis.sancoes[].uf | State |
empresaCeis.sancoes[].origemInformacao | Source of the information |
empresaCeis.sancoes[].dataInformacao | Date of the information |
cnep — the National Register of Punished Companies (Cadastro Nacional de Empresas Punidas).
| Field | Description |
|---|---|
cnep.processos[].numeroProcesso | Number of the proceeding |
cnep.processos[].tipoSancao | Type of the sanction |
cnep.processos[].valorMulta | Amount of the fine |
cnep.processos[].dataInicioSancao | Start of the sanction |
cnep.processos[].dataFinalSancao | End of the sanction |
cnep.processos[].orgaoSancionador | Body that applied the sanction |
cnep.processos[].ufOrgaoSancionador | State of the sanctioning body |
bancoCentral — appellate rulings from the Brazilian Central Bank.
| Field | Description |
|---|---|
bancoCentral.acordaos[].numeroRecurso | Number of the appeal |
bancoCentral.acordaos[].numeroProcesso | Number of the proceeding |
bancoCentral.acordaos[].numeroAcordaoCRSFN | Number of the ruling at the CRSFN |
bancoCentral.acordaos[].recurso | Identification of the appeal |
bancoCentral.acordaos[].parte | Party 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).
| Field | Description |
|---|---|
mteCnd.tipoCertidao | Type of the certificate |
mteCnd.situacaoDebito | Status of the labor debt |
mteCnd.codigo | Code of the certificate |
mteCnd.dataEmissao | Date of issue |
mteCnd.processos[].numero | Number of the proceeding |
mteCnd.processos[].situacaoProcesso | Status of the proceeding |
mteCnd.processos[].categoriaInfracao | Category of the violation |
mteCnd.processos[].capitulacaoInfracao | Legal classification of the violation |
mteTrabalhoEscravo.estabelecimentos[].anoAcaoFiscal | Year of the enforcement action |
mteTrabalhoEscravo.estabelecimentos[].dataDecisaoProcedencia | Date the claim was upheld |
mteTrabalhoEscravo.estabelecimentos[].numeroTrabalhadoresEnvolvidos | Workers involved |
mteTrabalhoEscravo.estabelecimentos[].estabelecimento | Address 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.
| Field | Description |
|---|---|
processoJudicialTotalizadores.quantidades[].tipo | Type of lawsuit the counts refer to |
processoJudicialTotalizadores.quantidades[].qtdTotal | Total of lawsuits of that type |
processoJudicialTotalizadores.quantidades[].qtdAtivos | Lawsuits still in progress |
processoJudicialTotalizadores.quantidades[].qtdParteAtiva | Lawsuits in which the company is on the claimant side |
processoJudicialTotalizadores.quantidades[].qtdPartePassiva | Lawsuits in which the company is on the respondent side |
processoJudicialTotalizadores.quantidades[].qtdOutrasPartes | Lawsuits in which the company appears in another position |
processoJudicialTotalizadores.valorTotal | Total amount involved |
processoJudicialTotalizadores.valorTotalAtiva | Total amount in which the company is on the claimant side |
processoJudicialTotalizadores.valorTotalPassiva | Total amount in which the company is on the respondent side |
processoJudicialTotalizadores.valorTotalOutrasPartes | Total amount in the other positions |
cnjCnia.processos[].numeroProcesso | Number of the lawsuit at the CNJ/CNIA |
cnjCnia.processos[].dataCadastramento | Date of registration |
cnjCnia.processos[].esfera | Sphere of the lawsuit |
cnjCnia.processos[].descricaoOrgao | Judicial body hearing the case |
cnjCnia.processos[].cargoFuncao.uf | State of the position or role related to the lawsuit |
cnjCnia.processos[].assuntosRelacionados | Subject matters related to the lawsuit |
cnjCnia.processos[].ressarcimentoIntegralDano.valor | Amount 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[].
{
"processoJudicialTotalizadores": {
"valorTotal": 0,
"valorTotalAtiva": 0,
"valorTotalPassiva": 0,
"valorTotalOutrasPartes": 0
}
}Assets
| Field | Description |
|---|---|
imoveis[].imovelId | Identifier of the property |
imoveis[].areaTerreno | Land area |
imoveis[].areaConstruida | Built area |
imoveis[].valorAvaliacao | Appraisal value |
imoveis[].logradouro | Street address of the property |
imoveis[].numeroLogradouro | Number |
imoveis[].complemento | Address complement |
imoveis[].bairro | District |
imoveis[].municipio | Municipality |
imoveis[].uf | State |
imoveis[].cep | ZIP code |
detran.totalVeiculosPesados | Heavy vehicles of the company |
detran.totalVeiculosPesadosGrupo | Heavy vehicles of the economic group |
totalVeiculos.ateUmAno | Vehicles up to one year old |
totalVeiculos.entreDoisCincoAnos | Vehicles between two and five years old |
totalVeiculos.entreCincoDezAnos | Vehicles between five and ten years old |
totalVeiculos.acimaDezAnos | Vehicles over ten years old |
totalVeiculos.grupoAteUmAno | Same bracket, in the economic group |
totalVeiculos.grupoEntreDoisCincoAnos | Same bracket, in the economic group |
totalVeiculos.grupoEntreCincoDezAnos | Same bracket, in the economic group |
totalVeiculos.grupoAcimaDezAnos | Same 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
| Field | Description |
|---|---|
novoPat.modalidades[].descricao | Type of the Worker Food Program (Programa de Alimentação do Trabalhador, PAT) |
novoPat.modalidades[].numeroTrabBeneficiados | Workers benefited |
novoPat.modalidades[].razaoSocialForcenedor | Corporate name of the supplier |
novoPat.modalidades[].cnpjForcenedor | CNPJ of the supplier |
empresaInpiProgramas.processos[].titulo | Title of the computer program registered at the INPI (the Brazilian patent and trademark office) |
empresaInpiProgramas.processos[].numeroProcesso | Number of the proceeding at the INPI |
empresaInpiProgramas.processos[].dataDeposito | Filing date |
empresaInpiProgramas.processos[].procurador | Attorney in charge |
empresaInpiProgramas.processos[].autores[].autor | Authors 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:
| Field | Description |
|---|---|
noMatchFound | true when the source was queried and found no record |
source | List with the origin sources of the data |
processingTimestamp | When the source processed the data |
lastUpdate | Last update of the data in the provider's database |
insertDate | When the data entered the provider's database |
updatedAt | When 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.
{
"_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{
"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.
{
"id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
"version": "v2",
"data": {},
"metadata": {
"timeSpent": 1300
}
}Response headers
| Header | When it appears |
|---|---|
Nextid-ReqId | On every response. Carries the request identifier, the same one as the id field of the body. |
Errors
| Code | When it happens |
|---|---|
| 401 Unauthorized | API key missing, invalid, or without the nextid.bureaus.backgroundCheckCompany permission. |
| 404 Not Found | The version informed in the URL does not exist. Only v2 is accepted. |
| 422 Unprocessable Entity | CNPJ that fails the check-digit validation. |
| 500 Internal Server Error | Unexpected failure during processing. |
Example of a response with an invalid CNPJ:
Status Code: 422{
"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.
| Version | Status | What changes |
|---|---|---|
| v2 | Recommended | The only version. It is what answers when the version is omitted from the URL. |
Any other value in place of v2 returns 404.
Related endpoint
For the dossier of an individual, see Background Check (individual).