""" Impressum checks — §5 TMG / §18 MStV. Level 1: Pflichtangabe erwaehnt? Level 2: Pflichtangabe korrekt/vollstaendig? """ IMPRESSUM_CHECKLIST = [ # ── L1: Name des Anbieters ──────────────────────────────────────── { "id": "name", "label": "Name des Anbieters", "level": 1, "parent": None, "patterns": [ r"(?:gmbh|ag|e\.v\.|ohg|kg|gbr|ug|mbh|inc|ltd)", r"firma", r"unternehmen", ], "severity": "HIGH", "hint": "§5(1) Nr.1 TMG: Vollstaendiger Firmenname MIT Rechtsform (z.B. 'Muster GmbH', nicht nur 'Muster'). Bei Einzelunternehmen: Vor- und Nachname plus ggf. Geschaeftsbezeichnung. Haeufiger Abmahngrund: Nur Markenname ohne juristische Person.", }, # ── L1: Anschrift ───────────────────────────────────────────────── { "id": "address", "label": "Anschrift", "level": 1, "parent": None, "patterns": [ r"(?:str(?:asse|\.)|weg|platz|allee)\s*\d", r"d-\d{5}", r"\d{5}\s+\w+", ], "severity": "HIGH", "hint": "§5(1) Nr.1 TMG verlangt eine ladungsfaehige Anschrift fuer Klagezustellungen. Postfach, c/o-Adresse oder nur Ortsangabe genuegen laut BGH (I ZR 228/03) nicht. Erforderlich: Strasse + Hausnummer + PLZ + Ort.", }, { "id": "address_zip_city", "label": "PLZ + Ort vorhanden", "level": 2, "parent": "address", "patterns": [ r"(?:d[\-\s]?)?\d{5}\s+[a-z\u00c0-\u017e]\w{2,}", ], "severity": "MEDIUM", "hint": "Ohne PLZ und Ort ist die Anschrift nicht ladungsfaehig und damit unvollstaendig i.S.d. §5 TMG. Haeufiger Fehler: Nur Strasse und Hausnummer ohne PLZ/Ort, oder PLZ ohne Ortsangabe.", }, { "id": "address_street_number", "label": "Strasse + Hausnummer vorhanden", "level": 2, "parent": "address", "patterns": [ r"[a-z\u00c0-\u017e]\w+(?:str|stra(?:ss|ß)e|weg|platz|allee|gasse|ring|damm|ufer)\s*\.?\s*\d+", r"\w+\s+(?:str|stra(?:ss|ß)e|weg|platz|allee)\s*\.?\s*\d+", ], "severity": "MEDIUM", "hint": "Strasse + Hausnummer fehlen oder sind unvollstaendig. Ohne Hausnummer keine Zustellbarkeit — das ist ein klassischer Abmahngrund bei Impressumspruefungen nach §5 TMG. Auch 'Am Markt' ohne Nummer genuegt nicht.", }, # ── L1: Kontaktdaten ────────────────────────────────────────────── { "id": "contact", "label": "Kontaktdaten (E-Mail + Telefon)", "level": 1, "parent": None, "patterns": [ r"(?:e-?mail|mail).*@", r"telefon|phone|tel\.", r"\+?\d[\d\s/\-]{8,}", ], "severity": "HIGH", "hint": "§5(1) Nr.2 TMG verlangt Angaben fuer 'schnelle elektronische Kontaktaufnahme und unmittelbare Kommunikation': E-Mail ist Pflicht. EuGH (C-298/17): Telefon nicht zwingend, aber ein zweiter unmittelbarer Kanal (Telefon, Fax oder Chat) ist erforderlich.", }, { "id": "contact_email_format", "label": "E-Mail-Adresse im korrekten Format", "level": 2, "parent": "contact", "patterns": [ r"[a-z0-9._%+\-]+@[a-z0-9.\-]+\.[a-z]{2,}", ], "severity": "MEDIUM", "hint": "E-Mail-Adresse fehlt oder ist nicht als solche erkennbar. Ein reines Kontaktformular genuegt laut OLG Hamm (4 U 59/20) NICHT als Ersatz — die E-Mail-Adresse muss direkt im Impressum als Text sichtbar sein.", }, { "id": "contact_phone_format", "label": "Telefonnummer vorhanden", "level": 2, "parent": "contact", "patterns": [ r"(?:tel(?:efon)?|phone|fon)\s*[.:]\s*[\+\d][\d\s/\-]{6,}", r"\+49\s*[\d\s/\-]{8,}", r"0\d{2,4}\s*[/\-\s]\s*\d{4,}", ], "severity": "MEDIUM", "hint": "Telefonnummer mit Vorwahl angeben (z.B. '+49 30 12345678'). Falls kein Telefon: Ein alternativer unmittelbarer Kommunikationskanal (Chat, Messenger) ist laut EuGH (C-298/17) noetig — Kontaktformular allein genuegt nicht.", }, # ── L1: Handelsregister ─────────────────────────────────────────── { "id": "register", "label": "Handelsregister / Registernummer", "level": 1, "parent": None, "patterns": [ r"(?:handelsregister|hrb|hra|registergericht|amtsgericht)", r"register.*(?:nr|nummer)", ], "severity": "MEDIUM", "hint": "§5(1) Nr.4 TMG: Bei Eintragung im Handels-, Vereins-, Partnerschafts- oder Genossenschaftsregister muessen Registergericht UND Registernummer angegeben werden. Haeufiger Fehler: GmbH ohne HR-Angabe — das ist abmahnfaehig.", }, { "id": "register_court", "label": "Registergericht benannt (Amtsgericht X)", "level": 2, "parent": "register", "patterns": [ r"(?:amtsgericht|registergericht)\s+[A-Z\u00c0-\u017e]\w+", r"ag\s+[A-Z\u00c0-\u017e]\w+", ], "severity": "LOW", "hint": "Registernummer ohne Registergericht ist unvollstaendig i.S.d. §5(1) Nr.4 TMG. Korrekt: 'Amtsgericht Muenchen, HRB 12345'. Das Gericht am Sitz der Gesellschaft ist zustaendig — pruefen Sie den aktuellen HR-Auszug.", }, { "id": "register_number", "label": "Registernummer (HRB/HRA + Nummer)", "level": 2, "parent": "register", "patterns": [ r"(?:hrb|hra)\s*\d+", ], "severity": "LOW", "hint": "Registernummer im Format 'HRB 12345' (Kapitalgesellschaften) oder 'HRA 12345' (Personengesellschaften) angeben. Haeufiger Fehler: Steuernummer statt Registernummer — die Steuernummer ersetzt nicht die HR-Angabe nach §5(1) Nr.4 TMG.", }, # ── L1: USt-IdNr ────────────────────────────────────────────────── { "id": "vat", "label": "USt-IdNr.", "level": 1, "parent": None, "patterns": [ r"ust.*id", r"umsatzsteuer.*identifikation", r"vat.*id", r"de\s*\d{9}", ], "severity": "MEDIUM", "hint": "§5(1) Nr.6 TMG: Die USt-IdNr. muss angegeben werden, sofern vorhanden. Haeufiger Fehler: Steuernummer (z.B. '123/456/78901') statt USt-IdNr. (DE123456789) — die Steuernummer ist KEIN Ersatz und sollte aus Datenschutzgruenden nicht im Impressum stehen.", }, { "id": "vat_de_format", "label": "USt-IdNr. im Format DE + 9 Ziffern", "level": 2, "parent": "vat", "patterns": [ r"de\s*\d{9}", ], "severity": "LOW", "hint": "Deutsche USt-IdNr.: Laendercode 'DE' + exakt 9 Ziffern (z.B. DE123456789). Haeufiger Fehler: Nur 8 Ziffern, fehlender Laendercode, oder Verwechslung mit Wirtschafts-ID. Validierung: https://evatr.bff-online.de/", }, # ── L1: Vertretungsberechtigte ──────────────────────────────────── { "id": "representative", "label": "Vertretungsberechtigte", "level": 1, "parent": None, "patterns": [ r"vertretungsberechtigt", r"gesch(?:ae|ä)ftsf(?:ue|ü)hr", r"vorstand", r"inhaber", ], "severity": "MEDIUM", "hint": "§5(1) Nr.1 TMG: Bei juristischen Personen (GmbH, AG, UG, eG) muss der/die Vertretungsberechtigte(n) namentlich benannt werden. Haeufiger Fehler: Nur 'Geschaeftsfuehrung' ohne Personenname — das genuegt nicht, Vor- und Nachname sind Pflicht.", }, { "id": "representative_person", "label": "Name der vertretungsberechtigten Person", "level": 2, "parent": "representative", "patterns": [ r"(?:gesch(?:ae|ä)ftsf(?:ue|ü)hr|vorstand|inhaber)\w*\s*:\s*[A-Z\u00c0-\u017e]", r"(?:vertreten\s+durch|repr(?:ae|ä)sentiert)\s*:?\s*[A-Z\u00c0-\u017e]", ], "severity": "LOW", "hint": "Voller Vor- und Nachname mit Funktionsbezeichnung erforderlich (z.B. 'Geschaeftsfuehrer: Max Mustermann'). Bei mehreren Geschaeftsfuehrern alle nennen. Haeufiger Fehler: Nur Nachname oder nur 'Die Geschaeftsfuehrung' ohne Namen.", }, # ── Neue L1: Redaktionell Verantwortlicher ──────────────────────── { "id": "editorial_visdp", "label": "V.i.S.d.P. / Redaktionell Verantwortlicher (§18 MStV)", "level": 1, "parent": None, "patterns": [ r"v\.?\s*i\.?\s*s\.?\s*d\.?\s*p", r"(?:redaktionell|inhaltlich)\s+verantwortlich", r"§\s*18\s+m(?:edien)?st(?:aat)?v", ], "severity": "LOW", "hint": "§18(2) MStV: Bei journalistisch-redaktionellen Inhalten (Blog, Ratgeber, News) muss ein V.i.S.d.P. mit Name und Anschrift benannt werden. Gilt auch fuer Unternehmensblogs. Haeufiger Fehler: V.i.S.d.P. fehlt bei Seiten mit Ratgeber-/Blogartikeln.", }, # ── Neue L1: Streitbeilegung ────────────────────────────────────── { "id": "dispute_resolution", "label": "Verbraucherstreitbeilegung / OS-Plattform", "level": 1, "parent": None, "patterns": [ r"verbraucherstreitbeilegung|streitschlichtung", r"(?:os|odr)[\-\s]plattform", r"ec\.europa\.eu.*odr", r"vsbg|verbraucherstreitbeilegungsgesetz", r"alternative\s+streitbeilegung", ], "severity": "LOW", "hint": "Art. 14(1) ODR-VO + §36 VSBG: Online-Haendler muessen den ODR-Link (https://ec.europa.eu/consumers/odr) als klickbaren Hyperlink einbinden UND erklaeren, ob sie zur Streitbeilegung bereit/verpflichtet sind. Fehlender Link ist abmahnfaehig (LG Bochum, 14 O 21/16).", }, ]