Areas
Las áreas permiten organizar a los empleados en grupos de trabajo. Cada área puede tener múltiples categorías para clasificar a los empleados por rol o función.
Obtener todas las áreas
Obtiene la lista de todas las áreas de la organización con sus categorías y conteos de empleados.
Método: GET /areas
Respuesta exitosa (200)
[
{
"id": 42,
"createdAt": "2026-04-14T19:07:48.946Z",
"updatedAt": "2026-04-14T19:07:48.946Z",
"deletedAt": null,
"name": "ADMINISTRACION",
"colorCode": "#D4E3C7",
"categories": [
{
"id": 78,
"createdAt": "0001-01-01T00:00:00Z",
"updatedAt": "0001-01-01T00:00:00Z",
"deletedAt": null,
"name": "SECRETARIA",
"areaID": 42,
"employeeCount": 2
},
{
"id": 82,
"createdAt": "0001-01-01T00:00:00Z",
"updatedAt": "0001-01-01T00:00:00Z",
"deletedAt": null,
"name": "FACTURACION",
"areaID": 42,
"employeeCount": 0
}
],
"employeeCount": 2
},
{
"id": 43,
"createdAt": "2026-04-14T19:07:48.949Z",
"updatedAt": "2026-04-14T19:07:48.949Z",
"deletedAt": null,
"name": "INTERNACION",
"colorCode": "#AED4BD",
"categories": [
{
"id": 79,
"createdAt": "0001-01-01T00:00:00Z",
"updatedAt": "0001-01-01T00:00:00Z",
"deletedAt": null,
"name": "INSTRUMENTACION",
"areaID": 43,
"employeeCount": 3
},
{
"id": 81,
"createdAt": "0001-01-01T00:00:00Z",
"updatedAt": "0001-01-01T00:00:00Z",
"deletedAt": null,
"name": "ENFERMERIA",
"areaID": 43,
"employeeCount": 2
}
],
"employeeCount": 5
}
]Códigos de respuesta
| Código | Descripción |
|---|---|
| 200 | Exitoso |
| 500 | Error interno del servidor |
Obtener un área específica
Obtiene los datos de un área por su ID. Esta respuesta no incluye las categorías ni el conteo de empleados; para eso usá GET /areas.
Método: GET /areas/:id
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
id | string | ID del área |
Respuesta exitosa (200)
{
"id": 42,
"createdAt": "2026-04-14T19:07:48.946Z",
"updatedAt": "2026-04-14T19:07:48.946Z",
"deletedAt": null,
"name": "ADMINISTRACION",
"colorCode": "#D4E3C7"
}Códigos de respuesta
| Código | Descripción |
|---|---|
| 200 | Exitoso |
| 404 | Área no encontrada |
| 500 | Error interno del servidor |
Crear una nueva área
Crea una nueva área con sus categorías asociadas. name es obligatorio (hasta 80 caracteres), colorCode debe ser un color hexadecimal y categories debe tener al menos una categoría, sin nombres repetidos.
Método: POST /areas
Body requerido
{
"name": "Área de Producción",
"colorCode": "#FFFFFF",
"categories": ["Técnicos", "Supervisores"]
}Respuesta exitosa (200)
{
"id": 44,
"createdAt": "2026-09-15T10:00:00.000-03:00",
"updatedAt": "2026-09-15T10:00:00.000-03:00",
"deletedAt": null,
"name": "Área de Producción",
"colorCode": "#FFFFFF",
"categories": [
{
"id": 90,
"createdAt": "2026-09-15T10:00:00.000-03:00",
"updatedAt": "2026-09-15T10:00:00.000-03:00",
"deletedAt": null,
"name": "Técnicos",
"areaID": 44
},
{
"id": 91,
"createdAt": "2026-09-15T10:00:00.000-03:00",
"updatedAt": "2026-09-15T10:00:00.000-03:00",
"deletedAt": null,
"name": "Supervisores",
"areaID": 44
}
]
}Códigos de respuesta
| Código | Descripción |
|---|---|
| 200 | Área creada exitosamente |
| 400 | Solicitud inválida o color inválido |
| 409 | Ya existe un área con ese nombre o hay categorías repetidas |
| 500 | Error interno del servidor |
Actualizar un área
Actualiza los datos de un área existente. name y colorCode son obligatorios. En categories se indica qué hacer con cada categoría según el campo action:
add: crea una categoría nueva; requierename.update: renombra una categoría del área; requierecategoryIDyname.delete: elimina una categoría del área; requierecategoryID. Si la categoría tiene empleados, hay que indicar enemployeeTransfersa qué categoría pasa cada uno.
El área no puede quedar sin categorías.
Método: PUT /areas/:id
Body
{
"categories": [
{
"action": "add",
"name": "cat 1"
},
{
"action": "update",
"categoryID": 1,
"name": "cat 1"
},
{
"action": "delete",
"categoryID": 2,
"employeeTransfers": [{ "CategoryID": 10, "employeeID": 1 }]
}
],
"colorCode": "#FFFFFF",
"name": "string"
}Respuesta exitosa (200)
Retorna el área actualizada con sus categorías, con el mismo formato que la respuesta de creación.
Códigos de respuesta
| Código | Descripción |
|---|---|
| 200 | Actualizado exitosamente |
| 400 | Solicitud inválida, color inválido o el área quedaría sin categorías |
| 404 | Área, categoría o transferencia de empleado no encontrada |
| 409 | Ya existe un área con ese nombre o una categoría repetida |
| 500 | Error interno del servidor |
Eliminar un área
Elimina un área de la organización. Si el área tiene empleados, hay que indicar en employeeTransfers a qué categoría pasa cada uno. No se puede eliminar un área que tenga usuarios de la organización asignados.
Método: DELETE /areas/:id
Body
{
"employeeTransfers": [
{
"CategoryID": 90,
"employeeID": 161
}
]
}Respuesta exitosa (200)
{
"message": "deleted successfuly",
"deleted": true
}Códigos de respuesta
| Código | Descripción |
|---|---|
| 200 | Eliminado exitosamente |
| 400 | Solicitud inválida |
| 404 | Área o categoría no encontrada, o falta transferir un empleado |
| 409 | El área tiene usuarios de la organización asignados |
| 500 | Error interno del servidor |

