Zum Inhalt springen
LOGICAR Entwickler Suchen

#Ereignisse

Auf dieser Seite

#Katalog

EreignisWann
Auftrag
order.createdAuftrag angelegt. Ein Auftrag ist entstanden — über die API, im Portal oder aus einem angenommenen Angebot.
order.acceptedZur Planung freigegeben. LOGICAR hat den Auftrag geprüft und zur Planung freigegeben: nichts fehlt mehr, was die Fahrt aufhält.
order.rejectedAnfrage abgelehnt. Eine Anfrage, die auf ein Angebot wartete, wurde abgelehnt oder von Ihnen zurückgezogen. Es entsteht kein Auftrag.
order.scheduledEingeplant. Ein ausführendes Unternehmen oder ein Fahrer ist für den Auftrag eingeplant.
order.rescheduledTermin verschoben. Der Abhol- oder Liefertermin hat sich geändert. Das erste Setzen eines Termins ist keine Verschiebung.
order.completedAuftrag abgeschlossen. Der Auftrag ist abgeschlossen.
order.cancelledAuftrag storniert. Der Auftrag wurde storniert — über die API, im Portal oder von LOGICAR.
Fahrer und Abholung
driver.assignedFahrer zugewiesen. Ein Fahrer ist zugewiesen oder gewechselt. Den Namen — Vorname und Initial — gibt es nur, wenn Ihr Konto das vorsieht.
pickup.startedAuf dem Weg zur Abholung. Der Fahrer ist auf dem Weg zum Abholort.
pickup.arrivedAm Abholort angekommen. Der Fahrer ist am Abholort angekommen, erkannt an seiner Position. Einmal je Auftrag.
vehicle.picked_upFahrzeug abgeholt. Das Fahrzeug ist übernommen; das Abholprotokoll liegt vor.
Transport und Zustellung
transport.startedTransport begonnen. Das Fahrzeug ist unterwegs zum Ziel. Kommt zusammen mit vehicle.picked_up.
transport.delayedVerspätung. Die errechnete Ankunft liegt hinter dem Liefertermin. Erneut erst, wenn sie zwischendurch wieder davor lag.
delivery.arrivedAm Ziel angekommen. Das Fahrzeug ist am Zielort, die Übergabe läuft.
vehicle.deliveredFahrzeug zugestellt. Das Fahrzeug ist übergeben; das Übergabeprotokoll liegt vor.
Dokumente, Schäden, Rechnung
document.requiredUnterlage angefordert. LOGICAR braucht von Ihnen eine Vollmacht oder eine Unterlage zum Fahrzeug. blocking: true heißt: ohne sie wird die Fahrt nicht geplant.
document.uploadedDokument abgelegt. Am Auftrag liegt ein neues Dokument: Protokoll, Schadensbericht, Vollmacht oder Fahrzeugunterlage. Rechnungen meldet invoice.created.
damage.reportedSchaden gemeldet. Im Abhol- oder Übergabeprotokoll ist ein Schaden vermerkt, oder es wurde ein Schadensbericht angelegt.
exception.createdStörung am Auftrag. Eine Störung ist am Auftrag vermerkt: die Zustellung ist überfällig (DELIVERY_OVERDUE) oder noch kein Fahrer eingeplant (NO_DRIVER_ASSIGNED).
invoice.createdRechnung gestellt. Eine Rechnung an Sie liegt vor — für einen Auftrag oder als Sammelrechnung über mehrere (dann ist orderId null).

Abonnieren Sie nur, was Ihr System auswertet. Neue Ereignisse können hinzukommen — lassen Sie unbekannte Typen unbeachtet und antworten Sie trotzdem mit 2xx, statt mit einem Fehler.

#Wann ein Statusereignis kommt

Die Ereignisse zum Ablauf folgen dem öffentlichen Stand eines Auftrags, nicht jedem internen Zwischenschritt: dass ein Fahrer die Fahrt annimmt, ändert am Stand SCHEDULED nichts und ist kein Ereignis. Gemeldet wird, wenn ein Auftrag vorwärts kommt — und nur, was er erreicht hat:

  • Wird ein Schritt übersprungen, etwa weil die Disposition von Hand weiterschaltet, kommt nur das Ereignis des erreichten Stands.
  • Geht ein Auftrag zurück — ein Fahrer gibt ihn ab, er wird neu eingeplant —, gibt es dafür kein eigenes Ereignis; den Stand liefert GET /api/v1/extern/orders/{id}/status.
  • order.cancelled kommt aus jedem Stand.

Jedes Ereignis entsteht in derselben Datenbanktransaktion wie die Änderung, die es auslöst — gleich, ob sie aus dem Portal, der Fahrer-App, der Disposition oder Ihrem System kommt. Zugestellt wird danach und getrennt davon.

