API-Referenz
/api/v1/license-plate-checksKennzeichen prüfen
Die Antwort enthält den Checkstatus und die Verfügbarkeit der Kombination. Mit Testschlüssel wird kein Behördenportal aufgerufen. Erforderlich ist license_plates:write.
Prüft eine konkrete oder wildcard-basierte Kennzeichenkombination im zuständigen Behördenkontext.
Parameter
Idempotency-KeyheaderPflichtEindeutiger Schlüssel für diesen Check.
Beispiel:plate-check-hb-ab-123-v1Request-Body
Der Body wird als application/json übertragen. Verwenden Sie ausschließlich die dokumentierten Feldnamen.
Request-Felder
| Feld | Typ | Angabe | Beschreibung |
|---|---|---|---|
postal_code | string | Pflicht | Fünfstellige deutsche Postleitzahl. |
location_id | integer | Optional | Orts-ID aus der Zulassungsstellenabfrage. |
city | string | Optional | Ort als Alternative zu location_id. |
plate.district | string | Pflicht | Unterscheidungszeichen mit ein bis drei Buchstaben. |
plate.letters | string | Pflicht | Buchstabenteil; im Wildcard-Modus sind ? und * zulässig. |
plate.number | string | Pflicht | Ziffernteil; im Wildcard-Modus sind ? und * zulässig. |
vehicle_type | enum | Optional | car, motorcycle oder trailer; Standard car. |
marker | enum | Optional | none, electric oder historic; Standard none. |
season.enabled | boolean | Optional | Aktiviert ein Saisonkennzeichen. |
season.start_month, season.end_month | integer | Bedingt | Bei aktiviertem Saisonkennzeichen: Beginn und Ende zwischen 1 und 12. |
search_mode | enum | Optional | exact oder wildcard; Standard exact. |
test_scenario | enum | Optional | Nur im Testmodus: available, unavailable oder indeterminate. |
{
"postal_code": "28195",
"city": "Bremen",
"plate": {
"district": "HB",
"letters": "AB",
"number": "123"
},
"vehicle_type": "car",
"marker": "none",
"season": {
"enabled": false
},
"search_mode": "exact"
}Responses
200Check abgeschlossen; availability enthält das Ergebnis.
422Kombination, Bezirk oder Fahrzeugkonfiguration ist unzulässig.
503Der API-Dienst ist vorübergehend nicht verfügbar. Ein nicht belastbarer Portalcheck wird dagegen als 200 mit availability: indeterminate zurückgegeben.
Response-Body
Content-Type: application/json. Die erfolgreiche Antwort enthält die nachfolgend beschriebenen Felder.
Response-Felder
| Feld | Typ | Angabe | Beschreibung |
|---|---|---|---|
id | string | Immer | Öffentliche Check-ID. |
object | string | Immer | Konstanter Wert license_plate_check. |
environment | enum | Immer | test oder live. |
livemode | boolean | Immer | true für Live-Ressourcen. |
status | string | Immer | Aktuell completed. |
availability | enum | Immer | available, unavailable oder indeterminate. |
plate | object | Immer | Normalisierte Kennzeichenkombination mit Markierung, Fahrzeugtyp und Saison. |
reservable | boolean | Immer | Gibt an, ob genau dieser Check reserviert werden kann. |
expires_at | date-time | Immer | Ende des Gültigkeitsfensters. |
message | string | Optional | Lesbare Ergebnismeldung. |
reason | string | Optional | Maschinenlesbarer Grund für das Ergebnis. |
duration_ms | integer | Optional | Dauer des Checks in Millisekunden. |
office | object | Optional | Verwendeter Behördenkontext. |
candidates | array | Optional | Einzelne reservierbare Checks aus einer Wildcard-Suche. |
created_at, updated_at | date-time | Immer | Erstellungs- und Änderungszeitpunkt. |
{
"id": "lpc_test_3c4d5e6f708192a3b4c5d6e7",
"object": "license_plate_check",
"environment": "test",
"livemode": false,
"status": "completed",
"availability": "available",
"plate": {
"district": "HB",
"letters": "AB",
"number": "123",
"formatted": "HB AB 123",
"marker": "none",
"vehicle_type": "car",
"season": {
"enabled": false,
"start_month": null,
"end_month": null
}
},
"reservable": true,
"expires_at": "2026-08-26T10:50:00+02:00",
"message": "Das Wunschkennzeichen ist verfügbar.",
"created_at": "2026-08-26T10:20:00+02:00",
"updated_at": "2026-08-26T10:20:00+02:00"
}Verfügbarkeit auswerten
Bezirk prüfen
license_plate_wrong_district bedeutet, dass die Kombination nicht zur gewählten Zulassungsstelle passt. Bezirk oder Zulassungsstelle müssen korrigiert werden.
Wildcard-Suche liefert reservierbare Kandidaten
Mit search_mode: wildcard dürfen plate.letters und plate.number die Zeichen ? und * enthalten. Der Sammelcheck selbst ist nicht reservierbar. Wählen Sie einen Eintrag aus candidates und verwenden Sie dessen id anschließend als check_id der Reservierung.
Deterministische Testszenarien
Nur mit einem dz_test_…-Schlüssel dürfen Sie optional test_scenario als available, unavailable oder indeterminate senden. Ohne Angabe verwendet der Testmodus available. Produktive Requests dürfen dieses Feld nicht enthalten.