sevDesk Integration

Buchhaltungs-Anbindung an sevDesk

sevDesk Buchhaltung Rechnungen API E-Rechnung

sevDesk Integration

Uebersicht

Die sevDesk-Integration verbindet Ihr Kurs-Booking-System mit der sevDesk-Buchhaltung.

Pfad: WordPress-Admin → Kurs-Booking → Einstellungen → sevDesk


Tab-Struktur

Die sevDesk-Einstellungen sind in 4 Unter-Tabs organisiert:

Tab Inhalt Dokumentation
Verbindung API-Token, Verbindungstest, Test-Modus Diese Seite
Rechnungen Nummernkreis, Kopf-/Fusstext, Templates Diese Seite
Kontakte Feld-Mapping fuer Kontaktdaten Kontakt-Mapping
Dienstleistungen Produkt-Sync, Varianten-Mapping Diese Seite

Zusaetzlich: Metabox im Kurs-Editor

Neben den Einstellungen gibt es eine Metabox direkt im Kurs-Editor:

Ort Funktion
Kurse → [Kurs bearbeiten] Metabox "sevDesk Dienstleistungs-Zuordnung"

Dort koennen Sie pro Kurs manuell festlegen, welche Variante welcher sevDesk-Dienstleistung zugeordnet wird. Details siehe Abschnitt "Manuelles Mapping im Kurs-Editor" weiter unten.


Tab: Verbindung

API-Token einrichten

  1. API-Token erstellen in sevDesk unter Einstellungen → API
  2. Token einfuegen in das Feld "API-Token"
  3. Verbindung testen mit dem Test-Button

Test-Modus

Option Beschreibung
Aktiviert Rechnungen werden erstellt aber NICHT an sevDesk gesendet (nur lokal gespeichert)
Deaktiviert Rechnungen werden normal in sevDesk erstellt und finalisiert

Hinweis: Ab Sprint 36 werden alle Rechnungen automatisch finalisiert. Der Test-Modus verhindert den Versand an sevDesk komplett - nicht nur die Finalisierung.


Tab: Rechnungen

Automatische Synchronisation

Funktion Beschreibung
Kontakte Teilnehmer werden als sevDesk-Kontakte angelegt
Rechnungen Buchungen werden als Rechnungen uebertragen
Positionen Kursdetails als Rechnungspositionen

Tab: Kontakte (Feld-Mapping)

Ausfuehrliche Dokumentation: Kontakt-Feld-Mapping

Default-Land (Sprint 45)

Legen Sie fest, welches Land standardmaessig verwendet wird, wenn kein Land-Feld im Buchungsformular vorhanden ist.

Pfad: Kurs-Booking → Einstellungen → sevDesk → Kontakte → Standard-Land

Option sevDesk-ID Beschreibung
Deutschland 1 Standard
Oesterreich 2 -
Schweiz 3 -
Belgien 10 -
Frankreich 17 -
Italien 19 -
Niederlande 36 -
Polen 45 -
Tschechien 49 -
Luxemburg 56 -
Liechtenstein 183 -

Hinweis: Das Default-Land wird verwendet, wenn im Buchungsformular kein "Land"-Feld aktiviert ist.

Land-Feld im Buchungsformular (Sprint 45)

Falls Sie Kunden aus verschiedenen Laendern haben, koennen Sie das Land-Feld im Feld-Editor aktivieren:

  1. WordPress-Admin → Kurs-Booking → Einstellungen → Buchungsfelder
  2. Suchen Sie das Feld "Land" (inaktiv, Basis-Feld)
  3. Klicken Sie auf Bearbeiten und aktivieren Sie das Feld
  4. Speichern
Eigenschaft Wert
Feld-Typ Select (Dropdown)
Optionen Deutschland, Oesterreich, Schweiz
Kategorie Adresse
Standard Inaktiv (Basis-Feld)

Tipp: Wenn das Land-Feld inaktiv bleibt, wird automatisch das Default-Land aus den sevDesk-Einstellungen verwendet.

Kurzuebersicht

Ordnen Sie Buchungsfelder den sevDesk-Kontaktfeldern zu:

Buchungsfeld sevDesk-Feld
Telefon phone
Mobil mobile
Strasse street
PLZ zip
Ort city

Features: - Auto-Erkennung basierend auf Feldnamen - 16 sevDesk-Felder verfuegbar - Statistik-Anzeige (gemappt/Vorschlaege/ohne)


Tab: Dienstleistungen

Synchronisieren Sie Kurs-Varianten mit sevDesk-Dienstleistungen.

Details siehe Abschnitt "Dienstleistungen-Synchronisation" weiter unten.


Kontakt-Feld-Mapping (Legacy)

Ordnen Sie Ihre benutzerdefinierten Buchungsfelder den sevDesk-Kontaktfeldern zu.

Einstellung: Kurs-Booking > Einstellungen > Buchungsfelder > [Feld bearbeiten] > sevDesk Kontakt-Feld

