Widerrufsformular — Pflicht für deutsche Online-Shops seit dem 19. Juni 2026 (§ 356a BGB)

Das gesetzliche Widerrufsformular. Selbst gehostet, neutral, deins.

Revoco ist ein quelloffenes elektronisches Widerrufsformular für einen einzelnen Händler: Der Verbraucher gibt seine Widerrufserklärung ab, das System speichert sie und versendet die gesetzlich vorgeschriebene Eingangsbestätigung — und alle Daten bleiben auf deinem eigenen Server.

Das Revoco-Widerrufsformular im neutralen Standard-Design: Felder für Name, E-Mail, Bestellnummer und Beschreibung, dazu der Button „Widerruf bestätigen“
Dasselbe Formular auf dem Smartphone, umgestylt im türkisfarbenen Marken-Design eines Händlers mit Logo
Warum jetzt

Das Widerrufsformular ist gesetzliche Pflicht

Seit dem 19. Juni 2026 — ohne Übergangsfrist — müssen Online-Shops, in denen Verbrauchern ein gesetzliches Widerrufsrecht zusteht, ein elektronisches Widerrufsformular bereitstellen: eines, das der Verbraucher ohne Login nutzen kann, beantwortet mit einer Bestätigung auf einem dauerhaften Datenträger. Rechtsgrundlage ist § 356a BGB, der die EU-Richtlinie 2023/2673 umsetzt.

  1. Ein Widerrufs-Button in deinem Shop

    Ein ständig verfügbarer, gut sichtbar platzierter Button — „Vertrag widerrufen“ — auf deiner Website. Er verlinkt direkt auf dein Revoco-Formular; die Einbindung dieses Buttons ist die einzige Änderung, die dein Shop braucht.

  2. Das elektronische Widerrufsformular

    Der Verbraucher gibt Name, Vertragsidentifikation und E-Mail-Adresse an — genau die Daten, die das Gesetz als Pflichtangaben zulässt, und keine weiteren — und bestätigt den Widerruf. Revoco ist dieses Formular.

  3. Die Eingangsbestätigung per E-Mail

    Unmittelbar nach dem Absenden erhält der Verbraucher eine Eingangsbestätigung auf einem dauerhaften Datenträger — mit dem Inhalt der Erklärung sowie Datum und Uhrzeit. Werbefrei, wie es das Gesetz verlangt.

  • Nur die drei gesetzlich zulässigen Pflichtfelder — Name, Vertragsidentifikation, E-Mail. Mehr wird nicht verlangt.
  • Das Absenden wird nie blockiert: kein Captcha, keine Bestellnummern-Sperre. Spam-Signale klassifizieren nur — jede Erklärung wird gespeichert.
  • Eingangsbestätigung mit Erklärungsinhalt, Datum und Uhrzeit in der Ortszeit des Verbrauchers — asynchron versendet, damit ein Mailserver-Schluckauf nie das Absenden bricht.
  • Jede Erklärung wird unveränderlich gespeichert — der Eingangsnachweis, den das Gesetz von dir erwartet.

Revoco ist Software, keine Rechtsberatung. Ob und wie § 356a BGB auf deinen Shop anwendbar ist, klärst du mit deiner Rechtsberatung.

Funktionen

Compliance ohne Compliance-Anbieter

Revoco ist bewusst klein: ein Händler, ein Container-Stack, eine Aufgabe — gut gelöst.

Gebaut für den gesetzlichen Widerruf

Der vollständige gesetzliche Ablauf nach § 356a BGB: Formular → Absenden → Bestätigungsseite → Eingangsbestätigung per E-Mail. Drei Pflichtfelder, nie blockiertes Absenden, unveränderliche Datensätze.

Selbst gehostet, volle Datenhoheit

Du betreibst es, dir gehört es. Widerrufsdaten liegen in einer SQLite-Datei auf deinem Volume — kein SaaS, keine Drittanbieter-Verarbeitung, und du bleibst der Verantwortliche.

Neutral im Standard, pro Deployment brandbar

