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

# 旅行规则（Travel Rule）

> 旅行规则（Travel Rule）是 KYC 之外的一项独立合规要求：用户在获取链上充值地址之前，必须先上传旅行规则信息。本页说明旅行规则的用途、DeCard 托管模式提供的能力和整体流程；各接口的请求、响应与 EDD 字段见相关操作指南。

## 📄 正文

**旅行规则（Travel Rule）** 是全球反洗钱（AML）监管框架下的要求，旨在规范跨境/虚拟资产转移过程中的信息交互，确保金融交易透明可追溯。在 DeCard 托管模式下，终端用户在获取链上充值地址之前，必须先上传旅行规则信息——**未完成上传的用户无法获取链上充值地址**，因而无法进行跨境充值。

<Warning>
  **前置条件**：调用相关接口前，用户必须已通过注册接口创建，且您持有其 `externalUserId`。旅行规则上传应在用户获取链上充值地址之前完成。
</Warning>

***

## DeCard 托管模式提供的能力

DCS 通过标准化接口为您提供旅行规则信息的管理能力，您按对接深度选择服务端对接或让用户在 DCS 托管页自助上传：

| 能力             | 接口                                         | 方法   | 说明                                               |
| -------------- | ------------------------------------------ | ---- | ------------------------------------------------ |
| 上传旅行规则         | `/account/v1/update-travel-rule`           | POST | 提交用户身份、地址、出生信息（仅 `externalUserId` 必填）            |
| 查询旅行规则         | `/account/v2/query-travel-rule`            | GET  | 按 `externalUserId` 查已提交信息                        |
| 引导页自助上传        | `/redirect/v2/guidance-link`               | POST | `action=TRAVEL_RULE`，用户在 DCS 托管页直接填写上传，无需您采集敏感资料 |
| 生成 EDD 文件预上传地址 | `/account/v1/generate-file-upload-prepare` | POST | 高风险场景：获取预签名 URL + `objectKey`                    |
| 提交 EDD 文件      | `/account/v1/upload-edd-file`              | POST | 提交资金来源（SoF）/财富来源（SoW）证明文件引用                      |

DCS 的核心工作集中在四点：**数据标准化**（统一的证件类型、地址、出生日期等数据结构）、**接口支持**（上传/查询）、**文件管理**（EDD 增强尽职调查，覆盖资金来源与财富来源两大维度）、**流程联动**（与链上充值地址获取关联——未完成上传即取地址会被拒绝）。

> **EDD（增强尽职调查）**：对高风险场景（大额跨境、可疑交易等），DCS 支持用户提交资金来源（SoF，6 类）与财富来源（SoW，6 类）共 12 类辅助证明文件，流程分两步：「生成预上传地址并上传文件 → 提交文件引用」。完整分类与字段见下方操作指南。

***

## EDD 文件上传（增强尽职调查）

对于高风险合规场景（大额跨境、可疑交易等），DCS 提供 EDD（Enhanced Due Diligence）文件上传能力，支持用户提交资金来源（Source of Funds, SoF）与财富来源（Source of Wealth, SoW）两类辅助证明文件。整个流程分两步：

1. **生成预上传地址**：调 POST `/account/v1/generate-file-upload-prepare`，传入待上传的文件名列表，获取预签名 URL 和 `objectKey`。
2. **提交 EDD 文件**：将文件通过获取的 URL 上传后，调 POST `/account/v1/upload-edd-file`，提交各维度的 EDD 文件引用（含 `fileName` + `filePath`/`objectKey`）。

**请求字段（EDD 提交请求体）**

| 字段                  | 类型     | 必填    | 说明                |
| ------------------- | ------ | ----- | ----------------- |
| `externalUserId`    | string | **是** | 外部用户 ID           |
| `requestRef`        | string | **是** | 唯一幂等 ID，用于防重复提交   |
| `applyId`           | string | 否     | 虚拟卡申请 ID，关联特定卡申请单 |
| `eddSowSalary`      | object | 否     | 财富来源（SoW）——薪资收入   |
| `eddSowBizRevenue`  | object | 否     | 财富来源——经营收入        |
| `eddSowGift`        | object | 否     | 财富来源——赠与          |
| `eddSowInheritance` | object | 否     | 财富来源——遗产继承        |
| `eddSowInvest`      | object | 否     | 财富来源——投资收益        |
| `eddSowOther`       | object | 否     | 财富来源——其他          |
| `eddSofSaving`      | object | 否     | 资金来源（SoF）——薪资储蓄   |
| `eddSofSale`        | object | 否     | 资金来源——资产出售        |
| `eddSofBizRevenue`  | object | 否     | 资金来源——经营收入        |
| `eddSofCrypto`      | object | 否     | 资金来源——加密货币        |
| `eddSofInvest`      | object | 否     | 资金来源——投资变现        |
| `eddSofOther`       | object | 否     | 资金来源——其他          |

**EDD 子对象分类**（共 12 类：SoW 6 类 + SoF 6 类，覆盖财富来源与资金来源两大维度）

