Crear una factura PDF
La API Generar Factura PDF convierte un payload JSON — partidas, impuestos, totales, su marca — en una factura PDF terminada, lista para enviar o archivar en el momento en que se cierra un pedido. Existe para que facturar a un cliente nunca dependa de que alguien abra una plantilla y teclee cifras a mano.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Facturar como subproducto del software, no como tarea
Cada venta, renovación de suscripción o pedido completado termina necesitando un documento que el cliente pueda abrir, revisar y conservar para su propia contabilidad — pero los datos detrás de ese documento ya existen en su sistema en el instante en que ocurre la transacción. La api generar factura pdf está pensada para esa brecha: ya conoce las partidas, el impuesto, los totales; este endpoint convierte esos datos en el documento que su cliente realmente espera, sin que nadie toque una herramienta de facturación.
Qué va en la solicitud
Envía JSON estructurado que describe la factura — datos del emisor y del receptor, partidas con cantidades y precios unitarios, el impuesto aplicable, la fecha de vencimiento y sus elementos de marca como logo y colores — y el servicio lo maqueta como un PDF con formato correcto y desglose de partidas. Los totales se calculan y presentan como los espera un contador: subtotal, desglose de impuestos y total general claramente separados, así el documento se lee como una factura real y no como un volcado de hoja de cálculo.
Cómo funcionan la generación y la entrega
Llama a POST /pdf/invoice con su payload y recibe de inmediato un task_id, sin esperar sobre una conexión abierta. El PDF se construye de forma asíncrona en nuestra red global, y una vez listo le avisamos por webhook firmado — la opción natural para sistemas de facturación que necesitan adjuntar la factura a un correo o a un portal de cliente de forma automática — o por un enlace firmado válido 24 horas cuando una persona solo necesita obtener un documento.
Dónde encaja en la automatización de facturación
Está diseñada para correr sin supervisión: una plataforma de suscripciones que genera una factura por cada renovación, un marketplace que produce una factura con la marca del vendedor por cada pedido completado, un sistema contable que agrupa las facturas de fin de mes para cada cuenta abierta. Como cada llamada devuelve un task_id y confirma la entrega por webhook, generar la factura se vuelve un paso disparado por la propia transacción — el mismo instante en que se captura el pago o se confirma un pedido — y no una tarea aparte en la lista de alguien.
Precio transparente y manejo seguro
El cobro es de $0.040 por solicitud más $0.001 por documento, una tarifa publicada, sin tokens ni créditos inventados. Una tarea que falla nunca se cobra; reintentamos tres veces antes de devolver un error claro en lugar de un fallo silencioso. El acceso requiere saldo prepago — sin plan gratuito ni prueba — que es lo que mantiene el servicio rápido y sin abuso; las solicitudes sin saldo reciben un 402. Los datos de la factura se eliminan tras la ventana de retención y nunca se usan para entrenar nada.
Qué puede hacer con ella
Facturación de renovaciones de suscripción
Una plataforma SaaS genera una factura PDF con su marca en el instante en que una suscripción se renueva y la adjunta automáticamente al correo de confirmación.
Facturas de vendedores en un marketplace
Un marketplace produce una factura con la marca del vendedor por cada pedido completado, para que los clientes de cada tienda reciban un papeleo que parece salido de ese negocio específico.
Facturación por lotes de fin de mes
Un sistema contable genera las facturas de todas las cuentas abiertas al cierre del mes, ejecutando el lote como un único trabajo automatizado en lugar de un documento a la vez.
Cotizaciones convertidas en factura
Una herramienta de pedidos B2B convierte una cotización aprobada en una factura PDF formal en el momento en que el cliente confirma, trasladando exactamente las mismas partidas y totales.
Preguntas frecuentes
¿Cómo genero una factura en PDF con una API?
Envíe JSON con partidas, totales y elementos de marca a POST /pdf/invoice y recibe un task_id. La api generar factura pdf construye el documento de forma asíncrona y lo entrega por webhook firmado o por un enlace firmado válido 24 horas.
¿Esta API es gratis?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Puedo agregar mi propio logo y colores de marca?
Sí. La solicitud acepta su logo y elementos de marca como acentos de color, así que la factura generada se ve como salida de su negocio y no de una plantilla genérica.
¿Calcula impuestos y totales automáticamente?
Sí. Envía las partidas y la tasa de impuesto aplicable, y el servicio calcula el subtotal, el desglose de impuestos y el total general, presentándolos como se espera en una factura formal.
¿Puedo generar facturas de forma masiva, por ejemplo a fin de mes?
Sí. Como el endpoint es asíncrono y devuelve un task_id por solicitud, puede generar un lote completo de facturas en paralelo desde una corrida de facturación o un cron.
¿Qué pasa si falla la generación de una factura?
Una tarea fallida nunca se cobra. Reintentamos tres veces con espera progresiva y, si el documento aún no puede construirse, recibe un error claro en lugar de un fallo silencioso o un cargo.
¿El resultado es una factura legalmente válida?
La API produce un PDF con formato correcto y desglose de partidas a partir de los datos que envía; que cumpla los requisitos legales de una jurisdicción específica depende de los campos e información fiscal que incluya, lo cual sigue siendo su responsabilidad.
¿Cuánto tiempo puedo acceder a la factura generada?
El enlace firmado permanece válido 24 horas, o puede recibir el PDF de inmediato por webhook firmado. Tras la ventana de retención se elimina y nunca se usa para entrenamiento.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/pdf/invoice \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/invoice", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/invoice",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/invoice", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/invoice", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"pdf": "https://ejemplo.com/documento.pdf"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.invoice",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
max_pages | 200 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |