> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 更新 Travel Rule 设置 API：启用与配置

> Didit 支持通过部分更新启用 Travel Rule，并配置您的 VASP 资料、协商策略、证明方式以及网络退出选项。



更新 Travel Rule 设置 API 提示词
        将提示词复制到剪贴板



      
      

\<pre>

\`Enable Travel Rule and configure the application's VASP profile and negotiation policy.

Endpoint:
PUT https://verification.didit.me/v3/travel-rule/settings/

Authentication:
Use the x-api-key header with my Didit API key.

Behavior:
\- PUT is a PARTIAL update - send only the fields you want to change.
\- Setting is_enabled: true requires a non-blank legal_name (already stored, or in the same request) - otherwise 400.

Example call:
curl -X PUT "https://verification.didit.me/v3/travel-rule/settings/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{
"is_enabled": true,
"legal_name": "Origin CASP SL",
"jurisdiction": "EU",
"name_matching_strictness": "DEFAULT",
"confirmation_timeout_hours": 48,
"timeout_outcome": "HOLD",
"is_discoverable": true
}'

Writable fields:
\- is_enabled, legal_name, lei, jurisdiction (up to 8 chars, default "EU"), compliance_email, is_discoverable.
\- Changing compliance_email makes it unconfirmed until someone opens the link POST /v3/travel-rule/settings/compliance-email/confirmation/ emails to it; the Didit network lists the profile only with a confirmed address.
\- name_matching_strictness: NONE | STRICT | CONTAINS | DEFAULT | FUZZY.
\- ownership_validation_mode: FULL | SIMPLIFIED | AUTOMATED (default AUTOMATED), and simplified_validation_threshold (decimal, default 0): below it SIMPLIFIED accepts a self-declaration.
\- data_sharing_fields: {"individual": [...], "company": [...]} - the fields sent about your users (name, wallet_address, address, national_id, customer_identification, date_of_birth, place_of_birth; companies use the first five). name and wallet_address are always sent. Merged per entity type.
\- matching_rules: {"individual": {name, date_of_birth, address, account}, "company": {name, address, account}}, each NONE | STRICT | CONTAINS | DEFAULT | FUZZY. A field left out keeps its default.
\- confirmation_timeout_hours (min 1, default 48), timeout_outcome (HOLD | REJECT | PROCEED), inbound_auto_accept (default true).
\- threshold_amount - decimal string, default "0.00" (every transfer in scope, matching the EU TFR).
Didit compares it with the amount converted to the application's default currency (or the amount_in_default_currency you send), and a transfer below it becomes NOT_APPLICABLE with nothing exchanged.
A transfer whose amount cannot be converted stays in scope.
\- allow_self_declaration, allow_screenshot_proof - which fallback proof methods the wallet-ownership widget offers (both default true).
\- auto_wallet_verification - auto-mint a wallet-ownership widget session when a transfer needs end-user proof (default true).
\- vasp_attribution_enabled - resolve unroutable destination wallets through blockchain analytics (default true).
\- disabled_networks - array of GTR | TRUST | VERIFYVASP | SYGNA to opt out of Didit's platform memberships.
It only affects platform membership, which Didit does not offer on any network yet (Didit is onboarding as a provider), so today it has no routing effect.
Networks you connected your own membership for (console Marketplace) are never affected.
\- counterparty_screening_enabled - opt in to sanctions and adverse-media screening of counterparty VASPs (default false).
Each screening is billed at the Company AML Screening price; with it on, Didit screens the counterparty an outbound exchange reaches when the exchange starts, reusing a screening younger than 30 days.
\- sunrise_policy - HOLD | REJECT | PROCEED, or "" (default) to follow timeout_outcome: what an expired transfer does when the counterparty is a directory entry in a jurisdiction listed in sunrise_jurisdictions.
\- non_responsive_policy - HOLD | REJECT | PROCEED, or "" (default) to follow timeout_outcome: what an expired transfer does when the counterparty is a directory entry whose responsiveness is UNRESPONSIVE.
sunrise_policy applies first when both fit.

Read-only fields (returned, never written): networks, travel_address, didit_network, sunrise_jurisdictions.

Network rails today:
\- A network rail (GTR, TRUST, VerifyVASP, Sygna) routes only through your own membership connected in Marketplace.
\- networks.<name>.mode reports own, off or unavailable; production does not report didit yet.
\- With your own membership, Didit reads the counterparty's answer over GTR, VerifyVASP and Sygna from the network's response or by polling it every 5 minutes. TRUST only sends: a transfer sent over it stays AWAITING_COUNTERPARTY until it expires (then timeout_outcome applies).
If the message cannot be delivered, the transfer moves to COUNTERPARTY_VASP_NOT_REACHABLE instead.

Failure modes:
\- 400 - is_enabled without a legal_name, invalid enum value (including a disabled_networks entry, or a sunrise_policy or non_responsive_policy other than HOLD, REJECT, PROCEED or empty), invalid compliance_email, negative threshold_amount, confirmation_timeout_hours below 1, an unknown field in matching_rules, or a data_sharing_fields choice that cannot meet your jurisdiction's originator obligations (EU TFR or FATF Recommendation 16).
\- 403 - missing x-api-key (a wrong, revoked or expired key gets 401).

Full guide: /transaction-monitoring/travel-rule#setup.`

