Generi un certificato di completamento online
Crei un certificato di completamento coerente partendo da quattro dati essenziali: il nome del destinatario, il corso concluso o il risultato riconosciuto, l’organizzazione emittente e la data da mostrare.
Esegui gratis nel browser
Il generatore convalida questi valori e restituisce una struttura documentale con sezioni ordinate per intestazione, presentazione, destinatario, riconoscimento, risultato, ente e data. Usi il risultato come fonte affidabile per un modello HTML, un generatore PDF, un allegato e-mail, una piattaforma didattica o un sistema interno di registrazione.
Prepari dati accurati per il certificato
Inizi dal nome del destinatario esattamente come deve comparire sul certificato definitivo. Inserisca le maiuscole preferite, le iniziali, i suffissi professionali e i segni diacritici pertinenti, perché il generatore conserva i caratteri significativi eliminando soltanto gli spazi esterni o ripetuti. Indichi poi un titolo conciso per il corso o il risultato. Un titolo specifico, come Gestione avanzata dei progetti, comunica meglio di una formula vaga come Formazione completata. Inserisca il nome pubblico ufficiale dell’organizzazione emittente invece di un’abbreviazione interna, a meno che questa non faccia realmente parte del marchio. Fornisca infine la data nel formato atteso dal pubblico. La data viene trattata come testo da visualizzare, senza interpretazioni o conversioni. Controlli l’ortografia prima dell’invio. Il servizio non deduce nomi mancanti, non inventa qualifiche, non stabilisce se una persona abbia meritato un riconoscimento e non verifica l’autorità dell’organizzazione. I valori obbligatori vuoti vengono rifiutati e un destinatario assente produce sempre un errore di input non valido.
Comprenda la struttura del documento
La risposta è un certificato strutturato, non un’immagine o un PDF già renderizzato. Il layout dichiara orientamento orizzontale, allineamento centrato e un elenco ordinato di sezioni semantiche. Le sezioni identificano l’intestazione principale, la frase introduttiva, il nome del destinatario, la formula di riconoscimento, il titolo del risultato, l’organizzazione emittente e la data. Ogni informazione importante compare anche in un oggetto normalizzato dedicato, facilitando il collegamento per le applicazioni che non vogliono esaminare le sezioni. Un testo compatto riunisce i quattro valori per anteprime, indici, registri o riepiloghi accessibili. Poiché l’algoritmo non utilizza l’ora corrente, identificatori casuali, rete, modelli o stato nascosto, input normalizzati identici producono sempre lo stesso JSON. Il generatore organizza la gerarchia dei contenuti, ma non definisce caratteri tipografici, colori, sigilli, firme, accreditamento o validità legale. Il sistema di rendering resta responsabile dello stile, delle dimensioni, del testo eccedente, dei font, dei margini e di eventuali firme autorizzate.
Esegua il rendering e l’integrazione in sicurezza
Colleghi le sezioni restituite ai componenti del Suo modello nell’ordine indicato. Un’applicazione web può associare ogni ruolo a un elemento HTML e a un foglio di stile; un flusso documentale può inserire gli stessi valori in un modello DOCX o PDF; una piattaforma didattica può salvare i campi normalizzati accanto al proprio registro di completamento. Protegga sempre il testo in modo adatto al formato di destinazione, soprattutto quando i valori provengono da amministratori, elenchi caricati o sistemi esterni. Provi nomi personali e titoli lunghi con il font scelto, affinché le righe non coprano bordi, sigilli o aree di firma. Se servono numeri seriali, collegamenti di verifica, docenti, voti, scadenze o prove crittografiche, li aggiunga in un sistema controllato che possieda i relativi registri. Questa capacità non autentica i destinatari e non emette qualifiche autonomamente. Offre una struttura prevedibile per un certificato per richiesta a $0.002, separando l’assemblaggio deterministico da marchio, rendering, consegna, conservazione e conformità.
Casi d'uso
Completi un percorso formativo online
Trasformi un record di completamento in campi coerenti pronti per un rendering personalizzato.
Riconosca un risultato interno
Prepari un certificato strutturato per formazione, volontariato, laboratori o traguardi professionali.
Compili modelli documentali
Associ sezioni semantiche prevedibili a modelli HTML, DOCX, PDF, e-mail o di stampa.
Domande frequenti
Quanto costa ogni richiesta?
Ogni richiesta API costa $0.002.
Cosa accade se il nome è vuoto?
La richiesta non riesce e restituisce un errore di input, perché non è possibile creare un certificato senza destinatario.
Il risultato include un PDF o un’immagine?
No. Restituisce una struttura documentale JSON da inviare al sistema di rendering che Lei preferisce.
Il generatore verifica completamento o accreditamento?
No. Lei deve verificare il risultato e possedere l’autorità necessaria per emettere il certificato.
La data verrà riformattata?
No. Vengono normalizzati solo gli spazi superflui; la data rimane testo da visualizzare.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/doc/certificate-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"recipient_name":"Jordan Lee","achievement_title":"Advanced Project Management","issuing_organization":"Northwind Learning Institute","date":"July 25, 2026"}'const res = await fetch("https://api.kit.forhosting.com/doc/certificate-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"recipient_name": "Jordan Lee",
"achievement_title": "Advanced Project Management",
"issuing_organization": "Northwind Learning Institute",
"date": "July 25, 2026"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/certificate-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"recipient_name": "Jordan Lee",
"achievement_title": "Advanced Project Management",
"issuing_organization": "Northwind Learning Institute",
"date": "July 25, 2026"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/certificate-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"recipient_name":"Jordan Lee","achievement_title":"Advanced Project Management","issuing_organization":"Northwind Learning Institute","date":"July 25, 2026"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"recipient_name":"Jordan Lee","achievement_title":"Advanced Project Management","issuing_organization":"Northwind Learning Institute","date":"July 25, 2026"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/certificate-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"recipient_name": "Jordan Lee",
"achievement_title": "Advanced Project Management",
"issuing_organization": "Northwind Learning Institute",
"date": "July 25, 2026"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.certificate_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 25 |
max_pages | 200 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |