Transaktionskategorien
Jede Transaktion hat einentransaction_category, der bestimmt, wie Regeln und Analysen sie behandeln:
Transaktionsdetails
Das Objekttransaction_details enthält die Finanzdaten:
Subjekt und Gegenpartei
Jede Transaktion hat ein Subjekt (erforderlich) und optional eine Gegenpartei. Beide verwenden dasselbe Parteimodell:
Didit leitet den
country_code der Partei aus address.country ab, wenn address ein Objekt ist. Wenn address eine Zeichenfolge ist, wird country_code für diese Partei als null zurückgegeben.
Wenn vendor_data mit einem bestehenden Benutzer oder Unternehmen übereinstimmt, verknüpft Didit die Transaktion automatisch mit dem Profil dieser Entität. Dadurch werden sitzungsübergreifende Regelauswertungen und Frequenzprüfungen möglich.
In der Antwort werden beide Parteien im Array parties mit den Rollen APPLICANT und COUNTERPARTY zurückgegeben.
Zahlungsmethoden
Fügen Sie jeder Partei einpayment_method hinzu, um das Zahlungsinstrument für die jeweilige Seite zu beschreiben:
Bei
travelRule-Transaktionen kennzeichnet eine Zahlungsmethode der Gegenpartei mit method_type: "unhosted_wallet" (Alias type) die Wallet der Gegenpartei als selbstverwahrt.
Wenn Travel Rule aktiviert ist und der Betrag in der Standardwährung Ihrer Anwendung nicht unter threshold_amount liegt, wird die Überweisung direkt auf den Status UNCONFIRMED_OWNERSHIP gesetzt und der Ablauf zum Nachweis des Eigentums gestartet. Siehe Deklarierte selbstverwahrte Wallets.
Nehmen Sie bei Krypto-Transaktionen Wallet-Adressen in account_id auf und setzen Sie currency_kind auf crypto, damit das Blockchain-Screening automatisch ausgeführt werden kann. Die Richtung legt fest, welche Wallet geprüft wird: Beim Screening vor der Überweisung (inbound) wird die Absender-Wallet in counterparty.payment_method.account_id verwendet. Beim Screening ausgehender Transaktionen (outbound) wird die Ziel-Wallet in counterparty.payment_method.account_id verwendet. Wenn Sie in transaction_details.payment_reference_id einen Blockchain-Hash übermitteln, benötigt das Screening eingehender Transaktionen (inbound) Ihre Einzahlungsadresse des Dienstes in subject.payment_method.account_id, während das Screening ausgehender Transaktionen (outbound) die Ziel-Wallet in counterparty.payment_method.account_id benötigt.
Überschreibung des Krypto-Screenings
Verwenden Sieinclude_crypto_screening auf der obersten Ebene der Anfrage, um den Standardwert zu überschreiben, der unter Transaktionen > Einstellungen in der Console konfiguriert ist:
Gerätekontext
Fügen Sie Geräteinformationen zur betreffenden Partei (und optional zur Gegenpartei) hinzu, damit die Regeln zur Geräteintelligenz greifen. Das Anfragefeld heißtdevice_context in jeder Partei. Der camelCase-Alias device wird ebenfalls akzeptiert und ist das Übertragungsformat des SDK. Die Antwort enthält device in jeder Partei im Array parties.
browser_family und platform werden nicht aus user_agent abgeleitet. Sie müssen als explizite Schlüssel auf oberster Ebene innerhalb von device_context gesendet werden, damit die Regeln zur Geräteintelligenz auslösen. Wenn Sie das Didit SDK verwenden, werden diese Felder automatisch erfasst.userAgent, browserFamily, browserVersion, osFamily, osVersion, acceptLang, sessionId, sessionAgeMs. Das Unterobjekt network_context akzeptiert die Aliase ip, countryCode3, lat und lon. Ein Block ipInfo auf oberster Ebene wird ebenfalls in network_context übernommen.
Der Gerätekontext ermöglicht Regeln wie die Erkennung von Mehrfachkonten (gleicher Fingerprint bei verschiedenen betreffenden Parteien), die Erkennung der Kombination aus neuem Browser und neuer IP, eine Übertragung mit hohem Wert bei kurzem Sitzungsalter sowie risikobasiertes Scoring auf Basis des Standorts.
Benutzerdefinierte Eigenschaften
Fügen Sie beliebige weitere Schlüssel-Wert-Paare im Objektcustom_properties hinzu. Regeln können diese Felder in ihren Bedingungen referenzieren. Das ist nützlich, um geschäftsspezifischen Kontext zu übergeben, etwa Produktkategorie, Händler-ID oder Kanal.
custom_values.<key>. Zum Beispiel erfüllt die obige Payload die Bedingung custom_values.product_category eq "electronics". Im Regel-Builder der Console erscheinen Schlüssel aus kürzlich erfassten Transaktionen im Feldauswahlmenü für Bedingungen unter Benutzerdefinierte Eigenschaften. Mit Benutzerdefinierte Eigenschaft eingeben in derselben Gruppe können Sie jeden Schlüssel manuell eingeben (Groß- und Kleinschreibung wird beachtet). Details finden Sie unter Regeln und Scoring.
Beispielanfrage
Antwort
Die API gibt die erstellte Transaktion mit ihren ersten Auswertungsergebnissen zurück:
Die vollständige Anfrage- und Antwortstruktur finden Sie in der API-Referenz. Für eine kommentierte Beispiel-Payload siehe die Referenz zum Antwortschema.
Eine Transaktion einem Prüfer zuweisen
Weisen Sie eine zurückgehaltene Transaktion einem Mitglied Ihrer Anwendung zu oder heben Sie die Zuweisung auf. Dafür benötigen Sie einen API-Schlüssel mit der Berechtigungwrite:transactions. Jede Änderung wird in der Transaktions-Timeline als TRANSACTION_ASSIGNED erfasst.
Beide Aufrufe nehmen
assignee_email entgegen, die E-Mail-Adresse eines Mitglieds der Anwendung, das sich bei Didit angemeldet hat. Senden Sie null oder einen leeren String, um die Zuweisung aufzuheben.
Der Sammelaufruf nimmt außerdem transaction_ids entgegen, eine Liste mit 1 bis 500 Transaktions-UUIDs.
uuid, transaction_number, assignee und changed (false, wenn die Transaktion diesem Prüfer bereits zugewiesen war) zurück, oder 404, wenn die Transaktion in der Anwendung nicht existiert.
Der Sammelaufruf gibt transactions (ein Eintrag wie oben), updated_count und not_found_transaction_ids zurück.
Filtern Sie die Transaktionsliste mit assignee. Das ist eine durch Kommas getrennte Liste, bei der jeder Wert zutreffen kann: me, unassigned, rules (allein durch die Regeln entschieden, ohne Beteiligung eines Prüfers) oder die E-Mail-Adresse eines Mitglieds.
Idempotenz
txn_id (die transaction_id, die Sie senden) ist pro Anwendung eindeutig.
Wenn Sie eine transaction_id erneut übermitteln, die bereits existiert, gibt die API 400 mit A transaction with this transaction_id already exists. im Feld transaction_id zurück. Zwei identische, gleichzeitig eintreffende Anfragen führen bei der zweiten zu 409.
In beiden Fällen wird die bestehende Transaktion nicht zurückgegeben.
Um sicher erneut zu versuchen, behandeln Sie ein 400 oder 409 für eine doppelte transaction_id als „bereits erstellt“ und rufen Sie die bestehende Transaktion ab, statt sie erneut zu übermitteln: Lesen Sie sie mit GET /v3/transactions/{uuid}/ und der uuid aus der ersten Antwort, oder verwenden Sie die transaction_id (die Didit-UUID), die der Webhook transaction.created neben Ihrer txn_id mitliefert.
Erzeugen Sie txn_id immer auf Ihrer Seite (z. B. als Ihre eigene Transaktions-DB-ID, UUID oder deterministischen Hash).
Historische Daten nachladen
Übergeben Sietxn_date mit einem Datum in der Vergangenheit, um historische Transaktionen aufzunehmen. Regeln werden standardmäßig trotzdem ausgewertet. Wenn Sie bei umfangreichen Ladevorgängen historischer Daten die Regelauswertung überspringen möchten, verwenden Sie den CSV-Import in der Konsole mit dem Dry-Ingest-Modus. Siehe Integrationsleitfaden.
Nächste Schritte
Regeln und Scoring
Wie eingereichte Transaktionen anhand von Regeln bewertet werden.
Antwortschema
Vollständige, kommentierte Antwort-Payload.
Krypto-Screening
Automatisches Wallet- und Transaktions-Screening für Krypto-Transaktionen.
Travel Rule
Travel-Rule-Compliance-Daten an Transfers virtueller Vermögenswerte anhängen.
IP-Anreicherung
Aus der IP-Adresse abgeleiteter Kontext, der Regeln zur Verfügung steht.
API-Referenz
Vollständiges Anfrageschema für den Create-Transaction-Endpoint.