Reportia

Actualizado 4 junio 2026 · 12 min de lectura

JSON a PDF: Tutorial completo con API REST

Tienes datos en JSON y necesitas convertirlos a un PDF profesional. Ya sea para facturas, reportes, contratos, o cualquier documento de negocio. En este tutorial te muestro cómo hacerlo con 3 métodos diferentes: Python, JavaScript y cURL.

¿Por qué JSON a PDF con una API?

La conversión JSON→PDF es uno de los problemas más comunes en desarrollo backend:

Hacerlo con una API externa tiene ventajas claras:

AspectoAPI externaBiblioteca local
Instalación0 dependenciasChromium, fonts, wkhtmltopdf...
MantenimientoCeroUpdates, CVEs, compatibilidad OS
Tiempo primer PDF5 minutos1-4 horas configurando
DockerSin cambios a imagen+300MB por Chromium
Costo a 1,000 docs/mes$9 USD$0 + tu tiempo

Método 1: Python con requests

import requests

response = requests.post(
    "https://reportia.4l3.org/v1/render",
    headers={"Authorization": "Bearer TU_API_KEY"},
    json={
        "template": "reporte-mensual",
        "format": "pdf",
        "data": {
            "titulo": "Reporte de ventas - Mayo 2026",
            "periodo": "01/05/2026 - 31/05/2026",
            "resumen": {
                "ventas_total": 1250000,
                "ticket_promedio": 3400,
                "clientes_nuevos": 42
            },
            "tabla": [
                {"producto": "Plan Pro", "unidades": 180, "ingreso": 630000},
                {"producto": "Plan Scale", "unidades": 45, "ingreso": 405000},
                {"producto": "Lifetime", "unidades": 62, "ingreso": 215000}
            ],
            "moneda": "MXN"
        }
    }
)

with open("reporte.pdf", "wb") as f:
    f.write(response.content)

print(f"PDF generado: {len(response.content) / 1024:.0f} KB")

Método 2: JavaScript (Node.js / fetch)

const response = await fetch("https://reportia.4l3.org/v1/render", {
  method: "POST",
  headers: {
    "Authorization": "Bearer TU_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    template: "reporte-mensual",
    format: "pdf",
    data: {
      titulo: "Reporte de ventas - Mayo 2026",
      resumen: {
        ventas_total: 1250000,
        ticket_promedio: 3400,
        clientes_nuevos: 42
      },
      tabla: [
        { producto: "Plan Pro", unidades: 180, ingreso: 630000 },
        { producto: "Plan Scale", unidades: 45, ingreso: 405000 }
      ]
    }
  })
});

const buffer = await response.arrayBuffer();
const fs = await import("fs");
fs.writeFileSync("reporte.pdf", Buffer.from(buffer));
console.log("PDF generado");

Método 3: cURL (terminal / scripts bash)

curl -X POST https://reportia.4l3.org/v1/render \
  -H "Authorization: Bearer TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "factura-servicios",
    "format": "pdf",
    "data": {
      "cliente": {"nombre": "Empresa Demo"},
      "folio": "F-001",
      "total": 5800,
      "moneda": "MXN"
    }
  }' \
  --output factura.pdf

Formatos de salida

Reportia no solo genera PDF. El mismo JSON produce diferentes formatos cambiando un campo:

FormatoValorUso común
PDF"format": "pdf"Facturas, contratos, reportes
Excel"format": "xlsx"Datos tabulares, contabilidad
CSV"format": "csv"Importaciones, análisis
HTML"format": "html"Preview, email embebido

Plantillas prediseñadas

No necesitas crear una plantilla desde cero. Reportia incluye plantillas para 30 industrias:

Cada plantilla acepta el mismo formato JSON. Solo cambia el campo template.

50 documentos gratis al mes. Sin tarjeta.

Genera PDFs, Excel y CSV desde JSON en 5 minutos.

Empezar gratis →

Preguntas frecuentes

¿Cómo convertir JSON a PDF con una API?

Envía un POST con tu JSON al endpoint /v1/render de Reportia. El campo template define el diseño y data contiene tus valores. Recibes el PDF binario en el response.

¿Qué lenguajes soporta la API?

Cualquier lenguaje que pueda hacer HTTP POST: Python, JavaScript, PHP, Ruby, Go, Java, C#, cURL. La API es REST estándar con JSON.

¿Es gratis convertir JSON a PDF?

Sí, Reportia ofrece 50 conversiones gratuitas al mes sin tarjeta de crédito. Planes pagos desde $9 USD/mes para mayor volumen. Ver precios.