Alle Änderungen, neue Endpoints und Breaking Changes — chronologisch dokumentiert.
August 2026
Neu
Widerruf von Shop-Käufen
Käufer können einen Shop-Kauf innerhalb der Widerrufsfrist widerrufen. Terminkäufe sind gesetzlich vom Widerrufsrecht ausgenommen und erscheinen nicht in der Liste.
Neue Query getMyRevocablePurchases: [RevocablePurchase!]! — Käufe mit laufender Frist, inklusive revocationDeadline
Neue Mutation declareRevocation(invoiceId: ID!): Revocation!
Neue Typen RevocablePurchase und Revocation
Ein bereits widerrufener Kauf kann nicht erneut widerrufen werden
Neu
Shop-API für native Apps
Neue Felder rund um Buchung, Rechnung und Zahlung. Alle Änderungen sind additiv.
Neue Query availablePaymentMethodsForEvent(eventId: ID!): [MolliePaymentMethod!]!
Neue Felder invoiceId: ID und invoiceStatus: InvoiceStatus bei Booking — nur für den Buchenden selbst und Event-Admins, sonst null
Neues Feld invoiceId: ID bei CreateBookingV2Result
Neues Feld myBooking: Booking bei Event — liefert die eigene Buchung unabhängig von der Einstellung publicParticipantNames
Neue Felder molliePaymentStatus und molliePaymentMethod bei Invoice, beide null solange keine Online-Zahlung existiert
Neu
TLC-Charge nachträglich korrigieren
Der Betrag einer bestehenden TLC-Charge lässt sich jetzt korrigieren, ohne sie löschen und neu anlegen zu müssen. Gültigkeitszeitraum und Historie bleiben erhalten.
Neue Mutation updateTimeLimitedCredit(id: ID!, amount: Int!): Boolean! — der Wert wird absolut gesetzt, nicht addiert
Gültiger Bereich 1–10.000; unveränderte Werte werden abgelehnt
validFrom und validUntil bleiben unveränderlich
Neuer Log-Typ tlcEdited mit altem und neuem Wert
Breaking Change
Argument kind bei uploadMandantPictureV2 ist Pflicht
Beim Bild-Upload muss die Bildart jetzt angegeben werden. Der bisherige Standardwert coursePicture entfällt.
Der Standardwert am Query-Argument mandantPictures(kind:) bleibt unverändert
Neu
Freiplätze auf kostenpflichtigen Terminen
Admins können einen Teilnehmer auf einen kostenpflichtigen Termin buchen, ohne dass eine Rechnung entsteht — für Freiplätze, Gutscheine oder Sonderfälle.
Neues optionales Argument skipInvoice: Boolean bei createBookingForUserV2
Die Buchung entsteht wie eine kostenlose: keine Rechnung, keine Rechnungs-Mail, wasPurchased bleibt false
Nur auf dem Admin-Pfad wirksam; im Protokoll als invoice-skipped vermerkt
Breaking Change
Query getInvoicePdf entfernt
Die Query getInvoicePdf wurde entfernt. Ersatz ist getInvoicePdfV2, das das PDF direkt als Base64 zurückgibt statt als Link auf eine erzeugte Datei.
Entfernt: getInvoicePdf — Ersatz ist getInvoicePdfV2
Juli 2026
Neu
Bild-Varianten und Logo-Upload
Hochgeladene Bilder werden nicht mehr auf 200×200 verkleinert, sondern in mehreren Größen gespeichert. Neu ist außerdem die Bildart logo mit erhaltener Transparenz. Alle Schema-Änderungen sind additiv — bestehende Clients funktionieren unverändert.
Neues Enum PictureKind mit coursePicture und logo
Neue Felder bei Picture: kind: PictureKind!, mediumUrl: String, width: Int, height: Int — bei Logos bleiben die Medium-Felder leer
Neues optionales Argument kind bei mandantPictures und uploadMandantPictureV2 (Standard: coursePicture)
Logos werden als Kurs-, Termin- und Produktbild serverseitig abgelehnt
Breaking Change
Vier veraltete V1-Endpunkte entfernt
Vier veraltete Endpunkte wurden entfernt. Alle vier haben einen V2-Nachfolger.
Entfernt: createMultiBooking — Ersatz ist createMultiBookingV2
Entfernt: addRemoveCreditsForAllUsers — Ersatz ist addRemoveCreditsForAllUsersV2 (deprecated seit 04/2026)
Entfernt: getLogsCsv — Ersatz ist getLogsCsvV2
Entfernt: pdfEventSummary — Ersatz ist pdfEventSummaryV2
Entfernt: Typen CreateMultiBookingResult und MultiBookingResult
Breaking Change
Teilnehmer-Kontaktdaten nur noch fuer Berechtigte
E-Mail-Adressen von Teilnehmern sehen jetzt nur noch Mandanten-Admins und globale Trainer. Kurs-Trainer erhalten in Buchungslisten null, die detaillierte Termin-PDF ist fuer sie nicht mehr abrufbar (die einfache Variante bleibt).
Feld User.email ist jetzt nullable: String! → String — Clients muessen mit null umgehen koennen
Event.bookings liefert email nur noch fuer Admins und globale Trainer
pdfEventSummaryV2 mit withDetails: true erfordert jetzt Admin- oder globale Trainer-Rechte
Neu
Neue Statistik-Query topUsersByBookings
Liefert die Nutzer mit den meisten Buchungen eines Mandanten in einem Zeitraum.
Neue Query topUsersByBookings(mandantId: ID!, from: Date!, to: Date!, limit: Int = 10, includeWaitlist: Boolean = false): [UserBookingStat!]!
Neuer Typ UserBookingStat mit userId, user, numBookings und numWaitlists
API-Änderungen per E-Mail erhalten
Wir informieren dich bei neuen Features, Breaking Changes und Deprecations.