---
title: "Generar rol de pagos del período"
method: POST
path: "/nomina/rol/generar"
tags: ["nomina"]
---

# Generar rol de pagos del período

`POST /nomina/rol/generar`

## Request

- Base URL: `https://contadeo.com/api`
- URL: `https://contadeo.com/api/nomina/rol/generar`
- Auth: HTTP bearer

Calcula y persiste el rol de pagos para todos los empleados activos del emisor en el período indicado. Idempotente: una segunda llamada recalcula y actualiza los datos existentes. Los roles ya aprobados o pagados NO se pisan: se saltan y vuelven en `omitidos`. Las novedades fijadas en una fila en borrador (PUT /nomina/rol/{id}/novedades) se conservan al regenerar.

## Request body

- object
  - `emisorId` string, uuid, required
  - `periodo` string, required: Período en formato YYYY-MM, ej. 2026-06

## Response `201`

Rol generado

- GenerarRolResultado: Resultado de la generación del rol de pagos de un período
  - `periodo` string
  - `empleadosProcesados` integer
  - `filas` RolPagosResumen[]
    - `id` string, uuid
    - `tenantId` string, uuid
    - `emisorId` string, uuid
    - `empleadoId` string, uuid
    - `periodo` string: Período YYYY-MM
    - `totalIngresos` string
    - `totalEgresos` string
    - `neto` string
    - `aportePersonal` string
    - `provisionPatronal` string
    - `provisionFondoReserva` string
    - `provisionDecimoTercero` string
    - `provisionDecimoCuarto` string
    - `provisionVacaciones` string
    - `detalle` object: Desglose completo del cálculo (ResultadoRolPagos)
    - `estado` 'borrador' | 'aprobado' | 'pagado': Ciclo de vida del rol. Solo avanza: no hay transición inversa.
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `aprobadoAt` string, date-time, nullable: Cuándo pasó a 'aprobado'.
    - `pagadoAt` string, date-time, nullable: Cuándo se marcó 'pagado'.
    - `aprobadoPorUserId` string, uuid, nullable: Usuario que aprobó el período.
    - `pagadoPorUserId` string, uuid, nullable: Usuario que marcó el pago.
  - `generados` integer: Roles generados o regenerados en esta llamada
  - `omitidos` RolOmitido[]: Roles ya aprobados o pagados: no se regeneran
    - `empleadoId` string, uuid
    - `estadoActual` string
    - `motivo` string

## Other responses

- `400`: Cuerpo inválido o validación de negocio (previene errores SRI 62/52/65/69/39)
- `403`: Rol insuficiente o acceso denegado

---

[API](https://skmtc.dev/contadeo/apis/api-de-contadeo.md) · [All operations](https://skmtc.dev/contadeo/apis/api-de-contadeo/llms.txt) · [OpenAPI document](https://skmtc.dev/contadeo/apis/api-de-contadeo/revisions/461bbb9a74ce?raw)