Wird mit einem sauberen neutralen Design ausgeliefert. Ein einziger CSS-Token-Vertrag (--wf-*) verwandelt es in den Look deines Shops — Logo, Farben und Markenname sind Konfiguration, kein Fork.

Open Source (AGPL-3.0)

Der gesamte Quellcode ist öffentlich und prüfbar. Forken, auditieren, erweitern — die AGPL hält Verbesserungen für alle offen.

Docker-Deploy mit einem Befehl

Veröffentlichte Images auf GHCR, ein generisches docker-compose.yml, Konfiguration per Umgebungsvariablen. Läuft hinter jedem Reverse-Proxy; bricht bei Fehlkonfiguration sofort sichtbar ab.

Deutsch und Englisch, umschaltbar

Das Verbraucherformular gibt es auf Deutsch und Englisch mit Sprachumschalter im Formular; das Betreiber-Panel spricht standardmäßig Englisch. Weitere Sprachen sind nur eine Sprachdatei entfernt.

Screenshots

Ein Blick ins Produkt

Alle Screenshots zeigen fiktive Demo-Daten — die erfundene Marke „Muster Shop“ und Test-Personas. Es erscheinen keine echten Händler oder Kunden.

Neutral im Standard — deine Marke auf Wunsch

Dasselbe Deployment, zwei Looks: das neutrale Standard-Design ab Werk und ein Deploy-Zeit-Overlay mit Farben, Logo und Namen des Händlers.

Widerrufsformular im neutralen Standard-Design
Neutraler Standard — einsatzbereit wie ausgeliefert
Dasselbe Widerrufsformular mit türkisfarbenem Marken-Design und Shop-Logo
Gebrandet — ein --wf-*-Theme-Overlay, Logo und Markenname per Konfiguration

Ein Verbraucher-Ablauf ohne Sackgassen

Klare Inline-Validierung und eine Bestätigungsseite in dem Moment, in dem die Erklärung abgesendet ist. Die Eingangsbestätigung folgt asynchron per E-Mail.

Widerrufsformular mit Inline-Validierungsmeldungen unter den leeren Pflichtfeldern
Barrierearme Inline-Validierung der drei Pflichtfelder
Bestätigungsseite nach erfolgreichem Absenden, im Marken-Design des Händlers
Bestätigungsseite — der dauerhafte Nachweis kommt per E-Mail

Ein Betreiber-Panel, das dir nicht im Weg steht

Eingehende Widerrufe in einer Liste mit Suche und Spam-Signalen, eine Detailansicht mit einem einzigen „Erledigt“-Schalter und Einstellungen für Sprachen, Rechtsseiten, Widerrufsumfang und den Benachrichtigungs-Empfänger. Ein Setup-Banner sagt frischen Installationen genau, was noch fehlt.

Betreiber-Panel: Liste eingegangener Widerrufe mit Eingangsdatum, Name, Bestellnummer, Spam- und Erledigt-Spalten
Alle Erklärungen auf einen Blick — mit Spam- und Erledigt-Status
Betreiber-Panel: Detailansicht eines Widerrufs mit Abschnitten für Absender, Erklärung, Triage und Status
Unveränderlicher Datensatz mit einer einzigen Triage-Aktion: als erledigt markieren
Betreiber-Panel mit Warnbanner zum ausstehenden Setup, das fehlende Rechtsinhalte auflistet
Setup-Wächter — das Panel meldet fehlende Rechtsinhalte vor dem Go-live
Betreiber-Panel: Einstellungsseite zum Widerrufsumfang mit reinen Anzeige-Schaltern
Betreiber-Einstellungen — Sprachen, Rechtsseiten, Widerrufsumfang

Rechtsseiten inklusive

Impressum und Datenschutzerklärung liefert das Formular gleich mit, gepflegt im Panel — mehrsprachig, mit Fallback je Sprache. Oder du verlinkst weiterhin deine bestehenden Seiten.

Gerenderte Impressumsseite des Demo-Shops mit Anbieter-, Kontakt- und Registerangaben
Impressum (§ 5 DDG) — strukturierte Felder, konsistent gerendert
Gerenderte Datenschutzseite des Demo-Shops
Datenschutzerklärung — vom Betreiber gepflegter Inhalt, gleiches Theme
Sofort informiert