Verfuegbare sevDesk-Felder

sevDesk-Feld Beschreibung
Anrede (m/w) Herr/Frau (sevDesk: m/f)
Titel Akademischer Titel (Dr., Prof.)
Vorname Vorname des Kontakts
Nachname Nachname des Kontakts
Namenszusatz z.B. "von", "van"
Organisation/Firma Firmenname
Position Beruf/Position in der Firma
Beschreibung Freitext-Notizen zum Kontakt
USt-IdNr. Umsatzsteuer-ID fuer B2B
Telefon Telefonnummer
Mobil Mobilnummer
Fax Faxnummer
Strasse Strasse und Hausnummer
PLZ Postleitzahl
Ort Stadt
Land Land

Anwendungsbeispiel

  1. Sie haben ein benutzerdefiniertes Feld "Firma" im Buchungsformular
  2. Oeffnen Sie die Feldeinstellungen
  3. Waehlen Sie bei "sevDesk Kontakt-Feld" → Organisation/Firma
  4. Bei jeder Buchung wird die Firma automatisch im sevDesk-Kontakt gespeichert

Hinweise

  • Automatische Namenserkennung: Wenn kein explizites Vorname/Nachname-Mapping vorhanden ist, wird das Namensfeld automatisch aufgeteilt
  • Legacy-Felder: Bekannte Feldnamen (anrede, adresse, plz, ort) werden weiterhin automatisch erkannt
  • Mehrfach-Mapping: Ein sevDesk-Feld kann nur einem Buchungsfeld zugeordnet werden

Einstellungen

Option Beschreibung
Auto-Sync Automatische Uebertragung bei neuer Buchung
Rechnungsstatus Entwurf oder Finalisiert
Zahlungsziel Tage bis Faelligkeit - Global oder pro Kurs (Standard: 14)
Waehrung EUR, CHF, GBP oder USD
Kundenreferenz Template mit Platzhaltern (z.B. {buchungs_nummer})
Rechnungsposition Text Template fuer die Beschreibung der Rechnungsposition

Rechnungsposition Text (Beschreibung)

Definiert, wie die Position auf der sevDesk-Rechnung beschrieben wird.

Einstellung: Kurs-Booking > Einstellungen > sevDesk > Rechnungsposition Text

Verfuegbare Platzhalter

Platzhalter Beschreibung Beispiel
{kurs_name} Name des Kurses Hundetraining Basis
{buchungs_nummer} Buchungsnummer WW-2025-0001
{datum} Kursdatum 15.03.2025
{tickets} Anzahl Tickets 2
{variante} Ticketname/Variante Erwachsene
{produktart} Produktart mit Kuerzel A) Praesenz-Kurs
{produktart_name} Nur Produktart-Name Praesenz-Kurs

Beispiel-Templates

Template Ergebnis
{kurs_name} ({buchungs_nummer}) Hundetraining (WW-2025-0001)
{buchungs_nummer} - {kurs_name} WW-2025-0001 - Hundetraining
{kurs_name} am {datum} Hundetraining am 15.03.2025
{kurs_name} - {variante} Hundetraining - Erwachsene

Varianten-Verhalten

Wenn {variante} NICHT im Template verwendet wird: - Der Variantenname wird automatisch angehaengt - Aber nur, wenn er sich vom Kursnamen unterscheidet

Beispiel ohne {variante}: - Template: {kurs_name} ({buchungs_nummer}) - Kurs: "Hundetraining", Variante: "Erwachsene" - Ergebnis: Hundetraining (WW-2025-0001) - Erwachsene

  • Kurs: "Individualtraining I", Variante: "Individualtraining I"
  • Ergebnis: Individualtraining I (WW-2025-0001) (kein Anhang, da identisch)

Empfehlung

Fuer die meisten Faelle empfohlen:

{kurs_name} ({buchungs_nummer})

Ergibt z.B.: Hundetraining Basis (WW-2025-0001) - Erwachsene

Rechnungs-Kopftext

Der Kopftext erscheint oben auf der sevDesk-Rechnung.

Einstellung: Kurs-Booking > Einstellungen > sevDesk > Rechnungs-Kopftext

Standard-Template

Vielen Dank fuer Ihre Buchung!

Buchungsnummer: {buchungs_nummer}
Veranstaltung: {kurs_name}
Datum: {datum}

Verfuegbare Platzhalter

Platzhalter Beschreibung
{buchungs_nummer} Nur die Buchungsnummer (z.B. BK-2025-0001)
{kurs_name} Name des Kurses
{datum} Kursdatum (TT.MM.JJJJ)
{kunde_name} Name des Kunden
{kunde_email} E-Mail des Kunden

Beispiel-Ergebnis

Vielen Dank fuer Ihre Buchung!

Buchungsnummer: BK-2025-0013
Veranstaltung: Individualtraining I
Datum: 20.01.2025

