Individual Data

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.

Consent

Consent is identical for individuals and businesses. The individual identifier is an 18-char CURP. For the full payload, response shape, and data dictionary, see the Consents page.


Verification

The Verification object is shared between Individual and Business. See the Verifications page for the lifecycle, the full object reference, and the entities available for Individual identifiers (profile, invoices, employment, employment_files, earnings).


Profile

Personal identity data returned from GET /profile/{identifier}.

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 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 a top-level string derived from the individual's employment and invoice records. The API checks signals in priority order and returns the first matching status.

ValueReturned when
employedAn active employment record (IMSS/ISSSTE) was verified within the last 90 days, or a nomina invoice was verified within 90 days and issued within the last 60 days.
self_employedNo active employment record exists, but an ingreso invoice was issued under the individual's own RFC, verified within 90 days and issued within the last 90 days.
retiredGovernment records (IMSS/ISSSTE) flagged the individual as retired within the last 90 days.
unemployedA verification against IMSS or ISSSTE ran within the last 90 days and confirmed no active job.
unknownNone of the above signals are available within their recency windows.

Data must be verified within the last 90 days to be considered. A nomina invoice must also have been issued within the last 60 days. One-off payroll concepts (profit-sharing, year-end bonuses, and severance/settlement payments) do not count as evidence of an active job on their own.


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 our best estimate of the individual's monthly income in MXN, or null when no income data is available.

It's calculated from the last 90 days of invoices (CFDI) plus employment records, normalized to a monthly figure:

estimated_monthly_income = salary + income invoices − expense invoices
  • Only the individual's own invoices count: payroll (nomina) they received, and income (ingreso) / expense (egreso) they issued. Payment receipts (pago) are ignored to avoid double-counting.
  • Salary comes from recent payroll when available, otherwise from a current active employment record. This means the estimate now uses employment data, not just invoices, giving much broader coverage than before.
  • One-off payroll concepts (profit-sharing, year-end bonuses, and severance/settlement payments) are excluded and not treated as recurring salary.

Invoice

Invoices for an individual are retrieved from GET /invoices/{identifier} using the individual's 18-char CURP.

To improve invoice coverage, clients that already hold the user's RFC can pass it as the optional rfc field when creating a verification (POST /verifications). When provided, the API uses the client-supplied RFC directly to retrieve invoice data, bypassing the internal CURP → RFC conversion.

Field NameTypeDescriptionExampleNotes
typestringInvoice type."nomina"See Invoice Types below.
amountnumberTotal amount.42487.53
currencystringCurrency code."MXN"Usually MXN.
folio_fiscalstringFiscal identifier of invoice."7A9F33E4-892C-4B8D-A9E1-2F6F0001"May be null.
issue_datestring (date)Official issue date."2025-04-01"YYYY-MM-DD.
rfc_issuerstringIssuer's RFC."CYA010101AAA"Who issued the invoice.
issuer_namestringIssuer's name."Construcciones Yamile S.A. de C.V."Name of individual or company issuing the invoice.
rfc_receiverstringReceiver's RFC."OICE940722GHW"Who received the invoice.
receiver_namestringReceiver's name."José Carlos Aguilar Rincón"Name of individual or company receiving the invoice.
payment_methodstringSAT payment method code."PPD"Populated for ingreso and egreso.
payment_typestringSAT payment form code."99"Populated for ingreso and egreso.
line_itemsarray[object]Product or service lines.See belowPopulated for ingreso and egreso.
invoice_relationsarray[object]Related invoice references.See belowPopulated for ingreso and egreso.
invoice_statusstringInvoice status.""May be an empty string.
zip_code_receiverstringReceiver postal code.""May be an empty string.
payment_infoarray[object] or nullPayment details associated with the invoice.See Invoice Types and Payment Info belowOnly present when include_payment_info=true.
payroll_typestringPayroll type, SAT TipoNomina.OrdinariaPopulated for nomina
payment_periodicitystringPayment periodicity, SAT PeriodicidadPagoQuincenalPopulated for nomina
job_riskstringJob risk class, SAT RiesgoPuesto.Clase IPopulated for nomina
job_rolestringJob role (puesto) reported in the payroll receipt.AUXILIAR ADMINISTRATIVOPopulated for nomina
job_departmentstringJob department (departamento) reported in the payroll receipt.ADMINISTRACIONPopulated for nomina

Incomes and Deductions

For nomina invoices, the response includes incomes and deductions arrays with the line-item breakdown. For other types, both arrays are empty.

Field NameTypeDescriptionNotes
incomesarray[object]Income breakdown.Populated for nomina.
deductionsarray[object]Deduction breakdown.Populated for nomina.

Each item has amount, currency, and a free-form detail label (e.g., Sueldo, Aguinaldo, ISR, IMSS). For nomina invoices, items can also include key and type SAT codes that identify and group the income or deduction concept. For the full list of common labels and how to interpret them, see the Invoices page.


Line Items

For ingreso and egreso invoices, the response can include a line_items array with the products or services included in the invoice.

Field NameTypeDescriptionNotes
detailstringProduct or service description.
quantitynumberNumber of units included.
unitstringUnit of measure.
unit_pricenumberPer-unit cost.
amountnumberTotal amount for the line item.
product_service_keystringSAT product/service identifier.ClaveProdServ.

Invoice Relations

For ingreso and egreso invoices, the response can include an invoice_relations array with references to related fiscal documents.

Field NameTypeDescription
relation_typestringSAT relationship code (TipoRelacion).
related_fiscal_codestringFolio fiscal of the related invoice.

Invoice Types and Payment Info

The SAT defines four invoice types: nomina, ingreso, egreso, pago. Passing include_payment_info=true to GET /invoices/{identifier} enriches each invoice with a payment_info field linking payments to the original invoices they pay.

For the full type reference, payment info structure, and edge cases, see the Invoices page.


Job Risk

The SAT defines occupational risk as follows:

Job RiksDescription
Clase IRiesgo ordinario de vida
Clase IIRiesgo bajo
Clase IIIRiesgo medio
Clase IVRiesgo alto
Clase VRiesgo máximo





Did this page help you?