Partner-API · Version 1

Schnittstelle für Vermieter

Lesezugriff auf Fahrzeuge, Verfügbarkeit, Preise, Buchungen, Kunden und Rechnungen. Buchungen anlegen. Für die eigene Webseite, die Buchhaltung oder Fremdsysteme. Zusatzbaustein für Linie 3, Schlüssel legst du im Dashboard unter Verwaltung an.

Schnellstart

Basis-URL: https://mietsoft.ch/api/partner/v1. Antworten sind JSON, Zeiten Ortszeit im Format YYYY-MM-DDTHH:mm.

curl -H "Authorization: Bearer ms_live_…" \
  "https://mietsoft.ch/api/partner/v1/availability?from=2026-10-01T09:00&to=2026-10-03T09:00"

Anmeldung

Schlüssel

Jeder Mandant legt eigene Schlüssel an, mit Namen und Rechten. Der Schlüssel beginnt mit ms_live_ und wird nur einmal angezeigt. Verloren heißt: neu anlegen, alten sperren.

Header

Authorization: Bearer ms_live_…
oder X-Api-Key: ms_live_…

Rechte

read: alles lesen.
bookings:write: zusätzlich Buchungen anlegen. Wird beim Anlegen des Schlüssels gewählt.

Regeln

Ratenlimit

600 Anfragen je Minute und Schlüssel, 60 davon schreibend. Die Antwort trägt X-RateLimit-Limit und X-RateLimit-Remaining.

Versionierung

Pfad /api/partner/v1. Neue Felder können jederzeit dazukommen. Entfallende Felder oder Pfade werden mindestens 6 Monate vorher angekündigt.

Mandantentrennung

Ein Schlüssel sieht ausschließlich die Daten des eigenen Mandanten. Fremde Buchungsnummern liefern 404.

Protokoll

Jeder Aufruf wird mit Schlüssel, Pfad, Status und Dauer protokolliert und 90 Tage aufbewahrt. Der Zugriff auf interne, nicht dokumentierte Endpunkte ist untersagt.

Fehler

Fehler kommen als JSON mit error (Code) und message (Text).

HTTPCodeBedeutung

Endpunkte

Lade Beschreibung …

Beispiele

Preis für ein Fahrzeug

GET /vehicles/AB123/price?from=2026-10-01T09:00&to=2026-10-03T09:00

{
  "vehicle": "AB123", "from": "2026-10-01T09:00", "to": "2026-10-03T09:00", "currency": "EUR",
  "price": 218.00, "base_price": 198.00, "surcharge": 20.00,
  "surcharge_parts": [{ "art": "wochenende", "betrag": 20 }],
  "included_km": 400, "tariff": "Standard-Tarif", "is_time_tariff": false
}

Buchung anlegen

POST /bookings
Content-Type: application/json

{
  "vehicle": "AB123",
  "start": "2026-10-01T09:00", "end": "2026-10-03T09:00",
  "customer": { "name": "Max Muster", "email": "max@example.com", "phone": "+43 660 1234567" },
  "extras": [{ "id": "1779528865182", "quantity": 1 }]
}

201 Created
{
  "booking": { "id": "K7Q2M-9ZP4A", "status": "upcoming", "vehicle": "AB123", "total_price": 292.00, "created_via": "api", … },
  "price": { "price": 218.00, "extras_total": 74.00, "total": 292.00, … }
}

Die Buchung entsteht als Anfrage ohne Zahlung. Zahlung, Kaution und Check-in laufen danach wie bei einer Büro-Buchung im Dashboard. Ist das Fahrzeug belegt, kommt 409 not_available.

Nicht enthalten