Zum Inhalt springen

Funktionen · Plattform & Betrieb

Lizenzierung & Vertrieb

Hier geht es um unser eigenes Geschäft: wie ein Betrieb zu DiKAS kommt, was er bezahlt und was dadurch bei ihm freigeschaltet ist. Ein Interessent bestellt über einen Bestellassistenten im Netz oder über einen Fachhändler, bekommt daraufhin automatisch seine eigene Instanz samt Zugangsdaten, und der Lizenzserver merkt sich ab da: welches Paket, welche Zusatzmodule, wie viele Arbeitsplätze, bis wann bezahlt. Dieselbe Stelle verwaltet Testzugänge, Tarifwechsel, Zusatz-Arbeitsplätze, Kündigungen und die Partner, die für uns verkaufen oder Betriebe betreuen. Was der Kunde in seinem System sieht, entscheidet sich hier — nicht in seinen Einstellungen. Nicht hierher gehören die Kunden unserer Kunden (08) und die Rechnungsstellung an Endkunden (09).

94 geprüfte Funktionen Funktionsstand 08.09.2026
DiKAS-Einrichtungsassistent

Neue Betriebe Schritt für Schritt einrichten.

Echte Oberfläche

Lizenzierung & Vertrieb in DiKAS

Keine Stockmotive: Die Aufnahmen stammen aus den reproduzierbaren DiKAS-Demos und zeigen die jeweilige Funktion im Produkt.

Auswahl der Datenherkunft im DiKAS-Assistenten
Bestehende Daten kontrolliert übernehmen.

Vollständiger Überblick

Was DiKAS in diesem Bereich kann

Alle folgenden Punkte stammen aus dem gegen den Programmcode geprüften Funktionskatalog.

Mit vorhandenem Abo verknüpfen

Trägt an einer Lizenz ein BESTEHENDES Abo des Kunden nach — schließt die halbe Verknüpfung aus der Altsystem-Übernahme, ohne ein zweites Abo anzulegen. Nur Abos DESSELBEN Kunden; am Abo selbst ändert sich nichts

Kundenverbindung lösen / umhängen

An einer bestehenden Lizenz die Kundenzuordnung lösen oder auf einen anderen Kunden umhängen — der Weg, um Dubletten aus der Altsystem-Übernahme zusammenzuführen. Bereits erstellte Rechnungen bleiben beim bisherigen Kunden

Lizenz anlegen / ändern (Operator)

Lizenzsatz mit Kunde, Online-Name, Paket, Modulen, Laufzeit, DB-Server anlegen und pflegen

Ablaufdatum je Modul (Operator)

Jede Katalog- UND jede Paket-/Systemposition einer Lizenz trägt ein eigenes Ablaufdatum (leer = unbefristet; Paketpositionen werden über die Objektidentität getroffen, nie über den Namen — eine Lizenz kann zwei gleichnamige Positionen tragen). Vom 11.07. bis 03.09.2026 fehlte das Feld in der Maske; ein bezahltes Modul war damit nicht verlängerbar, die Daten waren nie weg. 549 von 562 Ablaufdaten liegen in den Paket-/Systempositionen (Kasse 479x), nicht im Katalog-Raster

Lizenzliste mit Suche & Filter

Seitenweise Operatorliste (ohne Abo / ohne Kunde, Ablaufdatum, Stichwort)

Modul- und Paket-Katalog

Buchbare Pakete und echte catalogKind=module-Artikel für die „Neue Lizenz"-Maske; bestehende Lizenzpositionen werden über licenseModuleKey statt den veränderlichen Anzeigenamen den Häkchen zugeordnet. Paket-/TSE-/Systempositionen bleiben sichtbar, sind aber ausdrücklich keine Modul-Schalter

CH-Kaufweg (einmaliger Kaufpreis, kein Abo)

Auf einem Deployment mit Fiscal:Country=CH sind die vier Kaufpakete (pkg_ch_kasse/gastro/liefer/club, 1'490 / 2'490 / 3'190 / 7'900 CHF exkl. MWST) die EINZIGEN Pakete. Bestellung → PaymentIntent über den Kaufpreis in CHF (Karte, TWINT sobald im Stripe-Dashboard frei) → EINE Rechnung ohne MWST mit Bezugsteuer-Hinweis (Art. 45 MWSTG, Text und Satz als Konfiguration) → Lizenz ohne Enddatum, kein Abo, kein Abo-Lauf, keine TSE. Siehe Abschnitt „CH-Kaufmodell"

