Crear certificados
La API Generar Certificados produce un diploma o certificado PDF listo para imprimir a partir del nombre de un destinatario, un curso o logro, y una fecha — una llamada por persona, sin importar cuántas personas tenga. Es la pieza que convierte 'todos los que terminaron el curso' en una pila de documentos con nombre individual, sin que nadie abra una herramienta de diseño.
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.
Una plantilla, cientos de documentos únicos
Un certificado solo se vuelve real cuando lleva un nombre específico impreso, y ahí es donde los flujos manuales se traban: una herramienta de diseño produce una plantilla hermosa, pero convertirla en quinientos PDF con nombre individual es una tarea que nadie disfruta. La api generar certificados cierra esa brecha — el diseño se mantiene constante, el destinatario, el logro y la fecha cambian en cada llamada, y el resultado es un documento correcto cada vez.
Qué envía y qué recibe
La solicitud lleva el nombre del destinatario, el título del curso o logro que se reconoce, la fecha de finalización y los datos de firmante u organización emisora que quiera impresos. El servicio lo presenta como un PDF de certificado formal, respetando las convenciones visuales de un diploma — título centrado, nombre del destinatario con protagonismo, una declaración clara de qué se obtuvo y cuándo.
La mecánica de generación y entrega
Llama a POST /pdf/certificate y recibe de inmediato un task_id, sin ninguna conexión esperando a que termine el proceso. La generación ocurre de forma asíncrona en nuestra red global, y en cuanto el certificado está listo le avisamos mediante un webhook firmado — ideal para una plataforma educativa que quiere enviar el diploma por correo en el instante en que un curso se marca como completado — o mediante un enlace firmado válido 24 horas cuando alguien solo necesita descargar una copia.
De la tradición del aula a la emisión automatizada
Los certificados de finalización parten de una idea simple: un registro formal y presentable de que algo se aprendió o se logró, hecho para conservarse y mostrarse. Los cursos en línea, talleres y exámenes de certificación heredaron esa tradición pero multiplicaron el volumen — una cohorte de mil estudiantes que termina a la vez necesita mil documentos individualmente correctos, no una sola plantilla compartida. Como cada llamada es independiente, una plataforma de cursos puede disparar la generación en el instante en que un estudiante cruza el umbral de finalización, procesar toda una cohorte en la graduación, o reemitir un solo certificado corregido sin tocar el de nadie más.
Precio y tratamiento de los datos
La tarifa es de $0.040 por solicitud más $0.001 por documento, publicada y predecible, sin tokens ni créditos inventados. Las generaciones fallidas nunca se cobran; reintentamos tres veces y devolvemos un error claro en lugar de un fallo silencioso. El acceso requiere saldo prepago — sin plan gratuito ni prueba — lo que mantiene el endpoint rápido y libre de abuso; las solicitudes sin saldo reciben un 402. Los datos del destinatario se eliminan tras la ventana de retención y nunca se usan para entrenamiento.
Qué puede hacer con ella
Diplomas de finalización de curso
Una plataforma de educación en línea emite un certificado personalizado en el instante en que un estudiante termina el último módulo, enviado automáticamente por webhook.
Asistencia a talleres y eventos
El organizador de una conferencia o taller genera certificados de asistencia para todos los inscritos en un solo lote justo después de que termina el evento.
Cumplimiento de capacitación interna
Un sistema de recursos humanos emite un certificado de finalización por cada empleado que completa una capacitación obligatoria, dejando un documento fechado tanto para el empleado como para el registro de cumplimiento.
Resultados de exámenes de certificación
Una entidad certificadora genera un certificado oficial para cada candidato que aprueba un examen, alineado con su registro de puntaje sin trabajo manual de documentos.
Preguntas frecuentes
¿Cómo genero un certificado en PDF con una API?
Envía JSON con el nombre del destinatario, el logro y la fecha a POST /pdf/certificate y recibe un task_id. La api generar certificados 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 emitir certificados para toda una cohorte a la vez?
Sí. Como el endpoint es asíncrono y devuelve un task_id independiente por llamada, puede disparar una solicitud por cada estudiante de una cohorte y generarlos todos en paralelo.
¿Puedo incluir una firma o la organización emisora?
Sí. El payload acepta nombres de firmantes y datos de la organización emisora, para que el certificado se lea como emitido oficialmente y no como algo genérico.
¿Qué formatos o diseños admite?
El endpoint devuelve un PDF de certificado formal y listo para imprimir siguiendo las convenciones estándar de un diploma; los campos que envía controlan el título, el destinatario, el logro y la fecha que se muestran.
¿Qué pasa si falla la generación de un certificado?
Una tarea fallida nunca se cobra. Reintentamos tres veces antes de devolver un error claro, así que nunca paga por un documento que no se produjo.
¿Puedo reemitir un solo certificado sin regenerar todo el lote?
Sí. Cada certificado es su propia solicitud independiente, así que corregir o reemitir el documento de una persona nunca requiere tocar el de nadie más.
¿Cuánto tiempo puedo acceder al certificado 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/certificate \
-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/certificate", {
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/certificate",
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/certificate", 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/certificate", 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.certificate",
"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. |