POST /api/nomina/empleado/
POST /api/nomina/empleado/
CRUD de trabajadores. Se crean una vez y cada nómina los referencia.
operationId: nomina_empleado_create
Autenticación
Sección titulada «Autenticación»Cualquiera de estas credenciales:
- LlaveApi — Llave de API de una integración. El valor completo es
Api-Key <prefijo>.<secreto>, tal como lo imprimemanage.py crear_llave_api. La llave alcanza exactamente los mismos emisores que la persona a cuyo nombre se creó.
Cuerpo de la petición
Sección titulada «Cuerpo de la petición»Tipo de contenido: application/json · obligatorio.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
emisor | integer | sí | |
tipo_identificacion | integer | sí | |
numero_documento | string | sí | Sin puntos, sin guiones y sin dígito de verificación. |
primer_apellido | string | sí | |
segundo_apellido | string | no | |
primer_nombre | string | sí | |
otros_nombres | string | no | |
codigo_trabajador | string | no | Código interno del empleador; viaja en el XML. |
tipo_trabajador | integer | sí | |
subtipo_trabajador | integer | sí | |
tipo_contrato | integer | sí | |
alto_riesgo_pension | boolean | no | |
salario_integral | boolean | no | |
sueldo | string (decimal) | sí | |
fecha_ingreso | string (date) | sí | |
pais | integer | sí | |
departamento | integer | sí | |
municipio | integer | sí | |
direccion | string | sí | |
forma_pago | integer | sí | |
medio_pago | integer | sí | |
banco | string | no | |
tipo_cuenta | any | no | |
numero_cuenta | string | no |
Ejemplo
Sección titulada «Ejemplo»curl -X POST "https://api.rededoc.uk/api/nomina/empleado/" \ -H "Authorization: <llaveapi>" \ -H "Content-Type: application/json" \ -d '{ "emisor": 1, "tipo_identificacion": 1, "numero_documento": "texto", "primer_apellido": "texto", "segundo_apellido": "texto", "primer_nombre": "texto", "otros_nombres": "texto", "codigo_trabajador": "texto", "tipo_trabajador": 1, "subtipo_trabajador": 1, "tipo_contrato": 1, "alto_riesgo_pension": true, "salario_integral": true, "sueldo": "0.00", "fecha_ingreso": "2026-01-31", "pais": 1, "departamento": 1, "municipio": 1, "direccion": "texto", "forma_pago": 1, "medio_pago": 1, "banco": "texto", "tipo_cuenta": null, "numero_cuenta": "texto" }'Respuestas
Sección titulada «Respuestas»| Código | Descripción |
|---|---|
201 | |
400 | Error |
401 | Error |
429 | Error |
201 — cuerpo
Sección titulada «201 — cuerpo»| Campo | Tipo | Descripción |
|---|---|---|
id | integer | Solo lectura. |
emisor | integer | |
tipo_identificacion | integer | |
tipo_identificacion_codigo | string | Solo lectura. |
numero_documento | string | Sin puntos, sin guiones y sin dígito de verificación. |
primer_apellido | string | |
segundo_apellido | string | |
primer_nombre | string | |
otros_nombres | string | |
nombre_completo | string | Solo lectura. |
codigo_trabajador | string | Código interno del empleador; viaja en el XML. |
tipo_trabajador | integer | |
subtipo_trabajador | integer | |
tipo_contrato | integer | |
alto_riesgo_pension | boolean | |
salario_integral | boolean | |
sueldo | string (decimal) | |
fecha_ingreso | string (date) | |
pais | integer | |
departamento | integer | |
municipio | integer | |
direccion | string | |
forma_pago | integer | |
medio_pago | integer | |
banco | string | |
tipo_cuenta | any | |
numero_cuenta | string | |
activo | boolean | Solo lectura. |
creado_en | string (date-time) | Solo lectura. |
actualizado_en | string (date-time) | Solo lectura. |
{ "id": 1, "emisor": 1, "tipo_identificacion": 1, "tipo_identificacion_codigo": "texto", "numero_documento": "texto", "primer_apellido": "texto", "segundo_apellido": "texto", "primer_nombre": "texto", "otros_nombres": "texto", "nombre_completo": "texto", "codigo_trabajador": "texto", "tipo_trabajador": 1, "subtipo_trabajador": 1, "tipo_contrato": 1, "alto_riesgo_pension": true, "salario_integral": true, "sueldo": "0.00", "fecha_ingreso": "2026-01-31", "pais": 1, "departamento": 1, "municipio": 1, "direccion": "texto", "forma_pago": 1, "medio_pago": 1, "banco": "texto", "tipo_cuenta": null, "numero_cuenta": "texto", "activo": true, "creado_en": "2026-01-31T10:00:00-05:00", "actualizado_en": "2026-01-31T10:00:00-05:00"}400 — cuerpo
Sección titulada «400 — cuerpo»| Campo | Tipo | Descripción |
|---|---|---|
detail | string | Mensaje para mostrar a la persona. |
errores | array<object> | Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio. |
{ "detail": "texto", "errores": [ { "codigo": "texto", "mensaje": "texto" } ]}401 — cuerpo
Sección titulada «401 — cuerpo»| Campo | Tipo | Descripción |
|---|---|---|
detail | string | Mensaje para mostrar a la persona. |
errores | array<object> | Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio. |
{ "detail": "texto", "errores": [ { "codigo": "texto", "mensaje": "texto" } ]}429 — cuerpo
Sección titulada «429 — cuerpo»| Campo | Tipo | Descripción |
|---|---|---|
detail | string | Mensaje para mostrar a la persona. |
errores | array<object> | Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio. |
{ "detail": "texto", "errores": [ { "codigo": "texto", "mensaje": "texto" } ]}RedEDoc es un servicio de Semántica Digital S.A.S.