Rechnungs-Fusstext

Der Fusstext erscheint unten auf der sevDesk-Rechnung.

Einstellung: Kurs-Booking > Einstellungen > sevDesk > Rechnungs-Fusstext

Standard-Template

Bitte ueberweisen Sie den Betrag innerhalb von 14 Tagen auf folgendes Konto:

Bank: {bank_name}
IBAN: {bank_iban}
BIC: {bank_bic}
Kontoinhaber: {bank_inhaber}

Verfuegbare Platzhalter

Platzhalter Beschreibung
{bank_name} Name der Bank
{bank_iban} IBAN
{bank_bic} BIC
{bank_inhaber} Kontoinhaber
{firma_name} Firmenname

Kleinunternehmer-Hinweis

Bei aktivierter Kleinunternehmer-Regelung wird automatisch vorangestellt:

"Gemaess § 19 UStG wird keine Umsatzsteuer berechnet."

Rechnungsstatus - Automatisch finalisiert


⚠️ WICHTIG: Einstellung seit Sprint 36 DEAKTIVIERT!

Alle Rechnungen werden AUTOMATISCH finalisiert (Status 200 - Offen).

Die Einstellung "Rechnungs-Status" ist in den sevDesk-Einstellungen nicht mehr waehlbar.

Grund: Die sevDesk API erlaubt nur Status 100 (Entwurf) bei der Erstellung. Um Nummernkonflikte zu vermeiden, werden Rechnungen sofort nach Erstellung via API-Endpoint finalisiert und erhalten ihre Rechnungsnummer.

Warum ist das wichtig?

Problem ohne automatische Finalisierung Konsequenz
Rechnung bleibt als Entwurf (keine Nummer) Kunde erstellt manuell Rechnung in sevDesk
Wenn Entwurf spaeter finalisiert wird Bekommt andere Nummer als erwartet!
Ergebnis Verwirrung, falsche Buchhaltung

Die automatische Finalisierung verhindert diese Probleme komplett!


Verhalten (ab Sprint 36)

Situation Was passiert
Neue Buchung Rechnung wird erstellt → sofort finalisiert → Nummer reserviert
Anzahlungsrechnung Wird erstellt → sofort finalisiert → Nummer reserviert
Restrechnung Wird erstellt → sofort finalisiert → Nummer reserviert
Mahnungsrechnung Wird erstellt → sofort finalisiert → Nummer reserviert

Vorteile der automatischen Finalisierung

Vorteil Beschreibung
Keine vergessenen Entwuerfe Jede Rechnung ist sofort aktiv
Keine Nummernkonflikte Nummer ist sofort reserviert
Einfacherer Workflow Keine manuelle Freigabe noetig
Saubere Buchhaltung Alle Rechnungen haben von Anfang an eine Nummer

Hinweis: Korrekturen sind nur noch ueber Stornorechnung moeglich. Pruefen Sie daher die Buchungsdaten VOR der Bestaetigung!

Rechnungsnummern konfigurieren

Wichtig: Die Rechnungsnummern werden direkt in sevDesk verwaltet - nicht im Plugin!

Einrichtung in sevDesk

  1. Melden Sie sich bei sevDesk an
  2. Gehen Sie zu Einstellungen > Nummernkreise > Rechnungen
  3. Konfigurieren Sie:
  4. Praefix: z.B. RE-
  5. Format: z.B. {PRAEFIX}{JAHR}-{NUMMER}
  6. Startnummer: z.B. 1

Empfohlenes Format

Fuer automatischen Jahreswechsel ohne manuelles Zuruecksetzen:

RE-2025-0001
RE-2025-0002
...
RE-2026-0001  (automatisch neues Jahr)

Jahreswechsel

Option Beschreibung
Mit Jahreszahl im Format Kein manuelles Zuruecksetzen noetig (empfohlen)
Ohne Jahreszahl Am 01.01. manuell in sevDesk auf 1 zuruecksetzen

Tipp: Das Format mit Jahreszahl ist zuverlaessiger und wird von den meisten Steuerberatern empfohlen.

Teilrechnungen / Anzahlungen

Bei Buchungen mit Anzahlung werden zwei Rechnungen erstellt:

  1. Anzahlungsrechnung - Sofort bei Buchung
  2. Restrechnung - Bei Kursabschluss oder manuell

Wichtig: sevDesk Teilrechnung-Erkennung

sevDesk erkennt Rechnungen automatisch als Teilrechnung, wenn im Betreff eines der folgenden Begriffe vorkommt:

Begriff im Betreff sevDesk Buchungsart
Anzahlung Teilzahlung ✅
Teilzahlung Teilzahlung ✅

Hinweis: Das Plugin verwendet "Anzahlung" im Rechnungs-Betreff. sevDesk erkennt dies automatisch und bucht die Zahlung als Teilzahlung. Der Buchungstag der Transaktion liegt vor dem Lieferdatum.

