Editar
Edita un calendario de nómina.
Descripcion general
Este endpoint permite actualizar parcialmente un calendario de nómina. Todos los campos del cuerpo son opcionales: si omites una clave, ese campo queda intacto. Solo name, pay_day_offset e is_active son mutables; frequency, la fecha ancla (anchor_date), timezone y la razón social son inmutables, porque cambiarlos invalidaría los periodos ya generados. El identificador en la URL es el payroll_calendar_number del calendario dentro de tu organización. Una solicitud exitosa devuelve 200 con la forma completa del calendario actualizado.
Endpoint
https://app.integranom.com/api/v1/payroll-calendars/{payroll_calendar_number}Path param: payroll_calendar_number — entero positivo, el número de calendario dentro de la organización.
Actualizacion minima
Envía solo los campos que quieras cambiar. El resto del calendario queda intacto.
{ "name": "Quincenal 2026 (revisado)" }Ajustar la fecha de pago y desactivar
pay_day_offset reajusta cuántos días después del fin del periodo cae la fecha de pago (un valor negativo la adelanta antes del cierre). is_active: false desactiva el calendario, pero solo si no hay empleados activos o pendientes asignados a él: en ese caso la solicitud falla con 409 e incluye affected_count. Reasigna esos empleados a otro calendario antes de desactivarlo.
{
"pay_day_offset": 5,
"is_active": false
}Campos del cuerpo
| Campo | Tipo | Notas |
|---|---|---|
name | string | 3–60 caracteres. Único por razón social. |
pay_day_offset | integer | Entre -15 y 15. Días desde el fin del periodo hasta la fecha de pago; un valor negativo paga antes del cierre. No puede ser menor que el mínimo de la periodicidad del calendario (0 en daily, -6 en weekly, -7 en decennial, -13 en biweekly, -12 en semimonthly y -15 en monthly); si lo es, se rechaza con 400. |
is_active | boolean | Al ponerlo en false se rechaza (409) si hay empleados activos o pendientes asignados. |
isr_tariff_frequency | string | Tabla del SAT con la que se retiene el ISR: el mismo valor que frequency del calendario, o monthly. Cualquier otro se rechaza con 400. No modifica los periodos ya cerrados. |
applies_seventh_day_discount | boolean | Si las faltas y ausencias sin goce descuentan además un sexto del día de descanso (séptimo día proporcional). Un valor que no sea booleano se rechaza con 400. No modifica los periodos ya cerrados; los abiertos o calculados lo toman al recalcularse. |
month_day_factor | number | Días del mes del calendario: 30 o 30.4 (el número, no texto). Cualquier otro valor se rechaza con 400 y el mensaje Los días del mes deben ser 30 o 30.4. No modifica los periodos ya cerrados; los abiertos o calculados lo toman al recalcularse. |
Campos inmutables: frequency, anchor_date, timezone y la razón social no se pueden editar — cambiarlos invalidaría los periodos ya generados. Para una configuración distinta, crea un calendario nuevo.
Forma de la respuesta
200 OK — misma forma que una fila de listar:
{
"payroll_calendar_number": 3,
"legal_entity_number": 1,
"name": "Quincenal 2026",
"frequency": "semimonthly",
"isr_tariff_frequency": "semimonthly",
"applies_seventh_day_discount": true,
"month_day_factor": 30,
"anchor_date": "2026-01-01T00:00:00.000Z",
"pay_day_offset": 3,
"timezone": "America/Mexico_City",
"is_active": true,
"periods_count": 24,
"created_at": "...",
"updated_at": "..."
}Errores
| Status | Causa |
|---|---|
400 | payroll_calendar_number inválido en la URL, o falla de validación del cuerpo. |
404 | El calendario con ese payroll_calendar_number no existe (o fue eliminado) en esta organización. |
409 | is_active: false pero hay empleados activos o pendientes asignados — la respuesta incluye affected_count. También cuando el name ya existe para la razón social del calendario. |
Ejemplo de cuerpo 409 al intentar desactivar:
{
"message": "Cannot deactivate a payroll calendar while active or pending employees are assigned to it. Reassign them first.",
"affected_count": 12
}
