Zum Inhalt springen

Referenz

Bestellungen

Listen Sie Bestellungen mit ihren Positionen auf, führen Sie ihren Status durch den Küchen-Lebenszyklus weiter und lösen Sie vollständige Rückerstattungen aus. Statusänderungen und Rückerstattungen senden Webhook-Ereignisse.

GET/api/v1/orders

Paginierte Liste der Bestellungen, einschließlich Vorbestellungen, mit ihren Positionen.

Abfrage: restaurantId, status, limit (≤100), cursor

200 OK
{
  "data": [
    {
      "id": "clo...",
      "restaurantId": "clw...",
      "bookingId": null,
      "type": "TAKEAWAY",
      "status": "DELIVERED",
      "subtotal": 24.00,
      "tax": 2.40,
      "tip": 0,
      "total": 26.40,
      "currency": "EUR",
      "paidAt": "2025-12-21T19:45:12.000Z",
      "refundedAt": null,
      "createdAt": "2025-12-21T19:30:00.000Z",
      "items": [
        { "id": "...", "menuItemId": "...", "name": "Carbonara", "quantity": 2, "price": 12.00, "notes": null }
      ]
    }
  ],
  "nextCursor": null
}
PATCH/api/v1/orders/{id}/status

Führt den Status einer Bestellung weiter. Sendet order.status_changed.

cURL
curl -X PATCH https://www.openalacarte.com/api/v1/orders/clo.../status \
  -H "Authorization: Bearer oac_live_<your-key>" \
  -H "Content-Type: application/json" \
  -d '{"status":"PREPARING"}'

Transitionen: PENDING → CONFIRMED → PREPARING → READY → DELIVERED, sowie CANCELLED von jedem nicht-terminalen Zustand aus. REFUNDED wird über den Rückerstattungs-Endpunkt erreicht.

POST/api/v1/orders/{id}/refund

Vollständige Rückerstattung einer bezahlten Bestellung. Das Stripe-Connect-Guthaben des Restaurants wird belastet und die Plattformgebühr wird automatisch zurückgebucht. Sendet order.refunded.

cURL
curl -X POST https://www.openalacarte.com/api/v1/orders/clo.../refund \
  -H "Authorization: Bearer oac_live_<your-key>" \
  -H "Content-Type: application/json" \
  -d '{"reason":"Wrong item delivered"}'