Öffentliche API
Idempotenz
Nutzen Sie Idempotency-Key für sichere Retries bei Bestellerstellung und Ticketausgabe
Pflicht bei Checkout-Mutationen
Idempotency-Key ist erforderlich für:
POST /orders(Bestellung / Checkout erstellen)POST /tickets/issue(manuelle Ticketausgabe)
Fehlt der Header, antwortet die API mit 400.
Warum das wichtig ist
Netzwerk-Timeouts und Client-Retries könnten sonst doppelte Bestellungen oder Tickets erzeugen. Mit demselben Schlüssel und demselben Request-Body liefert die API die gespeicherte erfolgreiche Antwort, statt die Operation erneut auszuführen.
Verhalten
- Senden Sie pro logischer Operation einen eindeutigen
Idempotency-Key(UUID empfohlen). - Die API hasht den Request-Body und speichert erfolgreiche
2xx-Antworten für Organisation, Methode, Pfad und Schlüssel. - Wiederholung mit demselben Schlüssel und demselben Body → ursprünglicher Status und Body, plus Header
Idempotency-Replayed: true. - Derselbe Schlüssel mit anderem Body →
409Idempotenz-Konflikt.
Nicht erfolgreiche Antworten werden nicht für Replay gespeichert. Sie dürfen nach transienten Fehlern mit demselben Schlüssel erneut versuchen, solange der Body identisch bleibt.
Beispiel
curl -X POST https://api.cowtic.com/api/v1/orders \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-H "Content-Type: application/json" \
-d '{
"eventId": "evt_…",
"customer": { "email": "guest@example.com", "name": "Ada Guest" },
"items": [{ "ticketId": "tt_…", "quantity": 2 }]
}'Hinweise für Clients
- Erzeugen Sie den Schlüssel vor dem ersten Versuch und verwenden Sie ihn bei Retries erneut.
- Rotieren Sie den Schlüssel nicht, wenn Sie nur dieselbe Payload erneut senden.
- Verwenden Sie einen neuen Schlüssel für eine neue logische Kauf- oder Ausgabeanfrage.