Descargar PDF
Obtén una URL temporal para descargar el PDF de un DTE ya emitido. Úsalo en tu Saas, ERP o en tus aplicaciones cuando tus usuarios necesiten visualizar el documento o necesites enviarlo por correo electrónico u otro medio de comunicación.
En lugar de construir el PDF a partir del JSON del DTE, entender la distribución de los elementos, etc. Solo envías el generationCode y el NRC de la empresa emisora. Lumen valida el estado y te devuelve una URL prefirmada lista para descargar (válida 15 minutos).
Método: GET
Endpoint
Section titled “Endpoint”https://api-sandbox.lumendte.com/v1/documents/{generationCode}/pdfhttps://api.lumendte.com/v1/documents/{generationCode}/pdfgenerationCode es el código de generación del DTE (ej. FF84E5DB-79C5-42CE-B415-EC510C53EFB5).
Headers
Section titled “Headers”| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
Authorization | string | Sí | Bearer <access_token> (Client Credentials) |
x-company-tax-number | string | Sí | NRC de la empresa emisora (con o sin guiones) |
La petición no requiere body ni query params.
Request mínimo
Section titled “Request mínimo”Solo necesitas el path y los headers. Ejemplo con el generationCode de una factura emitida:
GET /v1/documents/FF84E5DB-79C5-42CE-B415-EC510C53EFB5/pdfAuthorization: Bearer tu_access_tokenx-company-tax-number: 123456-7Respuesta exitosa
Section titled “Respuesta exitosa”Status: 200 OK
Usa url de inmediato: descarga el PDF o reenvíalo al cliente. La URL expira en 15 minutos. No la persistas en tu base de datos para uso posterior; vuelve a llamar este endpoint cuando necesites otra.
{ "url": "https://files.example.com/invoices/1/FF84E5DB-79C5-42CE-B415-EC510C53EFB5.pdf?X-Amz-Expires=900"}Ejemplo de Solicitud
Section titled “Ejemplo de Solicitud”curl -X GET https://api-sandbox.lumendte.com/v1/documents/FF84E5DB-79C5-42CE-B415-EC510C53EFB5/pdf \ -H "Accept: application/json" \ -H "Authorization: Bearer tu_access_token" \ -H "x-company-tax-number: 123456-7"const axios = require("axios");
const generationCode = "FF84E5DB-79C5-42CE-B415-EC510C53EFB5";
const config = { method: "get", url: `https://api-sandbox.lumendte.com/v1/documents/${generationCode}/pdf`, headers: { Accept: "application/json", Authorization: "Bearer tu_access_token", "x-company-tax-number": "123456-7", },};
axios(config) .then((response) => { console.log("URL del PDF:", response.data.url); }) .catch((error) => { console.error( "Error en la solicitud:", error.response ? error.response.data : error.message, ); });import requests
generation_code = 'FF84E5DB-79C5-42CE-B415-EC510C53EFB5'
response = requests.get( f'https://api-sandbox.lumendte.com/v1/documents/{generation_code}/pdf', headers={ 'Accept': 'application/json', 'Authorization': 'Bearer tu_access_token', 'x-company-tax-number': '123456-7', },)
if response.ok: data = response.json() print('URL del PDF:', data['url'])else: print('Error en la solicitud:', response.text)Errores frecuentes
Section titled “Errores frecuentes”422 — Estado no válido para descargar
Section titled “422 — Estado no válido para descargar”La factura existe, pero su estado no permite descarga (por ejemplo REJECTED).
{ "errorCode": "ELECTRONIC_INVOICE_INVALID_STATUS", "message": "Electronic invoice is not in a valid status to download (current status: REJECTED)", "statusCode": 422}Fix: Solo puedes descargar si el estado es TRANSMITTED, ACCEPTED o CONTINGENCY. Verifica el estado de la factura antes de pedir el PDF.
422 — PDF aún no almacenado
Section titled “422 — PDF aún no almacenado”La factura es elegible, pero el archivo PDF todavía no está en almacenamiento.
{ "errorCode": "ELECTRONIC_INVOICE_FILE_NOT_STORED", "message": "Electronic invoice PDF has not been stored yet", "statusCode": 422}Fix: Reintenta en unos segundos. Si acabas de emitir, espera a que Lumen termine de guardar el PDF y vuelve a llamar el endpoint.