#Der Umschlag

Jede Nachricht hat dieselbe Hülle:

json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "vehicle.delivered",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": { "…": "…" }
}
FeldBedeutung
idKennung des Ereignisses — bei jedem Zustellversuch und an jedem Ihrer Endpunkte dieselbe. Zum Entdoppeln.
typeDas Ereignis aus dem Katalog, wie im Kopf X-LogiCar-Event.
apiVersionDer Stand der Schnittstelle, nach dem die Nachricht gebaut ist.
createdAtWann das Ereignis eintrat (UTC) — nicht, wann dieser Versuch lief. Die Reihenfolge der Zustellung ist nicht garantiert; maßgeblich ist dieser Zeitpunkt.
tenantIdIhr LOGICAR-Konto.
environmentproduction oder sandbox.
dataDie Nutzdaten. Jedes Auftragsereignis trägt orderId, orderNumber, trackingNumber, Ihre externalOrderId und den Stand status zum Zeitpunkt des Ereignisses. Die übrigen Felder stehen je Ereignis unten.

Was sonst am Auftrag steht, fragt Ihr System mit GET /api/v1/extern/orders/{id} ab — die Nachricht meldet, dass etwas geschah, und das Nötigste dazu.

#Beispiele

order.created — Auftrag angelegt
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "order.created",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "RECEIVED"
  }
}
order.accepted — Zur Planung freigegeben
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "order.accepted",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "ACCEPTED"
  }
}
order.rejected — Anfrage abgelehnt
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "order.rejected",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "2f6d0c3b-9a1e-4b7f-8c2d-5e4f3a2b1c0d",
    "kind": "REQUEST",
    "requestNumber": "TR-2026-00042",
    "orderNumber": null,
    "trackingNumber": null,
    "externalOrderId": "4500019284",
    "status": "REJECTED"
  }
}
order.scheduled — Eingeplant
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "order.scheduled",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "SCHEDULED",
    "requestedPickup": "2026-10-01T08:00:00.000Z",
    "requestedDelivery": "2026-10-02T16:00:00.000Z"
  }
}
order.rescheduled — Termin verschoben
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "order.rescheduled",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "SCHEDULED",
    "requestedPickup": "2026-10-01T10:00:00.000Z",
    "requestedDelivery": "2026-10-02T16:00:00.000Z",
    "previousRequestedPickup": "2026-10-01T08:00:00.000Z",
    "previousRequestedDelivery": "2026-10-02T16:00:00.000Z"
  }
}
order.completed — Auftrag abgeschlossen
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "order.completed",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "COMPLETED",
    "completedAt": "2026-10-02T18:05:12.000Z"
  }
}
order.cancelled — Auftrag storniert
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "order.cancelled",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "CANCELLED",
    "cancelledAt": "2026-09-30T09:12:40.000Z"
  }
}
driver.assigned — Fahrer zugewiesen
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "driver.assigned",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "SCHEDULED",
    "driver": {
      "name": "Max M."
    },
    "reassigned": false
  }
}
pickup.started — Auf dem Weg zur Abholung
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "pickup.started",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "PICKUP_STARTED",
    "startedAt": "2026-10-01T07:31:02.000Z"
  }
}
pickup.arrived — Am Abholort angekommen
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "pickup.arrived",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "PICKUP_STARTED",
    "arrivedAt": "2026-10-01T07:58:40.000Z"
  }
}
vehicle.picked_up — Fahrzeug abgeholt
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "vehicle.picked_up",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "IN_TRANSIT",
    "pickedUpAt": "2026-10-01T08:12:40.000Z"
  }
}
transport.started — Transport begonnen
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "transport.started",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "IN_TRANSIT",
    "startedAt": "2026-10-01T08:12:41.000Z"
  }
}
transport.delayed — Verspätung
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "transport.delayed",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "IN_TRANSIT",
    "estimatedDelivery": "2026-10-02T18:00:00.000Z",
    "requestedDelivery": "2026-10-02T16:00:00.000Z",
    "delayMinutes": 120
  }
}
delivery.arrived — Am Ziel angekommen
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "delivery.arrived",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "AT_DELIVERY",
    "arrivedAt": "2026-10-02T14:20:05.000Z"
  }
}
vehicle.delivered — Fahrzeug zugestellt
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "vehicle.delivered",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "DELIVERED",
    "deliveredAt": "2026-10-02T14:31:44.000Z"
  }
}
document.required — Unterlage angefordert
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "document.required",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "RECEIVED",
    "requirement": {
      "code": "TRANSPORT_AUTHORIZATION",
      "category": "AUTHORIZATION",
      "blocking": true
    }
  }
}
document.uploaded — Dokument abgelegt
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "document.uploaded",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "DELIVERED",
    "document": {
      "id": "6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d",
      "type": "DELIVERY_PROTOCOL",
      "downloadUrl": "/api/v1/extern/orders/8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f/documents/6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d"
    }
  }
}
damage.reported — Schaden gemeldet
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "damage.reported",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "DELIVERED",
    "damage": {
      "id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
      "source": "HANDOVER_PROTOCOL",
      "stage": "DELIVERY"
    },
    "reportedAt": "2026-10-02T14:30:58.000Z"
  }
}
exception.created — Störung am Auftrag
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "exception.created",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "trackingNumber": "26K7F070042E",
    "externalOrderId": "4500019283",
    "status": "IN_TRANSIT",
    "exception": {
      "id": "1c2d3e4f-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
      "code": "DELIVERY_OVERDUE",
      "severity": "MEDIUM"
    }
  }
}
invoice.created — Rechnung gestellt
json
{
  "id": "3b0f6f4e-5c2a-4d0e-9f59-1f2d8c7a6b10",
  "type": "invoice.created",
  "apiVersion": "2026-09-01",
  "createdAt": "2026-10-02T14:32:11.000Z",
  "tenantId": "5f0c3f0e-8d1f-4c55-9e0a-2d5c1b7a9e11",
  "environment": "production",
  "data": {
    "invoiceId": "0f1e2d3c-4b5a-4968-8776-655443322110",
    "invoiceNumber": "26K7F100043",
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderIds": [
      "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f"
    ],
    "amount": {
      "net": 405.46,
      "vat": 77.04,
      "gross": 482.5,
      "currency": "EUR"
    },
    "issuedAt": "2026-10-03T06:00:00.000Z",
    "dueDate": "2026-11-02T00:00:00.000Z"
  }
}