\</pre>



      
      

粘贴到



## OpenAPI

````yaml zh/openapi-25.json PUT /v3/travel-rule/settings/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 身份证件验证 API。使用 x-api-key 请求头进行身份验证。
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/settings/:
    put:
      tags:
        - Travel Rule
      summary: 更新 Travel Rule 设置
      description: >-
        更新或插入应用的 Travel Rule 设置和 VASP 资料。部分更新：仅发送您希望更改的字段。设置 `is_enabled: true`
        需要非空的 `legal_name`（已存储或包含在同一请求中），否则返回 400。
      operationId: updateTravelRuleSettings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TravelRuleSettingsUpdate'
            example:
              is_enabled: true
              legal_name: Origin CASP SL
              jurisdiction: EU
              name_matching_strictness: DEFAULT
              confirmation_timeout_hours: 48
              timeout_outcome: HOLD
              is_discoverable: true
      responses:
        '200':
          description: 已更新设置和个人资料，结构与 GET 相同。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleSettingsDetail'
        '400':
          description: >-
            验证错误，例如在没有 legal_name 的情况下启用、sunrise_policy 或 non_responsive_policy
            不是 HOLD、REJECT、PROCEED 或为空、`matching_rules` 中存在未知字段，或者
            `data_sharing_fields` 选择无法满足您所在管辖区制度的汇款人义务（错误以 `data_sharing_fields`
            下的实体类型为键）。
          content:
            application/json:
              schema:
                type: object
              example:
                legal_name:
                  - legal_name is required to enable travel rule.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X PUT https://verification.didit.me/v3/travel-rule/settings/ \
              -H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
              -d '{"is_enabled": true, "legal_name": "Origin CASP SL", "jurisdiction": "EU"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.travel_rule.update_settings(
                is_enabled=True,
                legal_name="Origin CASP SL",
                jurisdiction="EU",
                name_matching_strictness="DEFAULT",
                confirmation_timeout_hours=48,
                timeout_outcome="HOLD",
                is_discoverable=True,
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.travelRule.updateSettings({
              is_enabled: true,
              legal_name: "Origin CASP SL",
              jurisdiction: "EU",
              name_matching_strictness: "DEFAULT",
              confirmation_timeout_hours: 48,
              timeout_outcome: "HOLD",
              is_discoverable: true,
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.TravelRule.UpdateSettings(ctx, didit.TravelRuleSettingsUpdate{\n\tIsEnabled:                didit.Bool(true),\n\tLegalName:                didit.String(\"Origin CASP SL\"),\n\tJurisdiction:             didit.String(\"EU\"),\n\tNameMatchingStrictness:   didit.Some(didit.TravelRuleSettingsUpdateNameMatchingStrictness(\"DEFAULT\")),\n\tConfirmationTimeoutHours: didit.Int(48),\n\tTimeoutOutcome:           didit.Some(didit.TravelRuleSettingsUpdateTimeoutOutcome(\"HOLD\")),\n\tIsDiscoverable:           didit.Bool(true),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.TravelRuleSettingsUpdate;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.travelRule().updateSettings(TravelRuleSettingsUpdate.builder()
                    .isEnabled(true)
                    .legalName("Origin CASP SL")
                    .jurisdiction("EU")
                    .nameMatchingStrictness(TravelRuleSettingsUpdate.NameMatchingStrictness.of("DEFAULT"))
                    .confirmationTimeoutHours(48L)
                    .timeoutOutcome(TravelRuleSettingsUpdate.TimeoutOutcome.of("HOLD"))
                    .isDiscoverable(true)
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->travelRule->updateSettings([
                'is_enabled' => true,
                'legal_name' => 'Origin CASP SL',
                'jurisdiction' => 'EU',
                'name_matching_strictness' => 'DEFAULT',
                'confirmation_timeout_hours' => 48,
                'timeout_outcome' => 'HOLD',
                'is_discoverable' => true,
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.travel_rule.update_settings(
              is_enabled: true,
              legal_name: "Origin CASP SL",
              jurisdiction: "EU",
              name_matching_strictness: "DEFAULT",
              confirmation_timeout_hours: 48,
              timeout_outcome: "HOLD",
              is_discoverable: true
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.TravelRule.UpdateSettingsAsync(new
            TravelRuleSettingsUpdate

            {
                IsEnabled = true,
                LegalName = "Origin CASP SL",
                Jurisdiction = "EU",
                NameMatchingStrictness = new TravelRuleSettingsUpdateNameMatchingStrictness("DEFAULT"),
                ConfirmationTimeoutHours = 48,
                TimeoutOutcome = new TravelRuleSettingsUpdateTimeoutOutcome("HOLD"),
                IsDiscoverable = true,
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleSettingsUpdate:
      type: object
      properties:
        is_enabled:
          type: boolean
        legal_name:
          type: string
          maxLength: 255
        lei:
          type: string
          maxLength: 20
        jurisdiction:
          type: string
          maxLength: 8
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: '`CONTAINS` 接受一个名字中的所有词语均出现在另一个名字中。'
        confirmation_timeout_hours:
          type: integer
          minimum: 1
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
        compliance_email:
          type: string
          format: email
          description: >-
            您 VASP 档案的合规联系人邮箱。只有在通过邮件发送的链接（POST
            /v3/travel-rule/settings/compliance-email/confirmation/）确认该地址后，Didit
            网络才会列出您的档案；更改此地址需要重新确认。
        is_discoverable:
          type: boolean
          description: >-
            您的 VASP 资料是否可以在 Didit 网络中被列出：可被其他 Didit 客户在 GET
            /v3/travel-rule/vasps/ 中检索到，并可通过 INTERNAL 轨道触达。列出还需要拥有已上线应用、开启
            Travel Rule、提供法定名称以及经过确认的合规邮箱；didit_network 会指出缺少哪些项。默认值为 true。
        threshold_amount:
          type: string
          description: 十进制字符串，大于或等于零，以您应用的默认货币计。触发托管交换的最低转账金额。
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: 请参阅同名的响应字段。
        simplified_validation_threshold:
          type: string
          description: 十进制字符串，0 或更大。
        data_sharing_fields:
          allOf:
            - $ref: '#/components/schemas/TravelRuleDataSharingFields'
          description: >-
            按实体类型合并：省略的实体类型将保留其当前选项。如果所选选项无法满足您所在 `jurisdiction` 制度（欧盟 TFR 或
            FATF 第 16 号建议）的汇款人义务（包括空列表），将被拒绝并返回 `400`。
        matching_rules:
          allOf:
            - $ref: '#/components/schemas/TravelRuleMatchingRules'
          description: >-
            按主体类型以及其内部字段进行合并。若字段未被该主体类型进行比对（例如针对 `company` 的
            `date_of_birth`），则会被拒绝并返回 `400`。
        inbound_auto_accept:
          type: boolean
        allow_self_declaration:
          type: boolean
        allow_screenshot_proof:
          type: boolean
          description: 为 true 时，钱包所有权小组件提供屏幕截图上传作为所有权证明方式。默认为 true。
        auto_wallet_verification:
          type: boolean
        vasp_attribution_enabled:
          type: boolean
        counterparty_screening_enabled:
          type: boolean
          description: >-
            对交易对手 VASP 进行可选的制裁和负面新闻筛查，按企业 AML 筛查价格按次计费。开启后，Didit
            会筛查出站交易所触达的交易对手（复用 30 天内的筛查结果），您也可以使用 POST
            /v3/travel-rule/vasps/{vasp_id}/screening/ 对其进行筛查。默认为
            false：不进行任何筛查或计费。
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: HOLD、REJECT、PROCEED，或为空以遵循 timeout_outcome。参见同名的响应字段。
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: HOLD、REJECT、PROCEED，或为空以遵循 timeout_outcome。参见同名的响应字段。
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: 已选择退出平台成员资格的网络。这不会停用您已关联的自有成员资格，也不会配置不可用的网络。
          default: []
      description: 所有字段均为可选；PUT 执行部分更新。
    TravelRuleSettingsDetail:
      type: object
      properties:
        is_enabled:
          type: boolean
          description: 此应用上出向 `travelRule` 交易的托管 Travel Rule 协商流程是否处于活动状态。
        jurisdiction:
          type: string
          maxLength: 8
          description: >-
            您的 VASP 运营管辖区代码。默认为 `"EU"`。Didit 会将其映射到标记在您 Travel Rule 交易上的规管机制
            `travel_rule_regime`（例如 `EU` 或欧盟成员国代码将变为 `eu`），交易规则可据此进行匹配。一旦 Didit
            网络列出您的资料，其他 Didit 客户将在 VASP 目录中将其视为您的管辖区。
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: >-
            转账达到 COMPLETED 状态前，收款人姓名必须匹配的严格程度。`CONTAINS`
            接受一个名称的所有词均出现在另一个名称中的情况。
        confirmation_timeout_hours:
          type: integer
          minimum: 1
          description: AWAITING_COUNTERPARTY 状态的转账在被定期清理程序过期前可保持未确认的小时数。默认为 48。
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            转账过期时对底层交易的处理方式。默认值为 HOLD。当 sunrise_policy 和 non_responsive_policy
            适用且已设置时，以它们为准。
        threshold_amount:
          type: string
          description: >-
            十进制字符串，以您应用的默认货币计。触发托管交换的最低转账金额；低于该金额的转账直接解析为 NOT_APPLICABLE。Didit
            会比对换算为您默认货币后的交易金额，或您发送的
            `amount_in_default_currency`；当无可用的换算金额时，该阈值不适用。默认为 "0.00"（欧盟 TFR
            不适用最低金额限制）。
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: >-
            钱包所有权所需的证明力度。`FULL`
            始终需要证明（签名消息、测试存款或经过审核的截图），绝不单凭终端用户的陈述。`SIMPLIFIED` 在低于
            `simplified_validation_threshold` 时接受自主声明，高于该阈值时需要证明。`AUTOMATED`
            允许地址簿和先前的证明自行响应，当 `allow_self_declaration` 为 true 时包含自主声明。默认值为
            `AUTOMATED`。
        simplified_validation_threshold:
          type: string
          description: >-
            十进制字符串，默认为 "0.00"。在 `SIMPLIFIED`
            模式下，低于此金额（以阈值货币计）的转账接受自主申报。未标明该货币金额的转账视为高于该金额。
        data_sharing_fields:
          $ref: '#/components/schemas/TravelRuleDataSharingFields'
        matching_rules:
          $ref: '#/components/schemas/TravelRuleMatchingRules'
        legal_name:
          type: string
          description: 您的 VASP 法定名称。将 is_enabled 设为 true 时必填（非空）。
        lei:
          type: string
          description: 您的法人实体标识符（LEI），展示在 VASP 名录中。
        compliance_email:
          type: string
          format: email
          description: >-
            您 VASP 档案的合规联系人邮箱。只有在通过邮件发送的链接（POST
            /v3/travel-rule/settings/compliance-email/confirmation/）确认该地址后，Didit
            网络才会列出您的档案；更改此地址需要重新确认。
        is_discoverable:
          type: boolean
          description: >-
            您的 VASP 资料是否可以在 Didit 网络中被列出：可被其他 Didit 客户在 GET
            /v3/travel-rule/vasps/ 中检索到，并可通过 INTERNAL 轨道触达。列出还需要拥有已上线应用、开启
            Travel Rule、提供法定名称以及经过确认的合规邮箱；didit_network 会指出缺少哪些项。默认值为 true。
        inbound_auto_accept:
          type: boolean
          description: >-
            为 true 时，如果入账 TRP 问询的收款人钱包是地址簿中经过验证且姓名匹配的条目，则该问询会自动获批。为 false
            时，该问询将在 ON_HOLD 中等待您通过所有权 endpoint 进行批准或拒绝。INTERNAL 轨道和充值后转账不受影响。默认为
            true。
        allow_self_declaration:
          type: boolean
          description: 为 true 时，钱包所有权小组件提供自我声明作为备用证明方式。默认为 true。
        allow_screenshot_proof:
          type: boolean
          description: 为 true 时，钱包所有权小组件提供屏幕截图上传作为所有权证明方式。默认为 true。
        auto_wallet_verification:
          type: boolean
          description: >-
            为 true 时，提交需要终端用户提供钱包控制证明的出账 Travel Rule
            转账会自动生成绑定到该交易的钱包所有权小组件会话，并将其放入交易的 action_required 块中。默认为 true。
        vasp_attribution_enabled:
          type: boolean
          description: >-
            为 true 时，任何无法由任何轨道路由的出账 Travel Rule 转账都将通过区块链分析进行归因：目标钱包将解析为其所属的
            VASP，该实体将记录在转账和 VASP 目录中，并且轨道将使用归因名称重新运行一次。默认为 true。
        counterparty_screening_enabled:
          type: boolean
          description: >-
            对交易对手 VASP 进行可选的制裁和负面新闻筛查，按企业 AML 筛查价格按次计费。开启后，Didit
            会筛查出站交易所触达的交易对手（复用 30 天内的筛查结果），您也可以使用 POST
            /v3/travel-rule/vasps/{vasp_id}/screening/ 对其进行筛查。默认为
            false：不进行任何筛查或计费。
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            当交易对手是 sunrise_jurisdictions 中尚未强制实施 Travel Rule
            的司法管辖区目录条目时，过期转账对其交易的处理方式：HOLD 将其移至审核，REJECT 将其拒绝，PROCEED
            保持其状态不变。留空（默认值）则遵循 timeout_outcome。在 non_responsive_policy 之前生效。
        sunrise_jurisdictions:
          type: array
          items:
            type: string
          readOnly: true
          description: >-
            只读。Didit 视为处于 Travel Rule 日出期的国家/地区（ISO 3166 alpha-2），在此期间适用
            sunrise_policy。目前包括 CO、KH 和 VN。任何其他司法管辖区，以及为空或未知的管辖区，均遵循
            timeout_outcome。
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            当交易对手是响应状态为 UNRESPONSIVE 的目录条目时，过期转账对其交易的处理方式：HOLD、REJECT 或
            PROCEED（与 timeout_outcome 相同）。留空（默认值）则遵循
            timeout_outcome。当两者均符合条件时，sunrise_policy 优先适用。
        travel_address:
          type: string
          description: >-
            只读。您所在 VASP 专属的 Travel Address，即其他 VASP 用于联系您的编码入站 TRP 查询 endpoint。当
            `is_enabled` 为 false 时为空。
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: 已选择退出平台成员资格的网络。这不会停用您已关联的自有成员资格，也不会配置不可用的网络。
          default: []
        networks:
          type: object
          readOnly: true
          description: >-
            按网络列出：此应用将如何发送以及为何无法发送。默认不包含任何网络（包括 GTR）：网络可通过您自己已连接的成员资格访问，或者在
            Didit 在该网络上的成员资格生效且您自己在该网络上的参与方处于活跃状态后，通过 Didit
            的成员资格访问。非实时健康状态或投递检查。
          properties:
            gtr:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            trust:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            verifyvasp:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            sygna:
              $ref: '#/components/schemas/TravelRuleNetworkState'
        didit_network:
          type: object
          readOnly: true
          description: >-
            Didit 网络是否收录了您的 VASP 资料（以便其他 Didit 客户能在名录中找到并能通过 INTERNAL
            轨道联系到它），以及其目前仍欠缺的各项条件。
          properties:
            listed:
              type: boolean
            missing:
              type: array
              items:
                type: string
                enum:
                  - travel_rule_off
                  - sandbox_application
                  - not_discoverable
                  - legal_name_missing
                  - compliance_email_missing
                  - compliance_email_unconfirmed
                  - excluded_by_staff
                  - internal_organization
              description: >-
                列出时为空。compliance_email_unconfirmed：使用 POST
                /v3/travel-rule/settings/compliance-email/confirmation/
                发送确认邮件并打开邮件中的链接。excluded_by_staff：Didit 已将该应用标记为测试、演示或内部应用。
            compliance_email_confirmed:
              type: boolean
              description: 当前的 compliance_email 是否已通过邮件中的链接确认。
    TravelRuleDataSharingFields:
      type: object
      description: >-
        Didit 就您自己的用户按实体类型向交易对手 VASP 发送的字段。无论列表内容如何，始终会发送 `name` 和
        `wallet_address`。您未选择过的实体类型将共享所有字段。空列表也是一种选择：仅共享姓名和钱包。
      properties:
        individual:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
              - date_of_birth
              - place_of_birth
          description: 共享的自然人字段。
        company:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
          description: 共享的法人字段。
    TravelRuleMatchingRules:
      type: object
      description: >-
        按实体类型，交易对手数据的各个字段与您持有的数据进行比对的严格程度。省略的字段将保留其默认值。`NONE` 跳过比对，`STRICT`
        要求词语完全一致，`CONTAINS` 接受一个值的所有词均出现在另一个值中，`DEFAULT` 为标准子集匹配，`FUZZY`
        接受相近的拼写（对于出生日期，允许日和月调换）。
      properties:
        individual:
          type: object
          description: 自然人规则。
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 默认：遵循 `name_matching_strictness`。
            date_of_birth:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 默认为 `NONE`。
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 默认为 `NONE`。
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 交易所路由经过的钱包。默认值为 `STRICT`。
        company:
          type: object
          description: 法人规则。
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 默认：遵循 `name_matching_strictness`。
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 默认为 `NONE`。
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 交易所路由经过的钱包。默认值为 `STRICT`。
    TravelRuleNetworkState:
      type: object
      description: 该应用在特定网络上将如何发送 Travel Rule 消息，以及无法发送的原因。此项为配置状态，并非实时健康状态或投递检查。
      properties:
        rail:
          type: string
          enum:
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
        mode:
          type: string
          enum:
            - own
            - didit
            - 'off'
            - unavailable
          description: >-
            own：使用应用已关联的成员资格；didit：Didit 的成员资格将该应用作为自身有效参与者接入；off：在
            disabled_networks 中禁用了平台路由，且无自身成员资格；unavailable：目前无法在此网络上发送任何内容（参见
            state 和 reason）。
        state:
          type: string
          enum:
            - own_membership
            - live_through_didit
            - 'off'
            - didit_onboarding
            - questionnaire_needed
            - questionnaire_in_review
            - request_access
            - request_sent
            - unavailable
            - error
          description: >-
            own_membership：通过您关联的成员资格发送；live_through_didit：通过 Didit
            成员资格下的专属参与者发送；off：您关闭了平台路由；didit_onboarding：Didit
            自身在该网络上的成员资格尚未生效，因此无法接入任何人；questionnaire_needed /
            questionnaire_in_review：尽职调查问卷必须提交或正在由 Didit
            审核；request_access：问卷已通过，可申请接入网络；request_sent：您的参与者正在入驻中；unavailable：参见
            reason；error：参见 reason。
        reason:
          type: string
          enum:
            - own_membership_connected
            - platform_network_switched_off
            - own_membership_only
            - sandbox_application
            - didit_membership_not_live
            - participant_suspended
            - participant_rejected
            - questionnaire_not_submitted
            - questionnaire_submitted
            - questionnaire_changes_requested
            - questionnaire_rejected
            - participant_not_requested
            - participant_active
            - participant_key_missing
            - participant_key_unresolved
            - provisioning_failed
            - questionnaire_pending
            - submitted_to_network
          description: >-
            状态的机器可读详情。own_membership_only：Didit
            在此网络（TRUST）上不承载应用，请连接您自己的成员资格；sandbox_application：沙盒转账绝不会送达网络；provisioning_failed：网络拒绝了注册，参与者的
            last_error 指明了原因，再次请求该网络将重试。
        platform_available:
          type: boolean
          description: Didit 自身在该网络中的成员身份是否已配置；并非实时健康状态检查。
        connected:
          type: boolean
          description: 是否存在已连接的客户成员身份。凭证在本地进行验证；网络验证则在实时交互中进行。
        participant:
          $ref: '#/components/schemas/TravelRuleNetworkParticipantSummary'
        vasps_reachable:
          type: integer
          description: 在此网络上可达的目录中的 VASP。
        routed_30d:
          type: integer
          description: 过去 30 天内该应用在此网络上进行的转账。
    TravelRuleNetworkParticipantSummary:
      type: object
      nullable: true
      description: 该应用自身在该网络上的参与者，若无则为 null。
      properties:
        mode:
          type: string
          enum:
            - platform
            - own
          description: platform：由 Didit 的成员资格承载；own：在应用自身的成员资格下入驻。
        status:
          type: string
          enum:
            - not_requested
            - questionnaire_pending
            - submitted_to_network
            - active
            - suspended
            - rejected
          description: >-
            not_requested：从未请求过，或网络拒绝了首次请求（参见
            last_error）；questionnaire_pending：等待尽职调查问卷审核通过；submitted_to_network：已提交至网络入驻流程；active：网络已为该应用分配专属参与者代码；suspended
            / rejected：Didit 已暂停或拒绝该请求。
        participant_code:
          type: string
          description: 网络分配给此应用的代号（对于 GTR，为其 VASP 代号）。出站消息携带此代号，绝不携带 Didit 自身的代号。
        requested_at:
          type: string
          format: date-time
          nullable: true
        activated_at:
          type: string
          format: date-time
          nullable: true
        last_error:
          type: string
          description: 网络拒绝注册时的答复；其他情况下为空。
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        您的应用 API 密钥，可在 Business Console 的“开发者 -> API
        密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域：针对每个资源设为无权限、只读或读写，限定于特定工作流或已通过的会话、限定于
        IP 地址列表，以及设置到期日期。401 表示密钥错误、已撤销或已过期；403 表示未发送密钥、密钥无权访问该资源或操作，或请求来自其 IP
        列表之外的地址；在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF
        URL 将为 null；没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅
        https://docs.didit.me/console/api-keys。

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.