ComplySwissComplySwiss
HILFE & TRAINING · KAPITEL 12

ComplySwiss API: Systeme verbinden

Verbinden Sie berechtigte Systeme über API-Schlüssel, Kunden- und Transaktionsendpunkte, Alerts und signierte Webhooks mit Ihrer ComplySwiss-Organisation.

Zurück zum Help Center

Was Sie damit erreichen

Übernehmen Sie Kundendaten aus einem CRM nach ComplySwiss, übermitteln Sie Transaktionen für AML-Regelprüfungen, lesen Sie daraus entstehende Alerts und empfangen Sie Ereignisse in Ihrem System. Die API unterstützt Ihre Arbeit; sie ersetzt keine Compliance-Prüfung.

Praktische Vorteile

Weniger doppelte Eingaben

Kunden und Transaktionen aus Systemen übernehmen, in denen sie bereits erfasst sind.

Zeitnahe Überwachung

Übermittelte Transaktionen durchlaufen konfigurierte AML-Regeln und können Alerts auslösen.

Verbundene Bearbeitung

Alerts abrufen oder signierte Ereignisse für die weitere Bearbeitung empfangen.

Nachvollziehbare Vorgänge

Per API angelegte Kunden, Transaktionen und Alerts werden in ComplySwiss mit Prüfprotokolleinträgen erfasst.

1. Richtige Organisation auswählen

Melden Sie sich mit einer Administrationsrolle an, die Einstellungen verwalten darf. Wählen Sie die Organisation, deren Daten die Integration nutzen soll, und öffnen Sie Integrationen → API & Webhooks. Jeder Schlüssel gehört zu dieser Organisation und kann keine Daten einer anderen Organisation lesen oder schreiben.

2. API-Schlüssel erstellen

Geben Sie einen eindeutigen Namen ein und wählen Sie nur die benötigten Berechtigungen: customers:read, customers:write, transactions:read, transactions:write oder alerts:read. Wählen Sie Create API key. Der vollständige Schlüssel erscheint nur einmal: speichern Sie ihn sicher auf dem Server. Bei Offenlegung widerrufen Sie ihn auf derselben Seite und erstellen einen neuen.

Legen Sie einen API-Schlüssel niemals in Browser-JavaScript, einem öffentlichen Repository, einem Screenshot oder einer Support-Nachricht ab. Senden Sie ihn nur serverseitig über HTTPS im Header Authorization: Bearer.
Für Integrationen anmelden

Verfügbare v1-Endpunkte

Basispfad: /api/v1/. Lesezugriffe liefern JSON. Listen unterstützen limit (1–100, Standard 50) und die Seitennummerierung mit after_id; verwenden Sie next_after_id für die nächste Seite.

MethodeEndpunktBerechtigungZweck
GET/api/v1/customers.phpcustomers:readKunden auflisten oder mit ?id=ID einzeln abrufen
POST/api/v1/customers.phpcustomers:writeNatürliche Person oder Unternehmenskunden anlegen
GET/api/v1/transactions.phptransactions:readTransaktionen auflisten oder mit ?id=ID einzeln abrufen
POST/api/v1/transactions.phptransactions:writeTransaktion anlegen und AML-Regeln auswerten
GET/api/v1/alerts.phpalerts:readAlerts auflisten (optional ?status=open) oder mit ?id=ID einzeln abrufen

3. Lesezugriff testen

Verwenden Sie einen Schlüssel mit customers:read. Ersetzen Sie YOUR_API_KEY lokal. Eine erfolgreiche Listenantwort enthält data und next_after_id. Dieses Beispiel liest nur Datensätze und legt nichts an.

curl -i 'https://complyswiss.ch/api/v1/customers.php?limit=10' \
  -H 'Authorization: Bearer YOUR_API_KEY'

4. Übungskunden anlegen

