Files
leaudit-platform-backend/rules/contract_loan/rules.yaml
T

493 lines
12 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
metadata:
type_id: contract.loan.general
name: 借款合同
version: '1.0'
last_updated: '2026-04-11'
parent: contract
inherits_from:
- base.common
- base.party_info
classification_keywords:
- 借款
- 借贷
- 民间借贷
tags:
- compliance
- high_priority
- prc_civil_code
- usury_check
applies_to_jurisdictions:
- prc
references_laws:
- 《民法典》第 667-680 条(借款合同章)
- 《最高人民法院关于审理民间借贷案件适用法律若干问题的规定》(2020 修正)
- 《民法典》第 387-462 条(担保物权)
description: '适用于民间借贷 / 企业间借款 / 自然人借款等场景。
覆盖民法典第 667-680 条(借款合同章)和最高法民间借贷司法解释。
评查重点:利率合法性、担保完备性、禁止利滚利。
'
confidence_profile:
allow_weight_override: false
field_confidence_defaults:
借款本金: 0.95
年利率: 0.95
extract:
- group: 当事人
fields:
- name: 借款人姓名
type: verbatim
required_from: draft
deep_retry: false
- name: 借款人身份证
type: chinese-id
required_from: executed
deep_retry: false
- name: 借款人地址
type: verbatim
required_from: draft
deep_retry: false
- name: 出借人姓名
type: verbatim
required_from: draft
deep_retry: false
- name: 出借人身份证
type: chinese-id
required_from: executed
deep_retry: false
- group: 合同信息
fields:
- name: 合同编号
type: verbatim
required_from: draft
deep_retry: false
- name: 签订日期
type: date
required_from: executed
deep_retry: false
- name: 借款日期
type: date
required_from: executed
deep_retry: false
- name: 还款日期
type: date
required_from: executed
deep_retry: false
- group: 借款条款
fields:
- name: 借款本金
type: money
required_from: draft
deep_retry: false
- name: 借款本金大写
type: verbatim
required_from: executed
deep_retry: false
- name: 借款用途
type: string
required_from: draft
deep_retry: false
- name: 年利率
type: money
required_from: draft
deep_retry: false
- name: 还款方式
type: enum
required_from: draft
allowed:
- 一次性还本付息
- 分期还款
- 先息后本
deep_retry: false
- name: 违约金金额
type: money
required_from: draft
deep_retry: false
- name: 违约责任
type: string
required_from: draft
deep_retry: false
- name: 争议解决
type: string
required_from: draft
deep_retry: false
- group: 'Multi-entity: 担保人(核心特性展示)'
fields:
- name: 担保人
type: multi_entity
required_from: draft
fields:
- name: 姓名
type: verbatim
required_from: draft
deep_retry: false
- name: 身份证号
type: chinese-id
required_from: executed
deep_retry: false
- name: 地址
type: verbatim
required_from: draft
deep_retry: false
- name: 担保金额
type: money
required_from: draft
deep_retry: false
- name: 担保方式
type: enum
required_from: draft
allowed:
- 一般保证
- 连带责任保证
deep_retry: false
- name: 担保期限
type: date
required_from: draft
deep_retry: false
deep_retry: false
derived_fields:
- name: 借款总天数
type: integer
compute: (还款日期 - 借款日期).days
depends_on:
- 借款日期
- 还款日期
- name: 违约金比例
type: money
compute: 违约金金额 / 借款本金
depends_on:
- 违约金金额
- 借款本金
- name: 担保总额
type: money
compute: sum(担保人[*].担保金额)
depends_on:
- 担保人
- name: 担保人数量
type: integer
compute: count(担保人)
depends_on:
- 担保人
- name: LPR_4x
type: money
compute: external.lpr_lookup(tenor='1y') * 4
depends_on: []
visual_elements:
seals:
- id: 借款人签章
name: 借款人签章
required: true
required_from: executed
expected_text_match:
field: 借款人姓名
- id: 出借人签章
name: 出借人签章
required: true
required_from: executed
expected_text_match:
field: 出借人姓名
signatures:
- id: 借款人签名
name: 借款人手写签名
required: true
required_from: executed
expected_text_match:
field: 借款人姓名
- id: 出借人签名
name: 出借人手写签名
required: true
required_from: executed
expected_text_match:
field: 出借人姓名
rules:
- group: 合同主体
rules:
- rule_id: JK-001
name: 借款主体合法性
risk: high
score: 10
stages:
- id: '1'
check: required
fields:
- 借款人姓名
- 出借人姓名
logic: and
- id: '2'
check: format
field: 借款人身份证
format: chinese_id
- id: '3'
check: format
field: 出借人身份证
format: chinese_id
logic: 1 AND 2 AND 3
messages:
pass: 借贷双方身份合法
fail: 借贷双方身份信息不完整或身份证校验失败
references_laws:
- 《民法典》第 667 条
type: deterministic
- group: 利率合规
rules:
- rule_id: JK-002
name: 利率不超过法定上限(LPR × 4 倍)
risk: high
score: 20
activate_if: derived.LPR_4x != null
stages:
- id: '1'
check: required
field: 年利率
- id: '2'
check: compare
left: 年利率
op: <
right_field: derived.LPR_4x
logic: 1 AND 2
messages:
pass: 年利率 {{年利率}} 未超过 LPR 4 倍({{derived.LPR_4x}}
fail: 年利率 {{年利率}} 超过法定上限 LPR 4 倍({{derived.LPR_4x}}
references_laws:
- 《最高人民法院关于审理民间借贷案件适用法律若干问题的规定》(2020 修正)第 25 条
- 《民法典》第 680 条(禁止高利放贷)
remediation:
suggestions:
- 本合同年利率 {{年利率}},超过当前 LPR 4 倍上限 {{derived.LPR_4x}}
- 按 2020 修正司法解释,超出部分法院不予保护
- 请降低利率至 LPR 4 倍以内
actions:
- type: edit_field
label: 降低年利率
field: 年利率
prompt: 请输入合法年利率(不超过 {{derived.LPR_4x}}
- type: escalate
label: 疑似高利贷,上报合规组
role: 合规专员
type: deterministic
- rule_id: JK-GROUP-INTEREST
name: 利率合规总判定
risk: high
score: 30
logic: JK-002 AND JK-005 AND JK-006
messages:
pass: 利率与违约条款全部合规
fail: 利率或违约条款有瑕疵,存在合规风险
type: rule_group
rules:
- JK-002
- JK-005
- JK-006
- group: 担保条款
rules:
- rule_id: JK-003
name: 担保人身份合法性
risk: high
score: 15
activate_if: derived.担保人数量 > 0
stages:
- id: '1'
type: multi_entity.count_ge
field: 担保人
value: 1
- id: '2'
check: format
field: 担保人[*].身份证号
format: chinese_id
- id: '3'
check: required
field: 担保人[*].姓名
logic: 1 AND 2 AND 3
messages:
pass: 所有 {{derived.担保人数量}} 位担保人身份合法
fail: 至少一位担保人身份信息缺失或身份证校验失败
remediation:
suggestions:
- 共 {{derived.担保人数量}} 位担保人,至少一位的身份证校验失败
- 请逐个核对每位担保人的身份证号
actions:
- type: recheck_field
label: 重新核对所有担保人身份证
field: 担保人[*].身份证号
type: deterministic
- rule_id: JK-004
name: 担保总额覆盖借款本金
risk: high
score: 15
activate_if: derived.担保人数量 > 0
stages:
- id: '1'
check: compare
left: derived.担保总额
op: '>='
right_field: 借款本金
logic: '1'
messages:
pass: 担保总额 {{derived.担保总额}} 覆盖借款本金 {{借款本金}}
fail: 担保总额 {{derived.担保总额}} 不足以覆盖借款本金 {{借款本金}}
remediation:
suggestions:
- 当前 {{derived.担保人数量}} 位担保人担保总额 {{derived.担保总额}}
- 借款本金 {{借款本金}},担保不足
- 建议:(1) 增加担保人 (2) 提高现有担保金额 (3) 补充物的担保
actions:
- type: edit_field
label: 调整担保金额
field: 担保人[*].担保金额
- type: escalate
label: 担保不足,上报风控
role: 风控经理
type: deterministic
- group: 条款合规
rules:
- rule_id: JK-005
name: 禁止利滚利与高利贷条款
risk: high
score: 15
stages:
- id: '1'
type: string.must_not_contain
field: 违约责任
forbidden_keywords:
- 利滚利
- 复利
- 利息计入本金
- 砍头息
- 预扣利息
- id: '2'
type: string.must_not_contain
field: 借款用途
forbidden_keywords:
- 非法经营
- 赌博
- 洗钱
logic: 1 AND 2
messages:
pass: 未发现利滚利或非法用途条款
fail: 发现违法条款,建议删除或修改
references_laws:
- 《民法典》第 680 条
- 《民法典》第 670 条(禁止预扣利息)
remediation:
suggestions:
- 检出禁止性条款,本合同可能被法院认定为无效或部分无效
- 请删除违法条款或整体重新起草
actions:
- type: edit_field
label: 修改违约责任条款
field: 违约责任
- type: escalate
label: 涉嫌违法条款,上报法务
role: 法务经理
type: deterministic
- group: 违约条款
rules:
- rule_id: JK-006
name: 违约金不超过借款本金 30%
risk: medium
score: 10
stages:
- id: '1'
check: required
fields:
- 违约金金额
- 借款本金
logic: and
- id: '2'
type: money.ratio_within
numerator: 违约金金额
denominator: 借款本金
min: 0.0
max: 0.3
logic: 1 AND 2
messages:
pass: 违约金比例 {{derived.违约金比例}} 合规
fail: 违约金 {{违约金金额}} 占借款本金 {{借款本金}} 的比例超过 30%
references_laws:
- 《民法典》第 585 条(违约金不得过分高于损失)
type: deterministic
- group: 金额条款
rules:
- rule_id: JK-007
name: 借款本金大小写一致性
risk: high
score: 10
stages:
- id: '1'
check: required
fields:
- 借款本金
- 借款本金大写
logic: and
- id: '2'
check: amount_match
number: 借款本金
chinese: 借款本金大写
logic: 1 AND 2
messages:
pass: 借款本金大小写一致
fail: 借款本金大小写不一致,涉嫌篡改
type: deterministic
- group: 期限条款
rules:
- rule_id: JK-008
name: 借款期限合理性
risk: medium
score: 5
depends_on:
- when: JK-001.passed
stages:
- id: '1'
check: required
fields:
- 借款日期
- 还款日期
logic: and
- id: '2'
type: date.after
field: 还款日期
ref_field: 借款日期
- id: '3'
check: assert
expr: parse_date(签订日期) != None and (today() - parse_date(签订日期)).days >= 0 and (today() - parse_date(签订日期)).days <= 1825
logic: 1 AND 2 AND 3
messages:
pass: 借款期限合规
fail: 借款日期颠倒 或 合同签订过旧
type: deterministic
- group: 印章合规
rules:
- rule_id: JK-SEAL-001
name: 借贷双方签章齐全
risk: high
score: 10
stages:
- id: '1'
type: seal.present
seal_id: 借款人签章
- id: '2'
type: seal.present
seal_id: 出借人签章
logic: 1 AND 2
messages:
pass: 双方签章齐全
fail: 缺少借款人或出借人签章
remediation:
by_phase:
draft:
suggestions:
- 草稿阶段无需盖章
actions:
- type: noop
executed:
suggestions:
- 民间借贷纠纷中,无签章的合同证据效力较弱
- 请补盖双方印章或提供签名
actions:
- type: upload_file
label: 补扫签章页
file_type: 签章页
type: deterministic