Emitir un recibo PDF
La API Generar Recibo PDF toma un payload JSON pequeño — quién paga, los conceptos, el monto pagado, la fecha — y devuelve un recibo PDF terminado que el cliente puede guardar o imprimir. Está pensada para el instante justo después de que el dinero cambia de manos, cuando alguien espera comprobante de pago en segundos, no después de abrir un ticket de soporte.
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.
Un recibo es prueba, y la prueba no debería esperar
Un recibo es más pequeño y simple que una factura, pero carga más urgencia: es la confirmación que el cliente quiere apenas se acredita un pago, ya sea una venta en punto de venta, un cobro puntual por un servicio o una donación. La api generar recibo pdf existe para que esa confirmación se genere automáticamente, dentro del mismo flujo que procesa el pago, en lugar de ser un agregado hecho después con una captura de pantalla del panel.
Cómo se ve el payload
Envía los datos de quien paga, el monto recibido, el método de pago, una breve descripción o lista de conceptos y la fecha de la transacción. El servicio lo presenta como un PDF compacto y legible — el tipo de documento que espera un cliente cuando toca 'envíenme un recibo', no un documento de varias páginas con tablas de impuestos y condiciones. Es deliberadamente más liviano que una factura o un contrato, porque un recibo tiene una sola función: confirmar que un pago específico ocurrió.
Cómo funcionan la solicitud y la entrega
Llama a POST /pdf/receipt y recibe de inmediato un task_id; no hay ninguna conexión abierta que sostener mientras el documento se genera. En cuanto el PDF está listo en nuestra red global, le avisamos por webhook firmado — la opción natural para un flujo de cobro que necesita adjuntar el recibo a un correo de confirmación en tiempo real — o puede obtenerlo mediante un enlace firmado válido 24 horas si una persona solo necesita una copia puntual.
Dónde encajan los recibos en la automatización diaria
Está pensada para correr silenciosamente detrás de un flujo de pago: un sistema de punto de venta que emite un recibo por transacción, una plataforma de donaciones que confirma un aporte en el instante en que se captura, un marketplace que envía un recibo de pago a un vendedor. Como cada llamada es independiente y devuelve su propio task_id, un punto de venta con mucho tráfico puede disparar cientos de estas en paralelo sin que se bloqueen entre sí.
Qué cuesta y cómo se manejan los datos
El precio 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. El acceso requiere saldo prepago, sin plan gratuito ni prueba, que es justo lo que mantiene el endpoint rápido y libre de abuso — las solicitudes sin saldo simplemente reciben un 402. Los datos del recibo se eliminan tras la ventana de retención y nunca se usan para entrenamiento.
Qué puede hacer con ella
Confirmación en punto de venta
Un sistema de cobro emite un recibo PDF en el instante en que se autoriza un pago con tarjeta o billetera digital y lo envía por correo automáticamente.
Comprobante de donación
La página de donaciones de una organización genera un recibo apenas se captura un aporte, dándole al donante comprobante sin seguimiento manual.
Confirmación de pago a vendedores
Un marketplace envía a cada vendedor un recibo por su pago, con el desglose de la transacción correspondiente, justo cuando se inicia la transferencia.
Pagos puntuales por servicios
Una plataforma de freelancers emite un recibo por una sola llamada de servicio pagada, dándole al cliente algo que archivar sin un flujo completo de facturación.
Preguntas frecuentes
¿Cómo genero un recibo en PDF con una API?
Envíe JSON con quién paga, el monto, el método y la fecha a POST /pdf/receipt y recibe un task_id. La api generar recibo 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.
¿En qué se diferencia un recibo de una factura aquí?
Un recibo confirma un pago que ya ocurrió, con un formato más liviano que una factura; una factura solicita el pago e incluye impuestos y condiciones. Use POST /pdf/receipt cuando el dinero ya se movió.
¿Puedo generar recibos de forma masiva?
Sí. El endpoint es asíncrono y cada llamada devuelve su propio task_id, así que un sistema de cobro o un proceso por lotes puede emitir muchos recibos en paralelo sin esperarse entre sí.
¿Puedo agregar mi logo o los datos de mi negocio?
Sí. Puede incluir el nombre de su negocio y datos identificativos en el payload, para que el recibo se lea como emitido por su negocio específico y no por una plantilla genérica.
¿Qué pasa si falla la generación de un recibo?
Una tarea fallida nunca se cobra. Reintentamos tres veces y, si el documento aún no puede construirse, recibe un error claro en lugar de un fallo silencioso o un cargo.
¿Qué tan rápido llega después de un pago?
La llamada devuelve un task_id de inmediato y el PDF terminado suele seguir en cuestión de instantes; el webhook firmado es la vía más rápida para adjuntar el recibo a un correo de confirmación en tiempo real.
¿Cuánto tiempo puedo acceder al recibo generado?
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/receipt \
-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/receipt", {
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/receipt",
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/receipt", 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/receipt", 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.receipt",
"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. |