E-Rechnung (ZUGFeRD)

Ab 2025 Pflicht fuer B2B in Deutschland. Aktivieren Sie E-Rechnungen im ZUGFeRD-Format:

  1. Gehen Sie zu Kurse > Einstellungen > sevDesk
  2. Aktivieren Sie "E-Rechnungen im ZUGFeRD-Format erstellen"

Die PDF-Rechnung sieht normal aus, enthaelt aber eingebettetes XML fuer automatische Verarbeitung.

Voraussetzungen in sevDesk: - Vollstaendige Firmenadresse - IBAN und Bank hinterlegt - Steuernummer oder USt-IdNr.

Ausfuehrliche Dokumentation: E-Rechnung (ZUGFeRD/XRechnung)


Dienstleistungen-Synchronisation

Synchronisieren Sie Ihre Kurs-Varianten mit sevDesk-Dienstleistungen fuer eine bessere Buchhaltung und Auswertungen.


⚠️ WICHTIG: "Dienstleistungen verwenden" muss aktiviert sein!

Problem: Dienstleistungen werden nicht in sevDesk angelegt?

Loesung: Die Option "Dienstleistungen in Rechnungen verwenden" muss aktiviert sein!

Pfad: WordPress-Admin → Kurs-Booking → Einstellungen → sevDesk → Dienstleistungen-Synchronisation → ☑️ Dienstleistungen in Rechnungen verwenden

Ohne diese Option werden KEINE Dienstleistungen in sevDesk erstellt, auch wenn Auto-Sync aktiviert ist!


Warum Dienstleistungen verwenden?

Vorteil Beschreibung
Einheitliche Dienstleistungsliste Alle Kurs-Varianten als Dienstleistungen in sevDesk
Auswertungen Bessere Umsatzanalyse pro Kurs/Dienstleistung in sevDesk
Konsistenz Gleiche Dienstleistungs-Referenz in allen Rechnungen
Buchhaltung Saubere Zuordnung fuer den Steuerberater

Einrichtung

  1. Kurs-Booking > Einstellungen > sevDesk oeffnen
  2. Zum Abschnitt "Dienstleistungen-Synchronisation" scrollen
  3. "Dienstleistungen verwenden" aktivieren ← PFLICHT!
  4. "Auto-Sync" aktivieren (empfohlen)
  5. Kategorie auf "Dienstleistung" setzen (empfohlen)
  6. Speichern

Einstellungen

Option Beschreibung
Dienstleistungen verwenden PFLICHT! Verknuepfte sevDesk-Dienstleistungen in Rechnungspositionen referenzieren
Auto-Sync Varianten automatisch synchronisieren beim Kurs-Speichern
Kategorie sevDesk-Kategorie fuer neue Dienstleistungen (Dropdown mit Refresh-Button)

Kategorie-Dropdown (Sprint 14)

Das Kategorie-Dropdown laedt die verfuegbaren Kategorien direkt aus Ihrem sevDesk-Konto:

  • Automatisch geladen: Kategorien werden bei Seitenaufruf aus sevDesk geholt
  • Refresh-Button: Klicken Sie auf ↻ um neue Kategorien zu laden
  • Cache: Kategorien werden 1 Stunde gecached fuer schnellere Ladezeiten
  • Optional: "— Keine Kategorie —" wenn Sie keine Kategorisierung benoetigen

Tipp: Erstellen Sie Kategorien direkt in sevDesk unter Einstellungen → Kategorien → Dienstleistungen. Diese erscheinen dann automatisch im Dropdown.

Mapping anzeigen

Klicken Sie auf "Mapping anzeigen" um den aktuellen Status aller Kursvarianten zu sehen:

[Mapping anzeigen]

✅ 5 verknuepft | ❌ 46 nicht verknuepft

┌────────────────────┬──────────────┬─────────┬─────────────────────┬──────────┐
│ Kurs               │ Variante     │ Preis   │ sevDesk Dienstl.    │ Status   │
├────────────────────┼──────────────┼─────────┼─────────────────────┼──────────┤
│ Reitferien         │ Erwachsene   │ 890 €   │ KB-RO-12345         │ ✅       │
│ Wochenendkurs      │ Standard     │ 180 €   │ —                   │ ❌       │
└────────────────────┴──────────────┴─────────┴─────────────────────┴──────────┘

Status-Bedeutung

Status Bedeutung
Manuell Manuell zugeordnet im Kurs-Editor (hoechste Prioritaet)
Auto-Sync Automatisch verknuepft ueber Bulk-Sync
⚠️ Pruefen Mapping vorhanden, aber Dienstleistung in sevDesk nicht gefunden
Nicht zugeordnet Keine Verknuepfung - wird bei naechster Buchung automatisch erstellt

Hinweis: Nicht verknuepfte Varianten (❌) werden bei der naechsten Buchung automatisch als Dienstleistung in sevDesk angelegt.


