Background Check (individual)
This endpoint assembles a full dossier of an individual from their CPF (the Brazilian individual taxpayer number). It is the longest response of the API: identification, addresses, phone numbers, company ownership interests, employment history, tax situation, administrative sanctions, political exposure, lawsuits and criminal history, all in a single body.
For a lean identification lookup — name, mother's name and date of birth — use the Individual Bureau, which is far cheaper and faster.
🚧 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 (
nome,situacaoCpf,nomeMae), 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/natural-person/{CPF}Parameters
| Parameter | Description | Required |
|---|---|---|
| CPF | CPF of the person being queried | Yes |
The CPF can be sent with or without the mask (123.456.789-09 or 12345678909), always with all 11 digits, including any leading zeros. A CPF that fails the check-digit validation returns 422 before any lookup is performed.
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/natural-person/12345678909' \
--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 CPF 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 |
|---|---|
| Identification | Name, CPF, registration status, parentage, gender, age |
| Death | Death indicators |
| Other records | CNS, NIS and PIS |
| Contact and addresses | Email, phone numbers, current address and other addresses |
| Company ownership | Companies in which the person appears as a partner |
| Employment history | Employment relationships and address of the workplace |
| Tax situation | Income tax refund and debts registered with the PGFN/DAU |
| Sanctions and restricted lists | CEIS, CNEP, Central Bank, MTE |
| Politically exposed person | Classification as a PEP and first-degree relationships |
| Lawsuits | Totals by type and lawsuits from the CNJ/CNIA |
| Criminal history | Federal Police certificate and open arrest warrants |
_metadata | Date and source of each block |
Identification
| Field | Description |
|---|---|
nome | Full name of the person |
cpf | CPF queried |
situacaoCpf | Registration status of the CPF at the Brazilian Federal Revenue Service, for example REGULAR |
cpfDataInscricao | Date the CPF was registered |
idade | Age of the person |
dataNascimento | Date of birth |
sexo | Gender, for example FEMININO |
nomeMae | Mother's name |
cpfMae | Mother's CPF |
tags | Markers assigned to the record by the provider |
{
"nome": "MARIA JOAQUINA DE SOUZA",
"cpf": "12345678909",
"situacaoCpf": "REGULAR",
"cpfDataInscricao": "2001-12-20",
"idade": 34,
"dataNascimento": "1991-01-01T12:00:00Z",
"sexo": "FEMININO",
"nomeMae": "ANA MARIA DE SOUZA",
"cpfMae": "98765432100"
}Death
| Field | Description |
|---|---|
falecido | Indicates a death record |
falecidoConfirmado | Indicates that the death was confirmed — it is the stronger of the two fields |
anoFalecimento | Year of death |
{
"falecido": false,
"falecidoConfirmado": false
}Other records
| Field | Description |
|---|---|
cns | National Health Card (Cartão Nacional de Saúde, CNS) |
nis | Social identification number (Número de Identificação Social, NIS) |
pis | Social Integration Program (Programa de Integração Social, PIS) |
Contact and addresses
endereco is the main address. enderecoOutros is a list with the other known addresses, and each item has the same fields as the main one. telefones is a list, and each phone number may come with the address associated with it.
| Field | Description |
|---|---|
email | |
endereco.logradouro | Street address |
endereco.numero | Number |
endereco.complemento | Address complement |
endereco.bairro | District |
endereco.municipio | Municipality |
endereco.uf | State |
endereco.cep | ZIP code |
enderecoOutros[] | Other addresses, with the same eight fields as endereco |
telefones[].numero | Phone number |
telefones[].endereco | Address associated with the phone number, with the same fields as endereco |
{
"endereco": {
"logradouro": "R SAO BENTO",
"numero": "1010",
"bairro": "CENTRO",
"municipio": "SAO PAULO",
"uf": "SP",
"cep": "01010000"
},
"enderecoOutros": [{ "uf": "SP" }],
"telefones": [
{
"numero": "1155554444",
"endereco": { "uf": "SP" }
}
]
}Company ownership
There are three distinct lists, with the same fifteen fields each. They differ by the source of the data, not by the format:
| Block | What it is |
|---|---|
participacaoSocietariaRF[] | Interests according to the ownership structure held by the Federal Revenue Service |
participacaoSocietaria[] | Interests consolidated by the provider |
participacaoSocietariaUnico[] | A third view of the interests maintained by the provider |
Fields of each item, in all three lists:
| Field | Description |
|---|---|
cnpj | CNPJ (the Brazilian company taxpayer number) of the company |
razaoSocial | Corporate name of the company |
descricaoCnae | Description of the company's CNAE (economic activity code) |
ramoAtividade | Line of business |
dataAbertura | Date the company was opened |
municipio | Municipality of the company |
uf | State of the company |
situacao | Registration status of the company |
dataEntrada | Date the person joined the ownership structure |
qualificacao | Role of the partner, for example SOCIO ADMINISTRADOR |
valorParticipacao | Value of the interest |
capitalSocialEmpresa | Share capital of the company |
participacaoCapitalSocial | The person's share of the company's capital |
faixaFaturamentoPresumido | Presumed revenue bracket of the company |
faixaFaturamentoPresumidoGrupo | Presumed revenue bracket of the company's economic group |
Employment history
| Field | Description |
|---|---|
historicoFuncional[].cnpj | CNPJ of the employer |
historicoFuncional[].razaoSocial | Corporate name of the employer |
historicoFuncional[].dataAdmissao | Date of hire |
historicoFuncional[].dataDesligamento | Date of termination |
historicoFuncional[].numeroMesesEmpresa | Time at the company, in months |
enderecoEmpregoRaisNovo.numero | Number of the workplace address, according to the RAIS (the annual labor report) |
enderecoEmpregoRaisNovo.bairro | District |
enderecoEmpregoRaisNovo.municipio | Municipality |
enderecoEmpregoRaisNovo.uf | State |
enderecoEmpregoRaisNovo.cep | ZIP code |
enderecoEmpregoRaisNovo.precisaoGeo | Precision of the geolocation of the address |
enderecoEmpregoRaisNovo.EnderecoResidencial | Indicates whether the address is residential |
enderecoEmpregoRaisNovo.telefone | Phone number of the workplace address |
🚧 EnderecoResidencial starts with a capital letter
Inside enderecoEmpregoRaisNovo, the field is EnderecoResidencial, with a capital E — unlike every neighboring field. That is how it arrives, and the API does not fix it. In the equivalent company block, the same piece of data is called enderecoResidencial, lowercase.
Tax situation
| Field | Description |
|---|---|
irpf.ano | Tax year |
irpf.situacao | Status of the refund |
irpf.banco | Bank where the refund was credited |
irpf.agencia | Branch where the refund was credited |
irpf.lote | Refund batch |
irpf.dataDisponibilidade | Date the refund became available |
irpfRestituicao.exercicios[].anoExercicio | Tax year |
irpfRestituicao.exercicios[].situacao | Status of the refund in that tax year |
irpfRestituicao.exercicios[].nomeBanco | Bank where it was credited |
irpfRestituicao.exercicios[].numAgencia | Branch where it was credited |
irpfRestituicao.exercicios[].numLote | Batch |
irpfRestituicao.exercicios[].dataDisponibilidade | Date it became available |
debitosPgfnDau[].inscricao | Registration number of the debt in the federal outstanding debt registry (PGFN/DAU) |
debitosPgfnDau[].natureza | Nature of the debt |
debitosPgfnDau[].valorTotal | Total amount of the debt |
debitosPgfnDau[].dataProcessamento | Date of processing |
irpf and irpfRestituicao cover the same subject
Both bring the income tax refund, with different field names: irpf brings one tax year, and irpfRestituicao.exercicios[] brings the list. Read both — which of the two comes filled in depends on what the provider has for that CPF.
Sanctions and restricted lists
These are independent blocks, one per source register. Each one shows up only when there is a record.
ceis and pessoaCeis — the Register of Disreputable and Suspended Companies (Cadastro de Empresas Inidôneas e Suspensas, CEIS). Two views of the same register, in different formats: ceis is the sanction in flat fields, pessoaCeis groups the sanctions into a list and brings the possuiCeis indicator.
| Field | Description |
|---|---|
ceis.codigoProcesso | Code of the proceeding |
ceis.tipoSancao | Type of the sanction |
ceis.dataInicioSancao | Start of the sanction |
ceis.dataFimSancao | End of the sanction |
ceis.fundamentacaoLegal | Legal grounds |
ceis.orgaoSancionador | Body that applied the sanction |
ceis.ufOrgaoSancionador | State of the sanctioning body |
ceis.origemInformacoes | Source of the information |
ceis.dataOrigemInformacoes | Date of the source of the information |
pessoaCeis.possuiCeis | Indicates whether there is a record in the CEIS |
pessoaCeis.sancoes[].processo | Number of the proceeding |
pessoaCeis.sancoes[].tipoSancao | Type of the sanction |
pessoaCeis.sancoes[].periodoSancao.inicio | Start of the sanction period |
pessoaCeis.sancoes[].periodoSancao.final | End of the sanction period |
pessoaCeis.sancoes[].fundamentacaoLegal | Legal grounds |
pessoaCeis.sancoes[].orgaoSancionador | Body that applied the sanction |
pessoaCeis.sancoes[].complementoOrgao | Additional detail on the sanctioning body |
pessoaCeis.sancoes[].uf | State |
pessoaCeis.sancoes[].origemInformacao | Source of the information |
pessoaCeis.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 — disqualifications and appellate rulings from the Brazilian Central Bank.
| Field | Description |
|---|---|
bancoCentral.inabilitados[].penalidade | Penalty applied |
bancoCentral.inabilitados[].prazo | Term of the penalty |
bancoCentral.inabilitados[].dataPublicacao | Date of publication |
bancoCentral.inabilitados[].dataPrazoFinalPenalidade | End date of the penalty |
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 |
The individual dossier has one extra block of disqualified people
In the Background Check (company), bancoCentral brings only acordaos[]. Here there is also inabilitados[].
mteCnd and mteTrabalhoEscravo — the Brazilian Ministry of Labor (MTE). mteCnd is the labor debt clearance certificate; mteTrabalhoEscravo is the register of employers caught using work analogous to slavery.
| Field | Description |
|---|---|
mteCnd.tipoCertidao | Type of the certificate |
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; here the mteCnd block does not bring that field. See the Background Check (company).
Politically exposed person
| Field | Description |
|---|---|
pessoaPoliticamenteExposta.funcao | Position held |
pessoaPoliticamenteExposta.orgao | Government body |
pessoaPoliticamenteExposta.dataInicioExercicio | Start of the term |
pessoaPoliticamenteExposta.dataFimExercicio | End of the term |
pessoaPoliticamenteExposta.dataFimCarencia | End of the cooling-off period after leaving the position |
pessoaPoliticamenteExposta.pessoaPEPNivelPrincipal | Classification of the person at the main PEP level |
pessoaPoliticamenteExposta.primarios[].nome | Name of the related PEP |
pessoaPoliticamenteExposta.primarios[].cpf | CPF of the related PEP |
pessoaPoliticamenteExposta.primarios[].funcao | Position of the related PEP |
pessoaPoliticamenteExposta.primarios[].relacao | Type of relationship with the person queried |
pessoaPoliticamenteExposta.primarios[].dataInicioExercicio | Start of the term of the related person |
pessoaPoliticamenteExposta.primarios[].dataFimCarencia | End of the cooling-off period of the related person |
The primarios list is about other people
The fields at the root of pessoaPoliticamenteExposta describe the person queried. primarios[], on the other hand, brings the people in a primary relationship who are PEPs — it is what identifies someone who is a PEP by relationship rather than by holding the position.
Lawsuits
processoJudicialTotalizadores.quantidades[] brings one row per type of lawsuit, with the counts for that type. tipo takes values such as NUMERO DE PROCESSOS (the overall total), CRIMINAL, TRIBUTARIO, TRABALHISTA, ELEITORAL, MILITAR and CIVEL / ADMINISTRATIVO.
| 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 person is on the claimant side |
processoJudicialTotalizadores.quantidades[].qtdPartePassiva | Lawsuits in which the person is on the respondent side |
processoJudicialTotalizadores.quantidades[].qtdOutrasPartes | Lawsuits in which the person appears in another position |
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 |
{
"processoJudicialTotalizadores": {
"quantidades": [
{ "tipo": "NUMERO DE PROCESSOS", "qtdTotal": 65, "qtdAtivos": 4, "qtdParteAtiva": 27, "qtdPartePassiva": 3, "qtdOutrasPartes": 35 },
{ "tipo": "CRIMINAL", "qtdTotal": 21, "qtdAtivos": 1, "qtdParteAtiva": 10, "qtdPartePassiva": 1, "qtdOutrasPartes": 10 },
{ "tipo": "TRIBUTARIO", "qtdTotal": 0, "qtdAtivos": 0, "qtdParteAtiva": 0, "qtdPartePassiva": 0, "qtdOutrasPartes": 0 },
{ "tipo": "CIVEL / ADMINISTRATIVO", "qtdTotal": 44, "qtdAtivos": 3, "qtdParteAtiva": 17, "qtdPartePassiva": 2, "qtdOutrasPartes": 25 }
]
}
}Criminal history
Brings the lookup at the National Criminal Information System (Sistema Nacional de Informações Criminais, SINIC) and the open arrest warrants.
| Field | Description |
|---|---|
historicoCriminal.status | Result of the lookup, for example CERTIDAO EMITIDA |
historicoCriminal.situacao | Text of the certificate issued by the Brazilian Federal Police |
historicoCriminal.protocolo | Protocol number of the lookup |
historicoCriminal.dataConsulta | Date the lookup was performed |
historicoCriminal.possuiMandados | Indicates whether there are open warrants |
historicoCriminal.mandados[].numeroMandado | Number of the warrant |
historicoCriminal.mandados[].numeroProcesso | Number of the lawsuit behind the warrant |
historicoCriminal.mandados[].situacaoMandado | Status of the warrant |
historicoCriminal.mandados[].classe | Class of the warrant |
historicoCriminal.mandados[].dataMandado | Date of issue |
historicoCriminal.mandados[].dataValidade | Expiry date |
{
"historicoCriminal": {
"status": "CERTIDAO EMITIDA",
"situacao": "A POLICIA FEDERAL CERTIFICA APOS PESQUISA NO SISTEMA NACIONAL DE INFORMACOES CRIMINAIS SINIC QUE ATE A PRESENTE DATA NAO CONSTA DECISAO JUDICIAL CONDENATORIA COM TRANSITO EM JULGADO",
"protocolo": "25467342019",
"dataConsulta": "2025-04-23T21:01:12"
}
}_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 (pessoas, pessoa-ceis, pessoa-cnep, pessoa-banco-central, pessoa-historico-criminal, pessoa-mte-trabalho-escravo…), 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": {
"pessoas": {
"_metadata": {
"pessoas": {
"processingTimestamp": "2025-05-07T07:07:11Z",
"source": ["RECEITA FEDERAL"]
}
},
"lastUpdate": "2025-10-05T08:44:10.434Z",
"updatedAt": "2025-10-05T10:33:04.887Z"
},
"pessoa-ceis": { "noMatchFound": true },
"pessoa-cnep": { "noMatchFound": true },
"pessoa-banco-central": { "noMatchFound": true },
"pessoa-mte-trabalho-escravo": { "noMatchFound": true },
"pessoa-historico-criminal": {
"insertDate": "2025-04-23T21:01:13.057Z",
"lastUpdate": "2025-04-23T21:01:13Z",
"processingTimestamp": "2025-04-23T21:01:12Z",
"source": ["cac-dpf"],
"updatedAt": "2025-04-23T21:01:14.019Z"
}
}
}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": {
"pessoas": {
"lastUpdate": "2025-10-05T08:44:10.434Z",
"updatedAt": "2025-10-05T10:33:04.887Z"
},
"pessoa-ceis": { "noMatchFound": true },
"pessoa-cnep": { "noMatchFound": true },
"pessoa-banco-central": { "noMatchFound": true },
"pessoa-mte-trabalho-escravo": { "noMatchFound": true }
},
"nome": "MARIA JOAQUINA DE SOUZA",
"cpf": "12345678909",
"situacaoCpf": "REGULAR",
"cpfDataInscricao": "2001-12-20",
"idade": 34,
"dataNascimento": "1991-01-01T12:00:00Z",
"sexo": "FEMININO",
"nomeMae": "ANA MARIA DE SOUZA",
"cpfMae": "98765432100",
"falecido": false,
"falecidoConfirmado": false,
"endereco": {
"logradouro": "R SAO BENTO",
"numero": "1010",
"bairro": "CENTRO",
"municipio": "SAO PAULO",
"uf": "SP",
"cep": "01010000"
},
"enderecoOutros": [{ "uf": "SP" }],
"telefones": [
{
"numero": "1155554444",
"endereco": { "uf": "SP" }
}
],
"historicoCriminal": {
"status": "CERTIDAO EMITIDA",
"situacao": "A POLICIA FEDERAL CERTIFICA APOS PESQUISA NO SISTEMA NACIONAL DE INFORMACOES CRIMINAIS SINIC QUE ATE A PRESENTE DATA NAO CONSTA DECISAO JUDICIAL CONDENATORIA COM TRANSITO EM JULGADO",
"protocolo": "25467342019",
"dataConsulta": "2025-04-23T21:01:12"
},
"processoJudicialTotalizadores": {
"quantidades": [
{ "tipo": "NUMERO DE PROCESSOS", "qtdTotal": 65, "qtdAtivos": 4, "qtdParteAtiva": 27, "qtdPartePassiva": 3, "qtdOutrasPartes": 35 },
{ "tipo": "CRIMINAL", "qtdTotal": 21, "qtdAtivos": 1, "qtdParteAtiva": 10, "qtdPartePassiva": 1, "qtdOutrasPartes": 10 },
{ "tipo": "CIVEL / ADMINISTRATIVO", "qtdTotal": 44, "qtdAtivos": 3, "qtdParteAtiva": 17, "qtdPartePassiva": 2, "qtdOutrasPartes": 25 }
]
}
},
"metadata": {
"timeSpent": 4200
}
}When the CPF is not found
data comes back empty. The response is still 200.
{
"id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
"version": "v2",
"data": {},
"metadata": {
"timeSpent": 1100
}
}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.backgroundCheckPerson permission. |
| 404 Not Found | The version informed in the URL does not exist. Only v2 is accepted. |
| 422 Unprocessable Entity | CPF that fails the check-digit validation. |
| 500 Internal Server Error | Unexpected failure during processing. |
Example of a response with an invalid CPF:
Status Code: 422{
"id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
"error": {
"statusCode": 422,
"error": "Unprocessable Entity",
"message": "Invalid Federal Revenue Number"
}
}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/natural-person/{CPF} and /background-check/v2/natural-person/{CPF} 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 a company, see Background Check (company).