Lizenzartikel seeden

Legt Pakete, Module und TSE-Artikel idempotent aus dem kanonischen Preisbuch an; entdoppelt gleichnamige aktive Paket-/TSE-Artikel (soft-deaktivieren, nie löschen) — Modul-Artikel werden über licenseModuleKey gematcht und nie entdoppelt

Provisionierung einer Instanz

Mandanten-CouchDB anlegen, Admin-User seeden, systemlic schreiben, Branding verteilen

Anleitung öffnen

Cloud-Instanz mit Support-Anmeldung öffnen (Operator)

In der Lizenzliste öffnet ein eigener Knopf nur Next-/Cloud-Instanzen direkt als SupportAdmin: der Lizenzserver schreibt zuerst den zentralen Audit-Eintrag, stellt dann ein 60 Sekunden gültiges, per Lizenz-Sync-Key signiertes Handoff aus, und die Zielinstanz tauscht es gegen eine nicht erneuerbare 60-Minuten-Sitzung ohne Refresh-Token. Das Ticket reist nur im URL-Fragment und wird dort sofort aus der Browser-History entfernt. Altportal-Lizenzen behalten ausschließlich den normalen Link

Lizenz aktivieren (Erstinstallation)

Install-Key + Passwort an der Kasse eingeben, Instanz freischalten bzw. on-demand provisionieren

Anleitung öffnen

Legacy-Lizenz-REST

Alt-Endpunkte, über die Kassen ihre Lizenz, DB-Zugang und Sync-Daten holen (lizenz/install, lizenz/db, lizenz/check)

Lizenz-Enforcement (Sperre)

Ableitung Aktiv / Kulanz / eingeschränkt / vollgesperrt / unlizenziert samt Klartext-Grund

Enforcement-Claim täglich nachziehen

Der Lizenzserver re-signiert alle 24 h den Claim jeder provisionierten Lizenz in deren systemlic und verlängert damit dessen Lebensdauer (14 Tage). Gesperrte Lizenzen (IsLocked) sind seit 07.08.2026 ausgenommen — sie sollen ablaufen; das Entsperren schreibt sofort einen frischen Claim

Vollsperre der API

Bei abgelaufener Lizenz alle Aufrufe mit HTTP 423 blocken (außer Status, Login, Upgrade)

Lizenzstatus abfragen

Anonymer Status-Endpunkt, den die Oberfläche für Hinweisbanner liest

Modul-Gate am Endpunkt

Sperrt markierte Controller mit HTTP 403 MODULE_NOT_LICENSED, wenn das Modul fehlt

Modul-Gate in der Oberfläche

isModuleLicensed() blendet Flächen aus bzw. sperrt Schalter mit Schloss-Abzeichen

Anleitung öffnen

Faktura mit Kasse/Gastro

Eine Lizenz mit factura und kasse oder tables bleibt ein Kassenbetrieb: Normal/Experte, Lager, QR-/Self-Service und die übrigen Betriebs-Module werden nicht ausgeblendet. tables gewährt außerdem die Finanzfunktionen.

Kassenlos-Weiche (Faktura-Tarif)

factura ohne kasse und ohne tables sperrt den kompletten /pos-Zweig und legt die Startseite auf die Verwaltung; eine Kombi-Lizenz bleibt im POS

Anleitung öffnen

Öffentlicher Bestellassistent

8 Schritte: Paket, Optionen (Arbeitsplätze, Abrechnung, TSE), Zusatzmodule, Hardware, Konto, Firma mit Online-Name, Zahlung inkl. Rechtstexten, Abschluss — der Faktura-Funnel überspringt Optionen und Zusatzmodule, der Kontoschritt entfällt für Angemeldete und anonyme Besteller; der Online-Name wird aus dem Firmennamen vorgeschlagen (Slug, bei Kollision Suffix -2/-3, ein selbst gewählter Name wird nie überschrieben), und der Weiter-Knopf ist nie stumm deaktiviert — ein Klick bei unvollständigem Schritt nennt den Grund sichtbar und meldet ihn als Matomo-Ereignis Funnel / Weiter blockiert Schritt <n> (F1, Kaufweg-Messung 21.08.2026). Seit 31.08.2026 legt auch der Faktura-Einstieg /onboarding/faktura?tier=faktura die Bestellung an (ensureOrder() beim Betreten der Betriebsstätte, nicht nur beim Übergang dorthin)

