> ## 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.

# 电子签名警告与风险代码

> Didit 电子签名警告与风险代码完整指南，涵盖从 SIGNATURE_DECLINED 到 SIGNATURE_DOCUMENT_CHANGED 的各类警告、触发原因及控制规则。

当签署人无法或不愿签署时，[电子签名](https://docs.didit.me/zh/core-technology/electronic-signature/overview.md)步骤会触发警告：签署人拒绝签署、验证码用尽、无法与已验证的身份完成匹配，或者证件与向签署人展示的内容不再一致。每项警告都会阻止该签署人的签名，因此不会为其签发已签名证件。警告对最终判定结果的影响由您决定。

## 概述

警告会出现在两处：

* 位于 `signatures[]` 中对应签署人的项内，在 `warnings[]` 中体现为 `{ "code": "SIGNATURE_DECLINED", "node_id": "feature_signature" }`。参见[电子签名报告](https://docs.didit.me/zh/core-technology/electronic-signature/report-electronic-signature.md)。
* 位于会话活动中，标记有功能 `SIGNATURE`，并包含其标题和描述。控制台会在会话的 **签名** 标签页中显示该警告，且 `additional_data.signature_id` 会指向该签署人。

每个代码都映射到一条规则。您可以在控制台的 **规则** 标签页中，或在步骤的[配置](https://docs.didit.me/zh/management-api/workflows/feature-configs.md#电子签名)中针对每个工作流步骤将规则设置为 `DECLINE`、`REVIEW` 或 `NO_ACTION`。该规则将决定签署人的 `verdict`（`Declined`、`In Review` 或 `Approved`）以及警告的严重程度（`error`、`warning` 或 `information`）。步骤上的自定义状态规则会在其之后应用。

> [!WARNING]
>
> 规则决定的是最终判定结果，而不是证件是否已签署。`NO_ACTION` 允许工作流继续进行，但签署人此时仍未完成签署。在依赖签名之前，请务必核对 `status` 是否为 `signed`。

## 产生的警告

| 代码 | 触发时机 | 规则及默认值 |
| - | - | - |
| `SIGNATURE_DECLINED` | 签署人拒绝签署。不签发已签名副本，且不产生任何扣费。 | `signature_declined_action`，默认值为 `REVIEW` |
| `SIGNATURE_OTP_FAILED` | 签署人输入 3 次错误验证码，或请求验证码超过 5 次。 | `signature_otp_failed_action`，默认值为 `DECLINE` |
| `SIGNATURE_NAME_MISMATCH` | KYB：为关键人员声明的姓名与其已验证姓名不匹配（忽略大小写和空格）。 | `signature_name_mismatch_action`，默认值为 `DECLINE` |
| `SIGNATURE_IDENTITY_NOT_VERIFIED` | 签署人没有包含姓名的已通过身份证件验证、其会话中的活体检测未通过，或者身份证件验证在签署人开始签署后发生了更改。 | `signature_identity_not_verified_action`，默认值为 `DECLINE` |
| `SIGNATURE_DOCUMENT_CHANGED` | 证件与向签署人展示时记录的 SHA-256 哈希值不再匹配。 | `signature_document_changed_action`，默认值为 `DECLINE` |

身份和姓名检查会在签署人请求验证码时以及输入验证码时分别执行，因此这些警告会在相应操作时出现，而不是在步骤打开时出现。

## 拒绝后可重新打开

`SIGNATURE_DECLINED` 是签署人唯一可以撤销的警告。在签署链接有效期间，已拒绝的签署人可以重新打开该步骤并完成签署。重新打开会清除该签署人的警告及其对每份证件的阅读和同意记录，因此他们需要重新阅读这些证件。一旦该步骤的所有签署人均不再处于拒绝状态，警告就会从会话活动中移除。重新打开不会重置其验证码尝试次数。其他警告对该签署人而言均为最终结果。

## 签署人遇到的问题

这些情况会阻止签署人继续操作，但不会触发警告。流程会提示签署人发生了什么。

| 情况 | 处理方式 |
| - | - |
| 签署链接已过期 | 超过 `expires_at` 后，该步骤无法打开或完成。链接自会话创建起在 `signature_link_validity_days` 内有效。 |
| 验证码已过期 | 验证码有效期为 5 分钟。签署人需请求新验证码。 |
| 请求新验证码过于频繁 | 两次获取验证码之间签署人需等待 60 秒。 |
| 没有已验证的联系方式 | 验证码仅会发送至该会话早期已验证的邮箱或电话。请在签名步骤之前添加邮箱验证或电话验证。 |
| 必填字段为空 | 在证件上的每个必填字段都有值之前，签署人无法完成证件签署。流程会显示剩余字段数并跳转至第一个未填字段。 |
| 字段值被拒绝 | 违反字段[验证规则](https://docs.didit.me/zh/core-technology/electronic-signature/overview.md#验证)的值（例如过长或非数字）会被拒绝，流程会说明原因。 |
| 应用版本过旧不支持字段 | 不支持字段的原生 SDK 版本无法显示带有字段的证件，步骤会报错。不带字段的证件仍可正常使用。参见[签署体验](https://docs.didit.me/zh/core-technology/electronic-signature/overview.md#签署体验)。 |

## 示例

```json theme={null}
{
  "signatures": [
    {
      "id": "0e6c2a8e-6c2f-4b8e-9a51-3f2f6a7d9b10",
      "node_id": "feature_signature",
      "status": "declined",
      "verdict": "In Review",
      "warnings": [
        { "code": "SIGNATURE_DECLINED", "node_id": "feature_signature" }
      ],
      "declined_at": "2026-11-03T10:41:40.320Z",
      "declined_action": "REVIEW",
      "signed_at": null,
      "certificate": null,
      "timestamp": null,
      "evidence_file": null
    }
  ]
}
```

该示例仅展示发生变更的字段。[签名对象](https://docs.didit.me/zh/core-technology/electronic-signature/report-electronic-signature.md#签名对象)中的所有其他字段依然存在。

## 警告类型

每项警告的严重程度均遵循您设置的规则。严重程度分为三类：

## 相关内容

* [电子签名概述](https://docs.didit.me/zh/core-technology/electronic-signature/overview.md)
* [电子签名报告](https://docs.didit.me/zh/core-technology/electronic-signature/report-electronic-signature.md)
* [工作流功能配置](https://docs.didit.me/zh/management-api/workflows/feature-configs.md#电子签名)


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