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

# Descarga masiva de PDFs de facturas en Facturear

> Cómo descargar PDFs de facturas desde Facturear: descarga individual desde el dashboard o la API, y cómo armar una descarga masiva por período para auditorías o envío a clientes.

# Descarga masiva de PDFs de facturas

Facturear permite descargar el PDF de cada factura emitida, desde el dashboard o con la API. Esta guía cubre cómo descargar una factura y cómo armar una descarga masiva recorriendo tus facturas con la API.

<Note>
  Facturear no tiene un endpoint de exportación masiva (un ZIP por período). La descarga masiva se arma pidiendo el PDF de cada factura, como se muestra más abajo.
</Note>

***

## Descarga de un PDF individual

### Desde el dashboard

En **Facturas**, abrí la factura y usá **"Descargar PDF"**. Desde la misma pantalla, **"Enviar por email"** se la manda a tu cliente desde Facturear, y en el celular **"Compartir"** te deja pasar el PDF por WhatsApp u otra app.

### Con la API

Con el id de la factura en Facturear (el `invoiceId` que devuelve el resultado del lote, o el `id` de cada factura en `GET /api/invoices`), pedí el PDF con `?download=true` para recibir el archivo directamente:

```bash theme={null}
curl "https://www.facture.ar/api/invoices/cmg1a2b3e0002xyz/pdf?download=true" \
  -H "x-api-key: tu_api_key" \
  --output factura.pdf
```

El archivo viene con `Content-Type: application/pdf` y un nombre del tipo `factura-0001-00000145-production.pdf` en el header `Content-Disposition`.

Sin `download=true`, la API te devuelve una URL para descargar el PDF:

```bash theme={null}
curl "https://www.facture.ar/api/invoices/cmg1a2b3e0002xyz/pdf" \
  -H "x-api-key: tu_api_key"
```

```json theme={null}
{
  "download_url": "https://...",
  "invoice_id": "cmg1a2b3e0002xyz",
  "invoice_number": "0001-00000145",
  "environment": "production"
}
```

Si abrís ese mismo link (`/api/invoices/{id}/pdf`) en el navegador, con tu sesión iniciada, va directo al PDF en vez de mostrar el JSON. Pasa, por ejemplo, con el link que te devuelve un [agente de IA](/es/guides/agentes-ia).

Si la factura no existe o no es tuya, la respuesta es `404`.

***

## Descarga masiva por período

Para descargar todas las facturas de un período:

1. Listá tus facturas con `GET https://www.facture.ar/api/invoices`, filtrando por `status=success` y, si tenés varios CUITs, por `cuit`. La lista viene ordenada de la más nueva a la más vieja, hasta 100 por página
2. Quedate con las que caen en el período según su fecha de creación (`createdAt`)
3. Pedí el PDF de cada una con `GET /api/invoices/{id}/pdf?download=true`

Ver [Buscar y consultar facturas](/es/guides/buscar-facturas) para todos los filtros del listado.

***

## Descarga masiva en Node.js

```javascript theme={null}
const fs = require('fs');
const path = require('path');

const API = 'https://www.facture.ar/api';
const headers = { 'x-api-key': process.env.FACTUREAR_API_KEY };

async function descargarFacturasMes(cuit, mes, anio) {
  const desde = new Date(anio, mes - 1, 1);
  const hasta = new Date(anio, mes, 1);
  const carpeta = `facturas-${anio}-${String(mes).padStart(2, '0')}`;
  fs.mkdirSync(carpeta, { recursive: true });

  let page = 1;
  let descargadas = 0;

  while (true) {
    const params = new URLSearchParams({ status: 'success', cuit, page, limit: 100 });
    const res = await fetch(`${API}/invoices?${params}`, { headers });
    const { invoices, pagination } = await res.json();

    for (const factura of invoices) {
      const creada = new Date(factura.createdAt);
      if (creada >= hasta) continue;   // más nueva que el período
      if (creada < desde) return descargadas; // ya pasamos el período

      const pdf = await fetch(`${API}/invoices/${factura.id}/pdf?download=true`, { headers });
      if (!pdf.ok) {
        console.error(`No se pudo descargar ${factura.id}: ${pdf.status}`);
        continue;
      }
      const nombre = `${String(factura.ptoVta ?? 0).padStart(4, '0')}-${String(factura.voucherNumber).padStart(8, '0')}.pdf`;
      fs.writeFileSync(path.join(carpeta, nombre), Buffer.from(await pdf.arrayBuffer()));
      descargadas++;
    }

    if (!pagination.hasNextPage) return descargadas;
    page++;
  }
}
```

<Tip>
  Cada PDF se genera al momento de pedirlo. Para lotes grandes, descargalos de a uno o con poca concurrencia.
</Tip>

***

## Envío de facturas por e-mail

No hace falta descargar el PDF para mandárselo a tu cliente: Facturear lo envía por vos, desde [noreply@facture.ar](mailto:noreply@facture.ar), con `POST /api/invoices/{invoiceId}/email` (hasta 5 destinatarios por envío). Desde el dashboard, en el detalle de la factura, usá **"Enviar por email"**. Ver [Enviar una factura por email](/es/guides/enviar-factura-email).

***

## Estructura de la carpeta descargada

El script de ejemplo deja los PDFs en una carpeta por mes, nombrados por punto de venta y número:

```
facturas-2026-09/
├── 0001-00000001.pdf
├── 0001-00000002.pdf
├── ...
└── 0001-00000145.pdf
```

Si necesitás un resumen, armalo con los datos del listado (`voucherNumber`, `amount`, `invoiceType`, y la respuesta de ARCA en `feCabResp`) y comprimí la carpeta en un ZIP con la herramienta que prefieras.

***

## Recursos relacionados

* [Buscar y consultar facturas](/es/guides/buscar-facturas)
* [Webhooks en Facturear](/es/guides/webhook-integracion)
* [Primera factura con Facturear](/es/guides/primera-factura)
* [Facturación en lotes](/es/guides/facturacion-lotes)

***

<Card title="Seguí estos pasos directamente en Facturear" icon="arrow-right" href="https://facture.ar">
  Ir al dashboard de Facturear y descargar tus PDFs de facturas.
</Card>


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