Manuelles Mapping im Kurs-Editor (Sprint 13)

Seit Version 1.5.0 koennen Sie jede Kurs-Variante manuell einer bestehenden sevDesk-Dienstleistung zuordnen.

Pfad: WordPress-Admin → Kurse → [Kurs bearbeiten] → Metabox "sevDesk Dienstleistungs-Zuordnung"


Muss ich etwas tun?

Kurze Antwort: Nein! Das manuelle Mapping ist ein optionales Feature fuer fortgeschrittene Nutzer.

Ihre Situation Was Sie tun muessen
Neu bei sevDesk ✅ Nichts - Auto-Sync erledigt alles automatisch
Keine bestehenden Dienstleistungen ✅ Nichts - werden automatisch erstellt
Namen sollen 1:1 uebernommen werden ✅ Nichts - Auto-Sync macht genau das
Bestehende sevDesk-Struktur vorhanden ⚠️ Manuelles Mapping empfohlen
Unterschiedliche Namen gewuenscht ⚠️ Manuelles Mapping noetig

Beispiel 1: Neue Nutzerin (Standard-Fall)

Situation: Melanie startet neu mit sevDesk und hat noch keine Dienstleistungen angelegt.

Melanie erstellt in WordPress:
└── Kurs: "Reitferien Osterferien"
    ├── Variante: "Erwachsene" (890 €)
    └── Variante: "Kinder" (690 €)

Was passiert bei der ersten Buchung?
└── sevDesk erstellt AUTOMATISCH:
    ├── Dienstleistung: "Reitferien Osterferien - Erwachsene" (890 €)
    └── Dienstleistung: "Reitferien Osterferien - Kinder" (690 €)

→ Melanie muss NICHTS tun! ✅

Beispiel 2: Bestehende sevDesk-Struktur

Situation: Melanie nutzt sevDesk seit Jahren und hat bereits Dienstleistungen angelegt.

In sevDesk existieren bereits:
├── "Einzelunterricht 60min" (verwendet seit 2020)
├── "Einzelunterricht 90min"
├── "Gruppenunterricht 2-4 Personen"
└── "Reitferien pro Woche"

Melanie erstellt neuen Kurs in WordPress:
└── "Schnupperstunde fuer Anfaenger" (schoener Marketing-Name)
    └── Variante: "60 Minuten" (89 €)

OHNE manuelles Mapping:
└── sevDesk erstellt NEUE Dienstleistung:
    └── "Schnupperstunde fuer Anfaenger - 60 Minuten" ❌
    → Problem: Duplikat! Melanie hat jetzt 2 aehnliche Dienstleistungen

MIT manuellem Mapping:
└── Melanie waehlt im Kurs-Editor:
    └── Dropdown: "Einzelunterricht 60min" auswaehlen ✅
    → Ergebnis: Rechnung nutzt die bestehende Dienstleistung
    → Keine Duplikate, saubere Buchhaltung

Beispiel 3: Marketing-Namen vs. Buchhaltungs-Namen

Situation: Auf der Website sollen ansprechende Namen stehen, in sevDesk neutrale.

Website (fuer Kunden):              sevDesk (fuer Steuerberater):
─────────────────────────────────   ─────────────────────────────
"Traumhafte Reitferien             "Reitferien 1 Woche"
 im Fruehlingserwachen"

"Entspanntes Wochenende            "Wochenend-Workshop"
 mit Pferden"

"Schnupperstunde fuer              "Einzelunterricht 60min"
 neugierige Anfaenger"

→ Manuelles Mapping verbindet beides!
  Marketing-Name auf Website ↔ Buchhaltungs-Name in sevDesk

So funktioniert das manuelle Mapping

  1. Kurs bearbeiten in WordPress
  2. Nach unten scrollen zur Metabox "sevDesk Dienstleistungs-Zuordnung"
  3. Pro Variante ein Dropdown mit allen sevDesk-Dienstleistungen
  4. Entweder:
  5. "-- Automatisch --" lassen → Auto-Sync wird verwendet
  6. Bestehende Dienstleistung auswaehlen → wird bei Rechnungen verwendet
  7. Kurs speichern
┌─────────────────────────────────────────────────────────────────┐
│ sevDesk Dienstleistungs-Zuordnung                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│ Variante          Preis    sevDesk-Dienstleistung     Status    │
│ ─────────────────────────────────────────────────────────────── │
│ Erwachsene        890 €    [-- Automatisch --    ▼]   Auto-Sync │
│ Kinder            690 €    [Reitferien 1 Woche  ▼]   Manuell ✅ │
│                                                                 │
│ Prioritaet: 1. Manuell → 2. Auto-Sync → 3. Auto-Erstellung     │
└─────────────────────────────────────────────────────────────────┘

Wann welche Option?

