Skip to content

Individual Bureau Online

This endpoint queries the registration data of a CPF (the Brazilian individual taxpayer number) in real time, straight at the source, and also returns the registration status of the CPF at the Brazilian Federal Revenue Service.

It is the online version of the Individual Bureau. Both deliver the same envelope and the same identification fields; the difference is where the data comes from and the status field, which only exists here.

Which one to use

Individual BureauIndividual Bureau Online
Route/bureau/natural-person/{CPF}/bureau-pf-online/{CPF}
Source of the dataDatabase queried by our infrastructureLookup performed on the spot, at the source
status fieldNot returnedReturned
Version in the URLAccepts /bureau/v2/natural-person/{CPF}Does not accept a version in the URL
Query parametersAcceptedNone — any of them returns 422
Permissionnextid.bureaus.naturalPersonBureaunextid.bureaus.naturalPersonBureau.online
BillingOwn keyOwn key, separate

Use the Individual Bureau Online when you need the registration status of the CPF, or when the data has to reflect the state at the source at the moment of the call. For the other identification lookups, the Individual Bureau does the job at a lower cost.

🚧 This query is billed separately

The real-time lookup has its own cost and is recorded under a billing key separate from the one used by the Individual Bureau. See Billing.

Request

GET /bureau-pf-online/{CPF}

Parameters

ParameterDescriptionRequired
CPFCPF of the person being queriedYes

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

http
Authorization: ApiKey <your-api-key>

This endpoint does not accept query parameters

Unlike the Individual Bureau, here any query parameter returns 422 — including an unknown name, typed by mistake.

GET /bureau-pf-online/12345678909?legacy=true   → 422
GET /bureau-pf-online/12345678909?anything=1    → 422

The refusal is deliberate: each one of the parameters accepted by the Individual Bureau would divert the call to a path that does not perform the real-time lookup, and it would still be billed as online.

There is no version in the URL

/bureau-pf-online/v2/{CPF} does not exist and returns 404. The version field of the body still answers v2, because it describes the format of the payload delivered, not the version of the route.

Example request

bash
curl -i 'https://api.nxcd.app/bureau-pf-online/12345678909' \
  --header 'Authorization: ApiKey YOUR_API_KEY'

Response

FieldDescriptionType
idUnique identifier of the requestString
versionFormat of the payload delivered. Always v2String
dataObject with the result of the lookupObject
data.federalRevenueNumberCPF queried, without the maskString
data.nameName of the personString
data.mothersNameMother's nameString
data.birthdateDate of birth, in the YYYYMMDD formatNumber
data.statusRegistration status of the CPFString
metadataMetadata of the requestObject
metadata.timeSpentProcessing time of the request, in millisecondsNumber

data.status

This is the field that sets this endpoint apart from the Individual Bureau: it carries the registration status of the CPF at the Federal Revenue Service, as it stands at the moment of the lookup.

The value observed in production for a registration in good standing is "REGULAR".

🚧 The other values are not documented yet

REGULAR is the only value we have confirmed so far. The Federal Revenue Service uses other registration statuses, and they may show up in this field — the full list will be published on this page as soon as it is confirmed.

In the meantime, do not write code that depends on the list of values. Treat "REGULAR" as the good-standing case and any other value as a status to be checked, instead of comparing against a closed list.

JSON example

Status Code: 200
json
{
  "id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
  "version": "v2",
  "data": {
    "federalRevenueNumber": "12345678909",
    "name": "JOAO DA SILVA",
    "mothersName": "MARIA DA SILVA",
    "birthdate": 19900201,
    "status": "REGULAR"
  },
  "metadata": {
    "timeSpent": 312
  }
}

When the CPF 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": 240
  }
}

When the CPF belongs to a minor

The personal data comes back masked: name becomes menor de idade ("minor"), and mothersName and birthdate become ****. Watch out for the type: once masked, birthdate comes as text, not as a number.

This endpoint applies the masking always — there is no way to turn it off.

Status Code: 200
json
{
  "id": "13cfec7c-b238-4820-a4d1-5173e4c1418e",
  "version": "v2",
  "data": {
    "federalRevenueNumber": "12345678909",
    "name": "menor de idade",
    "mothersName": "****",
    "birthdate": "****",
    "status": "REGULAR"
  },
  "metadata": {
    "timeSpent": 298
  }
}

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.naturalPersonBureau.online permission.
404 Not FoundA version was used in the URL, such as /bureau-pf-online/v2/{CPF}. This route has no version.
422 Unprocessable EntityCPF that fails the check-digit validation, or any query parameter in the URL.
500 Internal Server ErrorUnexpected failure during processing.

‼️ The Individual Bureau permission does not apply here

nextid.bureaus.naturalPersonBureau.online is a permission of its own. Anyone holding only nextid.bureaus.naturalPersonBureau gets 401 on this endpoint, even while being able to call the Individual Bureau normally.

Example of a response with an invalid CPF:

Status Code: 422
json
{
  "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.

Nextcode | Identity Verification Solutions