curl -X POST https://verification.didit.me/v3/travel-rule/workspace/claim/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vasp_id": "0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11"}'import requests
url = "https://verification.didit.me/v3/travel-rule/workspace/claim/"
payload = { "vasp_id": "0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({vasp_id: '0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11'})
};
fetch('https://verification.didit.me/v3/travel-rule/workspace/claim/', 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/workspace/claim/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vasp_id' => '0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/workspace/claim/"
payload := strings.NewReader("{\n \"vasp_id\": \"0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://verification.didit.me/v3/travel-rule/workspace/claim/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"vasp_id\": \"0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/workspace/claim/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"vasp_id\": \"0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11\"\n}"
response = http.request(request)
puts response.read_body{
"joined_free": true,
"work_email": "jsmith@example.com",
"joined_at": "2023-11-07T05:31:56Z",
"claim": {
"status": "unclaimed",
"proved_by_domain": true,
"claimed_at": "2023-11-07T05:31:56Z",
"reviewed_at": "2023-11-07T05:31:56Z",
"review_note": "<string>",
"vasp_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"vasp_name": "<string>"
},
"prefill": {},
"domain": {
"domain": "<string>",
"status": "unverified",
"verified_at": "2023-11-07T05:31:56Z",
"txt": {
"host": "didit-tr-verify.example.com",
"value": "<string>"
}
},
"billing_enabled": true,
"billing_enabled_at": "2023-11-07T05:31:56Z",
"didit_network": {},
"settings": {
"is_enabled": true,
"jurisdiction": "<string>",
"name_matching_strictness": "NONE",
"confirmation_timeout_hours": 2,
"timeout_outcome": "HOLD",
"threshold_amount": "<string>",
"ownership_validation_mode": "FULL",
"simplified_validation_threshold": "<string>",
"data_sharing_fields": {
"individual": [
"name"
],
"company": [
"name"
]
},
"matching_rules": {
"individual": {
"name": "NONE",
"date_of_birth": "NONE",
"address": "NONE",
"account": "NONE"
},
"company": {
"name": "NONE",
"address": "NONE",
"account": "NONE"
}
},
"legal_name": "<string>",
"lei": "<string>",
"compliance_email": "jsmith@example.com",
"is_discoverable": true,
"inbound_auto_accept": true,
"allow_self_declaration": true,
"allow_screenshot_proof": true,
"auto_wallet_verification": true,
"vasp_attribution_enabled": true,
"counterparty_screening_enabled": true,
"sunrise_policy": "",
"sunrise_jurisdictions": [
"<string>"
],
"non_responsive_policy": "",
"travel_address": "<string>",
"disabled_networks": [],
"networks": {
"gtr": {
"rail": "GTR",
"mode": "own",
"platform_available": true,
"connected": true
},
"trust": {
"rail": "TRUST",
"mode": "own",
"platform_available": true,
"connected": true
},
"verifyvasp": {
"rail": "VERIFYVASP",
"mode": "own",
"platform_available": true,
"connected": true
},
"sygna": {
"rail": "SYGNA",
"mode": "own",
"platform_available": true,
"connected": true
}
},
"didit_network": {
"listed": true,
"missing": [
"travel_rule_off"
],
"compliance_email_confirmed": true
}
}
}Claim a Directory Entry
Claims the directory entry this workspace is. When the work email is at a domain the entry lists, the claim is proved and applies at once: the VASP profile and Travel Rule settings are filled from the entry and Travel Rule is turned on, so the next transfer to it routes over the Didit network. Otherwise the claim waits for review (pending_review).
curl -X POST https://verification.didit.me/v3/travel-rule/workspace/claim/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"vasp_id": "0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11"}'import requests
url = "https://verification.didit.me/v3/travel-rule/workspace/claim/"
payload = { "vasp_id": "0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({vasp_id: '0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11'})
};
fetch('https://verification.didit.me/v3/travel-rule/workspace/claim/', 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/workspace/claim/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vasp_id' => '0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/travel-rule/workspace/claim/"
payload := strings.NewReader("{\n \"vasp_id\": \"0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://verification.didit.me/v3/travel-rule/workspace/claim/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"vasp_id\": \"0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/workspace/claim/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"vasp_id\": \"0b0c9d3e-5a53-4a3e-9d6e-1f2f6f6a1c11\"\n}"
response = http.request(request)
puts response.read_body{
"joined_free": true,
"work_email": "jsmith@example.com",
"joined_at": "2023-11-07T05:31:56Z",
"claim": {
"status": "unclaimed",
"proved_by_domain": true,
"claimed_at": "2023-11-07T05:31:56Z",
"reviewed_at": "2023-11-07T05:31:56Z",
"review_note": "<string>",
"vasp_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"vasp_name": "<string>"
},
"prefill": {},
"domain": {
"domain": "<string>",
"status": "unverified",
"verified_at": "2023-11-07T05:31:56Z",
"txt": {
"host": "didit-tr-verify.example.com",
"value": "<string>"
}
},
"billing_enabled": true,
"billing_enabled_at": "2023-11-07T05:31:56Z",
"didit_network": {},
"settings": {
"is_enabled": true,
"jurisdiction": "<string>",
"name_matching_strictness": "NONE",
"confirmation_timeout_hours": 2,
"timeout_outcome": "HOLD",
"threshold_amount": "<string>",
"ownership_validation_mode": "FULL",
"simplified_validation_threshold": "<string>",
"data_sharing_fields": {
"individual": [
"name"
],
"company": [
"name"
]
},
"matching_rules": {
"individual": {
"name": "NONE",
"date_of_birth": "NONE",
"address": "NONE",
"account": "NONE"
},
"company": {
"name": "NONE",
"address": "NONE",
"account": "NONE"
}
},
"legal_name": "<string>",
"lei": "<string>",
"compliance_email": "jsmith@example.com",
"is_discoverable": true,
"inbound_auto_accept": true,
"allow_self_declaration": true,
"allow_screenshot_proof": true,
"auto_wallet_verification": true,
"vasp_attribution_enabled": true,
"counterparty_screening_enabled": true,
"sunrise_policy": "",
"sunrise_jurisdictions": [
"<string>"
],
"non_responsive_policy": "",
"travel_address": "<string>",
"disabled_networks": [],
"networks": {
"gtr": {
"rail": "GTR",
"mode": "own",
"platform_available": true,
"connected": true
},
"trust": {
"rail": "TRUST",
"mode": "own",
"platform_available": true,
"connected": true
},
"verifyvasp": {
"rail": "VERIFYVASP",
"mode": "own",
"platform_available": true,
"connected": true
},
"sygna": {
"rail": "SYGNA",
"mode": "own",
"platform_available": true,
"connected": true
}
},
"didit_network": {
"listed": true,
"missing": [
"travel_rule_off"
],
"compliance_email_confirmed": true
}
}
}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.
Body
The directory entry this workspace is. Read ids from GET /v3/travel-rule/vasps/.
Response
The workspace with its claim status.
The free Travel Rule workspace of an application that joined free.
Show child attributes
Show child attributes
Profile values taken from the directory entry: vasp_id, legal_name, lei, jurisdiction, compliance_email, domains. Nothing is written until the claim is made.
Show child attributes
Show child attributes
Receiving Travel Rule data is free. Sending is billed only after billing is enabled.
Whether the Didit network lists this VASP and, when not, each condition it still misses.
Show child attributes
Show child attributes