跳转到主要内容
沙盒应用只与一个交易对手交换 Travel Rule 数据:Didit Test VASP,这是平台内置的测试 VASP。它会按照你的要求回应每笔转账,并通过与处理真实交易对手相同的代码来处理这些转账,因此你可以在上线前观察一次交换的每个状态、时间线条目和 Webhook。 沙盒中你发送的任何内容都不会离开 Didit。不会联系任何网络、电子邮件收件人或其他 Didit 客户,也不会产生任何费用。

开始之前

  1. 使用 沙盒应用的 API 密钥。生产环境的应用永远不会连接到测试 VASP。
  2. 使用法定名称开启 Travel Rule:
  1. 可选地为 Webhook 目标订阅 travel_rule.status.updated。沙盒会投递该事件,并标记 "environment": "sandbox"。

Didit Test VASP

GET /v1/sandbox/scenarios/ 会返回测试 VASP 的资料以及其 travel_rule 对象中的所有场景,因此你的测试可以读取触发值,而无需硬编码。 所有值均为测试数据。测试 VASP 不是任何 Travel Rule 网络的成员,沙盒中的任何结果都不表明真实的交易对手或网络可以被访问。

出站场景

沙盒应用中每一笔需要交换的出站 travelRule 交易都会发送到测试 VASP。通过收款人地址(不区分大小写)或格式为 Didit Test VASP <suffix> 的收款人名称来选择结果;两者都设置时,以钱包为准。两者都未设置,或后缀不在下表中,转账将完成(accept)。 无需交换的转账永远不会到达测试 VASP:低于你的 threshold_amount 的转账、发往你用户自己已验证钱包的转账,以及你声明为自托管的交易对手钱包的转账。你或你的终端用户从目录中手动选择的交易对手 VASP,会按正式应用所采用的路由进行判断:若其条目具有路由(已验证的 TRP endpoint、你的应用所使用的网络,或合规联系人),转账将发送到测试 VASP;若没有路由,转账将以 COUNTERPARTY_VASP_NOT_FOUND 结束,与正式应用的行为一致。
转账的 rail 为 TEST_VASP,转账列表中将 Didit Test VASP 列为收款方 VASP。你可以通过 travel_rule.status.updated Webhook 跟踪它,或读取 GET /v3/transactions/{transaction_id}/。
  • name_mismatch 会将你发送的收款人名称与测试 VASP 返回的持有人名称进行比较,并按收款人实体类型的名称规则判定(matching_rules.individual.name 或 matching_rules.company.name,在你设置之前,它们遵循 name_matching_strictness)。转账以及作出判定的时间线条目会带有 name_match(其中 compared_with: "counterparty_vasp")以及 data_match,其中 mismatched_fields: ["name"]。
  • not_reachable 在重试期间让转账保持 AWAITING_COUNTERPARTY,其 delivery.status 为 RETRYING,last_error 为 test VASP is not answering,随后将其变为 COUNTERPARTY_VASP_NOT_REACHABLE。之后发送 {"action": "resend"} 可再次运行该转账。
  • self_hosted 会让测试 VASP 回应该钱包为自托管。使用钱包所有权组件(当 auto_wallet_verification 开启时为你生成)或 POST .../travel-rule/ownership/ 并附带 {"confirmed": true} 记录证明:该钱包会以收款人名称添加到你的地址簿中,名称比对结果决定转账。匹配则完成转账并将钱包标记为已验证;{"confirmed": false} 则拒绝该转账。

测试 VASP 的入站转账

要测试接收端,请让测试 VASP 通过 POST /v3/travel-rule/test-vasp/inbound/ 向您发送一笔转账。指定您应用自有地址簿中的一个钱包:该笔转账由与真实转账相同的入站流程决定,并依据您的地址簿、所有权模式和姓名规则进行判定。
成功时(201)的响应包含 transaction_id、txn_id、scenario、travel_rule_status、detail、test_vasp: true 以及 travel_rule 转账对象。生产应用会收到 400("The Didit Test VASP is only available on sandbox applications.");其他 scenario 值会收到 400;关闭 Travel Rule 的应用会收到 409。 对于等待中的转账,请使用 POST .../travel-rule/ownership/ 进行决定,方式与真实转账相同:{"confirmed": true} 会完成转账,{"confirmed": false} 会拒绝转账。 您通过 POST /v3/transactions/ 自行报告的存款并非测试 VASP 发出的:它会保持 AWAITING_COUNTERPARTY 状态,等待其发起方 VASP,其时间线会指向上述端点。它在 confirmation_timeout_hours 到期后才会触发 Webhook,到期前不会触发任何 Webhook。POST /v3/travel-rule/inbound/ 仍会像在生产应用上一样,将存款后登记与您的地址簿进行匹配并完成结算。

沙盒中的 Webhook

travel_rule.status.updated 会在沙盒应用的每次状态变化时触发,并带有 "environment": "sandbox"。测试 VASP 已作答的转账还会带有 rail: "TEST_VASP"、test_vasp: true 和 test_vasp_scenario。沙盒的其余部分仍按沙盒中的交易监控所述运行:不评估规则,不发送 transaction.created 和 transaction.status.updated,也不产生任何费用。

沙盒无法证明的内容

  • 真实交易对手、网络成员资格或 Didit 公共 TRP 主机是否可用。这些都不会被联系。
  • 您的网络凭证是否有效。已连接的成员资格需通过首次实际交换来证明。
  • 真实 VASP 的目录路由:在沙盒应用上,每条路由都会显示 unavailable,并带有 reason: sandbox_application,每一行都为 reachable: false。
各通道在生产环境中当前可以连接的范围,请参阅 Travel Rule 网络。
最后修改于 2026年11月7日