Dataico
troubleshootingActualizado 9 de octubre de 2026

Guía de errores de la API de Nómina Electrónica

Este artículo cubre los errores más comunes al integrar la API v2 de Nómina Electrónica de Dataico. Para cada error se incluye el mensaje que devuelve la API, la causa y la solución.

En los endpoints individuales el error llega en la respuesta del POST, dentro de errors. En los envíos por lotes llega después: en el message de /job-status/{job-id} si se rechazó el lote completo, o en el elemento con "status": "FAILED" del resultado si falló un documento. Ver Envío en bloque de nómina electrónica: respuesta asíncrona con job-id.

Mensaje de error (response) Causa Solución
{"errors": "No estás autorizado para usar esta cuenta de DATAICO, por favor revisa los datos de conexión 'Dataico Account Id' y 'Auth Token'."} (HTTP 401) El header Auth-token está vacío, no corresponde a ninguna empresa o la llave API fue revocada. En nómina no se usa dataico_account_id, aunque el mensaje lo nombre. Copia el Auth Token desde Opciones (parte superior) > Configuración, o crea una llave API nueva. Verifica que no haya espacios al pegarlo.
{"errors": "Tu API key expiró. Genera una nueva desde la configuración de tu empresa."} (HTTP 401) La llave API que usas en Auth-token venció. Crea una llave nueva. Ver ¿Cómo crear y revocar llaves API en Dataico?.
"error-code": "not-found" con "message": "Revisar los siguientes campos: pin, dian-id: uno de estos valores es incorrecto verifica los datos y corrigelo" El pin o el dian_id del objeto software no coinciden con el software de nómina de tu empresa, o tu empresa aún no ha habilitado la nómina electrónica. Ver Software no encontrado.
"error-code": "invalid-key" El campo indicado en path no existe en ese objeto: el nombre está mal escrito. Ver Campo desconocido o campo faltante.
"error-code": "missing-key" con "message": "Falta un atributo ..." El concepto exige un campo que no enviaste. Por ejemplo, DOTACION sin amount-ns. Ver Campo desconocido o campo faltante.
{"error-code": "invalid-value", "path": ["accruals", N], "message": "unknown error"} En VACACION o LICENCIA_PATERNIDAD, days no es mayor que 0 o supera 30. Ver Días fuera de rango.
{"path": [0, "accruals", 0, 0, 0, "base-salary", "days"], "in": ["accruals", 3, "precise-days"], "value": 50.0} En BASICO, days supera el máximo admitido. El mismo formato aparece en PRIMA si days supera 180. Ver Días fuera de rango.
"message": "Para el código 'X' el porcentaje correcto es N. Pusiste 'M'. Este es un campo opcional." El percentage de una hora extra o un recargo no es el porcentaje legal para la fecha de inicio del periodo. Los recargos y horas extra dominicales y festivos cambian cada 1 de julio. Envía el porcentaje que indica el mensaje, o no envíes percentage: es opcional. Ver la tabla de porcentajes en la Documentación Técnica.
"message": "El texto no puede ser vacío" Enviaste un campo de texto opcional con "" (por ejemplo other-names, second-last-name, bank o account-number). Omite el campo si no tienes el dato.
Operación deshabilitada: la gestión de empleados por tiempo de negocio (BT) está activa para esta empresa. Por favor, contacte a soporte. Tu empresa usa el modelo de empleado con fecha de vigencia, que no permite enviar nóminas ni notas de reemplazo por API. Ver Operación deshabilitada.
Numero de documentos a crear 'N' excede numero de documentos restantes en el plan. El envío supera los documentos que le quedan a tu plan. Revisa los documentos disponibles en tu plan o amplíalo antes de reenviar.
¡El prefijo 'X' ya existe en otra numeración de soporte de nómina Enviaste una nómina en PRODUCCION con un prefijo que pertenece a la numeración de notas de reemplazo o de eliminación. Usa el prefijo de la numeración de documentos soporte de nómina.
¡El prefijo 'X' para nóminas de reemplazo no existe. Crearlo antes de continuar! Enviaste una nota de reemplazo en PRODUCCION con un prefijo que no existe como numeración de notas de reemplazo. Crea la numeración con el botón Agregar notas en Nómina > Configuración > Nómina Electrónica > Numeraciones, o usa el prefijo que ya tienes.
!El prefijo 'X' para nóminas de eliminacion no existe. Crearlo antes de continuar Enviaste una nota de eliminación en PRODUCCION con un prefijo que no existe como numeración de notas de eliminación. Crea la numeración con el botón Agregar notas en Nómina > Configuración > Nómina Electrónica > Numeraciones, o usa el prefijo que ya tienes.
!Todas las nóminas a importar deben pertenecer al mismo prefijo. Vemos estos prefijos en su noma a importar: [...] El lote de nóminas o de notas de reemplazo mezcla prefijos. Envía un lote por prefijo.
!Todas las nóminas a importar deben pertenecer al mismo periodo. ... El lote de nóminas o de notas de reemplazo mezcla periodos. El periodo se calcula con initial-settlement-date y final-settlement-date. Envía un lote por periodo.
El número de identificación y tipo '...' '...' del empleado en su nota de reemplazo no es el mismo que el número de identificación del empleado en el documento original ... La nota de reemplazo es de un empleado distinto al del documento original. Usa el mismo tipo y número de identificación del empleado del documento que reemplazas.
La importación falló! (en /job-status, sin más detalle) Alguno de los documentos del lote tiene un error de formato, y la respuesta del lote no indica cuál. Envía ese documento al endpoint individual con "env": "PRUEBAS": su respuesta trae el path del error.
{"message": "El documento consultado no puede ser encontrado. Si acaba de ser enviado, debe esperar que el procesamiento termine."} (HTTP 404) Al consultar, no hay un documento con ese prefijo y número. Revisa el prefijo y el número. Si lo enviaste en un lote, espera a que el lote termine.

