Editar
Actualiza parcialmente un puesto existente.
Descripcion general
Este endpoint permite actualizar parcialmente un puesto. Todos los campos del cuerpo son opcionales: si omites una clave, ese campo no se toca; si la envías como null, ese campo se limpia (cuando aplica). El identificador en la URL es el job_position_number del puesto dentro de tu organización. Una solicitud exitosa devuelve 200 con la forma completa del puesto actualizado.
Los puestos eliminados se tratan como no encontrados (404).
Validación de las bandas salariales contra los valores efectivos: la restricción salary_band_min ≤ salary_band_max se valida contra los valores efectivos tras aplicar el patch. Si tocas solo salary_band_min, se usa el salary_band_max actual de la base de datos para verificar la coherencia; lo mismo en sentido contrario. Si la comparación falla, la respuesta es 400 con el campo salary_band_max.
Endpoint
https://app.integranom.com/api/v1/job-positions/{job_position_number}Path param: job_position_number — entero positivo, el número de puesto dentro de la organización.
Actualizacion minima
Envía solo los campos que quieras cambiar. El resto del puesto queda intacto.
{ "name": "Gerente Comercial" }Limpiar campos
null (y "" para strings) limpia el campo. Por ejemplo, para quitar el code del puesto:
{ "code": null }Lo mismo aplica a description, salary_band_min y salary_band_max: envíalos como null para limpiarlos.
Marcar como inactivo
is_active lo controla el usuario y es independiente del borrado: un puesto puede estar inactivo y seguir apareciendo en GET /api/v1/job-positions. Al desactivarlo (is_active: false) se desvincula el puesto de cada empleo que lo referenciaba (su job_position_code queda en null). Para retirarlo del listado, usa DELETE.
{ "is_active": false }Campos del cuerpo
| Campo | Tipo | Notas |
|---|---|---|
name | string | No vacío tras recortar. |
code | string | null | null o "" limpian el código. Se almacena en mayúsculas; debe ser único por organización. |
description | string | null | null o "" limpian la descripción. |
salary_band_min | number ≥ 0 | null | null limpia la banda inferior. Se devuelve como string decimal. |
salary_band_max | number ≥ 0 | null | null limpia la banda superior. La coherencia min ≤ max se valida contra los valores efectivos tras aplicar el patch. |
is_active | boolean | Flag activo controlado por el usuario. Independiente del borrado. Al ponerlo en false, se desvincula el puesto de cada empleo (job_position_code → null). |
sort_order | integer ≥ 0 |
Si envías risk_class, con cualquier valor, la respuesta es 400 con ese campo: la clase de riesgo IMSS se captura en el registro patronal.
Forma de la respuesta
200 OK — misma forma que la respuesta de crear en modo single.
Errores
| Status | Causa |
|---|---|
400 | job_position_number inválido en la URL; falla de validación del cuerpo (incluido risk_class); incoherencia en las bandas salariales (min > max efectivo). |
404 | El puesto con ese job_position_number no existe (o fue eliminado) en esta organización. |
409 | Carrera por code duplicado durante la escritura; o is_active: false en un puesto con plazas sin cancelar; o una banda salarial que deja fuera el salario diario autorizado por 30 de alguna plaza sin cancelar. |

