Added

New profile fields (tenure, tax_regime) + payroll fields on invoices + Console invoice detail


  • New — the profile now includes two new fields: tenure — the minimum verified seniority with the current employer, in buckets (3_months_plus, 6_months_plus, 9_months_plus, 12_months_plus) — and personal_info.tax_regime — the person's SAT tax regime.
  • New — payroll invoices now expose five new fields from the CFDI nómina complement: payroll_type, payment_periodicity, job_department, job_role and job_risk.
  • Improved — in the Console, invoices are now expandable to show their full breakdown (payroll earnings & deductions, income line items), and one-off payroll payments are flagged with badges (PTU, Aguinaldo, Finiquito, Extraordinaria).

⚙️ What Changes

New fields in profile: tenure, tax_regime

  • GET /profile/{identifier} now includes a top-level tenure field — the minimum seniority we can verify with the current employer, with values 3_months_plus | 6_months_plus | 9_months_plus | 12_months_plus | null.
    • Every value is a floor, never an exact figure: 12_months_plus means we can prove at least 12 months — actual tenure may be longer. Don't present it as a hire date or exact seniority.
    • Only produced for profiles with employment_status=employed. It is null for every other status, and when we cannot verify at least 3 months — so null doesn't distinguish "recently hired" from "not enough data".
    • It is computed over the whole dataset, so it returns null when the institution filter is used.
    • Typical use case: automating minimum-seniority policies (e.g. "at least 3 months with the current employer") without manual document review.
  • personal_info now includes tax_regime — the person's SAT tax regime (Régimen Fiscal, e.g. Sueldos y Salarios e Ingresos Asimilados a Salarios). Returns null when unavailable.
  • See the updated profile reference for full details, including how tenure is derived.

New payroll fields on invoices

  • Payroll invoices (invoice_type=nomina) returned by GET /invoices/{identifier} — for both individuals and businesses — now include:
    • payroll_typeOrdinaria for recurring payroll, Extraordinaria for one-off payments (e.g. aguinaldo, PTU, settlements).
    • payment_periodicity — the payment periodicity from the SAT catalog (e.g. Semanal, Quincenal, Mensual).
    • job_department / job_role — the employee's department and position, as reported by the employer (free text).
    • job_risk — the SAT occupational risk class (Clase IClase V, or No aplica).
  • All the new fields return null when the underlying invoice doesn't include them.
  • See the updated invoices reference.

Invoice detail in the Console

  • In a verification's Facturas tab, each invoice can now be expanded to see its full breakdown:
    • Payroll invoices show the list of earnings (percepciones) and deductions (deducciones) with their amounts and totals — e.g. Sueldo, ISR, Préstamo Infonavit.
    • Income invoices show their line items, so you can see exactly what was billed.
  • Payroll invoices that contain one-off payments are now flagged with a badge directly in the list — PTU, Aguinaldo, Finiquito, or Extraordinaria — so you can tell recurring salary from exceptional payments at a glance, without opening the breakdown.