Error: software no encontrado (pin y dian_id)

Detalle (response)

{
  "error-code": "not-found",
  "message": "Revisar los siguientes campos: pin, dian-id: uno de estos valores es incorrecto verifica los datos y corrigelo"
}

La respuesta trae además el path del objeto software y los valores que enviaste.

Explicación

Dataico busca el software de nómina de tu empresa con el pin y el dian_id del objeto software. El error ocurre cuando esos valores no coinciden con el software registrado, o cuando tu empresa aún no ha habilitado la nómina electrónica en Dataico.

El pin y el dian_id son iguales para todas las cuentas. El test_set_id es propio de cada empresa y no hace falta enviarlo; si lo envías, no se usa para identificar el software.

Solución

  1. Asegúrate de que el objeto software sea:

    "software": {
      "pin": "4123412",
      "dian_id": "d0e88268-a4ab-447d-918c-19c1c248b5c3"
    }
    
  2. Si los valores ya son esos, habilita la nómina electrónica de tu empresa en Dataico o escríbenos al chat de soporte.


Error: invalid-key o missing-key en accruals

Detalle (response)

{ "error-code": "invalid-key", "path": ["accruals", 1, "amount-n"] }
{ "error-code": "missing-key", "message": "Falta un atributo ..." }

Explicación

  • invalid-key: el campo indicado en path no existe en ese objeto. El nombre está mal escrito (por ejemplo amount-n en lugar de amount-ns, o dias en lugar de days). Los nombres aceptan guion o guion bajo y no distinguen mayúsculas: amount-ns y amount_ns son el mismo campo.
  • missing-key: el concepto exige un campo que no enviaste. Pasa, por ejemplo, cuando un concepto que solo admite valor no salarial se envía con amount en lugar de amount-ns.

Solución

  1. Ubica el devengado: en el ejemplo, la posición 1 del arreglo accruals.
  2. Compara sus campos con la tabla de conceptos de la Documentación Técnica de Nómina. DOTACION, APOYO_PRACTICA, BONIFICACION_RETIRO, INDEMNIZACION, VACACION_COMPENSADA y CESANTIAS exigen amount-ns. Por ejemplo: si el concepto es DOTACION y lo enviaste con amount, cámbialo a amount-ns.
  3. Corrige el nombre del campo o agrega el que falta, y reenvía el JSON.

Error: días fuera de rango en accruals

Las dos respuestas indican días fuera de rango, pero en conceptos distintos.

Detalle (response, variante 1)

{
  "errors": [
    {
      "error-code": "invalid-value",
      "path": ["accruals", 3],
      "message": "unknown error"
    }
  ]
}

Aparece en VACACION o LICENCIA_PATERNIDAD: days debe ser mayor que 0 y como máximo 30.

Detalle (response, variante 2)

{
  "errors": [
    {
      "path": [0, "accruals", 0, 0, 0, "base-salary", "days"],
      "in": ["accruals", 3, "precise-days"],
      "value": 50.0
    }
  ]
}

Aparece en BASICO cuando days supera el máximo admitido (acepta decimales). El mismo formato aparece en PRIMA si days supera 180; en ese caso el path dice prima. En in, el número indica la posición del devengado en accruals.

Días admitidos por devengado

Devengado Días admitidos
LICENCIA_PATERNIDAD Más de 0 y hasta 30
VACACION Más de 0 y hasta 30
PRIMA Hasta 180

Solución

Revisa el devengado en la posición indicada y corrige days para que esté dentro del rango de la tabla.


Error: operación deshabilitada (modelo de empleado con fecha de vigencia)

Detalle (response)

{
  "errors": [
    {
      "error-code": "bt-employee-active",
      "message": "Operación deshabilitada: la gestión de empleados por tiempo de negocio (BT) está activa para esta empresa. Por favor, contacte a soporte."
    }
  ]
}

En un envío por lotes, el mismo mensaje llega en errors de /job-status/{job-id} con "status": "failed".

Explicación

Tu empresa registra los cambios de sus empleados con fecha de vigencia (la ficha del empleado con el panel Añadir novedad). Con este modelo, la API no acepta nóminas ni notas de reemplazo, ni individuales ni por lotes. Las empresas nuevas tienen este modelo activo desde su creación. Las notas de eliminación y las consultas sí funcionan.

Solución

Escríbenos al chat de soporte: este modelo solo lo puede cambiar el equipo de soporte.


Si el error no aparece en esta guía, consulta el Swagger de la API v2 de Nómina Electrónica o escríbenos al chat de soporte con el response completo y el JSON que estás enviando.

Recursos Adicionales

¿Este artículo te fue útil?