#Endpunkte und Format
Auf dieser Seite
#Alle Endpunkte
Basisadresse: https://api.logicar.cloud/api/v1/extern
| Methode | Pfad | Zweck | Recht |
|---|---|---|---|
| POST | /oauth/token | Zugriffstoken holen (OAuth 2.0 Client Credentials) | Client-Kennung und Secret |
| GET | /me | Verbindungstest: welcher Zugang, welche Umgebung, welche Rechte | ohne Recht |
| POST | /orders | Auftrag anlegen — oder Anfrage, wenn Ihre Vereinbarung ein Angebot vorsieht | orders:write |
| GET | /orders | Aufträge auflisten, auch nach Ihrer eigenen Nummer (externalOrderId) oder seit einem Zeitpunkt | orders:read |
| GET | /orders/{id} | Auftrag abrufen — unter unserer Kennung, der Auftrags- oder der Anfragenummer | orders:read |
| PATCH | /orders/{id} | Angaben ergänzen oder ändern, bis zur Abholung | orders:write |
| POST | /orders/{id}/cancel | Auftrag stornieren oder Anfrage zurückziehen, bis zur Abholung | orders:write |
| GET | /orders/{id}/status | Stand des Auftrags | orders:read |
| GET | /orders/{id}/tracking | Standort und Ankunftszeit während der Fahrt | tracking:read |
| GET | /orders/{id}/documents | Übergabeprotokolle, Nachweise und weitere Dokumente | documents:read |
| GET | /orders/{id}/documents/{documentId} | Ein Dokument herunterladen | documents:read |
| POST | /quotes | Angebot anfordern — auch, wo Ihre Vereinbarung sonst direkt bepreist | quotes:write |
| GET | /quotes/{id} | Angebot abrufen: Stand, Fassung, Beträge und Positionen | quotes:read |
| POST | /quotes/{id}/accept | Angebot annehmen — nur, wenn Ihre Vereinbarung es vorsieht | quotes:write |
| POST | /quotes/{id}/decline | Angebot ablehnen | quotes:write |
| GET | /quotes/{id}/document | Das Angebot als PDF herunterladen | quotes:read |
| POST | /webhook-subscriptions | Webhook-Endpunkt anlegen | webhooks:manage |
| GET | /webhook-subscriptions | Webhook-Endpunkte auflisten | webhooks:manage |
| GET | /webhook-subscriptions/{id} | Einen Webhook-Endpunkt abrufen | webhooks:manage |
| DELETE | /webhook-subscriptions/{id} | Webhook-Endpunkt löschen | webhooks:manage |
| POST | /webhook-subscriptions/{id}/test | Testnachricht an einen Endpunkt senden | webhooks:manage |
| POST | /sandbox/orders/{id}/advance | Sandbox: den nächsten Schritt des Szenarios ausführen | orders:write |
Die vollständige Beschreibung mit allen Feldern, Antworten und Webhooks: /openapi.json (OpenAPI 3.1).
#Format
- JSON in beide Richtungen, UTF-8,
Content-Type: application/json. Der Token-Endpunkt nimmt außerdemapplication/x-www-form-urlencoded, wie OAuth 2.0 es vorsieht. - Zeitpunkte in ISO 8601 mit Zeitzone:
2026-10-02T16:00:00+02:00oder2026-10-01T08:00:00Z. Antworten kommen immer in UTC. - Feldnamen in camelCase, genau so geschrieben wie hier.
- Unbekannte Felder in Ihrer Anfrage sind ein Fehler (
400 INVALID_REQUEST, das Feld steht indetails.fields) — ein Tippfehler bleibt so nicht unbemerkt, und niemand hält einen Preis für vereinbart, den Ihr System mitschickte. Freie Daten Ihres Systems gehören inmetadata. - Unbekannte Felder in unseren Antworten und Webhooks übergehen Sie bitte: innerhalb von v1 kommen neue hinzu (Versionen).
#Antworten
| HTTP | Bedeutung |
|---|---|
| 200 | Erfolg. |
| 201 | Angelegt. |
| 202 | Angenommen als Anfrage, die auf ein Angebot wartet (kind: "REQUEST"). |
| 204 | Erledigt, ohne Inhalt (etwa ein gelöschter Webhook-Endpunkt). |
| 4xx | Fehler in der Anfrage. Unverändert wiederholt, bleibt es ein Fehler — außer 409 mit Retry-After und 429. |
| 5xx | Fehler bei uns. Wiederholen ist sicher, wenn Sie einen Idempotency-Key mitschicken. |
Jede Fehlerantwort hat dieselbe Form:
{
"error": {
"code": "INVALID_REQUEST",
"message": "The request is invalid. See details.fields.",
"requestId": "0e6a5b8c-3f1d-4d2a-9c7e-5b4a3f2e1d0c",
"details": {
"fields": [
{ "field": "pickup.postalCode", "code": "invalid_type", "message": "Invalid input: expected string, received undefined" }
]
}
}
}code ist fester Wert zum Auswerten, message ein Satz für Menschen (englisch) und kann sich ändern. Die requestId steht auch im Kopf X-Request-Id; nennen Sie sie uns bei Rückfragen — mit ihr finden wir den Aufruf in unseren Protokollen. Zu jeder Anfrage halten wir dort fest: Zeitpunkt, Methode und Pfad, Status, Dauer und Fehlercode, den Zugang, Ihre Absenderadresse und den User-Agent, dazu die Auftragskennung und Ihre externalOrderId — nie den Inhalt der Anfrage und nie einen Schlüssel oder ein Token. Alle Codes: Fehler und Grenzen.
#Einen Vorgang finden
Die Pfade /orders/{id} nehmen jede Kennung, die wir vergeben: die id (UUID), die Auftragsnummer oder — solange es eine Anfrage ist — die Anfragenummer. Ist aus einer Anfrage inzwischen ein Auftrag geworden, antworten sie mit dem Auftrag.
Ihre eigene Nummer suchen Sie mit GET /orders?externalOrderId=…: die Antwort ist eine Liste mit höchstens einem Eintrag.
Tipp
Für Statusänderungen sind Webhooks der bessere Weg: sie kommen sofort, und Ihr System muss nicht fragen. Fragen Sie ab, wenn Sie nachholen wollen, was während einer Störung Ihres Endpunkts nicht ankam: GET /orders?updatedSince=… liefert alles, was sich seitdem geändert hat.