Verbinden Sie berechtigte Systeme über API-Schlüssel, Kunden- und Transaktionsendpunkte, Alerts und signierte Webhooks mit Ihrer ComplySwiss-Organisation.
Ü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.
Kunden und Transaktionen aus Systemen übernehmen, in denen sie bereits erfasst sind.
Übermittelte Transaktionen durchlaufen konfigurierte AML-Regeln und können Alerts auslösen.
Alerts abrufen oder signierte Ereignisse für die weitere Bearbeitung empfangen.
Per API angelegte Kunden, Transaktionen und Alerts werden in ComplySwiss mit Prüfprotokolleinträgen erfasst.
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.
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.
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.
| Methode | Endpunkt | Berechtigung | Zweck |
|---|---|---|---|
| GET | /api/v1/customers.php | customers:read | Kunden auflisten oder mit ?id=ID einzeln abrufen |
| POST | /api/v1/customers.php | customers:write | Natürliche Person oder Unternehmenskunden anlegen |
| GET | /api/v1/transactions.php | transactions:read | Transaktionen auflisten oder mit ?id=ID einzeln abrufen |
| POST | /api/v1/transactions.php | transactions:write | Transaktion anlegen und AML-Regeln auswerten |
| GET | /api/v1/alerts.php | alerts:read | Alerts auflisten (optional ?status=open) oder mit ?id=ID einzeln abrufen |
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'
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"}'
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"}'
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'
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.
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.
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.