Profile

Reference for all fields returned by the Buró de Ingresos API when verifying an individual (persona física). Individuals are identified by an 18-character CURP.

Identity, employment and income data for an individual, retrieved from GET /profile/{identifier} using the individual's 18-char CURP.

Field NameTypeDescriptionExampleNotes
identifierstring18-char CURP of the individual."CUAI911021MOCRQS09"Same as the verification identifier.
updated_atstring (ISO 8601)Timestamp of the last data update."2025-09-10T13:05:12.201273Z"UTC.
personal_infoobjectPersonal identity data. See below.—
addressobjectAddress data. See below.—
employment_statusstringCurrent employment status."employed"See Employment Status below.
tenurestring or nullMinimum verified tenure with the current employer."6_months_plus"See Tenure below.
estimated_monthly_incomenumber or nullEstimated net monthly income from invoices and employment data.11139.00See Estimated Monthly Income below.

personal_info

Field NameTypeDescriptionExampleNotes
personal_info.first_namestringFirst name."María Jose"
personal_info.last_namestringLast name."Pérez Estrada"
personal_info.curpstringIndividual's CURP."MAPE850312HDFRRR02"
personal_info.nssstringSocial Security Number."65189234567"May be null.
personal_info.rfcstringTax ID number."MAPE850312F23"May be null.
personal_info.phonestringContact phone."525540235678"May be null.
personal_info.emailstringContact email."[email protected]"May be null.
personal_info.tax_regimestringTax regime, SAT RegimenFiscal."Sueldos y Salarios e Ingresos Asimilados a Salarios"May be null.

address

Field NameTypeDescriptionExampleNotes
address.streetstringStreet address."Valle del Olmo 28"May be null.
address.neighborhoodstringNeighborhood."Nueva Santa María"May be null.
address.municipalitystringMunicipality."Azcapotzalco"May be null.
address.statestringState."CDMX"May be null.
address.zip_codestringPostal code."52340"May be null.

Employment Status

employment_status is derived from the individual's employment and invoice records. Possible values are employed, self_employed, retired, unemployed and unknown.

For how each value is derived — signal priority, recency windows, and the payroll concepts that do not count as evidence of an active job — see Employment Status.


Tenure

tenure is the minimum verified job tenure the individual has with their current employer. The value is returned as a bucket, or null when there is not enough evidence or the profile is not employed.

ValueMeaning
3_months_plusAt least 3 months of verified tenure.
6_months_plusAt least 6 months of verified tenure.
9_months_plusAt least 9 months of verified tenure.
12_months_plusAt least 12 months of verified tenure.
nullThe profile is not employed, or the available evidence covers less than 3 months.

Tenure is a floor, not an exact duration. For example, 12_months_plus means we can verify at least 12 months; the individual may have worked for the employer longer. The API never overstates tenure.

The extraction window looks back approximately 12 months, so 12_months_plus is the highest possible bucket.


Estimated Monthly Income

estimated_monthly_income is the individual's estimated net monthly income in Mexican pesos (MXN). It is null when no income data is available.

The estimate combines salary and invoice data, normalized to a monthly amount:

estimated_monthly_income = salary + income invoices − expense invoices

Income and expense invoices come from the last 90 days. Salary comes from recent payroll or an active employment record, with an older-data fallback when the conditions below are met.

Which invoices count

Only the individual's own invoices (CFDI) count:

  • Payroll (nomina) invoices they received.
  • Income (ingreso) and expense (egreso) invoices they issued.

Payment receipts (pago) are excluded to avoid double-counting. One-off payroll concepts—profit-sharing, year-end bonuses, and severance or settlement payments—are excluded from recurring salary.

How salary is selected

Salary comes from payroll when the individual received at least one payroll invoice in the last 60 days. The amount is the monthly average of all payroll received in the last 90 days.

Otherwise, salary comes from an active employment record refreshed in the last 90 days. If several employment records qualify, the highest-paid one is used.

Employment salaries are the gross figures reported by IMSS/ISSSTE, converted to net. Jobs with an end date are never used, including in the fallback below.

If the 90-day window contains no salary and no income or expense invoices, the calculation falls back to salary data from the last 12 months, using:

  1. The average of the latest months with payroll, up to three.
  2. If that is unavailable, the most recently updated active employment record.

Older salary data is never combined with income or expense invoices from the 90-day window.

Because salary can come from records up to 12 months old, employment_status can be unknown while estimated_monthly_income has a value.


Related data

  • Invoices — the CFDI records behind estimated_monthly_income.
  • Employments — employment history and documents for the same identifier.
  • Business Data — the equivalent reference for a 12-char business RFC.

Did this page help you?