repair.dspatcha
Zurück zum Handbuch

Kostenschätzung per ERP senden — einfache Anleitung

Wenn deine Werkstatt ein ERP- oder Kassensystem nutzt, kannst du die Diagnose und Kostenschätzung dort erfassen — und repair.Dspatcha schickt die Schätzung daraufhin automatisch an die Kund:in. Du brauchst dafür das Anmeldeformular nicht zu öffnen; dein ERP übernimmt die Übergabe direkt.

Stell es dir so vor: Du schreibst die Liste der Reparaturposten im ERP — so wie du es sonst auf dem Auftragszettel notierst. Dein ERP schickt diese Liste zusammen mit dem Gesamtbetrag an repair.Dspatcha. Die Kund:in erhält dann die gewohnte E-Mail mit der Schätzung und dem Link zur Freigabe.

Voraussetzung: Dein ERP muss über die Partner-API von repair.Dspatcha angebunden sein. Wie du einen API-Key erstellst und die Anbindung einrichtest, beschreibt die Anleitung ERP- und Kassensystem anbinden. Der Key braucht die Berechtigung Status setzen.


Was das ERP übermittelt

Wenn dein ERP eine Kostenschätzung an repair.Dspatcha übergeben soll, schickt es einen einzigen Aufruf mit drei Informationen:

FeldWas es enthält
Zielstatus40 — der Status „Wartet auf Freigabe"
KommentarDie Positionsliste als Text (Beispiel unten)
KostenschätzungDie Gesamtsumme als Zahl (z. B. 89.50)

Das ERP sendet diese Informationen an den folgenden Endpunkt:

POST /api/v1/{werkstatt-slug}/orders/{order_id}/status-events

Für ERP-Entwickler: Die vollständige technische Dokumentation aller Parameter und Fehlercodes findest du in der [[openapi-partner|OpenAPI-Spezifikation (Partner API)]].


1. Positionsliste im Kommentar

Der Kommentar enthält die einzelnen Reparaturposten als einfache Aufzählung. Jede Zeile steht für eine Position: zuerst die Beschreibung, dann der Preis.

So sieht eine gültige Liste aus:

- Bremsbeläge vorne 25,00 €
- Schaltwerk justieren 15,00 €
- Kette ersetzen 49,50 €

Regeln:

  • Jede Position beginnt mit einem Bindestrich und einem Leerzeichen (- ).
  • Es folgt der Kurztext der Position (z. B. „Bremsbeläge vorne").
  • Dann — getrennt durch ein Leerzeichen — der Preis dieser Position (z. B. 25,00 €).
  • Kein festes Format für den Betrag vorgegeben; nimm das Format, das dein ERP ohnehin erzeugt.

Diese Liste erscheint genau so im Kommentarfeld der E-Mail, die die Kund:in erhält — und auf der Auftragsdetailseite in repair.Dspatcha für dein Team.

Tipp: Führe lieber mehrere klare Einzelposten als einen Sammelposten auf. „Bremsbeläge vorne 25,00 €" und „Schaltwerk justieren 15,00 €" ist für die Kund:in nachvollziehbarer als nur „Reparatur 89,50 €".


2. Gesamtkosten (Kostenschätzung)

Neben der Positionsliste übergibt das ERP im Feld cost_estimate den geschätzten Gesamtbetrag als Dezimalzahl — also die Summe, die du der Kund:in als Schätzung nennst.

{
  "target_status": 40,
  "cost_estimate": 89.50,
  "comment": "- Bremsbeläge vorne 25,00 €\n- Schaltwerk justieren 15,00 €\n- Kette ersetzen 49,50 €"
}

Wichtig: Der Betrag muss größer als 0 sein — repair.Dspatcha lehnt eine Schätzung ohne Betrag ab. Das Senden ohne cost_estimate ist nur möglich, wenn der Auftrag in einen Status ohne Pflichtbetrag wechselt.

Wichtig: Alle Beträge sind unverbindliche Brutto-Schätzwerte — kein verbindliches Angebot und keine Rechnung. repair.Dspatcha ist ein Vorsystem; die verbindliche Rechnung erstellst du weiterhin in deinem Buchhaltungsprogramm.


3. Was danach in repair.Dspatcha passiert

Sobald das ERP den Aufruf abgeschickt hat und repair.Dspatcha ihn akzeptiert:

  1. Der Auftrag wechselt von Diagnose (Status 30) in den Status Wartet auf Freigabe (Status 40).
  2. Die Kund:in erhält die gewohnte E-Mail mit der Positionsliste, dem Gesamtbetrag und einem direkten Link zur Freigabe.
  3. Im Team-Dashboard sieht dein Team den aktuellen Status und den hinterlegten Betrag im Auftragskopf.

Reagiert die Kund:in, landet die Rückmeldung wie gewohnt in repair.Dspatcha — dein ERP kann den neuen Status über die Lese-API abfragen oder den Statuswechsel per Webhook erhalten (falls konfiguriert).


4. Mögliche Fehlerantworten

Das ERP sollte auf folgende Antworten vorbereitet sein:

AntwortBedeutung
201 CreatedKostenschätzung erfolgreich übergeben
404 Not FoundAuftrag nicht gefunden oder dem API-Key nicht zugänglich
409 ConflictÜbergang nicht erlaubt (Auftrag ist nicht im Status Diagnose)
422 Unprocessable EntityPflichtfeld fehlt oder Betrag ist 0 oder negativ
429 Too Many RequestsRate-Limit überschritten (Standard: 60 Aufrufe/Minute)

Tipp: Prüft dein ERP vor dem Aufruf den aktuellen Status des Auftrags (über GET /orders/{id}), kannst du einen 409-Fehler meist vermeiden.


Häufige Fragen

Muss der Kommentar ein bestimmtes Format haben? Ja — jede Zeile beginnt mit - (Bindestrich, Leerzeichen), gefolgt von Kurztext und Preis. Halte dich ans Muster aus Abschnitt 1; abweichende Formate erscheinen zwar in der E-Mail, können aber unschön aussehen.

Was passiert, wenn cost_estimate fehlt? repair.Dspatcha lehnt den Aufruf mit Fehler 422 ab, weil der Übergang 30 → 40 einen Betrag voraussetzt. Das ERP muss immer einen Betrag größer als 0 mitschicken.

Kann das ERP direkt auf Status 40 wechseln, ohne den Auftrag vorher auf Status 30 zu setzen? Nein — Übergänge folgen dem konfigurierten Statusfluss deiner Werkstatt. Der Übergang in „Wartet auf Freigabe" setzt voraus, dass der Auftrag im Status Diagnose ist.

Die Kund:in hat die Schätzung erhalten, aber nicht reagiert. Kann das ERP erneut senden? Nein — das erneute Senden einer Kostenschätzung für denselben Auftrag löst das ERP nicht aus. Erinnerungs-E-Mails konfigurierst du in repair.Dspatcha unter Team → Einstellungen → Erinnerungen → Reiter „Kostenfreigabe".

Bekommt das Team eine Benachrichtigung, wenn die Kund:in freigibt oder ablehnt? Das hängt von deiner Benachrichtigungs-Konfiguration ab. Wenn für den Status-Übergang (z. B. Freigabe → Status 50) eine Team-Benachrichtigung eingerichtet ist, geht sie automatisch raus. Details unter Team → Einstellungen → Benachrichtigungen.


Integrationen ist ein Pro-Feature. Sollte der API-Key oder der Endpunkt bei dir nicht verfügbar sein, ist das Feature für deinen aktuellen Tarif noch nicht freigeschaltet. Wende dich an repair.Dspatcha, um es zu aktivieren.