Anleitung öffnen

Bestell-Endpunkte

Pakete, Hardware, TSE, Add-ons, Namensprüflung, Preisvorschau, Bestellung anlegen/absenden

Anleitung öffnen

Online-Namen reservieren

Prüft und sperrt den Wunschnamen der Instanz während der Bestellung

Onboarding-Aufräumlauf

Räumt abgebrochene/unbezahlte Bestellungen (Status Draft bis PendingPayment) nach Ablauf ab und gibt deren Online-Namen-Reservierung wieder frei; provisionierte, bezahlte und fehlgeschlagene Bestellungen bleiben unangetastet

Hängende Provisionierungen ansehen

Operator-Vorschau (rein lesend) auf bezahlte Bestellungen, die seit über einer Stunde weder abgeschlossen noch aufgegeben sind: Zählung plus je Fall, ob eine Lizenz existiert und ob die Bestellung sie kennt (verwaiste Lizenz = der Alt-Fall aus Befund 11-01-H). Ändert nichts — wieder aufgenommen wird über den regulären Retry-Weg

Live-Preisvorschau

Wiederkehrender Betrag (Monat/Jahr) plus einmalige Hardware aus denselben Preisen wie die Abrechnung

Bezahlung im Funnel

Stripe-Karte oder Überweisung; bei Überweisung entsteht das Abo erst mit dem Zahlungseingang

Support-Kopie von Bestell- und Aktivierungsereignissen

Nach idempotent erfolgreicher Provisionierung sowie bei jeder erfolgreichen Lizenzaktivierung geht eine interne, geheimnisfreie Nachricht an die zentral konfigurierte Support-Adresse; Versandfehler blockieren den Fachvorgang nicht

SEPA-Mandat für laufende Beiträge

Vermerkt das unterschriebene Mandat der Bestellung; erste Rechnung bleibt Überweisung

Lieferschein-Entwurf aus der Bestellung

Erreicht eine Lizenzbestellung mit Warenanteil die Provisionierung (also nach Zahlungseingang), entsteht daraus genau ein Lieferschein-Entwurf: Lieferadresse der Bestellung, ausschließlich die Hardware-Positionen (Paket und Add-ons sind Software), ohne Nummer und ohne Seriennummern. Idempotenz-Marker ist LicenseOrder.DeliveryNoteId — ein Retry, ein Crash-Requeue des Provisionierungs-Workers und der parallele Geldeingang-Lauf treffen alle darauf

Hardware-Lieferschein am Ticket

Der Druck am Hardware-Versand-Ticket stellt den vorhandenen Entwurf aus (Nummer aus der Serie lieferschein, PDF-Ablage am Dokument) statt einen eigenen Beleg zu bauen; existiert noch keiner, legt derselbe Dienst ihn an. Der zweite Druck liefert dasselbe PDF mit derselben Nummer aus der Ablage. 🪤 Seit Etappe W8 prüft der Weg den ZUSTAND und nicht nur die Existenz des Belegs am Ticket — der Verweis kann auf einen Entwurf zeigen, und ein Entwurf ist kein Papier

Kopplung Gerät zu Lizenz

Beim Ausstellen tragen die Geräte des Belegs LicenseId, LicenseOrderId und OnlineName; die Brücke ILizenzkopplung löst die Bestellung auf. 🪤 Ist die Bestellung bezahlt, aber noch nicht provisioniert, bleibt die Lizenz-Id leer — eine erfundene wäre eine Aussage über eine Lizenz, die es nicht gibt

Abschnitt Gelieferte Geräte

Im Lizenzdetail (je Lizenz) und im Kundendetail, Reiter Lizenzen (über alle Lizenzen der Firma): Seriennummer, Artikel, Zustand, Garantie bis. Zustandstext und der Hinweis auf eine abgelaufene Garantie kommen vom Server — sonst entschiede die Uhr des Bedieners über einen Garantietausch

Händlersicht auf die Seriennummern

Der Fachhändler sieht im Portal die Geräte seiner Kunden — Seriennummer, Artikel, Lieferdatum, Garantie bis, Zustand —, ohne Einkaufspreis und ohne Lieferant (Owner-Entscheid 3 vom 07.09.2026). Recht partner.serial.view, im Handler geprüft; eine fremde Lizenz antwortet mit einer LEEREN Liste statt mit einem Fehler

Selbst-Trial ohne Bestellung

