curl -X GET https://verification.didit.me/v3/travel-rule/settings/ \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.retrieve_settings()
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.retrieveSettings();
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.RetrieveSettings(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().retrieveSettings();
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->retrieveSettings();
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.retrieve_settings
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.TravelRule.RetrieveSettingsAsync();
Console.WriteLine(JsonSerializer.Serialize(result));{
"is_enabled": false,
"jurisdiction": "EU",
"name_matching_strictness": "DEFAULT",
"confirmation_timeout_hours": 48,
"timeout_outcome": "HOLD",
"threshold_amount": "0.00",
"inbound_auto_accept": true,
"allow_self_declaration": true,
"allow_screenshot_proof": true,
"auto_wallet_verification": true,
"vasp_attribution_enabled": true,
"legal_name": "",
"lei": "",
"compliance_email": "",
"is_discoverable": true,
"counterparty_screening_enabled": false,
"sunrise_policy": "",
"sunrise_jurisdictions": [
"CO",
"KH",
"VN"
],
"non_responsive_policy": "",
"travel_address": "",
"disabled_networks": [],
"networks": {
"gtr": {
"rail": "GTR",
"mode": "unavailable",
"state": "didit_onboarding",
"reason": "didit_membership_not_live",
"platform_available": false,
"connected": false,
"participant": null,
"vasps_reachable": 0,
"routed_30d": 0
},
"trust": {
"rail": "TRUST",
"mode": "unavailable",
"state": "unavailable",
"reason": "own_membership_only",
"platform_available": false,
"connected": false,
"participant": null,
"vasps_reachable": 0,
"routed_30d": 0
},
"verifyvasp": {
"rail": "VERIFYVASP",
"mode": "unavailable",
"state": "didit_onboarding",
"reason": "didit_membership_not_live",
"platform_available": false,
"connected": false,
"participant": null,
"vasps_reachable": 0,
"routed_30d": 0
},
"sygna": {
"rail": "SYGNA",
"mode": "unavailable",
"state": "didit_onboarding",
"reason": "didit_membership_not_live",
"platform_available": false,
"connected": false,
"participant": null,
"vasps_reachable": 0,
"routed_30d": 0
}
},
"didit_network": {
"listed": false,
"missing": [
"travel_rule_off",
"legal_name_missing",
"compliance_email_missing"
],
"compliance_email_confirmed": false
}
}获取 Travel Rule 设置 API:VASP 资料
通过 Didit 管理 API 读取应用的 Travel Rule 配置,包括 VASP 资料、协商策略、证明方式开关、网络模式和 Travel Address。
curl -X GET https://verification.didit.me/v3/travel-rule/settings/ \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.retrieve_settings()
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.retrieveSettings();
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.RetrieveSettings(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().retrieveSettings();
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->retrieveSettings();
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.retrieve_settings
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.TravelRule.RetrieveSettingsAsync();
Console.WriteLine(JsonSerializer.Serialize(result));{
"is_enabled": false,
"jurisdiction": "EU",
"name_matching_strictness": "DEFAULT",
"confirmation_timeout_hours": 48,
"timeout_outcome": "HOLD",
"threshold_amount": "0.00",
"inbound_auto_accept": true,
"allow_self_declaration": true,
"allow_screenshot_proof": true,
"auto_wallet_verification": true,
"vasp_attribution_enabled": true,
"legal_name": "",
"lei": "",
"compliance_email": "",
"is_discoverable": true,
"counterparty_screening_enabled": false,
"sunrise_policy": "",
"sunrise_jurisdictions": [
"CO",
"KH",
"VN"
],
"non_responsive_policy": "",
"travel_address": "",
"disabled_networks": [],
"networks": {
"gtr": {
"rail": "GTR",
"mode": "unavailable",
"state": "didit_onboarding",
"reason": "didit_membership_not_live",
"platform_available": false,
"connected": false,
"participant": null,
"vasps_reachable": 0,
"routed_30d": 0
},
"trust": {
"rail": "TRUST",
"mode": "unavailable",
"state": "unavailable",
"reason": "own_membership_only",
"platform_available": false,
"connected": false,
"participant": null,
"vasps_reachable": 0,
"routed_30d": 0
},
"verifyvasp": {
"rail": "VERIFYVASP",
"mode": "unavailable",
"state": "didit_onboarding",
"reason": "didit_membership_not_live",
"platform_available": false,
"connected": false,
"participant": null,
"vasps_reachable": 0,
"routed_30d": 0
},
"sygna": {
"rail": "SYGNA",
"mode": "unavailable",
"state": "didit_onboarding",
"reason": "didit_membership_not_live",
"platform_available": false,
"connected": false,
"participant": null,
"vasps_reachable": 0,
"routed_30d": 0
}
},
"didit_network": {
"listed": false,
"missing": [
"travel_rule_off",
"legal_name_missing",
"compliance_email_missing"
],
"compliance_email_confirmed": false
}
}网络可用性
GTR、TRUST、VerifyVASP 和 Sygna 均需要有效的成员资格。 Didit 目前在这些网络上没有平台成员资格,Didit 正在以服务提供方的身份办理入驻。 在此之前,网络通道只通过您自己的成员资格进行路由,该成员资格需在 Marketplace 中连接。 请查看您正在配置的应用的networks:
own- 您已连接的成员资格优先,即使该网络位于disabled_networks中。交易所使用您的网络身份。didit- Didit 的成员资格以活跃参与方的身份,在该网络上代表您的应用,并使用网络为您分配的代码。 该网络无需客户的成员资格凭证。 要启用此模式,需要完成 Didit 的网络问卷并发起一次网络请求,参见 获取 Travel Rule 网络。 生产环境暂不报告此模式,因为 Didit 自身的成员资格尚未上线。off- 您已关闭平台路由,且没有已连接的自有成员资格。若要在平台路由可用时允许使用,请将该网络从disabled_networks中移除,或连接您自己的成员资格。unavailable- 您的应用目前无法通过该网络发送任何内容。state和reason说明原因,例如:Didit 自身的该网络成员资格尚未上线时为didit_onboarding,您的问卷获批之前为questionnaire_needed。 目前,除非您连接了自有成员资格或禁用了该网络,否则每个网络都会报告此模式。 请在 Marketplace 中连接您自己的成员资格,或使用可触达的INTERNAL、TRP或EMAIL交易对手。
disabled_networks 只影响 Didit 的平台成员资格,而该资格目前尚不可用,因此它目前对路由没有任何影响。
当转账的 beneficiary_data 包含交易对手在该网络上的 ID(例如 counterparty_gtr_vasp_code 或 counterparty_trust_membership_id),或交易对手的目录条目在该网络下列出了某个代码时,系统会选择网络通道。
通过 GTR、VerifyVASP 和 Sygna 时,Didit 从网络的响应中读取交易对手的答复,或每 5 分钟轮询一次网络。转账随后会变为 COMPLETED、COUNTERPARTY_MISMATCHED_DATA 或 COUNTERPARTY_VASP_GENERAL_DECLINE。
TRUST 仅用于发送:通过它发送的转账会保持在 AWAITING_COUNTERPARTY,直到 confirmation_timeout_hours 过去并变为 EXPIRED,然后适用 timeout_outcome。
如果消息无法送达,转账将变为 COUNTERPARTY_VASP_NOT_REACHABLE。
各网络目前可触达的范围,参见 Travel Rule 网络。
platform_available 是配置状态,而不是实时网络健康检查。connected 表示已保存的成员资格通过了本地凭证验证,并不代表已与服务提供方成功完成交换。启用 is_enabled 或清除 disabled_networks 无法为缺失的成员资格开通服务。
如需无需网络凭证即可运行的检查,参见 无网络凭证测试。授权
您的应用 API 密钥,可在 Business Console 的“开发者 -> API 密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域:针对每个资源设为无权限、只读或读写,限定于特定工作流或已通过的会话、限定于 IP 地址列表,以及设置到期日期。401 表示密钥错误、已撤销或已过期;403 表示未发送密钥、密钥无权访问该资源或操作,或请求来自其 IP 列表之外的地址;在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF URL 将为 null;没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅 https://docs.didit.me/console/api-keys。
响应
当前 Travel Rule 设置和 VASP 资料。
此应用上出向 travelRule 交易的托管 Travel Rule 协商流程是否处于活动状态。
您的 VASP 运营管辖区代码。默认为 "EU"。Didit 会将其映射到标记在您 Travel Rule 交易上的规管机制 travel_rule_regime(例如 EU 或欧盟成员国代码将变为 eu),交易规则可据此进行匹配。一旦 Didit 网络列出您的资料,其他 Didit 客户将在 VASP 目录中将其视为您的管辖区。
8转账达到 COMPLETED 状态前,收款人姓名必须匹配的严格程度。CONTAINS 接受一个名称的所有词均出现在另一个名称中的情况。
NONE, STRICT, CONTAINS, DEFAULT, FUZZY AWAITING_COUNTERPARTY 状态的转账在被定期清理程序过期前可保持未确认的小时数。默认为 48。
x >= 1转账过期时对底层交易的处理方式。默认值为 HOLD。当 sunrise_policy 和 non_responsive_policy 适用且已设置时,以它们为准。
HOLD, REJECT, PROCEED 十进制字符串,以您应用的默认货币计。触发托管交换的最低转账金额;低于该金额的转账直接解析为 NOT_APPLICABLE。Didit 会比对换算为您默认货币后的交易金额,或您发送的 amount_in_default_currency;当无可用的换算金额时,该阈值不适用。默认为 "0.00"(欧盟 TFR 不适用最低金额限制)。
钱包所有权所需的证明力度。FULL 始终需要证明(签名消息、测试存款或经过审核的截图),绝不单凭终端用户的陈述。SIMPLIFIED 在低于 simplified_validation_threshold 时接受自主声明,高于该阈值时需要证明。AUTOMATED 允许地址簿和先前的证明自行响应,当 allow_self_declaration 为 true 时包含自主声明。默认值为 AUTOMATED。
FULL, SIMPLIFIED, AUTOMATED 十进制字符串,默认为 "0.00"。在 SIMPLIFIED 模式下,低于此金额(以阈值货币计)的转账接受自主申报。未标明该货币金额的转账视为高于该金额。
Didit 就您自己的用户按实体类型向交易对手 VASP 发送的字段。无论列表内容如何,始终会发送 name 和 wallet_address。您未选择过的实体类型将共享所有字段。空列表也是一种选择:仅共享姓名和钱包。
Show child attributes
Show child attributes
按实体类型,交易对手数据的各个字段与您持有的数据进行比对的严格程度。省略的字段将保留其默认值。NONE 跳过比对,STRICT 要求词语完全一致,CONTAINS 接受一个值的所有词均出现在另一个值中,DEFAULT 为标准子集匹配,FUZZY 接受相近的拼写(对于出生日期,允许日和月调换)。
Show child attributes
Show child attributes
您的 VASP 法定名称。将 is_enabled 设为 true 时必填(非空)。
您的法人实体标识符(LEI),展示在 VASP 名录中。
您 VASP 档案的合规联系人邮箱。只有在通过邮件发送的链接(POST /v3/travel-rule/settings/compliance-email/confirmation/)确认该地址后,Didit 网络才会列出您的档案;更改此地址需要重新确认。
您的 VASP 资料是否可以在 Didit 网络中被列出:可被其他 Didit 客户在 GET /v3/travel-rule/vasps/ 中检索到,并可通过 INTERNAL 轨道触达。列出还需要拥有已上线应用、开启 Travel Rule、提供法定名称以及经过确认的合规邮箱;didit_network 会指出缺少哪些项。默认值为 true。
为 true 时,如果入账 TRP 问询的收款人钱包是地址簿中经过验证且姓名匹配的条目,则该问询会自动获批。为 false 时,该问询将在 ON_HOLD 中等待您通过所有权 endpoint 进行批准或拒绝。INTERNAL 轨道和充值后转账不受影响。默认为 true。
为 true 时,钱包所有权小组件提供自我声明作为备用证明方式。默认为 true。
为 true 时,钱包所有权小组件提供屏幕截图上传作为所有权证明方式。默认为 true。
为 true 时,提交需要终端用户提供钱包控制证明的出账 Travel Rule 转账会自动生成绑定到该交易的钱包所有权小组件会话,并将其放入交易的 action_required 块中。默认为 true。
为 true 时,任何无法由任何轨道路由的出账 Travel Rule 转账都将通过区块链分析进行归因:目标钱包将解析为其所属的 VASP,该实体将记录在转账和 VASP 目录中,并且轨道将使用归因名称重新运行一次。默认为 true。
对交易对手 VASP 进行可选的制裁和负面新闻筛查,按企业 AML 筛查价格按次计费。开启后,Didit 会筛查出站交易所触达的交易对手(复用 30 天内的筛查结果),您也可以使用 POST /v3/travel-rule/vasps/{vasp_id}/screening/ 对其进行筛查。默认为 false:不进行任何筛查或计费。
当交易对手是 sunrise_jurisdictions 中尚未强制实施 Travel Rule 的司法管辖区目录条目时,过期转账对其交易的处理方式:HOLD 将其移至审核,REJECT 将其拒绝,PROCEED 保持其状态不变。留空(默认值)则遵循 timeout_outcome。在 non_responsive_policy 之前生效。
, HOLD, REJECT, PROCEED 只读。Didit 视为处于 Travel Rule 日出期的国家/地区(ISO 3166 alpha-2),在此期间适用 sunrise_policy。目前包括 CO、KH 和 VN。任何其他司法管辖区,以及为空或未知的管辖区,均遵循 timeout_outcome。
当交易对手是响应状态为 UNRESPONSIVE 的目录条目时,过期转账对其交易的处理方式:HOLD、REJECT 或 PROCEED(与 timeout_outcome 相同)。留空(默认值)则遵循 timeout_outcome。当两者均符合条件时,sunrise_policy 优先适用。
, HOLD, REJECT, PROCEED 只读。您所在 VASP 专属的 Travel Address,即其他 VASP 用于联系您的编码入站 TRP 查询 endpoint。当 is_enabled 为 false 时为空。
已选择退出平台成员资格的网络。这不会停用您已关联的自有成员资格,也不会配置不可用的网络。
GTR, TRUST, VERIFYVASP, SYGNA 按网络列出:此应用将如何发送以及为何无法发送。默认不包含任何网络(包括 GTR):网络可通过您自己已连接的成员资格访问,或者在 Didit 在该网络上的成员资格生效且您自己在该网络上的参与方处于活跃状态后,通过 Didit 的成员资格访问。非实时健康状态或投递检查。
Show child attributes
Show child attributes
Didit 网络是否收录了您的 VASP 资料(以便其他 Didit 客户能在名录中找到并能通过 INTERNAL 轨道联系到它),以及其目前仍欠缺的各项条件。
Show child attributes
Show child attributes