/** * EU-Angemessenheitsbeschluesse (Art. 45 DSGVO) * * Laender mit Angemessenheitsbeschluss benoetigen KEINE SCC und KEIN TIA * fuer Datenuebermittlungen. Die Liste wird von der EU-Kommission gefuehrt. * * WICHTIG: USA hat Sonderstatus — Angemessenheit gilt NUR fuer Unternehmen, * die nach dem EU-US Data Privacy Framework (DPF) zertifiziert sind. * Nicht-zertifizierte US-Unternehmen brauchen weiterhin SCC + TIA. * * Quelle: https://commission.europa.eu/law/law-topic/data-protection/ * international-dimension-data-protection/adequacy-decisions_en */ export interface AdequacyDecision { /** ISO 3166-1 alpha-2 Laendercode */ countryCode: string /** Laendername (deutsch) */ countryName: string /** Jahr des Angemessenheitsbeschlusses */ since: number /** Einschraenkungen (z.B. nur bestimmte Sektoren) */ restriction?: string /** Befristet? */ expires?: string /** Sonderstatus (z.B. DPF-Zertifizierung erforderlich) */ requiresCertification?: boolean /** Name der erforderlichen Zertifizierung */ certificationName?: string /** Pruef-URL fuer die Zertifizierung */ certificationCheckUrl?: string } /** * Vollstaendige Liste der Laender mit EU-Angemessenheitsbeschluss. * Stand: Mai 2026 */ export const ADEQUACY_DECISIONS: AdequacyDecision[] = [ { countryCode: 'AD', countryName: 'Andorra', since: 2010 }, { countryCode: 'AR', countryName: 'Argentinien', since: 2003 }, { countryCode: 'FO', countryName: 'Faeroeer-Inseln', since: 2010 }, { countryCode: 'GG', countryName: 'Guernsey', since: 2003 }, { countryCode: 'IM', countryName: 'Isle of Man', since: 2004 }, { countryCode: 'IL', countryName: 'Israel', since: 2011 }, { countryCode: 'JP', countryName: 'Japan', since: 2019 }, { countryCode: 'JE', countryName: 'Jersey', since: 2008 }, { countryCode: 'CA', countryName: 'Kanada', since: 2001, restriction: 'Nur Unternehmen, die dem Personal Information Protection and Electronic Documents Act (PIPEDA) unterliegen', }, { countryCode: 'NZ', countryName: 'Neuseeland', since: 2012 }, { countryCode: 'KR', countryName: 'Republik Korea (Suedkorea)', since: 2022 }, { countryCode: 'CH', countryName: 'Schweiz', since: 2000 }, { countryCode: 'GB', countryName: 'Vereinigtes Koenigreich (UK)', since: 2021, expires: 'Befristet, verlaengert bis 2029', }, { countryCode: 'UY', countryName: 'Uruguay', since: 2012 }, { countryCode: 'US', countryName: 'Vereinigte Staaten (USA)', since: 2023, restriction: 'Nur Unternehmen, die nach dem EU-US Data Privacy Framework (DPF) zertifiziert sind', requiresCertification: true, certificationName: 'EU-US Data Privacy Framework (DPF)', certificationCheckUrl: 'https://www.dataprivacyframework.gov/list', }, ] /** Set der EU/EWR-Laender (kein Angemessenheitsbeschluss noetig) */ export const EU_EEA_COUNTRIES = new Set([ 'AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', // EWR (nicht EU, aber gleicher Datenschutzraum) 'IS', 'LI', 'NO', ]) /** Set der Laendercodes mit Angemessenheitsbeschluss */ export const ADEQUATE_COUNTRIES = new Set( ADEQUACY_DECISIONS.map((d) => d.countryCode) ) /** * Prueft ob ein Land einen Angemessenheitsbeschluss hat. * Gibt das Decision-Objekt zurueck oder null. */ export function getAdequacyDecision(countryCode: string): AdequacyDecision | null { return ADEQUACY_DECISIONS.find((d) => d.countryCode === countryCode) || null } /** * Bestimmt den Transfer-Status fuer ein Land. */ export function getTransferRequirement(countryCode: string): { isEU: boolean isAdequate: boolean requiresSCC: boolean requiresTIA: boolean requiresCertification: boolean explanation: string } { if (EU_EEA_COUNTRIES.has(countryCode)) { return { isEU: true, isAdequate: true, requiresSCC: false, requiresTIA: false, requiresCertification: false, explanation: 'EU-/EWR-Mitgliedstaat — keine zusaetzlichen Massnahmen erforderlich.', } } const decision = getAdequacyDecision(countryCode) if (decision) { if (decision.requiresCertification) { return { isEU: false, isAdequate: true, requiresSCC: false, requiresTIA: false, requiresCertification: true, explanation: `Angemessenheitsbeschluss seit ${decision.since}. ${decision.restriction || ''} Pruefung der Zertifizierung unter: ${decision.certificationCheckUrl || ''}`, } } return { isEU: false, isAdequate: true, requiresSCC: false, requiresTIA: false, requiresCertification: false, explanation: `Angemessenheitsbeschluss der EU-Kommission seit ${decision.since}.${decision.restriction ? ` Einschraenkung: ${decision.restriction}` : ''}${decision.expires ? ` (${decision.expires})` : ''}`, } } return { isEU: false, isAdequate: false, requiresSCC: true, requiresTIA: true, requiresCertification: false, explanation: 'Kein Angemessenheitsbeschluss — EU-Standardvertragsklauseln (SCC) und Transfer Impact Assessment (TIA) erforderlich (Art. 46 Abs. 2 lit. c DSGVO, EuGH Schrems II).', } }