Illustrative examples · contract_version=v1
POST/api/v1/partner/calculate/mx/payrollPayroll
Computes ISR, IMSS, Infonavit, net pay and employer cost from a monthly gross salary.
AuthBearer al_plt_… · module partner_calculations · scope platform:read
- Optional sundays_worked: Art. 71 sunday premium (25% of daily × N) with Art. 93 exemption of 1 UMA × N. Does not enter SBC/IMSS; added to net.
- When an ISN catalog rate exists: isn_note = ISN_ESTIMATED. Missing rate: ISN_STATE_NOT_CONFIGURED.
Request body (illustrative)
{
"gross_salary": 45000,
"period": "monthly",
"year": 2026,
"worker_type": "employee",
"state": "JAL",
"include_employer_cost": true,
"sundays_worked": 2
}
Response (illustrative)
{
"year": 2026,
"period": "monthly",
"gross_salary_input": 45000,
"gross_monthly": 45000,
"isr_monthly": 7124.12,
"imss_monthly": 1128.45,
"net_salary_monthly": 37210.33,
"sunday_premium_monthly": 750.00,
"sunday_premium_exempt": 226.04,
"sunday_premium_taxable": 523.96,
"isn_rate_percent": 2.0,
"isn_note": "ISN_ESTIMATED",
"employer_cost": { "…": "employer breakdown" }
}
POST/api/v1/partner/calculate/mx/payroll-gross-upGross-up (net → gross)
Finds the monthly gross that yields a target net (± $0.01), with the same breakdown as payroll.
AuthBearer al_plt_… · module partner_calculations · scope platform:read
- Input: target_net_monthly plus the same optionals as payroll (no gross_salary).
- Search splits at the employment-subsidy income cliff.
Request body (illustrative)
{
"target_net_monthly": 35000,
"period": "monthly",
"year": 2026,
"worker_type": "employee",
"state": "JAL"
}
Response (illustrative)
{
"year": 2026,
"period": "monthly",
"target_net_monthly": 35000,
"gross_monthly": 42180.55,
"gross_salary_input": 42180.55,
"net_salary_monthly": 35000.00,
"isr_monthly": 6280.12,
"imss_monthly": 900.43,
"isn_note": "ISN_ESTIMATED"
}
POST/api/v1/partner/calculate/mx/severanceSeverance / settlement
Simulates national finiquito and, when applicable, liquidation from dates and monthly gross.
AuthBearer al_plt_… · module partner_calculations · scope platform:read
Request body (illustrative)
{
"hire_date": "2021-03-15",
"termination_date": "2026-06-30",
"monthly_gross": 45000,
"termination_type": "dismissal"
}
Response (illustrative)
{
"currency": "MXN",
"include_liquidation": true,
"isr_is_estimated": true,
"tenure": {
"years_worked": 5,
"months_worked": 3,
"hire_date": "2021-03-15",
"termination_date": "2026-06-30",
"monthly_gross": 45000
},
"finiquito": { "total": 18240.5 },
"liquidation": { "total": 135000.0 },
"totals": {
"total_severance_amount": 153240.5,
"total_taxes": 18420.0,
"net_amount_to_pay": 134820.5
}
}
POST/api/v1/partner/calculate/mx/employer-costMonthly employer cost
Returns only the employer-cost slice of the payroll path (employer IMSS, Infonavit, estimated ISN).
AuthBearer al_plt_… · module partner_calculations · scope platform:read
Request body (illustrative)
{
"gross_salary": 45000,
"year": 2026,
"worker_type": "employee",
"state": "JAL"
}
Response (illustrative)
{
"year": 2026,
"period": "monthly",
"gross_monthly": 45000,
"employer_cost": { "…": "employer breakdown" },
"isn_rate_percent": 2.0,
"isn_note": "ISN_ESTIMATED"
}
POST/api/v1/partner/calculate/mx/annual-employer-costAnnual employer cost
Annualizes employment cost at year-1 LFT minimum (12 vacation days). Breaks out aguinaldo and vacation premium.
AuthBearer al_plt_… · module partner_calculations · scope platform:read
- vacation_days_assumed = 12. Does not use the progressive tenure table.
Request body (illustrative)
{
"monthly_gross": 45000,
"year": 2026,
"worker_type": "employee",
"state": "JAL"
}
Response (illustrative)
{
"year": 2026,
"monthly_gross": 45000,
"annual_salary": 540000,
"annual_aguinaldo": 18493.15,
"annual_vacation_premium": 3698.63,
"annual_employer_imss": 98400.00,
"annual_employer_infonavit": 27000.00,
"annual_isn": 10800.00,
"annual_total_employer_cost": 698391.78,
"vacation_days_assumed": 12,
"benefits_basis_note": "Year-1 LFT minimum (12 days). Not tenure table.",
"isn_note": "ISN_ESTIMATED"
}
GET/api/v1/partner/catalog/mx/fiscal-parameters?year=2026Fiscal parameters
UMA, minimum wages, days-per-month, integration factor and employment-subsidy cap/amount.
AuthBearer al_plt_… · module partner_calculations · scope platform:read
Response (illustrative)
{
"year": 2026,
"uma_daily": 113.14,
"min_wage_general": 278.80,
"min_wage_frontera": 419.19,
"days_per_month_salary": 30.4,
"employment_subsidy_income_cap": 11492.66,
"employment_subsidy_pct_uma": 11.82,
"employment_subsidy_monthly": 417.48
}
GET/api/v1/partner/catalog/mx/isr-brackets?year=2026&period=monthlyISR brackets
National ISR brackets for the requested period.
AuthBearer al_plt_… · module partner_calculations · scope platform:read
Response (illustrative)
{
"year": 2026,
"period": "monthly",
"bracket_type": "isr",
"brackets": [
{
"lower_limit": 0.01,
"upper_limit": 746.04,
"fixed_fee": 0,
"marginal_rate": 0.0192
}
]
}
GET/api/v1/partner/catalog/mx/imss-employer-rates?year=2026IMSS employer rates
Employer IMSS and Infonavit rates for the requested year.
AuthBearer al_plt_… · module partner_calculations · scope platform:read
Response (illustrative)
{
"year": 2026,
"fixed_em_rate_percent": 20.4,
"em_excess_rate_percent": 1.1,
"infonavit_employer_rate_percent": 5.0,
"work_risk_rate_percent": 0.54355
}
GET/api/v1/partner/catalog/mx/municipalities?state=JALMunicipalities
Municipality catalog by state (INEGI code / name).
AuthBearer al_plt_… · module partner_calculations · scope platform:read
Response (illustrative)
{
"state": "JAL",
"municipalities": [
{ "code": "14039", "name": "Guadalajara" },
{ "code": "14120", "name": "Zapopan" }
]
}
GET/api/v1/partner/healthHealth
Partner contract liveness.
AuthBearer al_plt_… · module partner_calculations · scope platform:read
Response (illustrative)
{
"status": "ok"
}
GET/api/v1/partner/versionContract version
Identifies the published contract version (currently v1).
AuthBearer al_plt_… · module partner_calculations · scope platform:read
Response (illustrative)
{
"contract_version": "v1"
}