Reactivar
Reactiva a un empleado que está dado de baja.
Descripcion general
Este endpoint reactiva a un empleado que está dado de baja, registrando una nueva relación laboral. Se usa para recontratar empleados que fueron dados de baja previamente. La nueva relación laboral puede atarse a una razón social distinta a la anterior, y opcionalmente puede arrastrar la antigüedad acumulada.
Si el empleado no tiene historial laboral previo, este endpoint no es el camino — usa POST /api/v1/employees para registrarlo por primera vez.
Cálculo de antigüedad. Si keep_seniority es true, la seniority_date toma la fecha más antigua de antigüedad encontrada en el historial del empleado. Si es false, la antigüedad se reinicia y seniority_date queda igual a rehire_date. Un asimilado o un trabajador por honorarios no lleva antigüedad: su seniority_date queda en null sin importar keep_seniority.
Endpoint
https://app.integranom.com/api/v1/employees/{employee_number}/reactivatePath param: employee_number — entero positivo, el número de empleado dentro de la organización.
Recontratar con antiguedad
keep_seniority: true arrastra la fecha de antigüedad más antigua del historial. En este ejemplo, el empleado fue contratado originalmente el 2026-01-15 y se recontrata el 2026-08-01 conservando esa antigüedad.
{
"legal_entity_number": 1,
"rehire_date": "2026-08-01",
"keep_seniority": true,
"is_included_in_payroll_calculations": true,
"contributes_to_imss": true,
"imss_number": "12345678903",
"already_registered_with_imss": false
}Recontratar reiniciando antiguedad y cambiando razon social
keep_seniority: false reinicia la antigüedad — la nueva seniority_date queda igual a rehire_date. La razón social puede ser diferente a la que tenía antes de la baja.
{
"legal_entity_number": 2,
"rehire_date": "2026-08-01",
"keep_seniority": false,
"is_included_in_payroll_calculations": true,
"contributes_to_imss": false
}Campos del cuerpo
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
legal_entity_number | integer positivo | Sí | Razón social del empleado reactivado. Puede diferir de la que tenía antes de la baja. |
rehire_date | string YYYY-MM-DD | Sí | Nueva hire_date del empleado. |
keep_seniority | boolean | Sí | Si es true, seniority_date toma la fecha más antigua del historial. Si es false, se reinicia a rehire_date. |
is_included_in_payroll_calculations | boolean | Sí | |
contributes_to_imss | boolean | Sí | Debe ser false cuando worker_type no es subordinate. |
worker_type | subordinate | asimilado | honorarios | No | Si lo omites, el reingreso conserva el tipo del empleo anterior, y toma subordinate solo cuando no hay uno previo. |
minimum_wage_zone | general | northern_border | No | Si lo omites, el reingreso conserva la zona del empleo anterior, y toma general solo cuando no hay uno previo. |
salary_type | fixed | mixed | variable | No | Si lo omites, el reingreso conserva el tipo de salario del empleo anterior, y queda vacío cuando no hay uno. |
imss_worker_type | permanent | eventual_city | eventual_construction | eventual_rural | null | No | Si lo omites, el reingreso conserva el tipo de trabajador IMSS del empleo anterior, y es obligatorio si el reingreso aporta al IMSS y el empleo anterior no lo tiene (IMSS_AFFILIATION_REQUIRED). Si el reingreso no aporta al IMSS, siempre queda vacío. |
imss_work_schedule | full | one_day_week | two_day_week | three_day_week | four_day_week | five_day_week | reduced_day | null | No | Si lo omites, el reingreso conserva la semana o jornada reducida del empleo anterior, y es obligatoria si el reingreso aporta al IMSS y el empleo anterior no la tiene (IMSS_AFFILIATION_REQUIRED). Si el reingreso no aporta al IMSS, siempre queda vacía. |
work_shift_type | string | No | Clave SAT del tipo de jornada (c_TipoJornada). Si lo omites, el reingreso conserva la del empleo anterior. |
is_unionized | boolean | No | Si lo omites, el reingreso conserva el valor del empleo anterior, y toma false solo cuando no hay uno previo. |
imss_number | string | No | NSS de 11 dígitos. Se valida el dígito verificador. Solo para subordinate: con otro worker_type efectivo responde 400. |
already_registered_with_imss | boolean | No | Por defecto false. Con true, el alta del reingreso en Movimientos IMSS se registra como ya presentada ante el IMSS fuera de la plataforma: no queda pendiente ni se calcula su SBC. Con false, queda pendiente de presentar. Solo tiene efecto cuando contributes_to_imss es true. |
confirm_retro | boolean | No | Autoriza que un reingreso con fecha dentro de un periodo cerrado se registre como ajuste retroactivo. Ver abajo. |
Comportamiento
- Carga el empleado y su historial laboral completo.
- Rechaza con
400ALREADY_HAS_OPEN_EMPLOYMENTsi el empleado está activo (no dado de baja) — primero hay que darlo de baja con/terminate. - Rechaza con
400NO_PRIOR_EMPLOYMENTsi el empleado nunca ha sido registrado — usa POST/api/v1/employeespara el primer alta. - Resuelve
legal_entity_numbercontra una razón social existente (LEGAL_ENTITY_NOT_FOUNDsi no resuelve). - Calcula
seniority_datesegún la regla descrita arriba. - Marca al empleado como activo nuevamente.
- Si
contributes_to_imssestrue, genera el alta del reingreso en Movimientos IMSS: pendiente de presentar, o ya presentada si envíasalready_registered_with_imss: true.
Forma de la respuesta
201 Created — los datos laborales del empleado reactivado:
{
"employee_number": 5,
"legal_entity_number": 1,
"status": "active",
"hire_date": "2026-08-01T00:00:00.000Z",
"seniority_date": "2026-01-15T00:00:00.000Z",
"termination_date": null,
"created_at": "2026-08-01T10:00:00.000Z"
}Reingreso con fecha dentro de un periodo cerrado
Un reingreso fechado dentro de un periodo ya cerrado afecta una nómina que ya se pagó. Igual que en la baja, no se aplica en silencio: la llamada se rechaza con 409 RETRO_CONFIRMATION_REQUIRED (con retro_periods, los periodos afectados).
Reenvíala con confirm_retro: true para aceptar. El ajuste retroactivo se genera cuando el nuevo empleo queda listo para nómina (con calendario, sueldo y contrato asignados).
Errores
| Status | Código | Causa |
|---|---|---|
400 | — | employee_number inválido en la URL o falla de validación del cuerpo. |
400 | NO_PRIOR_EMPLOYMENT | El empleado nunca ha sido registrado — usa POST /api/v1/employees. |
400 | ALREADY_HAS_OPEN_EMPLOYMENT | El empleado está activo — primero dalo de baja con /terminate. |
400 | WORKER_TYPE_FIELD_CONFLICT | Se envió imss_number para un reingreso cuyo worker_type efectivo no es subordinate. |
400 | IMSS_AFFILIATION_REQUIRED | El reingreso aporta al IMSS y imss_worker_type o imss_work_schedule queda vacío: no se envió y el empleo anterior no lo tiene, o se envió en null. |
400 | LEGAL_ENTITY_NOT_FOUND | legal_entity_number no coincide con ninguna razón social de la organización. |
404 | — | El empleado no existe o ya fue eliminado en esta organización. |
409 | RETRO_CONFIRMATION_REQUIRED | La fecha de reingreso cae en un periodo cerrado. Reenvía con confirm_retro: true. |

