Base URL https://api.afer.pro Referencia aferapp.com Reservar demo

PDF de una factura

GET https://api.afer.pro/api/v1/invoices/{id}/pdf
Alias en castellano (v0, sigue operativo): POST https://api.afer.pro/obtenerFacturaPdf

Genera el PDF de una factura con la plantilla de impresión de tu cuenta y lo devuelve en base64 (o como enlace).

El mismo PDF que imprime Afer: se compone al vuelo con la plantilla del tenant (logo, pie, textos legales, QR de VERI*FACTU si aplica), así que refleja siempre el estado actual de la factura.

Por defecto el fichero viaja en contenido_base64 dentro del JSON, para no romper el envelope común. Si prefieres un enlace — por ejemplo para reenviarlo a un cliente — pide url: true y se deja el fichero en el servidor con una URL temporal.

Autenticación

Envía tus claves API en las cabeceras X-API-KEY y X-API-SECRET. La cuenta sobre la que se opera se resuelve automáticamente a partir de la clave. Cómo obtener tus claves →

Este endpoint requiere autenticación con API key: sin credenciales responde 401.

Parámetros del cuerpo

El cuerpo de la petición es un objeto JSON con Content-Type: application/json.

facturaIdstring
obligatorio
Identificador cifrado de la factura. En la ruta REST va como {id}.
urlbool
opcional
Con true devuelve un enlace temporal al PDF en vez del base64.

Ejemplo de petición

curl -X GET 'https://api.afer.pro/api/v1/invoices/aBc123XyZ/pdf' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET'
<?php

$ch = curl_init('https://api.afer.pro/api/v1/invoices/aBc123XyZ/pdf');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-KEY: afer_tk_TU_TOKEN',
    'X-API-SECRET: afer_sk_TU_SECRET',
]);

$respuesta = json_decode(curl_exec($ch), true);
curl_close($ch);
const respuesta = await fetch('https://api.afer.pro/api/v1/invoices/aBc123XyZ/pdf', {
  method: 'GET',
  headers: {
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  }
});

const resultado = await respuesta.json();

Respuesta

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": {
        "facturaId": "aBc123XyZ…",
        "numero": "F26-A00001546",
        "nombre": "factura-F26-A00001546.pdf",
        "mime": "application/pdf",
        "bytes": 84213,
        "contenido_base64": "JVBERi0xLjQKJeLjz9MKMy…"
    }
}

Errores

CasoResultado
Sin credenciales de API key errorCode 401.
La factura no existe o no es de tu cuenta errorCode 404.
El servidor no puede componer el PDF errorCode 500 o 503 con el motivo en errorMsg.
Notas
  • El PDF no se cachea: cada llamada lo regenera con los datos del momento.
  • Un PDF de factura pesa del orden de decenas de KB; en base64 crece un tercio. Para envíos masivos, usa url: true.
  • Los ficheros que alguien ha subido a la factura no son esto: están en obtener adjuntos.