Bevor Sie beginnen
- Verwenden Sie den API-Schlüssel einer Sandbox-Anwendung. Live-Anwendungen erreichen den Test-VASP nie.
- Aktivieren Sie die Travel Rule mit einem rechtlichen Namen:
- Optional können Sie ein Webhook-Ziel für
travel_rule.status.updatedabonnieren. Die Sandbox stellt es zu und kennzeichnet es mit"environment": "sandbox".
Der Didit Test VASP
GET /v1/sandbox/scenarios/ gibt das Profil des Test-VASP und alle Szenarien in seinem Objekt travel_rule zurück. So können Ihre Tests die Auslösewerte auslesen, statt sie fest zu codieren:
Alle Werte sind Testdaten. Der Test-VASP ist keinem Travel-Rule-Netzwerk angeschlossen, und kein Ergebnis in der Sandbox zeigt, dass eine echte Gegenpartei oder ein echtes Netzwerk erreichbar ist.
Ausgehende Szenarien
Jede ausgehendetravelRule-Transaktion einer Sandbox-Anwendung, für die ein Austausch nötig ist, geht an den Test-VASP. Wählen Sie das Ergebnis über die Wallet-Adresse des Begünstigten (Groß- und Kleinschreibung spielt keine Rolle) oder über einen Begünstigtennamen in der Form Didit Test VASP <suffix>. Sind beide gesetzt, hat die Wallet Vorrang. Ohne beides oder mit einem Suffix, das die Tabelle nicht aufführt, wird die Transaktion abgeschlossen (accept).
Eine Transaktion, für die kein Austausch nötig ist, erreicht den Test-VASP nie: eine unterhalb Ihres threshold_amount, eine an die eigene verifizierte Wallet Ihres Benutzers und eine, deren Gegenpartei-Wallet Sie als selbstverwahrt angegeben haben. Eine Gegenpartei-VASP, die Sie oder Ihr Endbenutzer manuell aus dem Verzeichnis ausgewählt haben, wird nach den Wegen beurteilt, die auch eine Live-Anwendung hätte. Hat ihr Eintrag einen solchen Weg (einen verifizierten TRP-Endpoint, ein Netzwerk, über das Ihre Anwendung sendet, oder einen Compliance-Kontakt), geht die Transaktion an den Test-VASP. Hat der Eintrag keinen, endet die Transaktion mit COUNTERPARTY_VASP_NOT_FOUND, wie es auch bei einer Live-Anwendung wäre.
rail der Transaktion ist TEST_VASP, und in der Transaktionsliste ist Didit Test VASP als Begünstigten-VASP angegeben. Verfolgen Sie die Transaktion in den Webhooks travel_rule.status.updated, oder lesen Sie GET /v3/transactions/{transaction_id}/.
name_mismatchvergleicht den Begünstigtennamen, den Sie gesendet haben, mit dem Kontoinhabernamen, den der Test-VASP zurückmeldet. Maßstab ist Ihre Namensregel für den Entitätstyp des Begünstigten (matching_rules.individual.namebzw.matching_rules.company.name, die so langename_matching_strictnessfolgen, bis Sie sie setzen). Die Transaktion und der Verlaufseintrag, der die Entscheidung getroffen hat, enthaltenname_match(mitcompared_with: "counterparty_vasp") unddata_matchmitmismatched_fields: ["name"].not_reachablehält die Transaktion im StatusAWAITING_COUNTERPARTY, solange sie wiederholt wird, mitdelivery.statusRETRYINGundlast_errortest VASP is not answering. Danach wechselt die Transaktion in den StatusCOUNTERPARTY_VASP_NOT_REACHABLE. Senden Sie anschließend{"action": "resend"}, um sie erneut auszuführen.self_hostedlässt den Test-VASP bestätigen, dass die Wallet selbstverwahrt ist. Erfassen Sie den Nachweis mit dem Widget zur Wallet-Eigentumsprüfung (für Sie ausgestellt, solangeauto_wallet_verificationaktiv ist) oder mitPOST .../travel-rule/ownership/und{"confirmed": true}. Die Wallet wird dann unter dem Namen des Begünstigten in Ihr Adressbuch aufgenommen, und der Namensabgleich entscheidet über die Transaktion. Eine Übereinstimmung schließt sie ab und markiert die Wallet als verifiziert.{"confirmed": false}lehnt sie ab.
Eingehende Überweisungen vom Test-VASP
Um die Empfangsseite zu testen, lassen Sie den Test-VASP mitPOST /v3/travel-rule/test-vasp/inbound/ eine Überweisung an Sie senden. Geben Sie dabei eine der eigenen Wallets Ihrer Anwendung aus dem Adressbuch an. Die Überweisung wird über denselben eingehenden Pfad entschieden wie eine echte, anhand Ihres Adressbuchs, Ihres Eigentumsmodus und Ihrer Namensregeln.
Die Antwort
201 enthält transaction_id, txn_id, scenario, travel_rule_status, detail, test_vasp: true und die Überweisung travel_rule. Eine Live-Anwendung erhält 400 ("The Didit Test VASP is only available on sandbox applications."). Ein anderer Wert für scenario ergibt ebenfalls 400, und eine Anwendung mit deaktivierter Travel Rule erhält 409.
Entscheiden Sie über eine wartende Überweisung mit
POST .../travel-rule/ownership/, wie Sie es bei einer echten tun würden: {"confirmed": true} schließt sie ab, {"confirmed": false} lehnt sie ab.
Eine Einzahlung, die Sie selbst über POST /v3/transactions/ melden, wurde nicht vom Test-VASP gesendet. Sie bleibt AWAITING_COUNTERPARTY und wartet auf ihren Ursprungs-VASP. Ihre Zeitleiste nennt den oben genannten Endpoint. Es wird kein Webhook ausgelöst, bis sie nach confirmation_timeout_hours abläuft. POST /v3/travel-rule/inbound/ schließt eine Registrierung nach der Einzahlung weiterhin anhand Ihres Adressbuchs ab, wie auf einer Live-Anwendung.
Webhooks in der Sandbox
travel_rule.status.updated wird für Sandbox-Anwendungen bei jeder Statusänderung ausgelöst, mit "environment": "sandbox". Eine Überweisung, auf die der Test-VASP geantwortet hat, enthält außerdem rail: "TEST_VASP", test_vasp: true und test_vasp_scenario. Der übrige Teil der Sandbox verhält sich wie in Transaktionsüberwachung in der Sandbox beschrieben: Regeln werden nicht ausgewertet, transaction.created und transaction.status.updated werden nicht gesendet, und es fallen keine Kosten an.
Was die Sandbox nicht beweist
- Dass eine echte Gegenpartei, eine Netzwerkmitgliedschaft oder der öffentliche TRP-Host von Didit funktioniert. Keines davon wird kontaktiert.
- Dass Ihre Netzwerk-Zugangsdaten gültig sind. Eine verbundene Mitgliedschaft wird erst durch ihren ersten Live-Austausch bestätigt.
- Die Routen echter VASPs im Verzeichnis. Auf einer Sandbox-Anwendung hat jede Route den Status
unavailablemitreason: sandbox_application, und jede Zeile hatreachable: false.