#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 inerrors) — 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: ein Problem nach RFC 9457 mit dem Medientyp application/problem+json.
{
"type": "https://docs.logicar.cloud/api/fehler#invalid-request",
"title": "The request is not valid",
"status": 400,
"detail": "The request is invalid. See errors.",
"instance": "/api/v1/extern/orders",
"code": "INVALID_REQUEST",
"requestId": "0e6a5b8c-3f1d-4d2a-9c7e-5b4a3f2e1d0c",
"errors": [
{ "pointer": "#/pickup/postalCode", "code": "invalid_type", "detail": "Invalid input: expected string, received undefined" }
]
}code ist der feste Wert zum Auswerten, type seine URI (sie führt zur Beschreibung des Codes), detail ein Satz für Menschen (englisch), der sich ändern kann. 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 Felder und 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.