Schnittstelle
Nachweise direkt aus Ihren Systemen.
Mit der Schnittstelle stellt Ihre Kursverwaltung, Ihr Lernportal oder Ihre Software Nachweise automatisch aus, zum Beispiel sobald jemand die Prüfung bestanden hat. Abrufen, Widerrufen und Herunterladen von PDF und QR-Code gehen genauso. Enthalten ab dem Paket Pro.
Anmeldung
Ein Schlüssel je System.
Personen, die das Konto verwalten, erstellen Schlüssel unter Konto, Schnittstelle. Jeder Schlüssel wird nur einmal angezeigt, beginnt mit vat_ und gehört zum Aussteller. Senden Sie ihn bei jeder Anfrage im Kopf Authorization. Schlüssel gehören auf den Server, nie in eine Webseite oder App. Ein widerrufener Schlüssel ist sofort gesperrt.
curl https://valid.at/api/v1/aussteller \
-H "Authorization: Bearer vat_IHR_SCHLUESSEL"Endpunkte
Was die Schnittstelle kann.
| Anfrage | Zweck |
|---|---|
| GET /api/v1/aussteller | Aussteller, Paket und Stand des Kontingents |
| POST /api/v1/aussteller/nachweise | Nachweis ausstellen |
| GET /api/v1/aussteller/nachweise | Nachweise auflisten; Filter status, referenz, angelegtSeit; seitenweise mit seite und proSeite |
| GET /api/v1/aussteller/nachweise/{code} | Nachweis mit allen Angaben abrufen |
| POST /api/v1/aussteller/nachweise/{code}/widerruf | Widerrufen mit Grund, der auf der Prüfseite erscheint |
| GET /api/v1/aussteller/nachweise/{code}/dateien/pdf | PDF aus der Vorlage; ebenso qr.svg, qr.png und die Badges |
Die vollständige Beschreibung gibt es maschinenlesbar als OpenAPI 3.1, zum Beispiel für Postman oder zum Erzeugen eines Clients.
Moodle
Fertig für Moodle.
Das Plugin „Nachweise mit valid.at“ stellt bei jedem Kursabschluss in Moodle automatisch einen Nachweis aus. Je Kurs legen Sie Art des Nachweises und Gültigkeit fest. Die Teilnehmenden erhalten das PDF per E-Mail und finden ihre Nachweise in Moodle im Profil. Auf der Kursseite sehen Sie alle Nachweise, widerrufen sie und stellen sie für frühere Abschlüsse aus. Für Moodle 4.1 bis 5.3, kostenlos zum Download.
Ausstellen
Ein Nachweis, eine Anfrage.
Der Nachweis ist sofort prüfbar. Die Antwort enthält Code, Prüfadresse, den persönlichen Link für den Inhaber und die Adressen von PDF und QR-Code. Mit einer E-Mail-Adresse des Inhabers schickt valid.at ihm wie beim Formular eine Nachricht; mit "benachrichtigen": false übernehmen Sie das selbst.
curl https://valid.at/api/v1/aussteller/nachweise \
-H "Authorization: Bearer vat_IHR_SCHLUESSEL" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: kurs-2026-0412-teilnehmer-17" \
-d '{
"inhaber": "Maria Muster",
"inhaberEmail": "maria.muster@example.com",
"nachweis": "Elektrotechnisch unterwiesene Person (EuP)",
"ausgestelltAm": "2026-10-01",
"gueltigMonate": 12,
"referenz": "2026-0412"
}'HTTP/1.1 201 Created
{
"id": "4f3c…",
"code": "K7M2X9QD",
"status": "gueltig",
"inhaber": "Maria Muster",
"nachweis": "Elektrotechnisch unterwiesene Person (EuP)",
"ausgestelltAm": "2026-10-01",
"gueltigBis": "2027-10-01",
"pruefseite": "https://valid.at/K7M2X9QD",
"kurzadresse": "valid.at/K7M2-X9QD",
"inhaberLink": "https://valid.at/inhaber/…",
"pdf": {
"pruefwert": "9b1e…",
"quelle": "erzeugt",
"url": "https://valid.at/api/v1/aussteller/nachweise/K7M2X9QD/dateien/pdf"
},
…
}| Feld | Bedeutung |
|---|---|
| inhaber | Vollständiger Name, Pflicht |
| nachweis | Art des Nachweises, Pflicht |
| ausgestelltAm | Datum JJJJ-MM-TT, Pflicht |
| gueltigBis | Datum JJJJ-MM-TT; leer oder null für unbefristet |
| gueltigMonate | Statt gueltigBis: Gültigkeit in Monaten ab ausgestelltAm |
| inhaberEmail | Für die Nachricht an den Inhaber und Erinnerungen vor Ablauf |
| arbeitgeberEmail | Nur für Erinnerungen vor Ablauf, erscheint nirgends öffentlich |
| referenz | Interne Nummer, klein auf dem PDF |
| zusatztext | Text nur auf dem PDF, höchstens 600 Zeichen |
| true (Standard) erzeugt das PDF aus Ihrer Vorlage; false für eigene Vorlagen mit QR-Code | |
| benachrichtigen | true (Standard) informiert den Inhaber per E-Mail |
Wiederholungen
Nie doppelt ausstellen.
Senden Sie mit jedem neuen Nachweis eine eigene eindeutige Kennung im Kopf Idempotency-Key, zum Beispiel aus Kurs und Teilnehmer. Kommt dieselbe Kennung noch einmal, etwa nach einem Verbindungsabbruch, liefert valid.at den bereits ausgestellten Nachweis mit Status 200 und dem Kopf Idempotent-Replayed: true. So entsteht nie ein zweiter Nachweis.
Fehler und Grenzen
Klare Antworten.
Fehler kommen als JSON mit fehler und, wo es um Felder geht, felder mit den Gründen je Feld. Unbekannte Felder werden abgelehnt, damit Tippfehler auffallen.
| Status | Bedeutung |
|---|---|
| 400 | Felder fehlen oder sind ungültig, oder kein gültiges JSON |
| 401 | Schlüssel fehlt, ist ungültig oder widerrufen |
| 403 | Paket ohne Schnittstelle, Konto noch nicht freigeschaltet oder Kontingent im Paket Start erschöpft |
| 404 | Kein Nachweis mit diesem Code bei Ihrem Konto |
| 413 | Anfrage größer als 64 KB |
| 415 | Nicht als JSON gesendet |
| 429 | Mehr als 120 Anfragen pro Minute und Schlüssel; Retry-After nennt die Wartezeit in Sekunden |
Alles, was über die Schnittstelle geschieht, steht im Protokoll Ihres Kontos mit der Bezeichnung des Schlüssels.
Prüfen
Prüfen geht ohne Schlüssel.
Wer einen Nachweis nur prüfen will, braucht kein Konto: Die öffentliche Abfrage GET /api/v1/nachweise/{code} liefert Status und Eckdaten mit digitaler Signatur und eine signierte Statusauskunft. Mehr dazu unter Sicherheit.