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 Name | Type | Description | Example | Notes |
|---|---|---|---|---|
identifier | string | 18-char CURP of the individual. | "CUAI911021MOCRQS09" | Same as the verification identifier. |
updated_at | string (ISO 8601) | Timestamp of the last data update. | "2025-09-10T13:05:12.201273Z" | UTC. |
personal_info | object | Personal identity data. See below. | — | |
address | object | Address data. See below. | — | |
employment_status | string | Current employment status. | "employed" | See Employment Status below. |
tenure | string or null | Minimum verified tenure with the current employer. | "6_months_plus" | See Tenure below. |
estimated_monthly_income | number or null | Estimated net monthly income from invoices and employment data. | 11139.00 | See Estimated Monthly Income below. |
personal_info
personal_info| Field Name | Type | Description | Example | Notes |
|---|---|---|---|---|
personal_info.first_name | string | First name. | "María Jose" | |
personal_info.last_name | string | Last name. | "Pérez Estrada" | |
personal_info.curp | string | Individual's CURP. | "MAPE850312HDFRRR02" | |
personal_info.nss | string | Social Security Number. | "65189234567" | May be null. |
personal_info.rfc | string | Tax ID number. | "MAPE850312F23" | May be null. |
personal_info.phone | string | Contact phone. | "525540235678" | May be null. |
personal_info.email | string | Contact email. | "[email protected]" | May be null. |
personal_info.tax_regime | string | Tax regime, SAT RegimenFiscal. | "Sueldos y Salarios e Ingresos Asimilados a Salarios" | May be null. |
address
address| Field Name | Type | Description | Example | Notes |
|---|---|---|---|---|
address.street | string | Street address. | "Valle del Olmo 28" | May be null. |
address.neighborhood | string | Neighborhood. | "Nueva Santa María" | May be null. |
address.municipality | string | Municipality. | "Azcapotzalco" | May be null. |
address.state | string | State. | "CDMX" | May be null. |
address.zip_code | string | Postal 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.
| Value | Meaning |
|---|---|
3_months_plus | At least 3 months of verified tenure. |
6_months_plus | At least 6 months of verified tenure. |
9_months_plus | At least 9 months of verified tenure. |
12_months_plus | At least 12 months of verified tenure. |
null | The 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 invoicesIncome 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:
- The average of the latest months with payroll, up to three.
- 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.
Updated about 1 hour ago
