Registrar novedades del período
Las novedades son todos los conceptos que afectan el pago de una persona en un período: vacaciones, incapacidades, licencias, horas extras y recargos, ingresos adicionales, deducciones y préstamos. Esta guía explica cómo registrarlos sobre la nómina activa de una persona.
Para registrar novedades necesitas tener la persona y su contrato activos. Si aún no los has creado, revisa la guía de registrar una persona y su contrato.
Las nóminas existen porque hay un período activo, sin período no hay nóminas.
Consulta la nómina de la persona en el período actual.
Obtén los IDs de los conceptos de novedad válidos para el contrato.
Crea, actualiza o elimina novedades en una sola petición.
Paso 1: Verifica o crea el período activo
Las nóminas de cada persona se generan automáticamente cuando existe un período activo. Si tu empresa ya tiene un período en curso, puedes ir directo al Paso 2.
Para verificar si hay un período activo:
Code
Si recibes 404, no hay período activo. Créalo con:
Code
Al crear el período, las nóminas de todas las personas activas se generan automáticamente.
El tipo next crea el período inmediatamente siguiente al último registrado. Consulta la referencia del endpoint para ver todos los tipos disponibles.
Paso 2: Obtén el ID de la nómina
Las novedades se registran sobre una nómina específica — necesitas el payroll_id de la persona en el período actual.
Code
Si no envías period_id, la API devuelve las nóminas del período activo. Consulta todos los parámetros disponibles en la referencia del endpoint.
Ejemplo de respuesta:
Code
Guarda el id de la nómina (payroll_id), lo necesitarás en los siguientes pasos.
Paso 3: Consulta los conceptos disponibles
Cada novedad se registra bajo un concepto de nómina — necesitas el payroll_concept_id del concepto que quieres usar.
El parámetro category es obligatorio e indica qué tipo de conceptos retorna:
category | Qué retorna |
|---|---|
novelties | Vacaciones, incapacidades y licencias |
overtime | Horas extras y recargos |
salary_income | Ingresos salariales adicionales |
non_salary_income | Ingresos no salariales |
occasional_non_salary_income | Ingresos no salariales ocasionales |
deductions | Deducciones |
loan | Préstamos |
Ejemplo — Conceptos de novedades
Code
Respuesta:
Code
Ejemplo — Conceptos de horas extras
Code
Respuesta:
Code
Guarda el id del concepto — es el payroll_concept_id que usarás en el Paso 4. Consulta todos los parámetros disponibles en la referencia del endpoint.
Paso 4: Registra la novedad
Vacaciones, incapacidades y licencias
El endpoint maneja crear, actualizar y eliminar en una sola petición, la acción se determina automáticamente según los campos que envíes:
| Envías | Acción |
|---|---|
Sin id, con initial_day y end_day | Crear |
Con id, con initial_day y end_day | Actualizar fechas |
Con id, sin fechas | Eliminar |
Ejemplo — Registrar vacaciones:
Code
Ejemplo — Eliminar una novedad:
Code
La nómina se recalcula automáticamente después de cada cambio. Consulta todos los campos disponibles en la referencia del endpoint.
Horas extras y recargos
El endpoint maneja crear, actualizar y eliminar en una sola petición, la acción se determina automáticamente según la cantidad que envíes:
| Envías | Acción |
|---|---|
payroll_concept_id + quantity > 0 | Crear o actualizar |
payroll_concept_id + quantity: 0 | Eliminar |
Ejemplo — Registrar horas extras diurnas:
Code
Puedes registrar varias novedades u horas extras en una sola petición enviando múltiples objetos en el arreglo. Consulta todos los campos disponibles en la referencia del endpoint.
Errores comunes
Concepto inválido para el contrato o la fecha
HTTP 422 — el payroll_concept_id no aplica para ese tipo de contrato o la fecha está fuera de vigencia.
Code
Consulta los conceptos con los filtros contract_category y novelty_initial_day (Paso 3).
Fechas faltantes al crear
HTTP 422 — se intentó crear una novedad sin incluir las fechas.
Code
Incluye initial_day y end_day en formato YYYY-MM-DD.
Fechas cruzadas con una novedad existente
HTTP 422 — ya existe una novedad en ese rango de fechas.
Code
Consulta las novedades activas con GET /v1/{company_id}/payrolls/{payroll_id}/novelties antes de crear.
Nómina no encontrada
HTTP 404 — el payroll_id no existe o no pertenece al período activo.
Code
Verifica que estés usando el payroll_id del período activo (Paso 2).
Referencias
Referencia: Novedades
Todos los campos y opciones del endpoint de novedades.
Referencia: Horas extras
Campos y opciones del endpoint de horas extras y recargos.