Certificate Generation API

Certificate Generation API: personalisierte Zertifikate in großer Zahl

Eine Vorlage, alle Teilnehmenden. Jeder Name auf Ihrer Liste kommt als druckfertiges Zertifikats-PDF und als teilbares Bild zurück — in einem Lauf, aus Ihrer eigenen Anwendung.

  • 50 kostenlose Renderings/Monat
  • Ohne Kreditkarte
  • PDF und PNG aus einer Vorlage

Was ist eine API zur Zertifikatserstellung?

Eine API zur Zertifikatserstellung macht aus einer Teilnehmerliste fertige Zertifikatsdateien. Sie gestalten eine Vorlage mit Siegel, Unterschrift und Layout; Ihre Anwendung sendet Name, Kurs und Datum als JSON, und die API liefert für jeden Eintrag ein druckfertiges PDF und ein teilbares Bild — einzeln oder für einen ganzen Jahrgang auf einmal.

Nicht die andere Art von Zertifikat. Diese Seite handelt von Zertifikaten, die Menschen erhalten und an die Wand hängen: Kursabschlüsse, Diplome, Teilnahmebescheinigungen, Auszeichnungen. X.509-Zertifikate für TLS, Code-Signing oder Geräteidentität sind ein anderes Feld, und nichts hier stellt sie aus. Dieselbe Seite beantwortet auch die Suche nach Zertifikatsgenerator-API — dasselbe, anders formuliert.

Certificate Generation API: die wichtigsten Fakten
EndpunktePOST https://api.dynamicdocumentapi.com/v1/pdf/from-template für das PDF, /v1/images/from-template für das Bild
EingabeTeilnehmerdaten als JSON oder ein CSV-Export Ihres Jahrgangs
AusgabePDF zum Drucken und PNG oder JPG zum Teilen, aus derselben Vorlage
LayoutA4, Letter oder ein eigenes Format, hoch oder quer; Ihre Schriften, Siegel, Unterschriftsbilder und Hintergrundgrafiken
CodesQR-Codes und 16 Barcode-Typen, als Vektorgrafik gerendert
MassenverarbeitungStapel aus einer JSON-Liste oder einer CSV-Datei, asynchron mit signiertem Webhook, sobald der Lauf fertig ist (Bezahltarife)
RenderzeitMedian 216 ms, p95 516 ms pro Zertifikat1
PreisFree: 50 Renderings/Monat. Bezahlt ab 15 €/Monat (jährlich abgerechnet) für 3.000 Renderings, automatisches Nachladen ab 6 € je 1.000 — ein PDF und ein Bild zählen als zwei

1. Gemessen über 1.664 erfolgreiche Renderings auf Engine 2026.4. total_ms = Wartezeit in der Warteschlange plus Verarbeitung im Worker, ohne API-Overhead und Netzwerkübertragung. Ein Jahrgang von 250 Zertifikaten wird als Stapel verarbeitet; die Gesamtdauer des Laufs hängt also von der Parallelität Ihres Tarifs ab, nicht von einem einzelnen Rendering.

Ein Zertifikat aus JSON erzeugen

Speichern Sie das Design einmal als Vorlage — Hintergrund, Siegel, Unterschrift, die Zeile für den Namen — und senden Sie dann einen Aufruf pro Person. Querformat A4 ist die übliche Wahl; jedes Feld im Beispiel stammt aus Ihren eigenen Daten. Um das Design selbst zu ändern, bearbeiten Sie die Zertifikatsvorlage in HTML und CSS und behalten jede Version.

curl https://api.dynamicdocumentapi.com/v1/pdf/from-template \
  -H "Authorization: Bearer $DYNAMIC_DOCUMENT_API_KEY" \
  -H "Idempotency-Key: CERT-2026-0481" \
  -H "Content-Type: application/json" \
  -d '{
    "template_id": "tpl_certificate",
    "data": {
      "recipient": "Ada Lovelace",
      "course": "Data Engineering 101",
      "completed_on": "2026-09-25",
      "hours": 24,
      "certificate_id": "CERT-2026-0481",
      "verify_url": "https://academy.example.com/verify/CERT-2026-0481",
      "signed_by": "Dr. Erin Cole, Head of Academy"
    },
    "pdf": {
      "paper": { "format": "A4" },
      "orientation": "landscape",
      "margin": { "top": "0mm", "right": "0mm", "bottom": "0mm", "left": "0mm" },
      "metadata": { "title": "Certificate — Ada Lovelace" }
    },
    "filename": "CERT-2026-0481.pdf"
  }'
// Node.js 18+: one participant → certificate PDF + shareable PNG
const API = "https://api.dynamicdocumentapi.com/v1";

