# Listar incidencias (/docs/developers/api-reference/payroll-calculation/list-incidences)

## Descripcion general [#descripcion-general]

Este endpoint lista las incidencias del **registro global de asistencia** que caen dentro de la **ventana de fechas** del periodo, para los empleados del calendario — las que el cálculo de esa corrida lee (la nómina lee el registro global en vivo, por fecha). El cálculo solo paga las filas con `approval_status: "approved"`: las horas extra pendientes de autorizar o rechazadas aparecen en el listado, pero no se pagan.

Es la forma de verificar qué va a ver la nómina de un periodo sin filtrar el registro global a mano.

Requiere que la API key tenga el permiso **Listar periodos de nómina**.

## Endpoint [#endpoint]

`GET https://app.integranom.com/api/v1/payroll-calendars/{payroll_calendar_number}/periods/{period_number}/incidences`

**Path params:**

* `payroll_calendar_number` — entero positivo, el número del calendario.
* `period_number` — el periodo, con el formato `{fiscal_year}-{sequence_number}` (por ejemplo `2026-11`).

## Consulta las incidencias del periodo [#consulta-las-incidencias-del-periodo]

***

Devuelve las incidencias de la corrida, paginadas de 20 en 20 y ordenadas por fecha.

## Query params [#query-params]

| Parametro         | Tipo                     | Requerido | Default | Descripcion                                                               |
| ----------------- | ------------------------ | --------- | ------- | ------------------------------------------------------------------------- |
| `page`            | integer ≥ 1              | No        | 1       | Página solicitada. El tamaño de página es fijo en 20.                     |
| `employee_number` | integer                  | No        | -       | Filtra por empleado.                                                      |
| `incidence_code`  | string                   | No        | -       | Filtra por el código del tipo de incidencia (por ejemplo `FALTA`).        |
| `source`          | string                   | No        | -       | Filtra por el origen exacto de la captura. Repetible para incluir varios. |
| `origin`          | `internal` \| `external` | No        | -       | Filtra por la clasificación del origen. Se puede combinar con `source`.   |

**cURL**

```bash
curl -X GET "https://app.integranom.com/api/v1/payroll-calendars/1/periods/2026-11/incidences" \
-H "Authorization: Bearer TU_API_KEY" \
-H "Content-Type: application/json"
```

**Respuesta**

```json
{
"count": 2,
"page": 1,
"page_size": 20,
"total_pages": 1,
"next": null,
"previous": null,
"results": [
  {
    "date": "2026-06-03",
    "employee_number": 1,
    "employee_name": "Juan Carlos Pérez López",
    "incidence_code": "FALTA",
    "incidence_name": "Falta injustificada",
    "unit": "days",
    "quantity": 1,
    "notes": null,
    "approval_status": "approved",
    "source": "attendance_module",
    "origin": "internal",
    "captured_by": "Ana Martínez",
    "updated_by": null,
    "created_at": "2026-06-16T10:00:00.000Z",
    "updated_at": "2026-06-16T10:00:00.000Z"
  },
  {
    "date": "2026-06-05",
    "employee_number": 2,
    "employee_name": "María Fernanda Ruiz Ortiz",
    "incidence_code": "OVERTIME_DOUBLE_HOURS",
    "incidence_name": "Horas extra dobles",
    "unit": "hours",
    "quantity": 3,
    "notes": "turno extra",
    "approval_status": "pending",
    "source": "attendance_module",
    "origin": "internal",
    "captured_by": "Ana Martínez",
    "updated_by": null,
    "created_at": "2026-06-16T10:05:00.000Z",
    "updated_at": "2026-06-16T10:05:00.000Z"
  }
]
}
```

## Campos de cada fila [#campos-de-cada-fila]

| Campo             | Tipo                                        | Descripcion                                                                                                                                                                                                                                              |
| ----------------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `date`            | string (`YYYY-MM-DD`)                       | Día de la incidencia. Siempre dentro del periodo.                                                                                                                                                                                                        |
| `employee_number` | integer                                     | Número del empleado.                                                                                                                                                                                                                                     |
| `employee_name`   | string                                      | Nombre completo del empleado.                                                                                                                                                                                                                            |
| `incidence_code`  | string                                      | Código del tipo de incidencia.                                                                                                                                                                                                                           |
| `incidence_name`  | string                                      | Nombre del tipo de incidencia.                                                                                                                                                                                                                           |
| `unit`            | `"days"` \| `"hours"` \| `"count"`          | Unidad del tipo de incidencia.                                                                                                                                                                                                                           |
| `quantity`        | number                                      | Cantidad registrada. Los tipos `days` registran `1`, salvo las vacaciones de medio día, que registran `0.5`.                                                                                                                                             |
| `notes`           | string \| null                              | Notas de la captura.                                                                                                                                                                                                                                     |
| `approval_status` | `"approved"` \| `"pending"` \| `"rejected"` | Estatus de autorización. Las horas extra dobles y triples quedan en `pending` hasta que las autorizan todos los niveles configurados, y en `rejected` si alguno las rechaza; la nómina solo paga las `approved`. Los demás tipos siempre son `approved`. |
| `source`          | string                                      | Origen exacto de la captura: `attendance_module`, `payroll_run`, `employee_portal`, `api` o `time_clock`.                                                                                                                                                |
| `origin`          | `"internal"` \| `"external"`                | Clasificación del origen: `internal` cuando la capturó el equipo de nómina en la plataforma; `external` en cualquier otro caso (portal de colaborador, reloj checador, integraciones).                                                                   |
| `captured_by`     | string \| null                              | Nombre de quien registró la incidencia: una persona, la integración que la envió o la plataforma. `null` si ese autor ya no existe.                                                                                                                      |
| `updated_by`      | string \| null                              | Nombre de quien la modificó por última vez. `null` si nunca se ha editado.                                                                                                                                                                               |

Son las mismas incidencias del [registro global](/docs/developers/api-reference/attendance/list), acotadas a la ventana de fechas del periodo — no hay un registro aparte por periodo.

## Errores [#errores]

| Status | Causa                                                                     |
| ------ | ------------------------------------------------------------------------- |
| `400`  | `payroll_calendar_number` o `period_number` inválidos, o filtro inválido. |
| `401`  | API key ausente o inválida.                                               |
| `403`  | La API key no tiene el permiso **Listar periodos de nómina**.             |
| `404`  | El calendario o el periodo no existen en esta organización.               |