Situation Empfehlung
Gerade erst mit sevDesk angefangen Auto-Sync - einfach und unkompliziert
Bestehende Dienstleistungen in sevDesk Manuell zuordnen - keine Duplikate
Steuerberater moechte einheitliche Namen Manuell zuordnen
Marketing-Namen auf Website gewuenscht Manuell zuordnen
Alles soll automatisch laufen Auto-Sync aktivieren und vergessen

Vorteile des manuellen Mappings

Vorteil Beschreibung
Keine Duplikate Nicht "Reitstunde" und "Reitstunde - Standard" nebeneinander
Bessere Auswertungen Aehnliche Leistungen unter einer Dienstleistung zusammenfassen
Steuerberater-freundlich Konsistente Bezeichnungen unabhaengig von Marketing-Aenderungen
Flexibilitaet Namen auf der Website aendern ohne sevDesk zu beeinflussen

Prioritaet bei der Rechnungserstellung

Bei der Erstellung einer sevDesk-Rechnung wird in dieser Reihenfolge gesucht:

1. Manuelles Mapping     → Hat der Kurs eine manuelle Zuordnung im Editor?
       ↓ (falls nein)
2. Auto-Sync Mapping     → Wurde die Variante per Bulk-Sync verknuepft?
       ↓ (falls nein)
3. Auto-Erstellung       → Neue Dienstleistung automatisch anlegen

Manuelles Mapping hat immer Vorrang! Das bedeutet: Wenn Sie eine Variante manuell zuordnen, wird diese Zuordnung verwendet - auch wenn ein Auto-Sync-Mapping existiert.

Funktionsweise

Kurs: "Reitferien Osterferien"
├── Variante: "Erwachsene" (890,00 €)
│   └── sevDesk-Dienstleistung: "Reitferien Osterferien - Erwachsene"
│       ├── Artikelnr: KB-RO-12345
│       └── Preis: 890,00 €
│
└── Variante: "Kinder" (690,00 €)
    └── sevDesk-Dienstleistung: "Reitferien Osterferien - Kinder"
        ├── Artikelnr: KB-ROK-12346
        └── Preis: 690,00 €

Rechnungspositionen

Ohne Dienstleistungs-Verknuepfung (Standard):

Position: Reitferien Osterferien (BK-2025-0001) - Erwachsene
Preis: 890,00 €

Mit Dienstleistungs-Verknuepfung:

Position: Reitferien Osterferien (BK-2025-0001) - Erwachsene
Dienstleistung: Reitferien Osterferien - Erwachsene (KB-RO-12345)
Preis: 890,00 €

Der Unterschied: In sevDesk wird die Position mit der Dienstleistung verknuepft, was Auswertungen und die Buchhaltung verbessert.

Technische Details

Aspekt Wert
API-Endpoint /Part (GET, POST, PUT)
Typ Dienstleistung (stockEnabled: '0')
Status 100 = Aktiv, 50 = Inaktiv
Mapping In WordPress-Option gespeichert
Cache 1 Stunde (automatische Aktualisierung)
Modul-Klasse Kurs_Booking_SevDesk_Parts

sevDesk Part-Status

Status-Code Bedeutung Sichtbar im Inventar?
100 Aktiv ✅ Ja
50 Inaktiv/Deaktiviert ❌ Nein (nur mit Filter)

Wichtig: Die Standard-Inventaransicht in sevDesk zeigt nur aktive Parts (Status 100). Inaktive Parts (Status 50) werden ausgeblendet und sind nur ueber die API mit explizitem Status-Filter abrufbar.

Hinweise

  • Kein Loeschen: sevDesk-Dienstleistungen koennen ueber die API nicht geloescht werden
  • Preise: Bei Preis-Aenderungen in WordPress werden verknuepfte Dienstleistungen aktualisiert
  • Neue Varianten: Bei Auto-Sync werden neue Varianten automatisch als Dienstleistungen angelegt
  • Bestehende Buchungen: Die Dienstleistungs-Verknuepfung gilt nur fuer neue Rechnungen
  • stockEnabled: Muss als String '0' (nicht Boolean) an die API gesendet werden

Kostenlose Kurse (Preis = 0)

Bei kostenlosen Kursen wird keine sevDesk-Rechnung erstellt - eine Rechnung ueber 0,00 € macht keinen Sinn.

Buchungsablauf bei kostenlosen Kursen

Buchung: Kurs "Schnupperstunde" (kostenlos, 10 Plaetze)
    │
    ├── 1. Formular absenden (Ticket: 1x @ 0,00 €)
    │       → Platz wird reserviert (Status: pending)
    │
    ├── 2. Double-Opt-In E-Mail
    │       → Schuetzt vor Fake-Buchungen
    │       → §312i BGB: Eingangsbestaetigung Pflicht
    │
    ├── 3. Kunde klickt Bestaetigungslink
    │       → Buchung bestaetigt, Platz fest gebucht
    │
    ├── 4. Buchungsbestaetigungs-E-Mail
    │       → Mit Kursdetails, ohne Zahlungsinfos
    │
    └── 5. sevDesk Rechnung
            → WIRD UEBERSPRUNGEN (total_price = 0)

