curl -X PUT https://verification.didit.me/v3/travel-rule/networks/questionnaire/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"legal_name": "Example VASP Ltd", "incorporation_country": "ES", "aml_ctf_policy_attested": true}'import requests
url = "https://verification.didit.me/v3/travel-rule/networks/questionnaire/"
payload = {
"legal_name": "<string>",
"registration_number": "<string>",
"incorporation_country": "<string>",
"registered_address": "<string>",
"website": "<string>",
"lei": "<string>",
"licences": [
{
"regulator": "<string>",
"jurisdiction": "<string>",
"licence_type": "<string>",
"licence_number": "<string>"
}
],
"operating_jurisdictions": ["<string>"],
"compliance_officer_name": "<string>",
"compliance_officer_email": "jsmith@example.com",
"aml_ctf_policy_attested": True,
"sanctions_screening_attested": True,
"data_protection_attested": True,
"data_protection_contact_email": "jsmith@example.com",
"expected_monthly_transfers": 1,
"expected_monthly_volume_usd": "<string>",
"assets": ["<string>"]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
legal_name: '<string>',
registration_number: '<string>',
incorporation_country: '<string>',
registered_address: '<string>',
website: '<string>',
lei: '<string>',
licences: [
{
regulator: '<string>',
jurisdiction: '<string>',
licence_type: '<string>',
licence_number: '<string>'
}
],
operating_jurisdictions: ['<string>'],
compliance_officer_name: '<string>',
compliance_officer_email: 'jsmith@example.com',
aml_ctf_policy_attested: true,
sanctions_screening_attested: true,
data_protection_attested: true,
data_protection_contact_email: 'jsmith@example.com',
expected_monthly_transfers: 1,
expected_monthly_volume_usd: '<string>',
assets: ['<string>']
})
};
fetch('https://verification.didit.me/v3/travel-rule/networks/questionnaire/', 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/networks/questionnaire/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'legal_name' => '<string>',
'registration_number' => '<string>',
'incorporation_country' => '<string>',
'registered_address' => '<string>',
'website' => '<string>',
'lei' => '<string>',
'licences' => [
[
'regulator' => '<string>',
'jurisdiction' => '<string>',
'licence_type' => '<string>',
'licence_number' => '<string>'
]
],
'operating_jurisdictions' => [
'<string>'
],
'compliance_officer_name' => '<string>',
'compliance_officer_email' => 'jsmith@example.com',
'aml_ctf_policy_attested' => true,
'sanctions_screening_attested' => true,
'data_protection_attested' => true,
'data_protection_contact_email' => 'jsmith@example.com',
'expected_monthly_transfers' => 1,
'expected_monthly_volume_usd' => '<string>',
'assets' => [
'<string>'
]
]),
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/networks/questionnaire/"
payload := strings.NewReader("{\n \"legal_name\": \"<string>\",\n \"registration_number\": \"<string>\",\n \"incorporation_country\": \"<string>\",\n \"registered_address\": \"<string>\",\n \"website\": \"<string>\",\n \"lei\": \"<string>\",\n \"licences\": [\n {\n \"regulator\": \"<string>\",\n \"jurisdiction\": \"<string>\",\n \"licence_type\": \"<string>\",\n \"licence_number\": \"<string>\"\n }\n ],\n \"operating_jurisdictions\": [\n \"<string>\"\n ],\n \"compliance_officer_name\": \"<string>\",\n \"compliance_officer_email\": \"jsmith@example.com\",\n \"aml_ctf_policy_attested\": true,\n \"sanctions_screening_attested\": true,\n \"data_protection_attested\": true,\n \"data_protection_contact_email\": \"jsmith@example.com\",\n \"expected_monthly_transfers\": 1,\n \"expected_monthly_volume_usd\": \"<string>\",\n \"assets\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://verification.didit.me/v3/travel-rule/networks/questionnaire/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"legal_name\": \"<string>\",\n \"registration_number\": \"<string>\",\n \"incorporation_country\": \"<string>\",\n \"registered_address\": \"<string>\",\n \"website\": \"<string>\",\n \"lei\": \"<string>\",\n \"licences\": [\n {\n \"regulator\": \"<string>\",\n \"jurisdiction\": \"<string>\",\n \"licence_type\": \"<string>\",\n \"licence_number\": \"<string>\"\n }\n ],\n \"operating_jurisdictions\": [\n \"<string>\"\n ],\n \"compliance_officer_name\": \"<string>\",\n \"compliance_officer_email\": \"jsmith@example.com\",\n \"aml_ctf_policy_attested\": true,\n \"sanctions_screening_attested\": true,\n \"data_protection_attested\": true,\n \"data_protection_contact_email\": \"jsmith@example.com\",\n \"expected_monthly_transfers\": 1,\n \"expected_monthly_volume_usd\": \"<string>\",\n \"assets\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/networks/questionnaire/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"legal_name\": \"<string>\",\n \"registration_number\": \"<string>\",\n \"incorporation_country\": \"<string>\",\n \"registered_address\": \"<string>\",\n \"website\": \"<string>\",\n \"lei\": \"<string>\",\n \"licences\": [\n {\n \"regulator\": \"<string>\",\n \"jurisdiction\": \"<string>\",\n \"licence_type\": \"<string>\",\n \"licence_number\": \"<string>\"\n }\n ],\n \"operating_jurisdictions\": [\n \"<string>\"\n ],\n \"compliance_officer_name\": \"<string>\",\n \"compliance_officer_email\": \"jsmith@example.com\",\n \"aml_ctf_policy_attested\": true,\n \"sanctions_screening_attested\": true,\n \"data_protection_attested\": true,\n \"data_protection_contact_email\": \"jsmith@example.com\",\n \"expected_monthly_transfers\": 1,\n \"expected_monthly_volume_usd\": \"<string>\",\n \"assets\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "draft",
"answers": {
"legal_name": "<string>",
"registration_number": "<string>",
"incorporation_country": "<string>",
"registered_address": "<string>",
"website": "<string>",
"lei": "<string>",
"licences": [
{
"regulator": "<string>",
"jurisdiction": "<string>",
"licence_type": "<string>",
"licence_number": "<string>"
}
],
"operating_jurisdictions": [
"<string>"
],
"compliance_officer_name": "<string>",
"compliance_officer_email": "jsmith@example.com",
"aml_ctf_policy_attested": true,
"sanctions_screening_attested": true,
"data_protection_attested": true,
"data_protection_contact_email": "jsmith@example.com",
"expected_monthly_transfers": 1,
"expected_monthly_volume_usd": "<string>",
"assets": [
"<string>"
]
},
"submitted_at": "2023-11-07T05:31:56Z",
"reviewed_at": "2023-11-07T05:31:56Z",
"review_note": "<string>",
"history": [
{
"at": "2023-11-07T05:31:56Z",
"from": "<string>",
"to": "<string>",
"note": "<string>"
}
],
"updated_at": "2023-11-07T05:31:56Z"
}{
"detail": "<string>",
"code": "travel_rule_platform_networks_disabled"
}{
"detail": "<string>",
"code": "travel_rule_questionnaire_not_editable"
}Save Travel Rule Network Questionnaire API
Save answers to Didit’s network due-diligence questionnaire. Saves are partial and keep every answer you do not send.
curl -X PUT https://verification.didit.me/v3/travel-rule/networks/questionnaire/ \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"legal_name": "Example VASP Ltd", "incorporation_country": "ES", "aml_ctf_policy_attested": true}'import requests
url = "https://verification.didit.me/v3/travel-rule/networks/questionnaire/"
payload = {
"legal_name": "<string>",
"registration_number": "<string>",
"incorporation_country": "<string>",
"registered_address": "<string>",
"website": "<string>",
"lei": "<string>",
"licences": [
{
"regulator": "<string>",
"jurisdiction": "<string>",
"licence_type": "<string>",
"licence_number": "<string>"
}
],
"operating_jurisdictions": ["<string>"],
"compliance_officer_name": "<string>",
"compliance_officer_email": "jsmith@example.com",
"aml_ctf_policy_attested": True,
"sanctions_screening_attested": True,
"data_protection_attested": True,
"data_protection_contact_email": "jsmith@example.com",
"expected_monthly_transfers": 1,
"expected_monthly_volume_usd": "<string>",
"assets": ["<string>"]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
legal_name: '<string>',
registration_number: '<string>',
incorporation_country: '<string>',
registered_address: '<string>',
website: '<string>',
lei: '<string>',
licences: [
{
regulator: '<string>',
jurisdiction: '<string>',
licence_type: '<string>',
licence_number: '<string>'
}
],
operating_jurisdictions: ['<string>'],
compliance_officer_name: '<string>',
compliance_officer_email: 'jsmith@example.com',
aml_ctf_policy_attested: true,
sanctions_screening_attested: true,
data_protection_attested: true,
data_protection_contact_email: 'jsmith@example.com',
expected_monthly_transfers: 1,
expected_monthly_volume_usd: '<string>',
assets: ['<string>']
})
};
fetch('https://verification.didit.me/v3/travel-rule/networks/questionnaire/', 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/networks/questionnaire/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'legal_name' => '<string>',
'registration_number' => '<string>',
'incorporation_country' => '<string>',
'registered_address' => '<string>',
'website' => '<string>',
'lei' => '<string>',
'licences' => [
[
'regulator' => '<string>',
'jurisdiction' => '<string>',
'licence_type' => '<string>',
'licence_number' => '<string>'
]
],
'operating_jurisdictions' => [
'<string>'
],
'compliance_officer_name' => '<string>',
'compliance_officer_email' => 'jsmith@example.com',
'aml_ctf_policy_attested' => true,
'sanctions_screening_attested' => true,
'data_protection_attested' => true,
'data_protection_contact_email' => 'jsmith@example.com',
'expected_monthly_transfers' => 1,
'expected_monthly_volume_usd' => '<string>',
'assets' => [
'<string>'
]
]),
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/networks/questionnaire/"
payload := strings.NewReader("{\n \"legal_name\": \"<string>\",\n \"registration_number\": \"<string>\",\n \"incorporation_country\": \"<string>\",\n \"registered_address\": \"<string>\",\n \"website\": \"<string>\",\n \"lei\": \"<string>\",\n \"licences\": [\n {\n \"regulator\": \"<string>\",\n \"jurisdiction\": \"<string>\",\n \"licence_type\": \"<string>\",\n \"licence_number\": \"<string>\"\n }\n ],\n \"operating_jurisdictions\": [\n \"<string>\"\n ],\n \"compliance_officer_name\": \"<string>\",\n \"compliance_officer_email\": \"jsmith@example.com\",\n \"aml_ctf_policy_attested\": true,\n \"sanctions_screening_attested\": true,\n \"data_protection_attested\": true,\n \"data_protection_contact_email\": \"jsmith@example.com\",\n \"expected_monthly_transfers\": 1,\n \"expected_monthly_volume_usd\": \"<string>\",\n \"assets\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://verification.didit.me/v3/travel-rule/networks/questionnaire/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"legal_name\": \"<string>\",\n \"registration_number\": \"<string>\",\n \"incorporation_country\": \"<string>\",\n \"registered_address\": \"<string>\",\n \"website\": \"<string>\",\n \"lei\": \"<string>\",\n \"licences\": [\n {\n \"regulator\": \"<string>\",\n \"jurisdiction\": \"<string>\",\n \"licence_type\": \"<string>\",\n \"licence_number\": \"<string>\"\n }\n ],\n \"operating_jurisdictions\": [\n \"<string>\"\n ],\n \"compliance_officer_name\": \"<string>\",\n \"compliance_officer_email\": \"jsmith@example.com\",\n \"aml_ctf_policy_attested\": true,\n \"sanctions_screening_attested\": true,\n \"data_protection_attested\": true,\n \"data_protection_contact_email\": \"jsmith@example.com\",\n \"expected_monthly_transfers\": 1,\n \"expected_monthly_volume_usd\": \"<string>\",\n \"assets\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/travel-rule/networks/questionnaire/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"legal_name\": \"<string>\",\n \"registration_number\": \"<string>\",\n \"incorporation_country\": \"<string>\",\n \"registered_address\": \"<string>\",\n \"website\": \"<string>\",\n \"lei\": \"<string>\",\n \"licences\": [\n {\n \"regulator\": \"<string>\",\n \"jurisdiction\": \"<string>\",\n \"licence_type\": \"<string>\",\n \"licence_number\": \"<string>\"\n }\n ],\n \"operating_jurisdictions\": [\n \"<string>\"\n ],\n \"compliance_officer_name\": \"<string>\",\n \"compliance_officer_email\": \"jsmith@example.com\",\n \"aml_ctf_policy_attested\": true,\n \"sanctions_screening_attested\": true,\n \"data_protection_attested\": true,\n \"data_protection_contact_email\": \"jsmith@example.com\",\n \"expected_monthly_transfers\": 1,\n \"expected_monthly_volume_usd\": \"<string>\",\n \"assets\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "draft",
"answers": {
"legal_name": "<string>",
"registration_number": "<string>",
"incorporation_country": "<string>",
"registered_address": "<string>",
"website": "<string>",
"lei": "<string>",
"licences": [
{
"regulator": "<string>",
"jurisdiction": "<string>",
"licence_type": "<string>",
"licence_number": "<string>"
}
],
"operating_jurisdictions": [
"<string>"
],
"compliance_officer_name": "<string>",
"compliance_officer_email": "jsmith@example.com",
"aml_ctf_policy_attested": true,
"sanctions_screening_attested": true,
"data_protection_attested": true,
"data_protection_contact_email": "jsmith@example.com",
"expected_monthly_transfers": 1,
"expected_monthly_volume_usd": "<string>",
"assets": [
"<string>"
]
},
"submitted_at": "2023-11-07T05:31:56Z",
"reviewed_at": "2023-11-07T05:31:56Z",
"review_note": "<string>",
"history": [
{
"at": "2023-11-07T05:31:56Z",
"from": "<string>",
"to": "<string>",
"note": "<string>"
}
],
"updated_at": "2023-11-07T05:31:56Z"
}{
"detail": "<string>",
"code": "travel_rule_platform_networks_disabled"
}{
"detail": "<string>",
"code": "travel_rule_questionnaire_not_editable"
}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
Didit's network due-diligence questionnaire. Saves are partial: a save keeps every answer it does not name. Submitting requires every field except lei and data_protection_contact_email, and the three attestations true.
255255ISO 3166-1 alpha-2 country code.
21000500Optional. A valid ISO 17442 LEI when given.
20Every licence or registration the VASP holds.
1Show child attributes
Show child attributes
1 - 250 elementsISO 3166-1 alpha-2 country code.
2255Must be true to submit.
Must be true to submit.
Must be true to submit.
Optional.
x >= 0Expected monthly volume in USD, up to 2 decimal places. Returned as a string.
Asset tickers, stored upper-case, sorted and de-duplicated.
1 - 200 elements32Response
The questionnaire with the merged answers.
Answers can be saved while draft or changes_requested; submitted, approved and rejected are Didit's to move.
draft, submitted, changes_requested, approved, rejected Didit's network due-diligence questionnaire. Saves are partial: a save keeps every answer it does not name. Submitting requires every field except lei and data_protection_contact_email, and the three attestations true.
Show child attributes
Show child attributes
Didit's note on its last decision, for example what to change.
Every status change, oldest first.
Show child attributes
Show child attributes