# Exportar nómina de un empleado (/docs/developers/api-reference/payroll-calculation/export-employee-excel)

## Descripcion general [#descripcion-general]

Este endpoint descarga la nómina de **un solo empleado** dentro de un periodo, en un archivo **Excel (`.xlsx`)**: su recibo con el **desglose completo por concepto** y las **incidencias del periodo** de esa persona.

Es el detalle que la exportación de la corrida no da por empleado — útil para aclaraciones individuales, sin descargar el libro completo.

A diferencia del resto de la API, la respuesta **no es JSON**: es el archivo binario. Solo los errores se devuelven en JSON.

Requiere un periodo `calculated` o `closed`, y que el empleado forme parte de la corrida. Requiere que la API key tenga el permiso **Exportar nómina**.

## Endpoint [#endpoint]

`GET https://app.integranom.com/api/v1/payroll-calendars/{payroll_calendar_number}/periods/{period_number}/employees/{employee_number}/export-excel`

**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-14`).
* `employee_number` — entero positivo, el número del empleado dentro de la organización.

## Descarga el recibo del empleado [#descarga-el-recibo-del-empleado]

***

La respuesta es el archivo `.xlsx` tal cual (no va en base64 ni envuelto en JSON). El nombre del archivo viaja en el encabezado `Content-Disposition`: con **`curl -OJ`** se guarda como `nomina-{employee_number}-corrida-{run}.xlsx`. Algunos clientes REST ignoran ese encabezado y guardan la respuesta **sin extensión** — el archivo es correcto, solo renómbralo agregando `.xlsx`.

El empleado debe tener un cálculo **en esa corrida**. Un empleado que existe en la organización pero no forma parte del periodo devuelve `404 NOT_IN_RUN`.

**cURL**

```bash
curl -X GET "https://app.integranom.com/api/v1/payroll-calendars/1/periods/2026-14/employees/1/export-excel" \
-H "Authorization: Bearer TU_API_KEY" \
-OJ
```

**Respuesta**

```http
HTTP/1.1 200 OK
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Disposition: attachment; filename="nomina-1-corrida-14.xlsx"
Cache-Control: no-store

<contenido binario del archivo .xlsx>
```

## Contenido del libro [#contenido-del-libro]

Dos hojas, con el encabezado del periodo (razón social, periodo, fechas y fecha de pago).

### Hoja 1 — `Recibo` [#hoja-1--recibo]

El recibo del empleado por secciones: **Identificación** (número, nombre, RFC, CURP, NSS, puesto, razón social y fecha de pago), **Días y bases** (días del periodo, pagados, faltas, incapacidades, salario diario, SBC y factor de integración), y el desglose por concepto de **percepciones** (código, concepto, gravado, exento y total), **deducciones** y **costo patronal** (código, concepto e importe), con los totales del empleado y su neto a depositar.

### Hoja 2 — `Incidencias` [#hoja-2--incidencias]

Una fila por incidencia del periodo para ese empleado, con su **origen de captura** marcado por color:

| Columna       | Descripcion                                                                                  |
| ------------- | -------------------------------------------------------------------------------------------- |
| Fecha         | Día de la incidencia.                                                                        |
| Tipo          | Nombre del tipo de incidencia.                                                               |
| Cantidad      | Cantidad registrada.                                                                         |
| Unidad        | Unidad del tipo (`days`, `hours` o `count`).                                                 |
| Origen        | Interno (equipo de nómina) o externo (portal de colaborador, reloj checador, integraciones). |
| Capturado por | Quién registró la incidencia.                                                                |
| Notas         | Notas de la captura.                                                                         |

## Errores [#errores]

Los errores sí se devuelven en JSON.

| Status | Código           | Causa                                                                               |
| ------ | ---------------- | ----------------------------------------------------------------------------------- |
| `400`  | —                | `payroll_calendar_number`, `period_number` o `employee_number` inválidos en la URL. |
| `401`  | —                | API key ausente o inválida.                                                         |
| `403`  | —                | La API key no tiene el permiso **Exportar nómina**.                                 |
| `404`  | —                | El calendario o el periodo no existen en esta organización.                         |
| `404`  | `NOT_IN_RUN`     | El empleado no tiene cálculo en la corrida de ese periodo.                          |
| `409`  | `NOT_CALCULATED` | El periodo aún no se ha calculado, así que no hay resultados que exportar.          |