Warum Double-Opt-In auch bei kostenlosen Kursen?

Problem ohne Double-Opt-In Auswirkung
Jemand bucht mit fremder E-Mail Platz blockiert, echter Kunde bekommt ihn nicht
Spam-Bot fuellt Formular aus Alle Plaetze in Sekunden weg
Tippfehler in E-Mail Kunde bekommt keine Bestaetigung, Platz trotzdem weg

Rechtlich: Double-Opt-In ist fuer Buchungen nicht vorgeschrieben (nur fuer Newsletter). Die Eingangsbestaetigung gemaess §312i BGB ist jedoch Pflicht - diese wird durch die Double-Opt-In E-Mail erfuellt.

Was wird bei kostenlosen Kursen erstellt?

Element Wird erstellt?
Buchung in WordPress ✅ Ja
Kontakt in sevDesk ✅ Ja (fuer spaetere Buchungen)
Rechnung in sevDesk ❌ Nein
Buchungsbestaetigung (E-Mail) ✅ Ja
PDF-Bestaetigung ✅ Ja

Button-Text bei kostenlosen Kursen

In der Kurs-Card-Anzeige wird bei kostenlosen Kursen automatisch der passende Button-Text angezeigt:

Preis Button-Text
> 0 € "Kostenpflichtig buchen"
= 0 € "Jetzt buchen"
Ausverkauft "Details ansehen"

Manuelle Rechnungserstellung

Wenn Sie versuchen, fuer eine kostenlose Buchung manuell eine Rechnung zu erstellen, erscheint die Meldung:

"Kostenlose Buchung - keine Rechnung erforderlich."


Fehlende Rechnungen nachtraeglich erstellen

Wenn Buchungen existieren, fuer die noch keine sevDesk-Rechnung erstellt wurde (z.B. weil sevDesk erst spaeter konfiguriert wurde), koennen diese nachtraeglich erstellt werden.

Einzelne Buchung

  1. WordPress-Admin → Buchungen → [Buchung oeffnen]
  2. Im Bereich "sevDesk" auf "Rechnung erstellen" klicken
  3. Die Rechnung wird in sevDesk angelegt

Mehrere Buchungen (Bulk-Action)

  1. WordPress-Admin → Buchungen
  2. Mehrere Buchungen per Checkbox auswaehlen
  3. Im Dropdown "sevDesk Rechnungen erstellen" waehlen
  4. "Anwenden" klicken

Verarbeitung: - Buchungen MIT vorhandener Rechnung → werden uebersprungen - Buchungen OHNE Status "Bestaetigt" → werden uebersprungen - Buchungen ohne E-Mail → Fehler wird gespeichert

Nach Abschluss: - Anzahl erstellter Rechnungen - Anzahl uebersprungener Buchungen - Anzahl Fehler (falls vorhanden)

Tipp: Pruefen Sie vor der Bulk-Aktion, dass alle Buchungen den Status "Bestaetigt" haben und eine E-Mail-Adresse enthalten.


Troubleshooting

Dienstleistungen nicht im sevDesk Inventar sichtbar

Problem: Die erstellten Dienstleistungen erscheinen nicht unter https://my.sevdesk.de/admin/inventory/

Moegliche Ursachen:

Ursache Loesung
Part hat Status 50 (Inaktiv) sevDesk zeigt nur aktive Parts (Status 100)
"Dienstleistungen verwenden" nicht aktiviert Option in Einstellungen → sevDesk aktivieren
Part wurde mit falschen Parametern erstellt Plugin aktualisieren (Fix in Version 2.8+)

Loesung bei inaktiven Parts:

Die Dienstleistung wurde moeglicherweise mit Status 50 (Inaktiv) erstellt. Um sie sichtbar zu machen:

  1. In sevDesk: Inventar → Filter → "Inaktive anzeigen" aktivieren
  2. Oder via API: Status auf 100 setzen
PUT /api/v1/Part/{part_id}
{"status": "100"}

Mapping vorhanden aber Dienstleistung nicht gefunden

Problem: WordPress zeigt "⚠️ Pruefen" - Mapping existiert, aber sevDesk-Part nicht gefunden.

Moegliche Ursachen:

  • Part wurde in sevDesk manuell geloescht
  • Part wurde archiviert (Status 50)
  • API-Verbindungsproblem

Loesung: Kurs erneut speichern bei aktiviertem Auto-Sync. Eine neue Dienstleistung wird automatisch erstellt.

Umlaute werden falsch uebertragen (ae, oe, ue statt ä, ö, ü)

Problem: Namen wie "Müller" erscheinen in sevDesk als "Mu00fcller" oder "Mueller".

Ursache: Aeltere Plugin-Versionen (vor 1.4.1) hatten einen Bug bei der JSON-Kodierung von Umlauten.