| 子对象                 | 维度   | 说明                          |
| ------------------- | ---- | --------------------------- |
| `eddSowSalary`      | 财富来源 | 薪资收入（雇主名、职位、年收入 + 证明文件）     |
| `eddSowBizRevenue`  | 财富来源 | 经营收入（企业名、业务性质、年营收 + 证明文件）   |
| `eddSowGift`        | 财富来源 | 赠与（赠与人、关系、财富来源、资产估值 + 证明文件） |
| `eddSowInheritance` | 财富来源 | 遗产继承（逝者名、关系、继承年份、估值 + 证明文件） |
| `eddSowInvest`      | 财富来源 | 投资收益（投资类型、估值 + 证明文件）        |
| `eddSowOther`       | 财富来源 | 其他财富来源（描述 + 证明文件）           |
| `eddSofSaving`      | 资金来源 | 薪资储蓄（雇主名、职位、年收入 + 证明文件）     |
| `eddSofSale`        | 资金来源 | 资产出售（证明文件）                  |
| `eddSofBizRevenue`  | 资金来源 | 经营收入（企业名、业务性质、年营收 + 证明文件）   |
| `eddSofCrypto`      | 资金来源 | 加密货币（平台名、持有类型 + 证明文件）       |
| `eddSofInvest`      | 资金来源 | 投资变现（投资类型、估值 + 证明文件）        |
| `eddSofOther`       | 资金来源 | 其他资金来源（描述 + 证明文件）           |

> 每个子对象均包含 `docUrls` 数组（`{ fileName, filePath }`），指向已通过预上传地址上传的文件。完整字段规格（如 `eddSowGift` 的 `recurringGifts` 子结构、各子对象的必填规则等）见接口 API Reference 页。

**请求示例**（EDD 文件提交，仅展示部分子对象；脱敏占位数据）

```http theme={null}
POST /account/v1/upload-edd-file HTTP/1.1
Host: {{dicard-server}}
Content-Type: application/json
```

```json theme={null}
{
  "externalUserId": "<externalUserId>",
  "requestRef": "<idempotency-key>",
  "applyId": "<applyId>",
  "eddSowSalary": {
    "employerName": "<employer>",
    "jobTitle": "<title>",
    "annualIncome": "100000",
    "docUrls": [
      { "fileName": "payslip.pdf", "filePath": "<objectKey-from-prepare>" }
    ]
  },
  "eddSofSaving": {
    "employerName": "<employer>",
    "jobTitle": "<title>",
    "annualIncome": "100000",
    "docUrls": [
      { "fileName": "bank_statement.pdf", "filePath": "<objectKey-from-prepare>" }
    ]
  }
}
```

**响应**（结构统一为 `{ code, message, messageDetail, data }`；提交成功时 **`data` 为 `null`**）

```json theme={null}
{
  "code": "<成功码，如 SYS_SUCCESS>",
  "message": "",
  "messageDetail": {},
  "data": null
}
```

***

## 流程图

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/dcs-0bf7a937/oUoeUKtwWWK2o-Li/imgs/diagrams/va-travel-rule-light.svg?fit=max&auto=format&n=oUoeUKtwWWK2o-Li&q=85&s=817f0af1fb187997c8891169aa473b7b" alt="Travel Rule 上传与充值放开路径" width="630" height="632" data-path="imgs/diagrams/va-travel-rule-light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/dcs-0bf7a937/oUoeUKtwWWK2o-Li/imgs/diagrams/va-travel-rule-dark.svg?fit=max&auto=format&n=oUoeUKtwWWK2o-Li&q=85&s=66cc735093c7e351533f5ad35004a143" alt="Travel Rule 上传与充值放开路径" width="630" height="632" data-path="imgs/diagrams/va-travel-rule-dark.svg" />
</Frame>

> 未先完成 Travel Rule 上传就尝试获取链上充值地址将被拒绝。`/account/v2/query-travel-rule` 的查询响应 `address` 字段集与上传请求体不对称（查询仅返回 `city`/`postalCode`/`addressLines`），编程时请以接口字段规格为准。

***

## 下一步

* 充值前置流程中如何提交 Travel Rule（`update-travel-rule` 请求示例）：[加密货币充值](./crypto-deposit)
* 引导页 `action=TRAVEL_RULE` 完整参数：[H5 KYC 与开卡引导页](../../integration-resources/h5-kyc-guidance)（EDD 12 类 SoF/SoW 子对象明细见上文「EDD 文件上传」节）
* 合规整体流程与 KYC 在其中的位置：[合规 · 概述](../../basic-concepts/compliance-kyc-flow)
* 完成旅行规则信息后获取链上充值地址：[加密货币充值](./crypto-deposit)
* 接口字段全规格：`POST /account/v1/update-travel-rule`、`GET /account/v2/query-travel-rule`、`POST /redirect/v2/guidance-link`、`POST /account/v1/generate-file-upload-prepare`、`POST /account/v1/upload-edd-file`