Hinweis

Nachrichten enthalten nur, was Sie als Auftraggeber brauchen: kein Freitext aus Notizen oder Protokollen, keine Einkaufspreise, keine Namen von Subunternehmern. Vom Fahrer höchstens Vorname und Initial — und nur, wenn Ihr Konto das vorsieht.

#Bisheriges Format

Endpunkte, die vor dem 23.09.2026 angelegt wurden, bekommen weiter dieses Format — bis Sie sie umstellen. Neue Endpunkte bekommen es nicht mehr.

EreignisWann
Aufträge
order.createdAuftrag angelegt. Ein Auftrag ist entstanden — über die API, im Portal oder aus einem angenommenen Angebot.
order.updatedAuftrag geändert. Angaben am Auftrag haben sich geändert, etwa Abhol- oder Zielort, Fahrer oder Liefertermin.
order.status_changedStatus gewechselt — jeder Wechsel. Der Status des Auftrags hat gewechselt. oldStatus und newStatus nennen beide Stände.
order.deliveredFahrzeug abgeliefert. Das Fahrzeug ist übergeben (Status DELIVERED). Zusätzlich zu order.status_changed.
order.completedAuftrag abgeschlossen. Der Auftrag ist abgeschlossen (Status COMPLETED). Zusätzlich zu order.status_changed.
order.cancelledAuftrag storniert. Der Auftrag wurde storniert (Status CANCELLED). Zusätzlich zu order.status_changed.
Übergabeprotokolle
protocol.pickup.submittedProtokoll der Abholung. Der Fahrer hat das Abholprotokoll abgeschlossen.
protocol.delivery.submittedProtokoll der Ablieferung. Der Fahrer hat das Übergabeprotokoll am Ziel abgeschlossen.
protocol.submittedProtokoll, beide Seiten (Sammelereignis). Ein Protokoll — Abholung oder Ablieferung — wurde abgeschlossen. Kurzform ohne Fahrzeugdaten.

Umschlag im bisherigen Format:

json
{
  "id": "7d9e4c1a-2b3f-4e5d-8a6b-9c0d1e2f3a4b",
  "event": "order.status_changed",
  "timestamp": "2026-09-22T10:15:00.000Z",
  "environment": "production",
  "data": {
    "orderId": "8c1d2e3f-4a5b-4c6d-9e7f-0a1b2c3d4e5f",
    "orderNumber": "26K7F070042E",
    "externalOrderId": "SAP-4500019283",
    "status": "IN_TRANSIT",
    "oldStatus": "PICKUP",
    "newStatus": "IN_TRANSIT",
    "triggeredBy": "DRIVER"
  }
}

Im bisherigen Format ist id die Kennung der Zustellung (wie X-LogiCar-Delivery), timestamp der Zeitpunkt des Ereignisses; order.status_changed kommt bei jedem Wechsel des internen Status, die Ereignisse für Ablieferung, Abschluss und Storno zusätzlich.