curl -X GET https://verification.didit.me/v3/travel-rule/settings/ \
-H 'x-api-key: YOUR_API_KEY'import requests
url = "https://verification.didit.me/v3/travel-rule/settings/"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://verification.didit.me/v3/travel-rule/settings/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/travel-rule/settings/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/settings/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/travel-rule/settings/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/settings/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"is_enabled": false,
"jurisdiction": "EU",
"name_matching_strictness": "DEFAULT",
"confirmation_timeout_hours": 48,
"timeout_outcome": "HOLD",
"threshold_amount": "0.00",
"legal_name": "",
"lei": "",
"compliance_email": "",
"is_discoverable": true,
"disabled_networks": [],
"networks": {
"gtr": {
"rail": "GTR",
"mode": "unavailable",
"platform_available": false,
"connected": false
},
"trust": {
"rail": "TRUST",
"mode": "unavailable",
"platform_available": false,
"connected": false
},
"verifyvasp": {
"rail": "VERIFYVASP",
"mode": "unavailable",
"platform_available": false,
"connected": false
},
"sygna": {
"rail": "SYGNA",
"mode": "unavailable",
"platform_available": false,
"connected": false
}
}
}Get Travel Rule Settings
Read the application’s Travel Rule settings and VASP profile. Auto-creates a default (disabled) settings row and an empty profile on first read.
curl -X GET https://verification.didit.me/v3/travel-rule/settings/ \
-H 'x-api-key: YOUR_API_KEY'import requests
url = "https://verification.didit.me/v3/travel-rule/settings/"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://verification.didit.me/v3/travel-rule/settings/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/travel-rule/settings/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/settings/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/travel-rule/settings/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/settings/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"is_enabled": false,
"jurisdiction": "EU",
"name_matching_strictness": "DEFAULT",
"confirmation_timeout_hours": 48,
"timeout_outcome": "HOLD",
"threshold_amount": "0.00",
"legal_name": "",
"lei": "",
"compliance_email": "",
"is_discoverable": true,
"disabled_networks": [],
"networks": {
"gtr": {
"rail": "GTR",
"mode": "unavailable",
"platform_available": false,
"connected": false
},
"trust": {
"rail": "TRUST",
"mode": "unavailable",
"platform_available": false,
"connected": false
},
"verifyvasp": {
"rail": "VERIFYVASP",
"mode": "unavailable",
"platform_available": false,
"connected": false
},
"sygna": {
"rail": "SYGNA",
"mode": "unavailable",
"platform_available": false,
"connected": false
}
}
}Network availability
GTR, TRUST, VerifyVASP, and Sygna all require an active membership. GTR is not automatically included with Didit. Readnetworks for the application you are configuring:
own- Your connected membership takes precedence, even if the network is indisabled_networks. Exchanges use your network identity.didit- Platform membership is configured and you have not disabled it. No customer membership credentials are needed for this network.off- You disabled platform routing and have no connected own membership. Remove the network fromdisabled_networksto allow platform routing when available, or connect your own membership.unavailable- Neither a connected own membership nor an enabled platform membership is available. Connect your own membership in Marketplace, or use a reachableINTERNAL,TRP, orEMAILcounterparty.
platform_available is configuration status, not a live network health check. connected reports a saved membership that passed local credential validation, not a successful exchange with the provider. Enabling is_enabled or clearing disabled_networks cannot provision a missing membership.
For checks you can run without network credentials, see Testing without network credentials.Authorizations
Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is missing, wrong, revoked or expired; 403 means the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.
Response
Current Travel Rule settings and VASP profile.
Whether the managed Travel Rule negotiation flow is active for outbound travelRule transactions on this application.
Your VASP's operating jurisdiction code. Default "EU".
8How strictly beneficiary names must match before a transfer can reach COMPLETED.
NONE, STRICT, DEFAULT, FUZZY Hours an AWAITING_COUNTERPARTY transfer may remain unconfirmed before the periodic sweeper expires it. Default 48.
x >= 1What happens to the underlying transaction when a transfer expires. Default HOLD.
HOLD, REJECT, PROCEED Decimal string. Minimum transfer amount that triggers a managed exchange; transfers below it resolve straight to NOT_APPLICABLE. Defaults to "0.00" (EU TFR applies no minimum amount).
Your VASP's legal name. Required (non-blank) to set is_enabled to true.
Your Legal Entity Identifier, surfaced in the VASP directory.
Compliance contact email for your VASP profile.
Whether your VASP profile appears in GET /v3/travel-rule/vasps/ search results and can be reached on the INTERNAL rail. Default true.
When true, inbound transfers whose beneficiary wallet is a verified address-book entry with a matching name are accepted automatically, without a manual review step. Default false.
When true, the wallet-ownership widget offers self-declaration as a fallback proof method. Default false.
When true, the wallet-ownership widget offers screenshot upload as an ownership evidence method. Default true.
When true, submitting an outbound Travel Rule transfer that needs end-user proof of wallet control auto-mints a wallet-ownership widget session bound to the transaction and exposes it in the transaction's action_required block. Default true.
When true, an outbound Travel Rule transfer that no rail can route is attributed through blockchain analytics: the destination wallet is resolved to its owning VASP, the entity is recorded on the transfer and in the VASP directory, and the rails are re-run once with the attributed name. Default true.
Read-only. Your VASP's own travel address - the encoded inbound TRP inquiry endpoint other VASPs use to reach you. Populated once your VASP profile is complete.
Networks opted out of platform membership. Does not disable your connected own memberships or provision unavailable networks.
GTR, TRUST, VERIFYVASP, SYGNA Effective membership configuration for each network. No network, including GTR, is included by default. This is not a live health or delivery check.
Show child attributes
Show child attributes