Ir al contenido

GET /api/nomina/nomina/{id}/

GET /api/nomina/nomina/{id}/

Nómina electrónica y su nota de ajuste.

Comparte el ciclo de vida de los documentos electrónicos —borrador, firmado, enviado, aceptado o rechazado— pero no su pipeline: la nómina no es UBL y va por SendNominaSync.

Sin PUT ni PATCH, por lo mismo que en DocumentoViewSet: un documento fiscal es un hecho con fecha, número y firma, y editarlo en sitio abre la puerta a que lo que se emitió y lo que se guarda dejen de coincidir. Mientras es borrador, corregirlo es borrarlo y volver a crearlo; una vez emitido, lo que corrige una nómina es su nota de ajuste (tipo_xml 103), que la DIAN tiene prevista justamente para esto.

Lo que cambia el documento son las acciones, cada una con su regla. El estado no es un campo que se escriba.

operationId: nomina_nomina_retrieve

Cualquiera de estas credenciales:

  • LlaveApi — Llave de API de una integración. El valor completo es Api-Key <prefijo>.<secreto>, tal como lo imprime manage.py crear_llave_api. La llave alcanza exactamente los mismos emisores que la persona a cuyo nombre se creó.
NombreEnTipoObligatorioDescripción
idpathstring (uuid)Un Cadena UUID que identifique este nómina electrónica.
Ventana de terminal
curl "https://api.rededoc.uk/api/nomina/nomina/<id>/" \
-H "Authorization: <llaveapi>"
CódigoDescripción
200
401Error
404Error
429Error
CampoTipoDescripción
idstring (uuid)Solo lectura.
emisorinteger
empleadointeger
empleado_nombrestringSolo lectura.
estadointeger
estado_nombrestringSolo lectura.
tipo_xmlany
tipo_notaanyVacío en la nómina; obligatorio en la nota de ajuste. * 1 - Reemplazar * 2 - Eliminar
nomina_predecesorastring (uuid)Admite null.
prefijostringLo elige el emisor: la nómina no se numera con resolución de la DIAN (regla NIE010).
consecutivointeger (int64)
numerostringNúmero del documento. Si se omite, se arma como prefijo + consecutivo.
periodo_nominainteger
fecha_liquidacion_iniciostring (date)
fecha_liquidacion_finstring (date)
tiempo_laboradointegerDías laborados en el periodo (numeral 8.3.1).
fecha_generacionstring (date)
hora_generacionstring (time)
fecha_pagostring (date)
monedainteger
trmstring (decimal)Solo cuando la moneda no es COP. Admite null.
notasstring
novedadboolean
cune_novedadstring
total_devengadosstring (decimal)
total_deduccionesstring (decimal)
redondeostring (decimal)
total_comprobantestring (decimal)Devengados menos deducciones, más el redondeo.
cunestringCódigo Único de Nómina Electrónica (SHA-384). Se calcula al firmar.
envioanyCon qué operación se envió a la DIAN. Vacío mientras no se haya enviado. * test_set - Set de Pruebas (SendTestSetAsync) * nomina_sync - Síncrono (SendNominaSync)
track_idstringLo devuelve el envío al Set de Pruebas, que es asíncrono: es la llave con la que se consulta esa entrega (GetStatusZip). El envío síncrono no devuelve ninguno; ahí se consulta por el CUNE.
ambienteanySe hereda del ambiente_nomina del emisor al crear y se sella al firmar: la DIAN habilita la nómina aparte de la facturación, así que un emisor puede estar en producción para una y en habilitación para la otra. * 1 - Producción * 2 - Habilitación
fecha_validacionstring (date-time)Admite null.
erroresarray<object>Solo lectura.
conceptosarray<NominaConcepto>Solo lectura.
codigo_trabajadorstringVa en NumeroSecuenciaXML, que identifica el documento.
alto_riesgo_pensionboolean
salario_integralboolean
sueldostring (decimal)
tipo_trabajadorinteger
subtipo_trabajadorinteger
tipo_contratointeger
lugar_trabajo_paisinteger
lugar_trabajo_departamentointeger
lugar_trabajo_municipiointeger
lugar_trabajo_direccionstring
forma_pagointeger
medio_pagointeger
bancostring
tipo_cuentaany
numero_cuentastring
fecha_retirostring (date)Admite null.
creado_enstring (date-time)Solo lectura.
actualizado_enstring (date-time)Solo lectura.
{
"id": "00000000-0000-0000-0000-000000000000",
"emisor": 1,
"empleado": 1,
"empleado_nombre": "texto",
"estado": 1,
"estado_nombre": "texto",
"tipo_xml": null,
"tipo_nota": null,
"nomina_predecesora": "00000000-0000-0000-0000-000000000000",
"prefijo": "texto",
"consecutivo": 0,
"numero": "texto",
"periodo_nomina": 1,
"fecha_liquidacion_inicio": "2026-01-31",
"fecha_liquidacion_fin": "2026-01-31",
"tiempo_laborado": 0,
"fecha_generacion": "2026-01-31",
"hora_generacion": "texto",
"fecha_pago": "2026-01-31",
"moneda": 1,
"trm": "0.00",
"notas": "texto",
"novedad": true,
"cune_novedad": "texto",
"total_devengados": "0.00",
"total_deducciones": "0.00",
"redondeo": "0.00",
"total_comprobante": "0.00",
"cune": "texto",
"envio": null,
"track_id": "texto",
"ambiente": null,
"fecha_validacion": "2026-01-31T10:00:00-05:00",
"errores": [
null
],
"conceptos": [
{
"id": 1,
"grupo": "devengado",
"concepto": "basico",
"concepto_nombre": "texto",
"cantidad": "0.00",
"porcentaje": "0.00",
"valor": "0.00",
"valor_no_salarial": "0.00",
"fecha_inicio": "2026-01-31",
"fecha_fin": "2026-01-31",
"hora_inicio": "2026-01-31T10:00:00-05:00",
"hora_fin": "2026-01-31T10:00:00-05:00",
"descripcion": "texto",
"tipo_incapacidad": null
}
],
"codigo_trabajador": "texto",
"alto_riesgo_pension": true,
"salario_integral": true,
"sueldo": "0.00",
"tipo_trabajador": 1,
"subtipo_trabajador": 1,
"tipo_contrato": 1,
"lugar_trabajo_pais": 1,
"lugar_trabajo_departamento": 1,
"lugar_trabajo_municipio": 1,
"lugar_trabajo_direccion": "texto",
"forma_pago": 1,
"medio_pago": 1,
"banco": "texto",
"tipo_cuenta": null,
"numero_cuenta": "texto",
"fecha_retiro": "2026-01-31",
"creado_en": "2026-01-31T10:00:00-05:00",
"actualizado_en": "2026-01-31T10:00:00-05:00"
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<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"
}
]
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<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"
}
]
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<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.