Erzeugt zahlungs- und menschenlos eine echte Testinstanz (Honeypot + IP-Limit)

Faktura-Trial 60 Tage

DE-Einstieg testet „Faktura Pro" ohne Zahlungsmittel und fällt danach auf den Gratis-Tarif zurück

Anleitung öffnen

Trial-Erinnerungen

Mailstrecke vor Trial-Ende, je Stufe genau einmal (Rest-Tage-Marke an der Lizenz)

Trial in Kauf umwandeln

Wandelt den laufenden Test der eigenen Instanz in eine bezahlte Lizenz (von der Sperre ausgenommen)

Trial-Deprovisionierung (Inventur)

Findet abgelaufene Self-Service-Trials, deren Kulanzfrist (30 Tage) verstrichen ist, als Deprovisionierungs-Kandidaten — bewusst DRY-RUN: löscht nichts, der eigentliche DB-Drop ist dark/guarded und nicht verdrahtet

Tarifwechsel Faktura (inkl. Kaufweg im Trial)

Gratis → Rechnung → Pro. Bei einer BEZAHLTEN Lizenz nur aufwärts; im laufenden Trial ist jeder BEZAHLTE Tarif der Familie kaufbar — auch der gerade getestete und ein günstigerer (Befund 2026-08-08: der DE-Funnel startet den Trial auf „Pro", der höchsten Stufe, und die reine Aufwärts-Regel liess dem Testkunden deshalb GAR KEINEN Kaufknopf). Gratis bleibt auch im Trial gesperrt. Ein Kauf beendet den Trial (IsTrial=false, EndDate=null) und wird als trialEnded an das Portal zurückgemeldet. Wirkt sofort, abgerechnet ab nächstem Zyklus. Die aktive Stufe steht seit 2026-08-03 explizit im Lizenzfeld FacturaTier (gratis/rechnung/pro) — sie darf NICHT mehr aus der Modul-Liste abgeleitet werden, seit finance (Bankkonto, Bankabgleich, Mahnwesen, SEPA) auch im 9-€-Tarif „dikas Faktura Rechnung" steckt. Der einzige verbliebene Unterschied zu Pro ist FinTS (automatischer Bankabruf), serverseitig gesperrt mit FACTURA_FINTS_REQUIRES_PRO — siehe 10 Banking & SEPA. Lizenzen ohne das Feld (Altbestand) fallen weiterhin auf die alte Modul-Ableitung zurück

Anleitung öffnen

Wechsel Faktura → Kassenpaket

Wechselt nur die Modulzugehörigkeit; Rechnungen, Kunden und Nummernkreise bleiben

Seat-Zählung (Arbeitsplätze)

Effektives Limit aus MaxDevices plus heutigen Tages-Seats; Fallback auf die Kasse-Modul-Anzahl

Anleitung öffnen

Belegte Seats sehen und freigeben

Aktive Geräte im Kassen-Tab, Sofort-Freigabe eines Geräts (max. 3/Tag, neustartfest)

Anleitung öffnen

Temporärer Tages-Seat

Zusatzplatz für genau einen Geschäftstag, 3 € netto, 2×/Monat gratis, läuft automatisch aus

Anleitung öffnen

Geräteplätze dauerhaft buchen

Preisauskunft vor der Buchung („kein stiller Kauf"), anteilige Berechnung, Einzug mit nächstem Abo

Anleitung öffnen

Zusatzspeicher buchen und reduzieren

documentstorage ist ein nicht funktionsschaltender Artikel: 1 GiB je Einheit, 5 € netto monatlich oder 50 € netto jährlich, höchstens 20 Einheiten im Self-Service. Zubuchung verlangt eine frische Preisauskunft und aktive Bestätigung, berechnet die laufende Periode anteilig und pusht die Lizenz sofort. Reduzierung gilt erst am nächsten Abrechnungstermin und nur, wenn der zuletzt gemeldete Verbrauch in die Zielkapazität passt. Direktkunden nutzen das Kundenportal; reseller-abgerechnete Lizenzen sind dort gesperrt und werden ausschließlich über den geschützten Händlerpfad geändert

Belegspeicher-Policy und Verbrauchsmeldung

Neue deutsche Lizenzen tragen Policy-Version, enthaltene Bytes und Zusatzmenge; Altverträge bleiben ohne Policy-Version. Der Mandant meldet den providerneutral gezählten Ist-Verbrauch SyncLink-authentifiziert täglich. Der Lizenzserver speichert den letzten Stand und sendet die 80/95/100-%-Warnung höchstens einmal je Kapazitätsstand

Rechtstext-Version beim Vertragsschluss

Der Server liefert Version, URL und SHA-256 der geltenden Fassung. Beide Onboarding-Oberflächen senden die Serverversion zurück; der Submit lehnt veraltete oder erfundene Werte ab und speichert Version, Zeitpunkt, URL und Hash. Für Deutschland ist AGB 2.0 vorgesehen, andere Länder bleiben auf ihrer bisherigen Fassung

Geräteplätze reduzieren

Vormerkung zum Monatsersten; Rücknahme bis zur Wirksamkeit kostenfrei

Anleitung öffnen

Gerätepreise je Tarif

Basic 19 €, Gastro 39 €, Liefer & Abhol 45 €, Club 49 €, Faktura 19 €, Werkstatt 19 €; Mengenstaffel 100/85/70 %

Self-Service-Automaten zubuchen

Stückzahl kostenpflichtiger Automaten mit Preisauskunft, Reduzierung und Rücknahme

Tägliche Nutzungsmeldung

Instanz meldet die Zahl der Arbeitsplätze mit Umsatz je Geschäftstag an den Lizenzserver

Kunden-Lizenzübersicht (Portal)

Install-Key, Instanz-Adresse, ISO-Download, Module, Seats, Trial-Hinweis, Tarifwahl. Im Trial ist das der KAUFWEG: der Knopf heißt „jetzt kaufen" (Backend markiert die laufende Stufe mit isCurrentTier), der Bestätigungs-Dialog nennt ausdrücklich, dass der Testzeitraum damit endet

Abo-Anbindung

Synchronisiert Paket, Module und Zusatzgeräte in das Kunden-Abo; Nachtrag für Altlizenzen

Zahlungsausfall / Wiederaufnahme

Mahnstufen-Suspendierung der Instanz und automatische Reaktivierung bei Zahlungseingang

Instanz-Sperre & Enforcement-Ausnahme (Operator)

Manueller Suspension-Schalter je Lizenz ({id}/suspension) und Freistellung einzelner Lizenzen vom Enforcement ({id}/enforcement-exemption)

Kündigung / Dekommission

Zum Ende der bezahlten Periode TSE abschalten, Sicherung archivieren, Kunde benachrichtigen

TSE-Archiv-Download nach Kündigung

Login-freier, tokengesicherter ZIP-Download der archivierten TSE-Sicherung (rund 6 Monate)

Cloud-TSE bestellen / pausieren

Fiskaly-Provisionierung, 12 € Pausengebühr je Monat, 20 € Reaktivierung nach Pause

TSE-Tresor (Wiederherstellungsdaten)

Meldet AdminPUK/CredentialSeed & Co. aus jeder Instanz an den Lizenzserver — ein Dokument je (Lizenz, TSE-Seriennummer, Fingerprint); jede inhaltliche Änderung (TSE-Tausch ebenso wie geänderte PIN/PUK) legt ein zusätzliches Dokument an, statt das vorhandene zu überschreiben. Meldung täglich (TseCredentialReporter, je Mandant über ITenantJobRunner) plus sofort aus TseController.UpdateConfig/Initialize. Geheimfelder $ENC$-verschlüsselt; Abruf ohne Geheimnisse (nur has…-Flags), Aufdecken nur über einen eigenen Endpunkt mit Audit-Eintrag TSE_VAULT_REVEAL

Marken-Verwaltung (Reseller-Branding)

Marke am Lizenzserver pflegen (Name, Theme, Farben, Schriften, Logo), Logo hoch-/entladen — Operator über jede Marke, Reseller über die EIGENE (api/v1/portal/reseller/marke, serverseitig über seine PartnerId aufgelöst, nie per brandingId-Parameter; Theme-Wahl auf dikas/dikas-hell begrenzt); Logo-Anhang und Marken-Dokument werden mit derselben aktuellen CouchDB-Revision geschrieben

Anleitung öffnen

Markeneigentümer umhängen (Operator)

Eigentümer-Partner einer Marke ändern

Marke → Lizenz → Mandant

Marke an eine Lizenz hängen; die Werte werden bei der Provisionierung in die Mandanten-DB geschrieben

Betreuender Händler an der Lizenz (Operator)

Händler-Spalte + Filter in der Lizenzübersicht (zeigt getrennt „abgerechnet" = ResellerPartnerId und „betreut" = SupportPartnerId — nur ersteres bewegt Geld); Einzelfeld an der Lizenz; Massenzuweisung des betreuenden Händlers an alle Lizenzen einer Kundengruppe mit Vorschau-vor-Zuweisen-Sperre (apply:false → Zahlen, erst danach apply:true schreibbar)

Partner (Kanzlei) verwalten

Steuerberater-Kanzleien anlegen, einladen, sperren, Verknüpfungsanfragen bestätigen

Anleitung öffnen

Kleinunternehmer-Kennzeichen am Händler

Partner.IsSmallBusiness (seit 31.08.2026): ein Händler, der als Kleinunternehmer keine Umsatzsteuer ausweist, bekommt seine Provisions-Gutschrift ohne Steuer. Muss ausdrücklich gesetzt werden, Regelfall ist der Steuerausweis. Nicht zu verwechseln mit dem Mandanten-Schalter BackendConfig.SmallBusinessExemption (der betrifft die Rechnungen des KUNDEN, 09)

Händler-Detail, Kunden-Reiter (Operator)

Liste der betreuten/abgerechneten Kunden im Händler-Detail; Kunden-Reiter verlinkt Firma → Kundenmaske und OnlineName → Lizenzmaske (Firma nur, wenn die Lizenz eine customerId trägt — Altbestand ohne bleibt unverlinkter Text)

Kanzlei-Selbstregistrierung & Verzeichnis

Öffentliche Anmeldung mit Doppel-Opt-in, Cockpit-Demo, öffentliches Kanzlei-Verzeichnis

Anleitung öffnen

Mandanten-Verknüpfung (Einwilligung)

Kanzlei fragt an, Kunde bestätigt im Portal — beidseitig widerrufbar

Anleitung öffnen

Händler-Portal (Reseller)

Eigene und ausdrücklich betreute Endkunden sehen; Online-Name öffnet die kanonische Kundeninstanz in einem neuen Fenster, Detail zeigt Install-Key. Beide Beziehungen dürfen Kundenstammdaten inkl. Steuernummer pflegen; nur der abrechnende Reseller darf Vertrag, Paket/Module, Freischaltung und Zugangsdaten ändern. Die Liste entdoppelt, wenn beide Beziehungen auf denselben Händler zeigen. Stammdaten werden in Lizenz, zentralen Kunden und gezielt im bestehenden Mandanten-systemlic aktualisiert. Fehlen lokale Steuerdaten im Einrichtungsassistenten, werden TaxId/VatId aus systemlic vorbelegt

Anleitung öffnen

Reseller-Kunde freischalten

Beendet die Einrichtungsphase (ResellerSetupPending) eines vom Händler angelegten Endkunden: Abo-Start + Erstrechnung (geldwirksam, über NextInvoiceDate wiederholbar), danach Cloud-TSE best-effort, zuletzt Kundeneinladung — Reihenfolge ist Absicht. Idempotent über CustomerSubscription.ActivatedAt; ein Cloud-TSE-Fehler kippt die Freischaltung nicht

Anleitung öffnen

Reseller-Konfiguration bis zum Go ändern

Owner 07.08.2026: solange ein Händler-Kunde NICHT freigeschaltet ist, darf der Händler Paket, Module/Add-ons und Seats frei ändern; mit der Freischaltung steht die Konfiguration fest (ALREADY_ACTIVATED, keyt auf CustomerSubscription.ActivatedAt, nicht auf ResellerSetupPending). Zieht die Order/Lizenz-Module über dieselbe BuildModules-Stelle wie die Anlage nach und pusht per SeedSystemLicenseDocAsync sofort in die Mandanten-DB — sonst hätte die Änderung keine Wirkung in der Instanz

Anleitung öffnen

Reseller-Einrichtungsfrist (Erinnerung/Stilllegung)

Täglicher Job: Erinnerung an den Händler nach 21 Tagen ohne Freischaltung (CustomerSubscription.SetupReminderSentAt als Einmal-Riegel), Stilllegung (nicht Löschung) nach 30 Tagen + Berechnung bereits gelieferter Swissbit-Hardware an den Händler. Filter ist eng auf ResellerSetupPending — ein weiterer Filter über ResellerPartnerId würde laufende Bestandsbetriebe des alten Reseller-Modells stilllegen

Anleitung öffnen

Reseller-Einrichtung abbrechen

POST portal/reseller/kunden/{licenseId}/einrichtung-abbrechen (Owner 31.08.2026): ein falsch angelegter Kunde geht SOFORT wieder los, ohne 30 Tage Frist — Einrichtungsmerker an der Order löschen, automatische Doppelrollen-Verknüpfung beenden, ResellerSetupPending beenden, Abo mit EffectiveDate = jetzt (nicht Monatsende), Instanz sperren OHNE Hardware-Berechnung. Doppelter Riegel ActivatedAt + ResellerSetupPending, damit weder ein freigeschalteter Kunde noch ein Bestandskunde des alten Modells durchkommt. Der naheliegende Weg über „Kündigen" löst das nicht: der belegt das Kontingent bis Monatsende und der Fristen-Job stellt an Tag 30 trotzdem die Hardware in Rechnung

Anleitung öffnen

„In Einrichtung" sichtbar

setupPending steht seit 31.08.2026 in der Händler-Kundenliste und in der Operator-Lizenzliste (vorher war ein laufender Kunde von einem, der noch nichts kostet, nicht zu unterscheiden — „warum bekommt der Kunde keine Rechnung?" war nicht beantwortbar); dazu Suche und Sortierung in der Händler-Kundenliste und der Weg in die Kundenverwaltung

Anleitung öffnen

Doppelrolle Händler + Kanzlei

Ist der Vermittler zugleich Steuerberater (IsReseller && IsStb), wird der von ihm angelegte Kunde SOFORT mit seiner Kanzlei verknüpft (PartnerId = Kanzlei, PartnerLinkStatus = Active, Herkunft PartnerLinkOrigins.ResellerDualRole) — voll aktiv, ohne Bestätigung durch den Kunden (Owner-Entscheid 31.08.2026; in Spanien ist die Gestoría, die auch vermittelt, der Normalfall). Reiner Händler (IsReseller && !IsStb): PartnerId bleibt unberührt. Abbruch und Fristablauf lösen die automatisch entstandene Verknüpfung wieder; eine vom Menschen bestätigte bleibt

Fachhändler-Token erreicht die Kanzlei-API nicht mehr

Seit 31.08.2026 eigener Claim stb für Partner mit IsStb; die Policy PortalKanzlei verlangt ihn, ein reines Händler-Token (portal_partner + reseller) kommt an den Kanzlei-Endpunkten nicht mehr durch. Vorher öffnete jeder Händler-Login die ganze Kanzlei-Fläche

Reseller-Marge

Staffel aus den Lizenzeinstellungen (10 % ab 1, 15 % ab 11, 20 % ab 51 Kunden); ein fester Satz am Partner schlägt alles (Owner 07.08.2026), eine ausgehandelte Sonderkondition am Kundendatensatz ersetzt die Staffel. Es greift die letzte Stufe, deren Kundenschwelle erreicht ist

Anleitung öffnen

Provisionsstaffel pflegen (Betreiber)

Reiter Betrieb → Lizenzserver → Händler-Staffel (?lic=margin): Stufen anlegen, ändern, entfernen. Der Server prüft aufsteigende und eindeutige Kundenschwellen sowie 0-100 % und weist eine kaputte Staffel mit 400 zurück; die Maske meldet dasselbe schon vor dem Speichern. null heißt „nicht mitgeschickt ⇒ unverändert“, eine LEERE Liste heißt „keine Staffel“ — nur so kann ein Altclient die Staffel nicht löschen und die Maske trotzdem die letzte Stufe entfernen. Bis 06.09.2026 (Befund 18b) war die Staffel über keine Maske änderbar

Anleitung öffnen

Vertriebs-Cockpit (Akquise)

Lead-Import (CSV), Zuweisung nach Provinz, Karteischutz 90 Tage, Freigabe, Lead-Liste

Checkout-Attribution (?partner=)

Liest den Partnercode aus dem Bestell-Link und löst ihn bei der Kundenanlage auf: AgentCode → AcquiredByAgentPartnerId, par_…-Muster → ReferredByPartnerId, unbekannt → nur Log (blockt nie den Checkout); eine bestehende Attribution wird nie überschrieben

Agenten verwalten

Handelsvertreter anlegen und einladen, Stammdaten, Vertragsstatus aktiv/pausiert/beendet

Agenten-Portal

Eigene Leads, Aktivitätsprotokoll, Statuswechsel, geworbene Kunden, Provisionsübersicht

Provisionslauf & Ledger

Idempotenter Periodenlauf (POST sales/commissions/run, Doc-Id comml_…), Provisionsbuch (GET sales/commissions), CSV-Abrechnung je Empfänger (GET sales/commissions/export), Kanalkosten-Kennzahl. Läuft seit 01.09.2026 automatisch: Hintergrunddienst alle 24 h (3 min nach Start) über VORIGE und LAUFENDE Periode — Zahlungen, die erst nach Monatsende verbucht werden, holt der Lauf damit nach; ein Handstart bleibt möglich und ist idempotent

Provisions-Auszahlung (Vorschau → Lauf → Gutschrift → pain.001)

Reiter „Abrechnung" im Vertriebs-Cockpit: GET sales/payouts/preview?period= erzeugt NICHTS (keine Nummer, kein Beleg, kein Statuswechsel); POST sales/payouts zieht je Händler EINE Gutschrift aus dem Nummernkreis (InvoiceSeries), vom Operator in der Vorschau zurückgestellte Händler bleiben auf „Berechnet" und gehen in den nächsten Lauf; GET sales/payouts/{id}/sepa liefert die Sammelüberweisung als pain.001 fürs Bankportal (Verwendungszweck = Belegnummer + Periode), GET sales/payouts/{id}/belege alle Gutschriften des Laufs als ZIP. Vorschau rechnet je Händler Netto/Steuerfall/Blocker (IBAN, Auslandsanschrift ohne USt-IdNr., weder Steuernummer noch USt-IdNr. — § 14 Abs. 4 Nr. 2 UStG gilt auch für die Gutschrift, Kleinunternehmer ⇒ 0 %). pain.001 IBAN-only ohne Schein-BIC. Zwei Riegel gegen Doppelauszahlung (05.09.2026): In-Process-Sperre CommissionPayoutRunGate (Singleton, zweiter Aufruf ⇒ 409 PAYOUT_RUN_IN_PROGRESS) und der gespeicherte Lauf als persistenter Anker (CommissionPayoutAnchor: ein Eintrag, der in einem Lauf steht, ist abgerechnet; ein Nachhol-Lauf schreibt ihn auf DEN Lauf fort, statt einen zweiten Beleg zu ziehen). Nachgewiesen 01.09.2026 auf konto.nx9.de

Händler sieht seine Provision (Portal)

Reiter „Provision" im Händler-Portal: GET portal/reseller/provision?period= liest DIESELBE Query wie die Operator-Sicht, hart auf die PartnerId aus dem Token gescoped — kein zweiter Rechenweg, damit die Anzeige nie von der Auszahlung abweicht

Anleitung öffnen

Betreiber-Kennzahlen

MRR/ARR, aktive Lizenzen, Neu gegen Kündigung, Verteilung nach Zahlart, Modul, Land, Mahnstufe

Ketten-Abrechnung (Filial-HQ)

Eine Abo-Position beim Ketten-Inhaber, Staffel 19/15/9/5 € je Filiale und Monat

Anleitung öffnen

Lizenz-Import / Legacy-Merge

Übernahme aus Alt-CouchDBs mit Vorschau, Zusammenführung, Bereinigung verwaister Kunden

Lizenzserver-Einstellungen

DB-Server-Registry, Default-Server, ISO-Link, Fiskaly-Zugänge, Warengruppen-Zuordnung

Operator-Ticket für Support-Zugänge

Signierter Nachweis aus dem Admin-Login; gilt standardmässig sieben Tage und deckelt damit die Laufzeit ausgestellter .vpnkey-Fernwartungszugänge, ohne die kürzere Browser-Sitzung zu verlängern

Branchen-Startpakete

Ein-Klick-Grundausstattung (Warengruppen, Artikel, Tischplan) für den frisch eingerichteten Betrieb

Support-Weiterleitung

Problem-Meldung einer Kasse ohne eigenes Mailsystem über den Lizenzserver zustellen

Fehler-Sammelstelle für Appliances

Fehler-Bündel lokaler Geräte entgegennehmen und in dieselbe Log-Senke schreiben

Oft gesucht

Begriffe rund um Lizenzierung & Vertrieb

LizenzLizenzschlüsselLizenznummerInstall-KeyAktivierungFreischaltenModulZusatzmodulPaketTarifUpgradeDowngradePreisPreislisteAboTestphaseTrialGratis-Tarif