Loesung:

  1. Plugin aktualisieren auf Version 1.4.1 oder hoeher
  2. Neue Buchungen werden automatisch korrekt uebertragen
  3. Bestehende Kontakte in sevDesk manuell korrigieren oder:
  4. Kontakt in sevDesk loeschen
  5. Neue Buchung mit korrekten Daten erstellen

Technischer Hintergrund:

Das Problem entstand durch wp_json_encode() ohne JSON_UNESCAPED_UNICODE Flag in Kombination mit WordPress' wp_unslash() Funktion:

"Müller" → JSON: "M\u00fcller" → wp_unslash: "Mu00fcller" ❌

Ab Version 1.4.1:

"Müller" → JSON mit UTF-8: "Müller" → bleibt: "Müller" ✅

Zahlungskommunikation uebernehmen

sevDesk kann optional die gesamte Zahlungskommunikation (Zahlungserinnerungen und Mahnwesen) uebernehmen.

Einstellung aendern

  1. Gehen Sie zu Kurse → Einstellungen → Erinnerungen
  2. Unter Zahlungskommunikation waehlen Sie "sevDesk"
  3. Speichern

Was uebernimmt sevDesk?

Funktion Mit sevDesk-Uebernahme Ohne sevDesk-Uebernahme
Kurserinnerung WordPress WordPress
Zahlungserinnerung sevDesk WordPress
1. Mahnung sevDesk WordPress
2. Mahnung sevDesk WordPress
3. Mahnung sevDesk WordPress

sevDesk Mahnwesen konfigurieren

  1. Oeffnen Sie sevDesk Mahnwesen-Einstellungen
  2. Konfigurieren Sie:
  3. Mahnstufen (z.B. nach 7, 14, 21 Tagen)
  4. Mahngebuehren (z.B. 0 €, 5 €, 10 €)
  5. Verzugszinsen (p.a.)
  6. E-Mail-Vorlagen fuer Mahnungen

Vorteile

Vorteil Beschreibung
Zentrale Buchhaltung Rechnungen + Mahnungen in einem System
Automatisch sevDesk ueberwacht Zahlungsfristen
Professionell sevDesk-Mahnvorlagen
Steuerberater Alles in sevDesk sichtbar

Hinweis: Diese Option erscheint nur wenn das sevDesk-Modul aktiviert ist.


Haeufige Fragen (FAQ)

Was passiert wenn ich nicht synchronisiere und jemand bucht?

Kurze Antwort: Alles funktioniert automatisch! Kontakte und Dienstleistungen werden bei Bedarf automatisch erstellt.

Detaillierte Erklaerung

Element Was passiert bei einer Buchung?
Kontakt Wird automatisch erstellt via get_or_create_contact_for_booking()
Dienstleistung Wird automatisch erstellt wenn "Dienstleistungen verwenden" aktiviert ist
Rechnung Wird normal erstellt mit allen korrekten Positionen

Ablauf bei einer Buchung ohne vorherige Synchronisation

Buchung kommt rein: "Reitferien Ostern - Erwachsene" (890 €)
    │
    ├── 1. Kontakt suchen in sevDesk
    │       → Suche nach E-Mail-Adresse
    │       → Nicht gefunden?
    │       → ✅ AUTOMATISCH ERSTELLT mit allen Buchungsdaten
    │
    ├── 2. Dienstleistung suchen in sevDesk
    │       → Suche nach Mapping (kurs_id + variante)
    │       → Nicht gefunden?
    │       → ✅ AUTOMATISCH ERSTELLT (wenn Option aktiviert)
    │
    └── 3. Rechnung erstellen
            → Mit Kontakt-Referenz
            → Mit Dienstleistungs-Referenz (falls aktiviert)
            → ✅ Fertig!

Was passiert bei einer spaeteren Synchronisation?

Keine Duplikate! Das System erkennt automatisch:

Situation Ergebnis
Kontakt existiert bereits Wird uebersprungen (oder aktualisiert falls Daten geaendert)
Dienstleistung existiert bereits Wird uebersprungen (oder Preis aktualisiert)

Empfehlung

Ihre Situation Empfehlung
Neues System Bulk-Sync einmal durchfuehren fuer saubere Ausgangslage
Auto-Sync aktiviert Nichts tun - alles passiert automatisch
Nur bei Bedarf Kein Sync noetig - bei erster Buchung wird alles erstellt

Zusammenfassung: Sie muessen sich keine Sorgen machen! Ob Sie synchronisieren oder nicht - bei einer Buchung werden alle benoetigten Daten automatisch in sevDesk angelegt. Die Bulk-Synchronisation dient hauptsaechlich dazu, einen sauberen Ueberblick zu haben BEVOR Buchungen eingehen.


Wichtig: Die sevDesk-Integration erfordert einen sevDesk-Account mit API-Zugang.

Inhalt