> ## Documentation Index
> Fetch the complete documentation index at: https://docs.filexpress.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Resultados de asistencia

> Cumplimiento diario (tardanzas, ausencias) y horas clasificadas por empleado

**Permiso requerido:** `hr.attendance_results`

FileXpress calcula un resultado por empleado y día a partir de la asistencia, el horario asignado, los feriados y las reglas laborales. Ver [Cumplimiento de horario](/docs/rrhh/cumplimiento) y [cómo se clasifican las horas](/docs/rrhh/reglas-laborales#cómo-se-clasifican-las-horas).

Los resultados se recalculan solos al registrar asistencia o al cambiar reglas, horarios, asignaciones o feriados. Esta API es de solo lectura.

## Resultados diarios

```http theme={null}
GET /hr/attendance-results?start_date=2026-10-01&end_date=2026-10-15
```

| Parámetro | Requerido | Descripción |
| - | - | - |
| `start_date` | Sí | Fecha inicial. |
| `end_date` | Sí | Fecha final (máximo 93 días de rango). |
| `employee_id` | No | Filtra por empleado. |
| `status` | No | Filtra por estado (ver tabla). |

```json theme={null}
{
  "status": true,
  "data": [
    {
      "id": "uuid",
      "business_id": "uuid",
      "employee_id": "uuid",
      "employee_name": "María López",
      "work_date": "2026-10-01",
      "attendance_id": "uuid",
      "work_schedule_id": "uuid",
      "labor_rule_set_id": "uuid",
      "day_type": "regular",
      "shift_kind": "day",
      "status": "late",
      "scheduled_minutes": 480,
      "worked_minutes": 590,
      "late_minutes": 10,
      "early_leave_minutes": 0,
      "ordinary_day_minutes": 480,
      "ordinary_night_minutes": 0,
      "overtime_day_minutes": 110,
      "overtime_night_minutes": 0,
      "breakdown": [
        { "category": "ordinary_day_regular", "minutes": 480, "multiplier": 1, "amount": 0 },
        { "category": "overtime_day_regular", "minutes": 110, "multiplier": 2, "amount": 15.58 }
      ],
      "warnings": [],
      "is_locked": false,
      "calculated_at": "2026-10-02 06:00:12"
    }
  ]
}
```

| Campo | Descripción |
| - | - |
| `work_date` | Fecha de inicio de la jornada (un turno nocturno pertenece al día en que empieza). |
| `day_type` | `regular`, `rest_day` o `holiday`. |
| `shift_kind` | `day`, `night` o `mixed`. Puede ser `null` en días sin trabajo. |
| `scheduled_minutes`, `worked_minutes` | Minutos programados y trabajados. |
| `late_minutes`, `early_leave_minutes` | Minutos fuera de la tolerancia. |
| `ordinary_*_minutes`, `overtime_*_minutes` | Minutos por clase y franja (todos los tipos de día). |
| `breakdown` | Desglose por categoría con multiplicador y monto sugerido según la modalidad de pago del empleado. |
| `warnings` | Códigos de aviso (ver tabla). |
| `is_locked` | `true` si el día está en una planilla procesada o pagada; ya no se recalcula. |
| `labor_rule_set_id` | Reglas usadas; `null` si se usaron los valores por defecto. |

### Estados

| `status` | Significado |
| - | - |
| `compliant` | Trabajó sin tardanza ni salida temprana. |
| `late` | Tardanza. |
| `early_leave` | Salida temprana. |
| `late_and_early_leave` | Ambas. |
| `absent` | Día laborable con horario, sin marcas, sin permiso ni feriado. |
| `incomplete` | Entrada sin salida o viceversa. |
| `on_leave` | Permiso aprobado. |
| `holiday` | Feriado sin trabajo. |
| `rest_day` | Descanso sin trabajo. |
| `worked_on_rest_day` | Trabajó en descanso. |
| `worked_on_holiday` | Trabajó en feriado. |
| `no_schedule` | Trabajó sin horario asignado (se clasifica igual). |

Los días sin marcas y sin horario no generan resultado, salvo los feriados.

### Categorías del desglose

`category` tiene la forma `{tipo}_{franja}_{día}`:

| Parte | Valores |
| - | - |
| `tipo` | `ordinary` (ordinaria), `overtime` (extra) |
| `franja` | `day` (diurna), `night` (nocturna) |
| `día` | `regular`, `rest_day`, `holiday` |

Por ejemplo, `overtime_night_holiday` = hora extra nocturna en feriado. `multiplier` es el factor sobre la hora ordinaria diurna; `amount` es el monto sugerido de esas horas: para salario fijo, las ordinarias diurnas valen `0` (ya están en el salario) y del resto de ordinarias solo se cuenta el recargo adicional.

### Avisos

| Código | Significado |
| - | - |
| `missing_check_out` | Falta la salida. |
| `punches_outside_schedule` | Marcas fuera de cualquier turno. |
| `schedule_exceeds_legal_max` | El horario supera la jornada máxima legal. |
| `overtime_daily_cap_exceeded`, `overtime_weekly_cap_exceeded` | Se superó el tope de horas extra. |
| `total_daily_cap_exceeded` | Ordinarias + extra superan el tope diario total. |
| `overtime_requires_approval` | Hay horas extra y las reglas exigen aprobación. |
| `below_min_wage` | La tarifa por hora está por debajo del mínimo configurado. |

## Resumen por empleado

```http theme={null}
GET /hr/attendance-results/summary?start_date=2026-10-01&end_date=2026-10-31
```

| Parámetro | Requerido | Descripción |
| - | - | - |
| `start_date` | Sí | Fecha inicial. |
| `end_date` | Sí | Fecha final (máximo 370 días de rango). |

```json theme={null}
{
  "status": true,
  "data": [
    {
      "employee_id": "uuid",
      "employee_name": "María López",
      "pay_type": "salaried",
      "days_worked": 21,
      "late_days": 3,
      "late_minutes": 42,
      "early_leave_minutes": 15,
      "absent_days": 1,
      "minutes": {
        "ordinary_day": 9600,
        "ordinary_night": 0,
        "overtime_day": 330,
        "overtime_night": 60,
        "rest_day": 0,
        "holiday": 0
      },
      "suggested_amount": 62.40
    }
  ]
}
```

| Campo | Descripción |
| - | - |
| `days_worked` | Días con minutos trabajados. |
| `late_days` | Días con tardanza. |
| `minutes.ordinary_*`, `minutes.overtime_*` | Minutos por clase y franja, de todos los tipos de día. |
| `minutes.rest_day`, `minutes.holiday` | Minutos trabajados en descanso y en feriado (ya incluidos en las cuatro anteriores). |
| `suggested_amount` | Suma de los montos del desglose del rango. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.