Papely
API para desarrolladores

Genera PDFs desde tus propias plantillas, con una sola llamada REST

Convierte un PDF que ya tienes en una plantilla reutilizable y rellénalo con tus datos a través de una API REST. Cada llamada devuelve una generación que sondeas hasta completar y que, opcionalmente, puede enviar por email el PDF final a tu destinatario, con el estado de entrega por destinatario que consultas a través de la API.

Empieza gratis: la API está disponible en todos los planes, incluido el gratuito.

INVOICEINV-2026-0042DATE2026-07-17BILL TOAda Lovelace[email protected]DESCRIPTIONAMOUNTConsulting€1,200.00Hosting€49.00TOTAL

data

  • invoice_numbertext
  • line_itemstable
  • payment_qrqr

Tres cosas ocurren una vez, antes de cualquier llamada

  1. 01

    Sube tu plantilla PDF

    Trae un PDF que ya usas —una factura, un certificado, un contrato—. Se convierte en una plantilla reutilizable; no hay que rehacer nada en HTML ni CSS.

  2. 02

    Mapea tus campos visualmente

    En el editor, coloca los campos que quieres rellenar: campos de texto, fecha, imagen y QR, situados exactamente donde corresponden en la página. Cada campo recibe una clave que envías desde tu código.

  3. 03

    Crea tu clave de API

    Como propietario del workspace, genera una clave en Configuración. A partir de ahí, cada documento está a una llamada HTTP de distancia.

Una generación, de principio a fin

Todo lo que sigue es una sola sesión contra la API real: el mismo id de generación recorre todas las respuestas, así que puedes leerlo de arriba abajo como un único documento fabricándose.

  1. POST01

    /api/public/v1/generations

    Envía el id de la plantilla y tus datos

    Copia tu propio id de plantilla y referencia de imagen desde Configuración; los valores de abajo son marcadores de posición.

    curl -X POST 'https://papely.app/api/public/v1/generations' \
      -H 'Authorization: Bearer papely_sk_your_secret_here' \
      -H 'Content-Type: application/json' \
      -d '{
      "templateId": "YOUR_TEMPLATE_ID",
      "data": {
        "invoice_number": "INV-2026-0042",
        "issue_date": "2026-07-17",
        "payment_qr": "https://papely.app/pay/INV-2026-0042",
        "logo": "YOUR_IMAGE_REFERENCE",
        "line_items": [
          [
            "Consulting",
            "€1,200.00"
          ],
          [
            "Hosting",
            "€49.00"
          ]
        ],
        "email": "[email protected]",
        "name": "Ada Lovelace"
      },
      "email": {
        "subject": "Your invoice, {{name}}",
        "message": "Hi {{name}}, your invoice is attached. Download it with the button below.",
        "buttonText": "Download PDF"
      }
    }'

    La generación es asíncrona: la llamada devuelve de inmediato un id, no un archivo terminado.

    202 Accepted
    {
      "generationId": "2f4e6a8c-1b3d-4e5f-8a9b-0c1d2e3f4a5b"
    }
  2. GET02

    /api/public/v1/generations/:id

    Sondea el estado hasta que esté completado

    Solicita el endpoint de estado cada pocos segundos hasta que el estado sea completado (o fallido), y después descarga el documento.

    200 OK
    {
      "id": "2f4e6a8c-1b3d-4e5f-8a9b-0c1d2e3f4a5b",
      "status": "completed"
    }
  3. GET03

    /api/public/v1/generations/:id/emails

    Sigue a cada destinatario

    Cuando una generación opta por el email, este endpoint informa de la entrega por destinatario. La lista empieza vacía y se rellena a medida que el worker envía, así que consúltala una vez completada la generación.

    200 OK
    {
      "id": "2f4e6a8c-1b3d-4e5f-8a9b-0c1d2e3f4a5b",
      "emailEnabled": true,
      "emails": [
        {
          "email": "[email protected]",
          "name": "Ada Lovelace",
          "status": "delivered",
          "sentAt": "2026-07-17T09:00:05.000Z",
          "deliveredAt": "2026-07-17T09:00:07.000Z",
          "downloadedAt": "2026-07-17T09:15:00.000Z",
          "error": null
        }
      ]
    }
    • Cada entrada lleva un estado de entrega: pending, sent, delivered, bounced o failed.
    • Downloaded no es un estado: se deriva de un downloadedAt no nulo, que se fija cuando el destinatario abre el enlace de descarga.
    • Un fallo de envío se refleja solo en la entrada. Nunca hace fallar la generación ni mueve tu cuota.
    • Los emails se envían desde una dirección fija, [email protected], no desde tu propio dominio.

Lo que te da la API

Tus plantillas PDF actuales
Genera a partir de los PDFs que ya tienes: sin rehacer la plantilla y sin marcado. Lo que diseñaste es lo que se renderiza.
Mapeo visual de campos
Coloca campos de texto, fecha, imagen y QR en la página desde el editor; cada uno se convierte en una clave con nombre que rellenan tus peticiones.
Generación individual y por lotes
Genera un documento por petición, o hasta 100 en una sola llamada por lotes; los mismos endpoints de sondeo y descarga en ambos casos.
Envío de email integrado
Actívalo por petición y Papely envía por email el PDF final a tu destinatario en cuanto se genera; sin un servicio de correo aparte que integrar.
Seguimiento de generación y entrega
Sondea una generación hasta completarla y —cuando el email está activado— consulta el estado de entrega de cada destinatario a través de la API.

Tus diseños, convertidos en documentos personalizados

  • Facturas y recibos

    Genera una factura o un recibo con tu marca por cada pedido y envíaselo al cliente en cuanto esté listo.

  • Certificados

    Emite certificados de finalización o asistencia en lote, cada uno personalizado a partir de tus datos.

  • Informes de cliente

    Convierte los datos de cada cliente en un informe PDF cuidado, de forma programada o bajo demanda.

  • Presupuestos y contratos

    Produce presupuestos y contratos a partir de un diseño fijo, rellenados con los detalles de cada operación.

Diseñada para integrarse limpiamente

La autenticación, cada endpoint, los límites de tasa y el contrato de campos completo están en la referencia de la API. Esta página es la visión general; la referencia es el detalle.

Errores
Todos los errores usan un mismo sobre —{ error: { code, message, details? }, requestId }— y cada código es una cadena estable y legible por máquina sobre la que puedes ramificar.
Enlaces y retención
Dos cosas que conviene saber de antemano: cada enlace de descarga se firma de nuevo y caduca al cabo de una hora, así que obtén los bytes poco después de solicitarlo; y los PDFs generados se conservan durante una ventana que depende del plan antes de que una limpieza programada los elimine.
Credenciales
Crea tu clave como propietario del workspace en Configuración → Credenciales de API. El secreto completo se muestra una sola vez, así que guárdalo en un lugar seguro.

Preguntas frecuentes

Empieza a generar PDFs hoy

Crea una cuenta, añade tu primera plantilla y haz tu primera llamada a la API.

Empieza gratis: la API está disponible en todos los planes, incluido el gratuito.

API de generación y envío de PDFs – Crea y envía PDFs | Papely