The Employees API is the core people-management surface of La Oficina Nítida. Every employee record is scoped to the authenticated tenant; cross-tenant access is structurally impossible. The API supports full CRUD operations, free-text search across names and document numbers, filtering byDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Glemynart/SaaS/llms.txt
Use this file to discover all available pages before exploring further.
EmpleadoEstado, and a dedicated bulk-import flow that accepts a pre-formatted .xlsx spreadsheet and returns a row-level import report. Soft-delete is used throughout — deleted employees are never purged and remain accessible in contract history.
All endpoints require a valid JWT issued by the auth service.
ADMIN (full access), OPERADOR (read + write, no delete), and VIEWER (read-only).
List employees
Page number, minimum
1. Defaults to 1.Records per page, minimum
1. Defaults to 10.Free-text search applied across first name, last names, and document number.
Filter by employment status. One of
ACTIVO, INACTIVO, SUSPENDIDO, RETIRADO.Array of employee objects matching the query.
Total records across all pages.
Current page number.
Page size used for this response.
Total number of pages.
Create employee
Document number (cédula). Must be unique within the tenant.
Document type. One of
CC, CE, TI, PA, NIT, PEP, PPT.Employee’s first given name.
Employee’s first family name.
Employee’s second given name.
Employee’s second family name.
Work email address. Must be a valid RFC 5321 address. An empty string is coerced to
undefined.Phone number.
Job title or position (e.g.
"Analista de Datos").Base monthly salary. Must be ≥
0. Coerced to a number if sent as a string.Contract type. One of
TERMINO_FIJO, TERMINO_INDEFINIDO, OBRA_LABOR, APRENDIZAJE, PRESTACION_SERVICIOS.Start date in ISO 8601 format (e.g.
"2024-03-01").Initial employment status. One of
ACTIVO, INACTIVO, SUSPENDIDO, RETIRADO. Defaults to ACTIVO.DANE municipality code for the document’s issuing location.
Whether the salary is an integral salary (salario integral). Defaults to
false. Accepts true/"true".Work schedule type. One of
COMPLETA, MEDIA, POR_HORAS.Separation date in ISO 8601 format. Required when
estado is RETIRADO.Reason for separation. One of
RENUNCIA, TERMINACION_CONTRATO, MUTUO_ACUERDO, JUSTA_CAUSA, FALLECIMIENTO, OTRO.UUID of the branch office (sede) to assign this employee to. Pass
null to unassign.Newly created employee identifier.
Timestamp of record creation.
Owning tenant identifier.
Get employee
Employee identifier.
Employee identifier.
First given name.
First family name.
Document number.
Document type enum value.
Current job title.
Current base salary.
Employment status enum value.
Branch office object
{ id, nombre } if assigned, otherwise null.Update employee
POST /employees apply; all are optional.
Employee identifier.
Updated job title.
Updated base salary (≥
0).New employment status. One of
ACTIVO, INACTIVO, SUSPENDIDO, RETIRADO.Reassign or unassign from a branch office.
Delete employee
deletedAt. The employee record is never physically removed; all associated contract history, expediente documents, and payroll runs remain intact.
Employee identifier.
Identifier of the deleted employee.
Timestamp at which the soft delete was applied.
Get employee expediente
ExpedienteDoc records belonging to this employee together with a category-level statistics summary.
Employee identifier.
Full list of document records, ordered by
createdAt descending. Each record includes an inline generatedDocument object ({ id, nombre, tipo }) when the document originated from the document-generation pipeline.Total number of documents in this employee’s expediente.
Map of
ExpedienteCategoria → count (e.g. { "CONTRATO": 3, "CERTIFICADO": 1 }).ISO 8601 timestamp of the most recently added document, or
null if the expediente is empty.Download import template
.xlsx file (plantilla_empleados.xlsx) with the correct column headers and an example row. Download this file, fill in your employee data, and upload it to POST /employees/import.
Bulk import employees
.xlsx file (max 5 MB, up to 500 rows) and creates employee records for every valid row. Rows with validation errors are skipped and reported individually; the rest are committed.
The
.xlsx spreadsheet. Only application/vnd.openxmlformats-officedocument.spreadsheetml.sheet MIME type is accepted. Sending any other format returns 400 Bad Request.Number of employees successfully created.
Array of row-level error objects. Each entry contains the row index and a human-readable description of the validation failure.