Umschreibung (UG)
Schreibt ein zugelassenes Fahrzeug um: auf einen neuen Halter, in einen anderen Zulassungsbezirk oder beides.
Abgrenzung. Bleibt der Halter derselbe und ändert sich nur seine Anschrift im selben Bezirk, ist es eine Halteränderung. Ist das Fahrzeug außer Betrieb gesetzt, ist es eine Wiederzulassung.
Endpunkt
POST /vehicleTransfers/transfers — Ereignistyp VEHICLE_TRANSFER_XKFZ_EVENT.
Umschreibung, Wiederzulassung, Neu- und Tageszulassung teilen sich ein Anfrageformat (VehicleRegistrationRequest); der Geschäftsvorfall steckt im Endpunkt, nicht im Rumpf.
Pflichtfelder und Regeln
Für alle Zulassungsvorgänge:
| Feld | Regel |
|---|---|
email | Pflicht, 3–255 Zeichen |
customization.vehicleIdentificationNumber | Pflicht |
customization.insuranceConfirmationNumber | Pflicht; eVB-Nummer, genau sieben Ziffern oder Buchstaben |
customization.vehicleRegistrationCertificateNumber | optional; Nummer der ZB I, 18–20 Zeichen, Großbuchstabe am Anfang, danach Ziffern, Großbuchstaben, - oder /; sonst 400 |
customization.vehicleRegistrationCertificateImprintNumber | optional; Druckstücknummer der ZB I — Form und 400 wie bei der Halteränderung |
customization.vehicleRegistrationCertificatePartII.number | optional; Ziffern und Großbuchstaben, höchstens 20, oder die amtlichen Platzhalter OHNEZBII bzw. ohne-ZF- (genau so geschrieben); sonst 400 |
vehicleHolder | Pflicht, außer bei powerOfAttorney.processId — der künftige Halter, Regeln wie bei der Halteränderung; Behörde, Einzelunternehmer und Vereinigung über partyType |
vehicleHolder.occupationKey | Berufs- bzw. Wirtschaftszweigschlüssel, drei Stellen. Pflicht bei Firmen und juristischen Personen: der Schlüssel aus dem KBA-Verzeichnis SV 5, etwa G01 für den Handel mit Kraftfahrzeugen; fehlt er, 400. Privatpersonen ohne Angabe erhalten 888; Freiberufler und Einzelunternehmer geben ihren Schlüssel an. Bei processId gilt ohne Angabe der in der Vollmacht unterschriebene Wirtschaftszweig |
| Einzugsweg der Kfz-Steuer | Pflicht: bankAccount mit sepaMandateBase64 oder taxDetails.taxLargeCustomerId — siehe Kfz-Steuer. Bei processId entfällt sepaMandateBase64, wenn das Mandat im Vollmachtsvorgang mit unterschrieben wurde (SEPA-Mandat im Vorgang) |
taxDetails.paymentInterval | Pflicht, sobald taxDetails mitgeschickt wird |
inspections | optional, höchstens zwei (Hauptuntersuchung HU, Sicherheitsprüfung SP), mehr ergeben 400; nextInspection als MMJJJJ ist Pflicht. Ohne inspectionType gilt HU — eine Sicherheitsprüfung muss SP ausdrücklich setzen. institutionKey ist die Schlüsselnummer der Überwachungsinstitution bzw. des ZDK und wird ungeprüft durchgereicht |
Schreibweise der Nummern und Codes — für alle Vorgangsarten gleich. Die Nummern der ZB I und der ZB II werden großgeschrieben, bevor sie geprüft und gesendet werden; gemischte Schreibweise wird deshalb überall angenommen — bei den Zulassungsvorgängen wie bei Halteränderung und Außerbetriebsetzung. Ausgenommen ist der Platzhalter ohne-ZF-, der genau so klein geschrieben gehört; anders getippt, wird er zurechtgerückt. Sonderzeichen und Überlänge bleiben Eingabefehler und ergeben 400. Druckstücknummer und Sicherheitscodes rührt die Schnittstelle nicht an — dort gehört die Schreibweise zum Wert: Kleinbuchstaben in der Druckstücknummer ergeben 400, in den Sicherheitscodes sind sie zulässig.
Zusätzlich bei der Umschreibung:
| Feld | Regel |
|---|---|
customization.licensePlateNumberComponents | Pflicht — das bisherige Kennzeichen |
customization.vehicleRegistrationCertificateSecurityCode | Pflicht; Sicherheitscode der ZB I, sieben Zeichen |
customization.vehicleRegistrationCertificatePartII.securityCode | Pflicht; zwölf Zeichen, beginnend mit B, zuletzt Ziffer oder X, Modulo-11-Prüfziffer |
customization.licensePlateSeals | die Codes der Stempelplaketten, wenn sich das Kennzeichen oder seine Merkmale ändern; höchstens drei Einträge, je position (vorn, hinten, beide) und securityCode (drei Zeichen) |
customization.licensePlateAssignment | optional — ein neues Kennzeichen zuteilen lassen; es darf neben dem bisherigen stehen (Kennzeichenwechsel) |
Wie die Kennzeichenfelder zusammenspielen, beschreibt Kennzeichen.
Beispiele
Auf eine Firma, das Kennzeichen bleibt, die Kfz-Steuer über die Großkunden-ID:
{
"externalOrderId": "umschreibung-4711",
"email": "kunde@example.de",
"customization": {
"vehicleIdentificationNumber": "WVWZZZ7HZ8H123456",
"licensePlateNumberComponents": { "usageType": "EURO", "city": "SL", "middle": "OA", "end": "1417" },
"vehicleRegistrationCertificateNumber": "FL9876543210123456",
"vehicleRegistrationCertificateImprintNumber": "GCGDSXR3",
"vehicleRegistrationCertificateSecurityCode": "2H5Fktp",
"vehicleRegistrationCertificatePartII": { "number": "ZZ112976", "securityCode": "BgDwroY6tly4" },
"insuranceConfirmationNumber": "R245654"
},
"vehicleHolder": {
"address": {
"companyName": "Muster Logistik GmbH",
"streetName": "Am Bahnhof",
"houseNumber": "15",
"zipCode": "24983",
"cityName": "Handewitt",
"countryCode": "D"
},
"occupationKey": "H01"
},
"taxDetails": { "paymentInterval": "jaehrlich", "taxLargeCustomerId": "123A4567" }
}Auf eine Privatperson in einen anderen Bezirk, mit neuem Kennzeichen, Kfz-Steuer per Lastschrift:
{
"externalOrderId": "umschreibung-4712",
"email": "kunde@example.de",
"customization": {
"vehicleIdentificationNumber": "WVWZZZ7HZ8H123457",
"licensePlateNumberComponents": { "city": "SL", "middle": "OA", "end": "1418" },
"licensePlateSeals": [
{ "position": "vorn", "securityCode": "5t2" },
{ "position": "hinten", "securityCode": "6b4" }
],
"licensePlateAssignment": { "plateType": "Z" },
"vehicleRegistrationCertificateSecurityCode": "2H5Fktp",
"vehicleRegistrationCertificatePartII": { "securityCode": "BgDwroY6tly4" },
"insuranceConfirmationNumber": "R245654",
"vehicleUsage": "X"
},
"vehicleHolder": {
"address": {
"firstName": "Erika",
"lastName": "Musterfrau",
"gender": "FEMALE",
"streetName": "Große Straße",
"houseNumber": "1",
"zipCode": "24937",
"cityName": "Flensburg"
},
"dateOfBirth": "1988-03-15",
"placeOfBirth": "Kiel"
},
"bankAccount": { "iban": "DE02200505501015871393", "accountHolder": "Erika Musterfrau" },
"sepaMandateBase64": "JVBERi0xLjcKJSVFT0YK",
"taxDetails": { "paymentInterval": "halbjaehrlich" }
}sepaMandateBase64 ist gekürzt; bei Ihnen steht dort das unterschriebene Mandat als PDF (ein Scan ist zulässig).
Typische 400-Fehler
Ohne Einzugsweg für die Kfz-Steuer:
{
"externalOrderId": "umschreibung-4713",
"email": "kunde@example.de",
"customization": {
"vehicleIdentificationNumber": "WVWZZZ7HZ8H123458",
"licensePlateNumberComponents": { "city": "SL", "middle": "OA", "end": "1419" },
"vehicleRegistrationCertificateSecurityCode": "2H5Fktp",
"vehicleRegistrationCertificatePartII": { "securityCode": "BgDwroY6tly4" },
"insuranceConfirmationNumber": "R245654"
},
"vehicleHolder": {
"address": {
"companyName": "Muster Logistik GmbH",
"streetName": "Am Bahnhof",
"houseNumber": "15",
"zipCode": "24983",
"cityName": "Handewitt"
},
"occupationKey": "H01"
}
}Fehlende Pflichtangaben und Nachweise nennt die Meldung gesammelt, eine je Zeile. Formfehler einzelner Felder, etwa beim Kennzeichen, bei der Großkunden-ID der Steuer oder in einer Werteliste, meldet die Schnittstelle einzeln; nach der Korrektur kann eine weitere Meldung folgen. Hier fehlt nur der Einzugsweg:
{
"error": "Die Antragsdaten sind unvollständig:\n- Für die Kfz-Steuer fehlt der Einzugsweg: entweder eine Bankverbindung mit SEPA-Mandat oder die Großkunden-ID der Steuer. (TraceId: 0b8e4c52-1d3a-4f6e-8b2c-7a9d5e3f1c04)",
"traceId": "0b8e4c52-1d3a-4f6e-8b2c-7a9d5e3f1c04"
}Weitere häufige Meldungen:
Da das Fahrzeug bereits zugelassen ist, muss das bisherige Kennzeichen angegeben werden (Fehlercode 00301).Der Sicherheitscode der Zulassungsbescheinigung Teil I fehlt (Fehlercode 04006).Der Sicherheitscode der Zulassungsbescheinigung Teil II ("…") erfüllt die Modulo-11-Prüfziffer nicht.customization.licensePlateSeals[0].position fehlt (zulässig: vorn, hinten, beide).Die Großkunden-ID der Steuer ("…") entspricht nicht der Form, die XKfz 6.0 verlangt: drei Ziffern, ein Großbuchstabe, vier Ziffern (etwa "123A4567"). …
Nach dem Antrag
Antwort mit order.id, danach ACCEPTED, FORWARDED oder FAILED, später die Entscheidung: APPROVED_WITH_DOCUMENTS mit den Belegen (APPROVED, wenn keine beiliegen) oder REJECTED_WITH_DOCUMENTS bzw. REJECTED. Eine Ablehnung kann auch die Statusabfrage der Schnittstelle beim KBA ergeben; sie kommt dann als REJECTED ohne files. businessTransaction ist UG.
licensePlate nennt das Kennzeichen in Anzeigeform (SL-OA 1417). Teilt die Behörde ein neues zu, steht nach dem Bescheid das zugeteilte darin. Mit requestRegistrationData: true kommen zusätzlich die Daten der Zulassungsbescheinigung als registrationData. Welche Unterlagen wohin gehen, legen Sie in deliveries fest: Zustellung oder Abholung, je Unterlage ein Eintrag in items, etwa 2 für die ZB I und 40 für die Stempelplakettenträger. Ohne deliveries schickt der Antrag keine Lieferinformation, und die Schnittstelle ergänzt keine — das KBA stellt die Unterlagen dann dem Halter zu (siehe Wer die Unterlagen bekommt).
derivedStatus: SUCCESS, PENDING, FAILURE, VEHICLE_UNKNOWN, LICENSE_PLATE_CODE_INVALID, REGISTRATION_CERTIFICATE_CODE_INVALID oder LICENSE_PLATE_CODE_QTY_INVALID.
Gebühren
0,30 € Nutzungsgebühr des KBA (costBreakdown.kbaCost), die Gebühren der Zulassungsbehörde nach dem Bescheid in costBreakdown.registrationOfficeCosts — sichtbar nur mit eigener KBA-Registrierung. Siehe Auskunft, Liste und Belege und die Preisseite.