Testen Sie mit einer Testorganisation und einem Schlüssel mit customers:write. Senden Sie JSON für eine natürliche Person; first_name und last_name sind Pflichtfelder. Die Antwort enthält die neue id, customer_number, risk_score, risk_level und einen allfälligen country_sanctions_alert. Nationalität, Wohnsitz und die Nationalität wirtschaftlich Berechtigter werden gegen den SECO-Katalog der Länderprogramme geprüft; ein Treffer ist ein Prüfsignal und kein pauschales Verbot. Für einen Unternehmenskunden sind stattdessen company_name und mindestens ein Eintrag unter beneficial_owners mit first_name und last_name erforderlich.

curl -i -X POST 'https://complyswiss.ch/api/v1/customers.php' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"customer_type":"individual","first_name":"Demo","last_name":"Muster","nationality":"CH"}'

5. Übungstransaktion übermitteln

Verwenden Sie transactions:write und ersetzen Sie customer_id 123 im Beispiel durch die id eines Kunden derselben Organisation. transaction_type und ein positiver amount sind Pflichtfelder. Die Antwort enthält die Transaktionsreferenz, risk_score und mögliche Alerts; konfigurierte AML-Regeln und das Transaktionsland werden geprüft. Ein Hinweis zu einem Länderprogramm erfordert die Prüfung der anwendbaren SECO-Verordnung und bedeutet für sich allein nicht, dass die Transaktion verboten ist. Ein optionales Blockchain-Screening läuft nur, wenn es für diese Organisation aktiviert ist.

curl -i -X POST 'https://complyswiss.ch/api/v1/transactions.php' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"customer_id":123,"transaction_type":"transfer","amount":100,"fiat_amount":100,"fiat_currency":"CHF"}'

6. Alerts abrufen

Verwenden Sie alerts:read mit GET /api/v1/alerts.php?status=open. Ein leeres data-Array bedeutet, dass diese Anfrage keine passenden Alerts liefert; es beweist kein fehlendes AML-Risiko. Prüfen Sie Alerts und Entscheide in der Anwendung.

curl -i 'https://complyswiss.ch/api/v1/alerts.php?status=open&limit=10' \
  -H 'Authorization: Bearer YOUR_API_KEY'

7. Ereignisse per Webhook empfangen (optional)

Fügen Sie unter Integrationen → API & Webhooks eine Empfangs-URL hinzu und wählen Sie customer.created, transaction.created, alert.created und/oder blockchain.screening.completed. Kopieren Sie das einmalig angezeigte Signaturgeheimnis. ComplySwiss sendet einen JSON-POST mit X-ComplySwiss-Event und X-ComplySwiss-Signature. Prüfen Sie die HMAC-SHA-256-Signatur über den unveränderten Anfrage-Body, bevor Sie das Ereignis verarbeiten. Antworten Sie bei Erfolg mit einem 2xx-Status; prüfen Sie Letzte Webhook-Zustellungen und verwenden Sie Retry bei Fehlern.

Wenn eine Anfrage fehlschlägt

401 bedeutet, dass der Bearer-Schlüssel fehlt, ungültig oder inaktiv ist; 403 steht für eine fehlende Berechtigung; 404 bedeutet, dass die angefragte id in dieser Organisation nicht sichtbar ist; 422 weist auf ungültige Eingaben hin; 405 auf eine nicht unterstützte Methode. Prüfen Sie die JSON-Fehlermeldung sowie Organisation und Berechtigungen des Schlüssels.

Umfang und Erwartungen

Die oben aufgeführten v1-Endpunkte decken Kunden, Transaktionen und Alerts ab. Diese Anleitung beschreibt keinen API-Endpunkt für das Scannen von Ausweisen oder ein direktes Sanktionsscreening. Automatisierung kann manuelle Arbeit reduzieren, garantiert aber weder regulatorische Konformität noch einen finanziellen Ertrag.

Training: Verwenden Sie für Übungen fiktive oder Testdaten. Die Anleitung erklärt den Software-Workflow und ersetzt keine Rechtsberatung, SRO-Vorgaben oder das professionelle Ermessen einer Compliance-Fachperson.