速度规则与结构化检测:开发者指南 (ZH)
速度规则通过计数、求和及去重聚合,在时间窗口内评估交易,为捕获结构化、拆分和洗钱模式奠定基础。这是在Didit上构建此类规则的开发者指南。.

孤立地看任何一笔支付,通常都说明不了什么。向交易对手支付9,700欧元并不稀奇。但三天内向同一交易对手支付十笔9,700欧元,或者一个下午从二十个不同账户收到二十笔转账,这些都是结构化和洗钱活动的特征。要捕获这些模式,需要将交易视为一个流——跨时间进行计数和求和——而不是一次只看一笔交易。
这就是速度规则的作用,它们是交易监控中最难自行构建的部分。你需要一个流处理器,能够为每个用户维护滚动窗口,在这些窗口内进行计数、求和并对交易对手进行去重,并实时评估阈值。Didit的交易监控API为你提供了开箱即用的引擎:定义一个窗口,选择一个聚合方式——计数、求和或去重——设置一个阈值,该规则将以每笔交易0.02美元的价格对每笔交易运行。
这是一份关于构建速度规则并利用它们检测结构化的开发者指南。
主要收获
- 速度规则在时间窗口内评估——“过去24小时内”、“7天内”——而不是孤立地评估单笔交易。
- 三种聚合方式:
计数(多少笔)、求和(累计金额)和去重(唯一的交易对手或属性)——这些是结构化和洗钱检测的基本构成要素。 - 结构化——许多刚好低于报告阈值的支付——通过结合求和窗口和阈值接近条件来捕获。
- 洗钱和拆分模式通过窗口内的去重交易对手计数来捕获。
- 无需流处理器——引擎维护窗口;您在控制台中声明规则即可。
- 每笔交易0.02美元,无最低消费。对被标记方的反洗钱筛查单独计费,每笔0.20美元。
什么是速度规则
速度规则包含三个部分:一个窗口(回溯期——1小时、24小时、7天)、对该窗口内交易的聚合,以及一个当被触发时会引发行动的阈值。聚合是其表达的核心:
计数——在窗口内匹配规则条件的交易数量。“24小时内超过5笔入账转账。”求和——匹配交易的累计价值。“7天内累计交易额超过10,000欧元。”去重——属性(通常是交易对手)的唯一值数量。“24小时内来自超过8个不同发送方的转账。”
窗口默认按主体进行键控——每个用户都有自己的滚动计数器——因此,整个平台的繁忙日不会淹没单个用户的信号。
为何重要
结构化(也称为拆分交易)是历史最悠久的洗钱技术之一,也是受监管最明确的技术之一。报告阈值——欧盟大部分地区为10,000欧元,美国为10,000美元——促使人们将大额资金拆分成多笔小额支付,每笔都低于限额。一个只检查单一金额的即时规则永远无法发现它;整个模式存在于聚合中。
洗钱网络也是如此。洗钱骡子的特征不是任何一笔单独的转账——而是资金从许多不同账户涌入,随后迅速流出。只有通过在一个窗口内对去重交易对手进行计数才能发现这一点。监管机构期望公司检测这些类型学,而速度规则就是您无需自行搭建流式分析堆栈即可实现此目的的方法。
技术细节
交易是根据统一的/v3/ API创建的,您控制的transaction_id是幂等的:
curl -X POST https://verification.didit.me/v3/transactions/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transaction_id": "txn_a19f04",
"category": "finance",
"amount": 9600,
"currency": "EUR",
"currency_kind": "fiat",
"txn_date": "2026-05-21T13:18:00Z",
"subject": { "vendor_data": "user_3310", "role": "SENDER", "entity_type": "INDIVIDUAL" },
"counterparty": { "role": "RECEIVER", "entity_type": "INDIVIDUAL" },
"payment_method": "BANK_TRANSFER"
}'
当交易完成结构化模式时,速度规则触发,响应会命名它:
{
"transaction_id": "txn_a19f04",
"status": "IN_REVIEW",
"risk_score": 66,
"triggered_rules": [
{
"name": "结构化 — 累计金额接近阈值",
"bundle": "Finance",
"aggregation": "sum",
"window": "7d",
"action": "CHANGE_STATUS"
}
],
"alert_id": "alrt_b4d8e1"
}
Webhooks。订阅transaction.created和transaction.status.updated以在警报解决时保持您的账本同步。
价格。每笔交易0.02美元,按次计费,无最低消费。对被标记方的反洗钱筛查单独计费,每笔0.20美元。
构建结构化和洗钱规则
结构化(求和窗口)。将7天窗口内的求和聚合与每笔交易金额刚好低于报告阈值的条件结合起来。当用户的累计刚好低于阈值的支付总额超过您设定的界线时——即结构化旨在隐藏的累计大额交易——规则就会触发。调整阈值接近度(与报告线的距离多近才算“刚好低于”)和累计触发器。
拆分交易(计数窗口)。短窗口内的计数聚合可以捕获一系列小额支付。“24小时内超过10笔低于1,000欧元的出账转账”即使单笔支付金额不大,也能揭示碎片化模式。
洗钱入账(去重窗口)。对交易对手进行去重聚合可以捕获资金涌入:“24小时内来自超过8个不同发送方的入账转账。”将其与快速出账计数规则结合,您就描述了完整的洗钱特征。
这些规则映射到预设的规则包——结构化和规避阈值存在于金融中,累计交易量和快速进出存在于反洗钱/反恐怖融资中,速度峰值存在于异常检测中——您可以扩展其中任何一个,或在自定义规则包中构建自己的规则。每个规则的动作都可以增加风险评分、更改状态、添加标签或将参与方添加到列表中。
应用场景
- 金融科技——对转账和提款进行累计求和结构化规则;对入账存款进行去重交易对手洗钱规则。
- 加密货币——对快速进出钱包活动进行计数窗口;对资金从多个地址流入后进行单笔大额流出进行去重规则。
- 贷款——对支出和还款模式进行速度规则,以捕获爆仓欺诈。
- 市场——去重买家计数规则,以捕获串通交易圈抬高卖家交易量的行为。
- iGaming——存款速度计数窗口,也可作为负责任游戏信号。
如何与Didit集成
- 定义窗口。在业务控制台中,根据您的政策要求,构建具有窗口、聚合(计数/求和/去重)和阈值的速度规则。
- 发送交易。当资金流动时,从您的后端
POST /v3/transactions/,并使用稳定的transaction_id和vendor_data,以便引擎将窗口与正确的主体关联。 - 处理Webhooks。监听
transaction.status.updated,以便在速度规则触发且分析师解决警报时做出反应。 - 随时间调整。在控制台中调整阈值,以了解您的真阳性和假阳性率——无需部署。
因为它都在统一的/v3/ API上,因此通过KYC流程入驻的用户直接进入运行这些速度规则的同一个引擎——一个端到端的身份和欺诈平台。
常见问题
速度规则可以使用哪些聚合方式?
三种:计数(匹配交易的数量)、求和(累计金额)和去重(唯一的交易对手或属性),每种都在您定义的时间窗口内进行评估。
我如何具体检测结构化?
将窗口内的求和聚合与每笔支付刚好低于报告阈值的条件结合起来。当累计总额超过结构化旨在隐藏的界线时,规则就会触发。
我需要自己的流处理器吗?
不需要。引擎为每个主体维护滚动窗口。您在控制台中声明窗口、聚合和阈值。
费用是多少?
每笔交易0.02美元,按次计费,无最低消费。对被标记方的反洗钱筛查单独计费,每笔0.20美元。
我可以构建预设规则包未涵盖的速度规则吗?
可以。自定义规则包支持适用于您产品特有的任何类型学的条件、速度窗口和聚合。
准备好开始了吗?
阅读文档中的交易监控概述,了解它如何与平台其他部分配合,请访问交易监控产品页面,并在定价页面查看透明的按次计费价格。准备就绪后,免费开始——每月500次免费KYC检查,交易监控每笔调用0.02美元。