Wissen, wenn ein Widerruf eingeht — im selben Moment

Widerrufserklärungen sind seltene Ereignisse mit gesetzlichen Fristen — genau das, was du als Push aufs Handy willst statt vergraben im Postfach. Revoco benachrichtigt dich auf Wunsch über ntfy: Sofort-Push auf Handy oder Desktop, sobald eine Erklärung eingeht.

  • Jeder Widerruf geht außerdem als E-Mail an den Betreiber — an einen im Panel gesetzten Empfänger (getrennt von der Absenderadresse), mit Ein-Klick-Testversand, und ein Spam-Verdacht steht direkt im Betreff.
  • Datenminimal per Design — der Push enthält keine personenbezogenen Daten, nur das Ereignis.
  • Selbst hostbar wie alles andere: Ein fertiger ntfy-Dienst liegt als optionales Compose-Profil bei.
  • Optional und entkoppelt — ein .env-Schalter, und ein Push-Fehler beeinträchtigt nie das Absenden des Verbrauchers.
KI-gestütztes Setup

Von der leeren Installation zu gebrandet und befüllt — in einer Sitzung

Revoco bringt zwei Deploy-Zeit-Authoring-Skills für Claude Code und andere KI-Modelle mit. Sie erledigen die zwei Einrichtungsaufgaben, die niemand gern macht: das Formular ans Shop-Design anpassen und bestehende Rechtsseiten übernehmen. Beide laufen ausschließlich zur Deploy-Zeit — KI berührt nie die laufende Anwendung.

design-adoption

Gib ihm die URL deines Shops. Der Skill scannt die Website, extrahiert die Corporate Identity — Farben, Schriften, Logo-Einsatz — und generiert ein einbaufertiges --wf-*-Marken-Theme-Overlay samt Platzierungsbericht.

/design-adoption https://dein-shop.example

Das Widerrufsformular nach der Design-Übernahme, gestaltet in der türkisfarbenen Corporate Identity des Shops
Ergebnis: das neutrale Formular in der Optik deines Shops

legal-extraction

Gib ihm die URLs deines bestehenden Impressums und deiner Datenschutzerklärung. Der Skill extrahiert die Inhalte und lädt sie über einen abgesicherten Importer in Revocos Rechts-Einstellungen — bereitgestellt zur Prüfung im Betreiber-Panel, nie automatisch veröffentlicht.

/legal-extraction https://dein-shop.example/impressum …

Rechts-Einstellungsseite im Betreiber-Panel, befüllt mit importierten Impressums- und Datenschutzfeldern
Ergebnis: Rechts-Einstellungen befüllt, bereit zu deiner Prüfung

Beide Skills sind Komfort, keine Voraussetzung — alles, was sie erzeugen, lässt sich auch von Hand pflegen, und jeder KI-Entwurf wird vom Betreiber geprüft, bevor er live geht.

Schnellstart

In vier Schritten deployt

Alles, was du brauchst: Docker und ein Reverse-Proxy. Das offizielle Image liegt auf GHCR.

  1. Anwendungsschlüssel erzeugen

    Einmalig vor dem ersten Start — ohne ihn verweigert der Container den Dienst:

    docker run --rm ghcr.io/chriras/revoco:latest \
        php artisan key:generate --show
  2. Umgebung konfigurieren

    Beispieldatei kopieren und Schlüssel, URL, SMTP-Zugang und Betreiber-Konto setzen:

    cp .env.example .env
    # APP_KEY, APP_URL, MAIL_*, OPERATOR_EMAIL, OPERATOR_PASSWORD, … setzen
  3. Stack starten

    Migrationen, Cache-Aufwärmen und Health-Checks übernimmt der Entrypoint:

    docker compose -f docker-compose.yml up -d
  4. Betreiber-Konto anlegen

    Danach im Panel anmelden und das geführte Setup abschließen — Rechtsseiten, Sprachen, Umfang:

    docker compose -f docker-compose.yml exec app \
        php artisan app:operator --email=du@example.com --password=…