async function render(path, body, key) {
  const res = await fetch(API + path, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.DYNAMIC_DOCUMENT_API_KEY}`,
      "Idempotency-Key": key,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(body),
  });
  if (!res.ok) throw new Error(await res.text());
  return (await res.json()).files[0].url;
}

export async function issueCertificate(data) {
  const base = { template_id: "tpl_certificate", data };
  const [pdf, image] = await Promise.all([
    render("/pdf/from-template", { ...base,
      pdf: { paper: { format: "A4" }, orientation: "landscape" },
    }, data.certificate_id + "-pdf"),
    render("/images/from-template", { ...base,
      image: { format: "png", viewport: { width: 1600, height: 1131 }, scale: 2 },
    }, data.certificate_id + "-png"),
  ]);
  return { pdf, image };
}
import csv, os
import requests

API = "https://api.dynamicdocumentapi.com/v1"
AUTH = {"Authorization": f"Bearer {os.environ['DYNAMIC_DOCUMENT_API_KEY']}"}

def issue_certificate(row: dict) -> str:
    """One participant → one certificate PDF. Returns a signed link."""
    res = requests.post(
        f"{API}/pdf/from-template",
        headers={**AUTH, "Idempotency-Key": row["certificate_id"]},
        json={
            "template_id": "tpl_certificate",
            "data": row,
            "pdf": {"paper": {"format": "A4"}, "orientation": "landscape"},
            "filename": f"{row['certificate_id']}.pdf",
        },
        timeout=60,
    )
    res.raise_for_status()
    return res.json()["files"][0]["url"]

with open("cohort.csv") as f:
    for row in csv.DictReader(f):
        print(row["recipient"], issue_certificate(row))
<?php
function issueCertificate(array $participant): string
{
    $ch = curl_init('https://api.dynamicdocumentapi.com/v1/pdf/from-template');
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER     => [
            'Authorization: Bearer ' . getenv('DYNAMIC_DOCUMENT_API_KEY'),
            'Idempotency-Key: ' . $participant['certificate_id'],
            'Content-Type: application/json',
        ],
        CURLOPT_POSTFIELDS     => json_encode([
            'template_id' => 'tpl_certificate',
            'data'        => $participant,
            'pdf'         => [
                'paper'       => ['format' => 'A4'],
                'orientation' => 'landscape',
            ],
            'delivery'    => 'binary', // attach it to the completion email
        ]),
    ]);
    return curl_exec($ch); // PDF bytes
}

Die Zertifikats-ID dient zugleich als Idempotenzschlüssel. Löst eine Kursplattform ihren Abschluss-Webhook zweimal aus, bekommt die Person trotzdem genau ein Zertifikat: Der zweite Aufruf liefert 24 Stunden lang das erste Rendering. Mit Testschlüsseln spielen Sie den ganzen Ablauf mit Wasserzeichen-Ausgabe durch, ohne Ihr Kontingent anzutasten.

Eine Vorlage, zwei Ausgaben: drucken und teilen

Ein Zertifikat hat zwei Leben. Das eine ist die Datei, die ausgedruckt oder einer Bewerbung beigelegt wird; das andere ist das Bild, das am selben Abend gepostet wird. Beide stammen aus derselben Vorlage, das Design wird also nur einmal gepflegt.

PDF für den Druck

A4 oder Letter quer, ohne Ränder für einen randlosen Hintergrund, Vektortext, der bei jedem Zoom scharf bleibt. Ergänzen Sie metadata, damit die Datei im PDF-Reader einen richtigen Titel zeigt, und protect, wenn sie nicht bearbeitet werden soll.

"paper": { "format": "A4" },
"orientation": "landscape",
"margin": { "top": "0mm", "right": "0mm",
  "bottom": "0mm", "left": "0mm" }

PNG oder JPG zum Teilen

Dieselbe Vorlage über die Image Generation API ergibt ein Bild für die Abschluss-E-Mail, die Profilseite oder einen Social-Post. Wählen Sie den Viewport und dann scale 1 bis 3 für eine Retina-scharfe Datei.

"image": { "format": "png", "scale": 2,
  "viewport": { "width": 1600, "height": 1131 } }

Ihre Schriften, Siegel und Unterschriften

Laden Sie Schreibschrift, Unterschrifts-Scan, Siegel und Hintergrund als Vorlagen-Assets hoch oder binden Sie eine Webfont über den Proxy ein. Die Engine wartet vor der Erfassung auf Schriften und die Dekodierung der Bilder, nichts ist also je halb gezeichnet.

Namen aus aller Welt

Akzente sowie griechische, kyrillische, arabische und CJK-Namen erscheinen mit den richtigen Zeichen, solange die Schrift sie enthält. Daten folgen über Unicode CLDR der Sprache der Person, sodass „25. September 2026" und „2026年9月25日" aus derselben Vorlage kommen.

Ein ganzer Jahrgang in einem Lauf

Zertifikate kommen in Schüben: Ein Kurs endet, eine Konferenz schließt, ein Quartal geht zu Ende. Drei Teile der API sind für genau diese Art Arbeit gebaut.

  1. Liste senden

    Ein Stapel nimmt ein JSON-Array oder einen CSV-Export direkt aus Ihrem LMS: eine Zeile pro Person, jeweils mit eigenem Namen, Datum und eigener Zertifikats-ID.

  2. Im Hintergrund rendern

    Der Lauf ist asynchron, Ihre Anfrage kehrt also sofort zurück. Jedes Zertifikat bekommt einen eigenen Dateinamen, und Fehler werden je Zeile gemeldet, statt den ganzen Stapel scheitern zu lassen.

  3. Dateien abholen

    Ein signierter Webhook meldet sich, wenn der Stapel fertig ist. Nehmen Sie die signierten Links oder führen Sie die PDFs für die Druckerei zu einer Datei zusammen.

Webhooks werden nach der Standard-Webhooks-Spezifikation mit HMAC-SHA256 signiert, und eine Zustellung, die Ihr Server ablehnt, wird bis zu achtmal über etwa 28 Stunden wiederholt. Stapel gibt es in Bezahltarifen. Dateien bleiben so lange, wie Sie es mit retention_days festlegen, und Sie können sie jederzeit löschen — nützlich, wenn ein Zertifikat den vollen Namen einer Person trägt.

Prüfung: Der QR-Code führt zu Ihrem Produkt

Ein Zertifikat ist so viel wert, wie Fremde es prüfen können. Die API rendert den Code; die Antwort kommt aus Ihrem System, denn dort liegen die Daten.

Was die Vorlage macht

Sie erzeugen eine eindeutige, schwer zu erratende Zertifikats-ID, bauen die URL Ihrer Prüfseite und übergeben sie mit den Daten. Die Vorlage macht daraus einen scharfen Vektor-QR-Code, daneben die ID als lesbarer Text für alle, die sie eintippen.

{{ verify_url | qrcode(size="24mm", ecc="Q") }}
{{ certificate_id }}
→ https://academy.example.com/verify/CERT-2026-0481

Was Ihr Produkt macht

Diese URL zeigt eine Seite mit Empfänger, Kurs, Datum und aktuellem Status. Das sind ein paar Zeilen in der App, die ohnehin weiß, wer was abgeschlossen hat — und die maßgebliche Quelle bleibt bei Ihnen statt bei einem Dokumentendienst.

Was das nicht ist

Wir betreiben kein öffentliches Prüfregister, stellen keine Open Badges aus, verwalten keine Empfängerprofile und widerrufen keine Nachweise im Nachhinein. Wenn Sie das brauchen, ist eine Credential-Plattform das richtige Werkzeug, und der Vergleich unten sagt das offen. Sechzehn Barcode-Typen stehen ebenfalls bereit, wenn ein Scanner am Einlass etwas anderes als einen QR-Code erwartet.

Wer Zertifikate auf diese Weise erzeugt

Kurs- und Schulungsplattformen

Das Abschlussereignis gibt es in Ihrem Produkt schon. Einen Aufruf später hat die lernende Person ein Zertifikat im Dashboard und ein Bild in der Glückwunsch-E-Mail.

Konferenzen und Events

Teilnahmebescheinigungen und Fortbildungsnachweise für alle, die eingecheckt haben — erzeugt am Abend des Eventendes statt eine Woche später von Hand.

Compliance- und Sicherheitsschulungen

Der Nachweis, dass ein Techniker die jährliche Auffrischung bestanden hat: ein festes Layout, eine Zertifikats-ID, ein Ablaufdatum auf dem Dokument und eine Kopie in Ihrem Prüfprotokoll.

Mitglieds- und Berechtigungsausweise

Derselbe Mechanismus druckt einen Ausweis statt eines Zertifikats: ein eigenes Papierformat, ein Foto, ein Gültigkeitsdatum und ein scanbarer Code.

Zertifikats-API oder Credential-Plattform?

Beides ist eine vernünftige Wahl, und beide lösen unterschiedliche Hälften des Problems. Hier die ehrliche Aufteilung.

Certificate Generation API im Vergleich mit einer Credential-Plattform
Frage Credential-Plattform Dynamic Document API
GestaltungsfreiheitDeren Editor und ThemesIhr eigenes HTML und CSS, jedes Layout, das Sie für den Druck bauen können
Gehostete PrüfseiteEnthaltenNein — der QR-Code führt zu einer Seite in Ihrem Produkt
Nachweis widerrufenEingebautIhre Datenbank entscheidet; die Datei selbst ist nur eine Datei
Open Badges, Wallets, EmpfängerprofileEingebautNicht angeboten
Wo die Empfängerdaten liegenAuf der PlattformIn Ihrem System; wir erhalten nur, was ein Rendering braucht
Bild zum Teilen in sozialen NetzwerkenMeist ein festes FormatJede Größe, aus derselben Vorlage
Kosten bei 5.000 ZertifikatenMeist pro NachweisEtwa 0,0031 € pro Rendering im Growth-Tarif
Am besten, wennNachweise von Dritten prüfbar und widerrufbar sein müssenIhr Produkt die Daten besitzt und in großer Zahl schöne Dateien braucht

Was das Erzeugen eines Zertifikats kostet

Free

€0

50 Renderings pro Monat — genug, um das Zertifikat zu gestalten und einen kleinen Jahrgang komplett durchzuspielen.

Starter

€15 / Monat

3.000 Renderings pro Monat, jährlich abgerechnet (19 € bei monatlicher Abrechnung). Etwa 0,005 € pro Datei.

Ein Rendering ist eine zurückgegebene Datei (bis zu 50 Seiten oder eine Bildgröße); wer ein PDF und ein Bild bekommt, verbraucht also zwei. Bei 15.000 Renderings kostet der Growth-Tarif 47 € bei jährlicher Abrechnung, etwa 0,0031 € pro Stück — rund 0,006 € pro Person mit beiden Dateien. Siehe die Kosten pro Zertifikat in jedem Tarif.

FAQ

Certificate Generation API: häufige Fragen

Geht es um SSL/TLS-Zertifikate?

Nein. Diese API erzeugt Dokumente, die Menschen erhalten: Kursabschlusszertifikate, Diplome, Auszeichnungen und Teilnahmebescheinigungen, als PDF- und Bilddateien. X.509-Zertifikate für TLS, Code-Signing oder Geräteidentität sind ein ganz anderes Feld und werden hier nicht ausgestellt.

Kann ich Zertifikate für Hunderte Teilnehmende auf einmal erzeugen?

Ja. Senden Sie in Bezahltarifen einen Stapel aus einer JSON-Liste oder einem CSV-Export Ihres Jahrgangs: eine Zeile pro Person, ein Zertifikat pro Zeile. Große Läufe laufen asynchron, und ein signierter Webhook meldet Ihrem System, wann der Stapel fertig ist — nichts wartet an einer offenen Verbindung.

Können Zertifikate einen QR-Code zur Prüfung enthalten?

Ja. Vorlagen rendern QR-Codes und 16 Barcode-Typen als scharfe Vektorgrafik. Sie erzeugen eine eindeutige Zertifikats-ID, bauen eine URL zu Ihrer eigenen Prüfseite und übergeben sie an die Vorlage. Die Seite, die „Ist das echt?" beantwortet, bleibt in Ihrem Produkt, wo die Daten liegen.

Bekomme ich aus einer Vorlage sowohl ein PDF als auch ein Bild?

Ja. Dieselbe Vorlage rendert über den PDF-Endpunkt eine druckfertige Datei und über den Bild-Endpunkt ein PNG oder JPG. Legen Sie für das Bild Viewport und eine Skalierung von 1 bis 3 fest — so dient dasselbe Design dem Druck und dem Teilen in sozialen Netzwerken.

Kann ich eigene Schriften und Unterschriftsbilder verwenden?

Ja. Laden Sie Schriften, Unterschrifts-Scans, Siegel und Hintergrundgrafiken als Vorlagen-Assets hoch oder binden Sie eine Webfont über den Font-Proxy ein. Die Engine wartet vor der Erfassung auf Schriften und die Dekodierung der Bilder, eine Unterschrift fehlt also nie im ersten Rendering.

Funktioniert das mit meinem LMS oder meiner Event-Plattform?

Jedes System, das eine HTTP-Anfrage senden kann, kann die API aufrufen — meist derselbe Code, der einen Kurs bereits als abgeschlossen markiert. Ein fertiges LMS-Plugin gibt es nicht: Sie machen aus dem Abschlussereignis Zertifikatsdaten und rufen den Endpunkt aus Ihrem Backend oder Ihrem Automatisierungstool auf.

Worin unterscheidet sich das von einer Credential-Plattform?

Credential-Plattformen wie Certifier oder Accredible hosten den Nachweis: eine öffentliche Prüfseite, Widerruf, Empfängerprofile, Wallets und Open Badges. Diese API erzeugt die Dateien. Brauchen Sie widerrufbare Nachweise mit gehostetem Register, nehmen Sie eine Plattform. Hat Ihr Produkt die Daten schon und Sie brauchen schöne Zertifikate in großer Zahl, nehmen Sie die API.

Erstellen Sie Ihr erstes Zertifikat kostenlos

50 Renderings im Monat im Free-Tarif, ohne Kreditkarte, automatisches Nachladen in Bezahltarifen.

Kostenlos starten