Dokumentation

API-Referenz Test

POST/api/v1/test/applications/{id}/events

Testereignis auslösen

Testereignisse simulieren Signatur, Bearbeitung, Abschluss und Fehlschlag ohne KBA-Aufruf. Erforderlich ist applications:write.

Beschreibung

Setzt den nächsten Zustand eines Testantrags.

Parameter

idpathPflicht

ID eines Testantrags.

Beispiel: app_test_1a2b3c4d5e6f708192a3b4c5

Request-Body

Der Body wird als application/json übertragen. Verwenden Sie ausschließlich die dokumentierten Feldnamen.

Request-Felder

FeldTypAngabeBeschreibung
typeenumPflichtsignature.completed, processing.started, application.completed oder application.failed.
failure.codestringBedingtOptional bei application.failed; stabiler maschinenlesbarer Fehlercode.
failure.messagestringBedingtOptional bei application.failed; lesbare Fehlerbeschreibung.
Request-Beispieljson
{
  "type": "application.completed"
}

Responses

200

Testereignis angewendet; aktualisiertes Antragsobjekt.

401/403

API-Schlüssel, Testumgebung oder Scope applications:write ist ungültig.

404

Testantrag fehlt oder gehört zu einem anderen Mandanten.

409

Ereignis passt nicht zum aktuellen Antragszustand.

422

Ereignistyp oder failure-Daten sind ungültig.

Response-Body

Content-Type: application/json. Die erfolgreiche Antwort enthält die nachfolgend beschriebenen Felder.

Response-Felder

FeldTypAngabeBeschreibung
idstringImmerÖffentliche Antrags-ID.
objectstringImmerKonstanter Wert vehicle_registration_application.
environmentenumImmertest oder live.
livemodebooleanImmertrue bei Produktivanträgen.
procedureenumImmerAusgeschriebener Vorgang.
procedure_codeenumImmerAB, WG, WZ, NZ, TZ, UG oder HA.
submission_modeenumImmercompany oder third_party.
contract_partner_idstringOptionalBeim Anlegen gebundener Vertragspartner. KOPA-Schlüssel und Stammdaten werden nicht ausgegeben.
holderobjectOptionalGespeicherte Halter-ID, Revision und Verifizierungsstatus. Fehlt bei AB ohne Halterreferenz.
external_referencestringOptionalBeim Anlegen übergebene Referenz.
signature_profilestringOptionalBeim Anlegen gebundenes Signaturprofil. Fehlt ohne Profilangabe.
statusenumImmerAktueller Antragsstatus. Dieses Feld für Programmlogik verwenden.
status_detailsobjectImmerAnzeigetext, Änderungszeitpunkt und gegebenenfalls Fehlerangaben.
next_actionobjectOptionalNächste Clientaktion, beispielsweise Signatur oder Fehlerbehebung.
signatureobjectImmerSignaturpflicht, Status und gegebenenfalls Signatur-URL.
resultsobjectImmerAktuelle Entscheidung und alle bereits verfügbaren KBA-, Kennzeichen- und Behördenwerte. Optionale Unterfelder werden ausgelassen, solange kein Wert vorliegt.
results.decisionenumImmerpending, approved, rejected oder manual_review. Zusammen mit status für Programmlogik verwenden.
results.failure_codestringOptionalStabiler maschinenlesbarer Code eines fehlgeschlagenen Testereignisses. Kein KBA-Quittungscode.
results.kba_application_numberstringOptionalVom KBA vergebene Antragsnummer, sobald sie für den Antrag vorliegt. Nicht mit der öffentlichen id oder external_reference verwechseln. Ein erfolgreicher Testabschluss liefert eine simulierte Nummer mit Präfix KBA-TEST-.
results.assigned_license_platestringOptionalDem Antrag zugeordnetes Kennzeichen, sobald es als Ergebniswert vorliegt.
results.authority_statusarrayOptionalAlle freigebbaren Code-/Message-Paare der aktuellsten Behördenquittung. Das Feld ist kein Quittungsverlauf und kann auch bei status: failed fehlen.
results.authority_status[].codestringBedingtFünfstelliger Quittungscode der Live-Behördenantwort. Führende Nullen bleiben erhalten. Ein erfolgreicher Testabschluss liefert 0000.
results.authority_status[].messagestringBedingtDie diesem Code zugeordnete offizielle Message. Nicht für Programmlogik verwenden.
documentsarrayImmerMetadaten bereitgestellter Dokumente.
orders_urlstringImmerURL der antragsgebundenen Zusatzbestellungen.
feesobjectOptionalAktuelle Gebührenrevision in Euro-Cent.
tariffobjectOptionalTarifinformationen.
timestampsobjectImmerErstellungs-, Änderungs- und Statuszeitpunkt.
warningsarrayOptionalNicht blockierende Hinweise.
200 Response-Beispieljson
{
  "id": "app_test_1a2b3c4d5e6f708192a3b4c5",
  "object": "vehicle_registration_application",
  "environment": "test",
  "livemode": false,
  "procedure": "new_registration",
  "procedure_code": "NZ",
  "submission_mode": "third_party",
  "holder": {
    "id": "hld_test_1a2b3c4d5e6f708192a3b4c5",
    "revision": 1,
    "verification_status": "verified"
  },
  "external_reference": "test-ci-1042",
  "status": "succeeded",
  "status_details": {
    "label": "Abgeschlossen",
    "updated_at": "2026-08-23T10:58:04+02:00"
  },
  "signature": {
    "required": true,
    "status": "completed"
  },
  "results": {
    "decision": "approved",
    "kba_application_number": "KBA-TEST-A1B2C3D4E5F6",
    "authority_status": [
      {
        "code": "0000",
        "message": "Testvorgang erfolgreich abgeschlossen"
      }
    ]
  },
  "documents": [
    {
      "id": "doc_17",
      "type": "TEST",
      "name": "api test result",
      "filename": "test-ergebnis-app_test_1a2b3c4d5e6f708192a3b4c5.pdf",
      "mime_type": "application/pdf",
      "created_at": "2026-08-23T10:58:04+02:00",
      "download_url": "/api/v1/applications/app_test_1a2b3c4d5e6f708192a3b4c5/documents/doc_17"
    }
  ],
  "orders_url": "/api/v1/applications/app_test_1a2b3c4d5e6f708192a3b4c5/orders",
  "timestamps": {
    "created_at": "2026-08-23T10:42:18+02:00",
    "updated_at": "2026-08-23T10:58:04+02:00",
    "status_updated_at": "2026-08-23T10:58:04+02:00"
  }
}

Empfohlene Reihenfolge

  1. 01

    Signatur abschließen

    signature.completed beendet den Signaturschritt.

  2. 02

    Bearbeitung starten

    processing.started setzt den Status auf processing.

  3. 03

    Ergebnis setzen

    application.completed oder application.failed bildet das gewünschte Ergebnis ab.

Fehlercode setzen

Für application.failed können failure.code und failure.message gesendet werden. Der Code steht anschließend in results.failure_code; ohne Angabe lautet er test_rejected. Die Meldung steht in status_details.failure_reason.

Request-Bodyjson
{
  "type": "application.failed",
  "failure": {
    "code": "vehicle_data_rejected",
    "message": "Simulierter Ablehnungsgrund"
  }
}

Zum Öffnen eines Treffers Enter drücken.