Saltar al contenido principal

PDF y envío por email

El PDF se genera automáticamente para cada comprobante pero se genera en segundo plano, unos segundos después. La respuesta del POST te da el CAE de inmediato; el archivo llega poco después.

No guardes el PDF en tu sistema

Pedilo en el momento en que lo necesitás —cuando el usuario lo abre, lo imprime o lo adjunta—.

Si lo guardás, te obliga a resolver almacenamiento, backups, permisos de acceso, retención y de eso nos encargamos nosotros, estarías duplicando esfuerzo y costos. Lo que sí conviene guardar de la emisión son los identificadores: id, cae, voucherNumber, posNumber y voucherType. Con el id traés el PDF cuando haga falta, tantas veces como haga falta.

Obtener el PDF

GET /:id-empresa/invoices/:id/pdf?versions=1,2,3

versions selecciona las copias a estampar: 1 original, 2 duplicado, 3 triplicado. Por defecto 1. Se devuelven ordenadas.

curl "https://nanofactura.com/api/mi-empresa/invoices/14805/pdf?versions=1" \
-H "Authorization: Bearer PROD_tu_api_key" \
-o factura.pdf

Respuesta: application/pdf con Content-Disposition: attachment. El nombre del archivo sigue el formato {cuit}_{voucherType}_{posNumber}_{voucherNumber}.pdf — por ejemplo 20000000000_11_00001_00000045.pdf.

Si todavía no está

{ "ok": false, "code": "PDF_NOT_READY", "error": "El PDF del comprobante todavía se está generando" }

Es 409 y es transitorio: reintentá en unos segundos. Sólo lo vas a ver si pedís el PDF inmediatamente después de emitir — que es justamente lo que conviene no hacer.

Cómo servirlo a tu usuario

No descargues el PDF al emitir "por las dudas". Poné un botón Descargar factura que llame a tu backend, y que tu backend llame a este endpoint en ese momento y transmita el archivo. Es una línea de código y te ahorra todo el almacenamiento.

Enviarlo por email

La API manda el comprobante por correo, con la plantilla y las copias que corresponden. No lo bajes para reenviarlo vos.

Al emitir

Es la forma recomendada: el envío sale solo, en segundo plano, sin bloquear la respuesta.

{
"emails": [
{
"email": "[email protected]",
"name": "Pedro López",
"comments": "¡Gracias por su compra!",
"pdfVersions": [1]
}
]
}
CampoObligatorioDescripción
emailDirección del destinatario.
nameNoNombre del destinatario.
commentsNoTexto a incluir en el cuerpo del correo.
pdfVersionsNoCopias a adjuntar. Por defecto [1].

Enviar después de emitir

POST /:id-empresa/invoices/:id/emails
{
"email": "[email protected]",
"name": "Estudio Contable",
"comments": "Copia para el estudio",
"pdfVersions": [1, 2]
}

Responde 201 con la cantidad acumulada de destinatarios. Requiere que el PDF ya esté generado (si no, 409).

Máximo 3 destinatarios por comprobante

Cuenta los de la emisión más los agregados después. Es suficiente para el caso real —el cliente, su contador y una copia interna— y evita que la API se use como lista de distribución.

En la emisión, rechaza el comprobante entero

Si mandás emails con una dirección no válida a POST /invoices, la validación falla antes de llamar a ARCA: no se emite nada. Asegurate de enviar direcciones de email válidas.

Regenerar el PDF

POST /:id-empresa/invoices/:id/pdf/regenerate

Vuelve a generar el archivo y reemplaza el anterior. No reenvía correos.

Es una reparación, para cuando la generación falló o el archivo salió mal. Tiene dos topes:

  • Hasta 3 veces por comprobante.
  • Sólo dentro de los 90 días de emitido.

Pasado ese plazo el PDF es un documento cerrado: la plantilla, el logo del punto de venta y hasta tus datos fiscales pudieron cambiar, así que regenerarlo devolvería un archivo distinto del que entregaste en su momento. Se responde 409:

{
"ok": false,
"code": "VALIDATION_ERROR",
"error": "El comprobante se emitió hace 124 días y sólo se puede regenerar el PDF dentro de los 90 días de emitido. Descargalo con GET /invoices/1485/pdf."
}

Descargar el PDF sigue funcionando siempre, sin límite de tiempo ni de cantidad. El tope es sólo para regenerarlo.

Personalizar el comprobante

El diseño no se configura por API: sale del punto de venta con el que emitís. Nombre de fantasía, logo, domicilio y leyenda se cargan una vez y se aplican a todos sus comprobantes. Ver Puntos de venta.