Editar
Actualiza parcialmente un departamento existente.
Descripcion general
Este endpoint permite actualizar parcialmente un departamento. 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 department_number del departamento dentro de tu organización. Una solicitud exitosa devuelve 200 con la forma completa del departamento actualizado.
Endpoint
https://app.integranom.com/api/v1/departments/{department_number}Path param: department_number — entero positivo, el número de departamento dentro de la organización.
Actualizacion minima
Envía solo los campos que quieras cambiar. El resto del departamento queda intacto.
{ "name": "Ventas Internacionales" }Limpiar campos y desanidar
null (y "" para strings) limpia el campo. En particular, parent_department_number: null desancla el departamento y lo convierte en raíz (depth: 0).
{
"description": null,
"code": null,
"parent_department_number": null
}Vincular a un centro de costos
Al vincular un departamento a un centro de costos (sea con cost_center_code o inline con cost_center), los campos name, code, description, is_active y sort_order del departamento se sobrescriben con los del CC. Cualquier valor que envíes para esos campos en el mismo request se ignora.
Para desvincular sin cambiar los valores actuales del departamento, envía cost_center_code: null — el departamento conserva su name, code, etc. tal como están en ese momento.
{ "cost_center_code": "CC-VEN" }Campos del cuerpo
| Campo | Tipo | Notas |
|---|---|---|
name | string | No vacío tras recortar. |
code | string | null | null o "" limpian el código. |
description | string | null | null o "" limpian la descripción. |
parent_department_number | integer positivo | null | null convierte el departamento en raíz. El nuevo padre debe existir y no puede ser el propio departamento ni un descendiente. |
cost_center_code | string | null | Vincula a un CC existente. null desvincula. Mutuamente excluyente con cost_center. |
cost_center | object | Crea un CC nuevo y vincula. Misma forma que en crear. Mutuamente excluyente con cost_center_code. |
is_active | boolean | Flag activo controlado por el usuario. Independiente del borrado — un departamento puede estar inactivo y seguir apareciendo en GET. Al ponerlo en false, se desvincula el departamento de cada empleo (department_code → null). Mientras está vinculado a un CC, el valor enviado se ignora (el CC controla el flag). |
sort_order | integer ≥ 0 |
Espejo de campos con el centro de costos
Cuando el departamento queda (o ya estaba) vinculado a un centro de costos, el CC es dueño de estos campos: name, code, description, is_active, sort_order. Cualquier valor del caller para esos campos se ignora.
- Vinculando (envías
cost_center_codeocost_center): los campos espejo del departamento se sobrescriben con los valores del CC. - Desvinculando (envías
cost_center_code: null): el departamento retiene sus valores actuales ycost_center_idse limpia. - Ya vinculado, sin tocar el vínculo: los valores enviados para los campos espejo se ignoran silenciosamente.
Reparenting
Si parent_department_number cambia:
- Primero corre una verificación de ciclos: el nuevo padre no puede ser el propio departamento ni un descendiente suyo.
- Se actualizan
pathydepthdel departamento, y se recalculanpath/depthpara todos los descendientes del subárbol.
Forma de la respuesta
200 OK — misma forma que la respuesta de crear en modo single:
{
"id": "ck...",
"department_number": 5,
"parent_id": "ck...",
"depth": 1,
"name": "Ventas",
"code": "VEN",
"description": null,
"cost_center_id": null,
"is_active": true,
"sort_order": 0,
"created_at": "...",
"updated_at": "..."
}Errores
| Status | Causa |
|---|---|
400 | department_number inválido en la URL; falla de validación del cuerpo; parent_department_number no encontrado; intento de poner el padre en sí mismo o en un descendiente (CYCLE_DETECTED); cost_center_code o cost_center.parent_cost_center_code no encontrado; cost_center_code y cost_center enviados a la vez. |
404 | El departamento con ese department_number no existe (o fue eliminado) en esta organización. |
409 | Carrera por code duplicado durante la escritura. |

