NominexDocs
Referencia de la APIDepartamentos

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

PATCHhttps://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

CampoTipoNotas
namestringNo vacío tras recortar.
codestring | nullnull o "" limpian el código.
descriptionstring | nullnull o "" limpian la descripción.
parent_department_numberinteger positivo | nullnull convierte el departamento en raíz. El nuevo padre debe existir y no puede ser el propio departamento ni un descendiente.
cost_center_codestring | nullVincula a un CC existente. null desvincula. Mutuamente excluyente con cost_center.
cost_centerobjectCrea un CC nuevo y vincula. Misma forma que en crear. Mutuamente excluyente con cost_center_code.
is_activebooleanFlag 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_orderinteger ≥ 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_code o cost_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 y cost_center_id se 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 path y depth del departamento, y se recalculan path/depth para 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

StatusCausa
400department_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.
404El departamento con ese department_number no existe (o fue eliminado) en esta organización.
409Carrera por code duplicado durante la escritura.
Abrir Nominex