Die Prüfung von US-amerikanischen Geschäftspartnern ist für deutsche und europäische Unternehmen zu einer komplexen regulatorischen Herausforderung geworden. Mit der Einführung der 6. EU-Geldwäscherichtlinie (AMLD6) und verschärften KYC-Anforderungen nach dem deutschen Geldwäschegesetz (GwG) müssen Compliance-Verantwortliche heute umfassende Due-Diligence-Prozesse implementieren, die sowohl rechtssicher als auch effizient sind.
Besonders bei US-Unternehmen stehen deutsche Firmen vor der Herausforderung, verlässliche Unternehmensdaten aus den verschiedenen Secretary of State-Registern zu beschaffen, ohne dabei gegen GDPR-Bestimmungen zu verstoßen oder BaFin-Vorgaben zu missachten. Eine US-Unternehmen prüfen API bietet hier eine strukturierte Lösung, die alle regulatorischen Anforderungen erfüllt und gleichzeitig die operative Effizienz steigert.
Regulatorische Grundlagen für die Prüfung von US-Unternehmen
AMLD6-Anforderungen im Überblick
Die 6. EU-Geldwäscherichtlinie (2018/1673) erweitert die Sorgfaltspflichten erheblich und verlangt von obliged entities eine verstärkte Überprüfung von Geschäftsbeziehungen mit Drittländern wie den USA. Artikel 13 AMLD6 schreibt vor, dass Unternehmen bei Geschäftsbeziehungen mit US-amerikanischen Entitäten folgende Informationen erheben müssen:
- Vollständige Firmenbezeichnung und Rechtsform
- Eindeutige Unternehmenskennung (EIN, State Filing Number)
- Registrierungsadresse und Registered Agent
- Aktueller UnternehmensStatus (Active, Dissolved, Suspended)
- Gründungsdatum und Rechtsprechung
- Angaben zu wirtschaftlich Berechtigten
Diese Anforderungen sind besonders relevant für deutsche Unternehmen, die mit US-amerikanischen Partnern Geschäfte im Wert von über 15.000 Euro (§ 10 Abs. 3 GwG) abwickeln oder kontinuierliche Geschäftsbeziehungen unterhalten.
Deutsche GwG-Vorgaben für US-Geschäftspartner
Das deutsche Geldwäschegesetz konkretisiert die EU-Vorgaben in den §§ 10-12 GwG. Für US-amerikanische Geschäftspartner gelten verschärfte Sorgfaltspflichten, da die USA als Drittland mit erhöhtem Risiko eingestuft werden können. Besonders relevant sind:
§ 11 GwG - Verstärkte Sorgfaltspflichten: Bei Geschäftsbeziehungen mit US-Unternehmen in Hochrisikobranchen (Finanzdienstleistungen, Immobilien, Edelmetallhandel) müssen zusätzliche Überprüfungsmaßnahmen durchgeführt werden.
§ 12 GwG - Kontinuierliche Überwachung: Bestehende Geschäftsbeziehungen müssen regelmäßig überprüft werden, wobei eine API-basierte Lösung zur automatisierten Statusabfrage erhebliche Effizienzvorteile bietet.
GDPR-Compliance bei US-Unternehmensdaten
Die Verarbeitung von US-Unternehmensdaten unterliegt der DSGVO, auch wenn es sich um B2B-Daten handelt. Artikel 6 Abs. 1 lit. c) DSGVO legitimiert die Datenverarbeitung zur Erfüllung rechtlicher Verpflichtungen (GwG, AMLD6), jedoch müssen folgende Grundsätze beachtet werden:
- Datenminimierung: Nur die für KYB-Zwecke erforderlichen Daten erheben
- Zweckbindung: Ausschließliche Nutzung für Compliance-Zwecke
- Speicherbegrenzung: Aufbewahrung gemäß § 8 GwG (5 Jahre nach Geschäftsbeziehungsende)
- Rechenschaftspflicht: Dokumentation aller Verarbeitungsschritte
Technische Implementation einer AMLD6-konformen US-Unternehmen prüfen API
API-Architektur für KYB-Compliance
Eine rechtskonforme API-Lösung muss mehrere technische und rechtliche Anforderungen erfüllen. Die OpenSOSData API bietet eine speziell für europäische Compliance-Anforderungen entwickelte Lösung mit folgenden Merkmalen:
- Abdeckung von alle 50 US-Bundesstaaten plus DC, Puerto Rico und USVI
- Direkte Anbindung an Secretary of State-Register
- GDPR-konforme Datenverarbeitung
- Transparente Kostenstruktur: $0.10 Standard / $0.0314 Pi pro Abfrage
- Keine Mindestvertragslaufzeit (Minimum: $3.14 für 100 Abfragen)
Praktische Code-Implementation
Die folgende Python-Implementation zeigt eine GDPR-konforme Nutzung der API für KYB-Zwecke:
import requests
import json
import logging
from datetime import datetime
class AMDLDCompliantKYB:
def __init__(self, api_key):
self.api_key = api_key
self.base_url = "https://api.opensosdata.com/v1/lookup"
# DSGVO-konforme Protokollierung einrichten
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - KYB-Check - %(message)s')
def verify_us_entity(self, entity_name, state):
"""
AMLD6-konforme Unternehmensverifikation
Args:
entity_name (str): Zu prüfender Unternehmensname
state (str): US-Bundesstaat (z.B. 'DE' für Delaware)
Returns:
dict: Validierte Unternehmensdaten oder None
"""
# Request-Daten für API-Aufruf zusammenstellen
payload = {
"name": entity_name,
"state": state
}
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json",
# GDPR-konforme Header für Compliance-Zwecke
"X-Purpose": "AMLD6-KYB-Verification",
"X-Legal-Basis": "Article-6-1-c-GDPR"
}
try:
# API-Aufruf durchführen
response = requests.post(
self.base_url,
headers=headers,
json=payload,
timeout=30
)
if response.status_code == 200:
data = response.json()
# AMLD6-konforme Datenvalidierung
if self.validate_amld6_requirements(data):
# Erfolgreiche Prüfung protokollieren
logging.info(f"KYB-Check erfolgreich: {entity_name} - Status: {data.get('status')}")
return self.format_kyb_result(data)
else:
logging.warning(f"Unvollständige Daten für: {entity_name}")
return None
else:
logging.error(f"API-Fehler {response.status_code}: {response.text}")
return None
except requests.exceptions.RequestException as e:
logging.error(f"Verbindungsfehler bei KYB-Check: {str(e)}")
return None
def validate_amld6_requirements(self, data):
"""
Überprüfung der AMLD6-Mindestanforderungen
"""
required_fields = ['name', 'entity_type', 'status',
'formation_date', 'registered_agent']
for field in required_fields:
if not data.get(field):
return False
# Status muss gültig sein für KYB-Compliance
valid_statuses = ['Active', 'Good Standing', 'Current']
return data.get('status') in valid_statuses
def format_kyb_result(self, raw_data):
"""
Formatierung für deutsche Compliance-Dokumentation
"""
return {
'firmenname': raw_data.get('name'),
'rechtsform': raw_data.get('entity_type'),
'status': raw_data.get('status'),
'gruendungsdatum': raw_data.get('formation_date'),
'registered_agent': raw_data.get('registered_agent', {}).get('name'),
'geschaeftsadresse': raw_data.get('registered_agent', {}).get('address'),
'bundesstaat': raw_data.get('state'),
'pruefzeitpunkt': datetime.now().isoformat(),
'compliance_status': 'AMLD6_KONFORM'
}
# Praktisches Nutzungsbeispiel
if __name__ == "__main__":
# API-Key aus sicherer Quelle laden
kyb_checker = AMDLDCompliantKYB("your-api-key-here")
# Beispiel: Delaware Corporation prüfen
result = kyb_checker.verify_us_entity(
"Apple Inc.",
"DE" # Delaware
)
if result:
print("KYB-Prüfung erfolgreich:")
print(json.dumps(result, indent=2, ensure_ascii=False))
else:
print("KYB-Prüfung fehlgeschlagen - siehe Logs")Alternative: cURL-Implementation für schnelle Tests
# AMLD6-konforme API-Abfrage mit cURL
curl -X POST https://api.opensosdata.com/v1/lookup \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Purpose: AMLD6-KYB-Verification" \
-d '{
"name": "Microsoft Corporation",
"state": "WA"
}'
US-Unternehmen ab $0.10 Standard / $0.0314 Pi pro Abfrage prüfen
Live-Abfragen ab $0,10, mit Volumen bis zu $0,0314. Nutzungsbasierte Abrechnung.
Kostenloses Konto erstellenBaFin-Guidance für US-Counterparty Due Diligence
Die Bundesanstalt für Finanzdienstleistungsaufsicht hat in ihrem Rundschreiben 01/2020 spezifische Anforderungen für die Due Diligence bei US-amerikanischen Geschäftspartnern formuliert. Besonders relevant für API-basierte KYB-Prozesse sind:
Automatisierte vs. manuelle Prüfprozesse
BaFin akzeptiert grundsätzlich automatisierte KYB-Verfahren, sofern diese eine gleichwertige Prüfungstiefe wie manuelle Prozesse gewährleisten. Eine US-Unternehmen prüfen API erfüllt diese Anforderungen, wenn sie:
- Direkte Datenquellen nutzt (Secretary of State-Register)
- Aktualität der Daten gewährleistet
- Vollständige Audit-Trails generiert
- Falsch-Positiv-Raten minimiert
| Prüfkriterium | Manuelle Prüfung | API-basierte Prüfung | Bewertung |
|---|---|---|---|
| Datenaktualität | Abhängig von Bearbeiter | Real-time SOS-Daten | ✅ API überlegen |
| Konsistenz | Subjektive Bewertung | Standardisierte Kriterien | ✅ API überlegen |
| Dokumentation | Manuelle Protokolle | Automatische Logs | ✅ API überlegen |
| Kosten pro Prüfung | €50-200 (Personal) | €0.028 ($0.0314) | ✅ API überlegen |
| Bearbeitungszeit | 2-5 Werktage | < 1 Sekunde | ✅ API überlegen |
| Skalierbarkeit | Begrenzt | Unbegrenzt | ✅ API überlegen |
Integration in bestehende Compliance-Workflows
ERP- und CRM-Integration
Die Integration einer US-Unternehmen prüfen API in bestehende Geschäftsprozesse erfolgt typischerweise über Webhook-basierte Automatisierung:
# Beispiel: Salesforce-Integration für automatische KYB-Checks
from salesforce_api import SalesforceClient
from kyb_checker import AMDLDCompliantKYB
def automated_kyb_workflow(lead_data):
"""
Automatisierter KYB-Workflow für neue US-Geschäftspartner
"""
# Initialisierung der Services
sf_client = SalesforceClient()
kyb_checker = AMDLDCompliantKYB(api_key)
# KYB-Check durchführen
kyb_result = kyb_checker.verify_us_entity(
lead_data['company_name'],
lead_data['state']
)
if kyb_result:
# Erfolgreiche Verifikation - Lead weiterleiten
sf_client.update_lead(
lead_data['id'],
{
'KYB_Status__c': 'VERIFIED',
'Compliance_Check_Date__c': datetime.now(),
'Entity_Type__c': kyb_result['rechtsform'],
'Registration_Status__c': kyb_result['status']
}
)
# Automatische Weiterleitung an Sales-Team
trigger_sales_notification(lead_data, kyb_result)
else:
# Fehlgeschlagene Verifikation - manuelle Prüfung erforderlich
sf_client.update_lead(
lead_data['id'],
{
'KYB_Status__c': 'MANUAL_REVIEW_REQUIRED',
'Compliance_Notes__c': 'Automatische Verifikation fehlgeschlagen'
}
)
# Compliance-Team benachrichtigen
trigger_compliance_alert(lead_data)Batch-Verarbeitung für Portfolio-Reviews
Für regelmäßige Portfolio-Überprüfungen gemäß § 12 GwG bietet sich eine Batch-Verarbeitung an:
import asyncio
import aiohttp
from typing import List, Dict
class BatchKYBProcessor:
def __init__(self, api_key: str, max_concurrent: int = 10):
self.api_key = api_key
self.max_concurrent = max_concurrent
self.semaphore = asyncio.Semaphore(max_concurrent)
async def process_portfolio_review(self, entities: List[Dict]) -> List[Dict]:
"""
Asynchrone Batch-Verarbeitung für Portfolio-Reviews
Args:
entities: Liste der zu prüfenden Unternehmen
Returns:
Liste der Prüfungsergebnisse
"""
tasks = []
for entity in entities:
task = self.verify_single_entity(entity)
tasks.append(task)
# Gleichzeitige Verarbeitung mit Rate-Limiting
results = await asyncio.gather(*tasks, return_exceptions=True)
return self.compile_portfolio_report(entities, results)
async def verify_single_entity(self, entity: Dict) -> Dict:
"""
Einzelne Entität asynchron prüfen
"""
async with self.semaphore:
async with aiohttp.ClientSession() as session:
payload = {
"name": entity['name'],
"state": entity['state']
}
headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
try:
async with session.post(
"https://api.opensosdata.com/v1/lookup",
json=payload,
headers=headers
) as response:
if response.status == 200:
data = await response.json()
return self.format_batch_result(entity, data)
else:
return self.format_error_result(entity, response.status)
except Exception as e:
return self.format_exception_result(entity, str(e))
def compile_portfolio_report(self, entities: List[Dict],
results: List[Dict]) -> Dict:
"""
Portfolio-Bericht für Compliance-Dokumentation erstellen
"""
successful_checks = [r for r in results if r.get('status') == 'success']
failed_checks = [r for r in results if r.get('status') != 'success']
return {
'report_date': datetime.now().isoformat(),
'total_entities': len(entities),
'successful_verifications': len(successful_checks),
'failed_verifications': len(failed_checks),
'compliance_rate': len(successful_checks) / len(entities) * 100,
'detailed_results': results,
'action_required': [r for r in results if r.get('requires_action', False)]
}
# Nutzungsbeispiel für monatliche Portfolio-Reviews
async def monthly_portfolio_review():
processor = BatchKYBProcessor("your-api-key")
# Beispiel-Portfolio laden (normalerweise aus Datenbank)
portfolio_entities = [
{"name": "Google LLC", "state": "DE", "customer_id": "CUST001"},
{"name": "Facebook Inc", "state": "DE", "customer_id": "CUST002"},
{"name": "Tesla Inc", "state": "TX", "customer_id": "CUST003"}
]
# Batch-Verarbeitung durchführen
report = await processor.process_portfolio_review(portfolio_entities)
# Bericht für Compliance-Archiv speichern
save_compliance_report(report)Kostenoptimierung und ROI-Berechnung
TCO-Analyse: API vs. traditionelle KYB-Prozesse
Eine detaillierte Kostenanalyse zeigt die erheblichen Einsparpotenziale einer API-basierten Lösung:
Traditioneller manueller KYB-Prozess:
- Personalkosten: €75/Stunde × 2 Stunden = €150 pro Prüfung
- Externe Datenquellen: €25-50 pro Abfrage
- Bearbeitungszeit: 2-5 Werktage
- Fehlerrate: 15-25% (manuelle Eingabe)
- Skalierungskosten: Linear steigend
API-basierte Lösung (OpenSOSData):
- Direkte Kosten: $0.0314 (ca. €0.028) pro Prüfung
- Implementierungsaufwand: 2-3 Entwicklertage (einmalig)
- Bearbeitungszeit: < 1 Sekunde
- Fehlerrate: < 1% (strukturierte Daten)
- Skalierungskosten: Keine zusätzlichen Fixkosten
Break-Even-Analyse: Bei bereits 3-4 monatlichen KYB-Prüfungen amortisiert sich die API-Integration vollständig.
Pricing-Modell und Budgetplanung
Die OpenSOSData-Lösung bietet transparente, nutzungsbasierte Preise ohne versteckte Kosten:
| Volumen | Kosten pro Abfrage | Monatliches Budget (100 Abfragen) | Jährliche Einsparung vs. manuell |
|---|---|---|---|
| 100 Abfragen | $0.0314 | $3.14 (ca. €2.82) | €14.718 |
| 1.000 Abfragen | $0.0314 | $31.40 (ca. €28.20) | €147.180 |
| 10.000 Abfragen | $0.0314 | $314 (ca. €282) | €1.471.800 |
Die Minimum-Buchung von $3.14 (100 Abfragen) macht die Lösung auch für kleinere Compliance-Teams zugänglich, während das Pay-per-Use-Modell optimale Kostenkontrolle bietet.
Häufig gestellte Fragen (FAQ)
Erfüllt eine API-basierte KYB-Lösung die AMLD6-Anforderungen vollständig?
Ja, eine professionelle US-Unternehmen prüfen API erfüllt alle AMLD6-Kernanforderungen, sofern sie direkte Zugriffe auf Secretary of State-Register bietet und GDPR-konforme Datenverarbeitung gewährleistet. Die OpenSOSData API wurde speziell für europäische Compliance-Anforderungen entwickelt und deckt alle notwendigen Datenfelder ab: Firmenname, Rechtsform, Status, Gründungsdatum, Registered Agent und Geschäftsadresse. Zusätzlich ermöglicht die automatische Protokollierung eine lückenlose Audit-Trail-Dokumentation gemäß § 8 GwG.
Wie gewährleistet die API-Lösung GDPR-Compliance bei US-Unternehmensdaten?
GDPR-Compliance wird durch mehrere Mechanismen sichergestellt: Die Datenverarbeitung erfolgt auf Basis von Artikel 6 Abs. 1 lit. c) DSGVO (rechtliche Verpflichtung durch GwG/AMLD6). Es werden ausschließlich öffentlich verfügbare, für KYB-Zwecke erforderliche Daten abgerufen. Die Datenspeicherung erfolgt gemäß den GwG-Aufbewahrungsfristen (5 Jahre nach Geschäftsbeziehungsende). Zudem ermöglicht die API-Architektur eine präzise Zweckbindung und Zugriffsprotokollierung für Compliance-Nachweise.
Welche US-Bundesstaaten werden von der API abgedeckt und wie aktuell sind die Daten?
Die OpenSOSData API deckt alle 50 US-Bundesstaaten plus DC, Puerto Rico und USVI ab, einschließlich aller wirtschaftlich relevanten Jurisdiktionen wie Delaware, New York, California, Texas und Florida. Die Daten werden direkt aus den offiziellen Secretary of State-Registern bezogen und sind in der Regel tagaktuell. Bei kritischen Jurisdiktionen wie Delaware (wichtig für Corporations) erfolgen Updates sogar häufiger. Die API-Dokumentation unter opensosdata.com/openapi.yaml enthält eine vollständige Liste der verfügbaren Bundesstaaten und deren Update-Zyklen.
Wie erfolgt die Integration in bestehende ERP-Systeme und Compliance-Workflows?
Die Integration erfolgt über Standard-REST-API-Schnittstellen und ist mit allen gängigen ERP-Systemen (SAP, Oracle, Microsoft Dynamics) sowie CRM-Plattformen (Salesforce, HubSpot) kompatibel. Typische Integrationsszenarien umfassen: Automatische KYB-Checks bei Neukundenanlage, Batch-Verarbeitung für Portfolio-Reviews, Webhook-basierte Benachrichtigungen bei Statusänderungen und Real-time-Validierung in Onboarding-Prozessen. Die API unterstützt sowohl synchrone als auch asynchrone Verarbeitung und bietet umfassende Error-Handling-Mechanismen für robuste Produktionsumgebungen.
Welche Kostenvorteile bietet die API-Lösung gegenüber manuellen KYB-Prozessen?
Die Kosteneinsparungen sind erheblich: Während manuelle KYB-Prüfungen €150-200 pro Fall kosten (Personalaufwand, externe Datenquellen, Bearbeitungszeit), fallen bei der API-Lösung nur $0.0314 (ca. €0.028) pro Abfrage an. Bei 100 monatlichen Prüfungen entspricht dies einer jährlichen Einsparung von über €147.000. Zusätzliche Vorteile: Sofortige Ergebnisse (statt 2-5 Werktage), 99%+ Verfügbarkeit, keine Skalierungskosten und deutlich reduzierte Fehlerquoten durch strukturierte Datenverarbeitung.
Wie werden Audit-Trails und Compliance-Dokumentation für BaFin-Prüfungen gewährleistet?
Die API generiert automatisch vollständige Audit-Trails für jeden KYB-Check, einschließlich: Zeitstempel aller Abfragen, verwendete Suchkriterien, vollständige API-Responses, Compliance-Status-Bewertungen und Benutzeridentifikationen. Diese Dokumentation entspricht den BaFin-Anforderungen für automatisierte Compliance-Verfahren und kann in verschiedenen Formaten (JSON, CSV, PDF) exportiert werden. Zusätzlich ermöglicht die API-Lösung die Integration in bestehende GRC-Systeme (Governance, Risk, Compliance) für zentrale Compliance-Berichterstattung.
Ist eine Mindestvertragslaufzeit oder ein Abonnement erforderlich?
Nein, die OpenSOSData API arbeitet vollständig nutzungsbasiert ohne Mindestvertragslaufzeiten oder monatliche Abonnements. Der Einstieg ist bereits ab $3.14 für 100 Abfragen möglich, was besonders für kleinere Compliance-Teams oder gelegentliche KYB-Checks attraktiv ist. Die Registrierung erfolgt über app.opensosdata.com, und Credits können flexibel nachgekauft werden. Dieses Modell bietet optimale Kostenkontrolle und ermöglicht eine schrittweise Skalierung entsprechend den tatsächlichen Compliance-Anforderungen.