Detalle
Consulta el valor efectivo de un catálogo.
Descripcion general
Este endpoint devuelve el detalle de un catálogo de plataforma, incluido su valor efectivo (el que aplica hoy) y el valor base de la plataforma (para comparar). El identificador en la URL es el catalog_key del catálogo. El valor efectivo se resuelve con la precedencia razón social → organización → adopción anticipada de la razón social → plataforma: si tu organización tiene un override activo, se refleja aquí; de lo contrario, se utiliza el valor de la plataforma.
Endpoint
https://app.integranom.com/api/v1/platform-catalogs/{catalog_key}Path param: catalog_key — string, la clave del catálogo (por ejemplo uma, isr_tariff, imss_worker_ramos).
Consulta un catálogo
Devuelve el detalle del catálogo indicado en catalog_key. El campo source puede ser "rs" (override por razón social), "org" (override de la organización) o "platform" (valor base de la plataforma).
El effective_payload es el valor que aplica hoy con la precedencia RS → organización → plataforma, mientras que platform_payload es el valor de la plataforma que aplica hoy, útil para comparar. La forma de ambos depende del shape del catálogo (scalar, range_table o keyed_table).
Lectura con frequency y alcance por razón social
Para un catálogo frequency-scoped, indica la frequency que quieras consultar. Con legal_entity_number acotas la lectura a una razón social específica: si esa razón social tiene un override, el source regresa como "rs" y effective_payload refleja su valor. Si esa razón social adelantó una versión publicada de la plataforma y ya llegó la fecha que eligió, effective_payload trae esa versión y el source sigue siendo "platform".
Query params
| Parametro | Tipo | Requerido | Default | Descripcion |
|---|---|---|---|---|
frequency | string | No | semimonthly | Solo aplica a catálogos frequency_scoped (como isr_tariff). Si se omite en uno frequency-scoped, se usa semimonthly. |
legal_entity_number | integer | No | - | Lectura con alcance por razón social. Debe existir en tu organización. |
Catálogo isn_by_state
En isn_by_state (keyed_table) la clave de cada entrada es el código de la entidad federativa. En effective_payload y platform_payload cada valor es siempre una cadena decimal con la tasa base del estado: la tasa plana, o la del primer rango cuando el estado cobra una tarifa progresiva. Los estados que tienen una definición publicada la traen además en dos campos aparte, isn_definitions (la que aplica hoy) y platform_isn_definitions (la de la plataforma).
Cada definición es un objeto con exactamente uno de rate (cadena decimal, tasa plana) o brackets (tarifa progresiva), más los campos opcionales taxSurchargeRate (fracción del impuesto que se suma como sobretasa), baseSurchargeRate (fracción de la nómina que se suma como sobretasa) y exemptMonthlyAmount (monto mensual de la nómina que no se grava). Todos son cadenas decimales.
Cada elemento de brackets trae lowerLimit, upperLimit (null en el último), fixedFee y marginalRate. Los rangos van en orden ascendente, contiguos y sin traslape, y solo el último puede quedar abierto. En la tarifa progresiva, los límites son del total mensual de la nómina del estado.
{
"effective_payload": { "SIN": "0.024", "CAM": "0.03", "QUE": "0.03", "JAL": "0.03" },
"isn_definitions": {
"SIN": {
"brackets": [
{ "lowerLimit": "0.01", "upperLimit": "500000.00", "fixedFee": "0.00", "marginalRate": "0.024" },
{ "lowerLimit": "500000.01", "upperLimit": "700000.00", "fixedFee": "12000.00", "marginalRate": "0.026" },
{ "lowerLimit": "700000.01", "upperLimit": "900000.00", "fixedFee": "17200.00", "marginalRate": "0.028" },
{ "lowerLimit": "900000.01", "upperLimit": null, "fixedFee": "22800.00", "marginalRate": "0.030" }
]
},
"CAM": { "rate": "0.03", "taxSurchargeRate": "0.33" },
"QUE": { "rate": "0.03", "exemptMonthlyAmount": "76617.76" }
}
}Campos de la respuesta
| Campo | Tipo | Notas |
|---|---|---|
key | string | Clave del catálogo. |
name | string | Nombre legible. |
description | string | Descripción del catálogo. |
shape | "scalar" | "range_table" | "keyed_table" | Forma del valor. Determina la estructura de effective_payload y platform_payload. |
unit | string | Unidad del valor (por ejemplo MXN). |
group_key / group_label | string | Grupo del catálogo (clave y etiqueta). |
frequency_scoped | boolean | true si el catálogo depende de una periodicidad. |
frequency | string | null | Periodicidad resuelta para esta lectura; null si el catálogo no es frequency-scoped. |
is_federal | boolean | true si es tabla federal. |
regulatory | "legal" | "platform_default" | Naturaleza regulatoria del catálogo. |
legal_entity_number | integer | null | Razón social del alcance de la lectura; null si es a nivel organización o plataforma. |
source | "rs" | "org" | "platform" | Origen del valor efectivo, según la precedencia RS → organización → plataforma. |
is_stale | boolean | true cuando la plataforma publicó una versión más reciente que la última revisión de tu override — señal de que tu valor autoadministrado quedó rezagado respecto al de la plataforma. |
pending_approval | boolean | true cuando existe un override federal que aún espera la aprobación de un segundo administrador. Mientras tanto el resolver lo ignora, por lo que source se reporta como "platform" aunque este campo sea true. (Los overrides creados por la API nunca quedan pendientes.) |
effective_payload | object | Valor que aplica hoy. Su forma depende del shape del catálogo. |
platform_payload | object | Valor base de la plataforma, para comparar. Su forma depende del shape del catálogo. |
isn_definitions | object | Solo en isn_by_state: las definiciones con tarifa, sobretasa o monto exento que aplican hoy, por estado. |
platform_isn_definitions | object | Solo en isn_by_state: las definiciones de la plataforma, por estado. |
Errores
| Status | Causa |
|---|---|
400 | frequency inválida, o legal_entity_number inválido / que no existe en tu organización. |
401 | API key ausente o inválida. |
404 | El catálogo con ese catalog_key no existe. |