Optionale Extras — ntfy-Push (--profile ntfy), ein Marken-Theme-Overlay, deine bestehenden Rechtsseiten — sind einen Befehl oder einen Panel-Besuch entfernt. Die vollständige Anleitung steht im README.

FAQ

Häufige Fragen

Wer braucht ein elektronisches Widerrufsformular?

Seit dem 19. Juni 2026 müssen Unternehmer ein elektronisches Widerrufsformular anbieten, wenn sie Verbrauchern den Abschluss von Fernabsatzverträgen über eine Online-Benutzeroberfläche ermöglichen und ein gesetzliches Widerrufsrecht besteht (§ 356a BGB) — praktisch: die meisten deutschen B2C-Online-Shops. Eine Übergangsfrist gab es nicht. Ob dein konkretes Geschäft erfasst ist, klärst du mit deiner Rechtsberatung.

Ist Revoco ab Werk rechtskonform?

Revoco setzt den gesetzlichen Ablauf originalgetreu um: nur die drei zulässigen Pflichtfelder, ein nie blockiertes Absenden, eine werbefreie Eingangsbestätigung mit Datum und Uhrzeit sowie unveränderliche Speicherung als Eingangsnachweis. Auf deiner Seite bleiben: der Widerrufs-Button in deinem Shop sowie Impressum und Datenschutzerklärung. Revoco ist Software, keine Rechtsberatung.

Was kostet das?

Nichts — Revoco ist frei und quelloffen unter der AGPL-3.0-Lizenz. Du zahlst nur dein eigenes Hosting, und das darf klein sein: Der ganze Stack besteht aus einer Handvoll leichtgewichtiger Container aus einem einzigen Image plus einer SQLite-Datei.

Wo liegen die Daten? Und was ist mit der DSGVO?

Alles bleibt auf deinem Server: Widerrufserklärungen liegen in einer SQLite-Datei auf deinem Volume, E-Mails gehen über deinen eigenen SMTP-Server raus. Es gibt kein SaaS-Backend und keinen Auftragsverarbeiter — du betreibst die Software selbst und bleibst der Verantwortliche.

Muss ich mein Shopsystem anbinden?

Nein — und das ist Absicht. Revoco arbeitet im Freitext-Modus: Der Verbraucher identifiziert den Vertrag selbst (Bestellnummer oder eine Beschreibung der Ware), und du prüfst eingehende Erklärungen im Panel. Es funktioniert neben jedem Shopsystem; der einzige Berührungspunkt ist der Link vom Widerrufs-Button deines Shops zum Formular.

Kann das Formular aussehen wie mein Shop?

Ja. Das gesamte Erscheinungsbild hängt an einem CSS-Token-Vertrag (--wf-*): Ein Deploy-Zeit-Theme-Overlay stylt Farben, Typografie und Bedienelemente um, Logo und Markenname kommen aus der Umgebung. Der Skill design-adoption kann das Overlay automatisch aus deiner Shop-URL erzeugen.

Ich betreibe mehrere Shops — reicht eine Instanz?

Ein Deployment bedient einen Händler — eine bewusste Design-Entscheidung, die die Software einfach und prüfbar hält. Für mehrere Shops oder Marken betreibst du mehrere Container, jeder mit eigener Konfiguration, eigenem Theme und eigenen Daten.

Was steckt unter der Haube?

Ein langweiliger, verlässlicher Stack: PHP/Laravel, SQLite, ein Filament-Betreiber-Panel und eine datenbankgestützte Queue für asynchrone Mails und Push. Ausgeliefert als Multi-Stage-Docker-Build — das Produktions-Image enthält keine Dev-Abhängigkeiten — mit CI-gebauten Images auf GHCR.

Von der Notlösung zur sauberen Lösung — an einem Nachmittag

Selbst gehostet, quelloffen, an einem Nachmittag deployt — ob du eine Übergangslösung ersetzt oder den Widerruf für deinen nächsten Shop gleich richtig aufsetzt.