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
- group: 我方权益保护
  rules:
  - rule_id: JK-OUR-001
    name: 我方缔约地位及不利条款审查
    risk: high
    score: 10
    stages:
    - id: '1'
      check: ai
      field: ctx
      prompt: |-
        请基于合同全文判断我方（中国烟草相关公司/专卖局）在本合同中的缔约地位，并审查是否存在强势条款或不利于我方的条款。

        合同全文字段来源：ctx。该字段由后端负责注入和匹配。
        合同全文：{{ctx}}

        评查步骤：
        1. 识别合同中是否存在中国烟草相关主体，包括但不限于“中国烟草”“烟草公司”“烟草专卖局”“中烟”“卷烟厂”“烟草工业”“烟草商业”等名称或其分支机构。
        2. 判断该主体是我方，并识别我方在合同中的地位：甲方、乙方、发包人、承包人、委托方、受托方、出租方、承租方、出借人、借款人、赠与方、受赠方或其他。
        3. 从合同全文审查是否存在明显偏向对方、加重我方责任、限制我方权利、降低对方责任、增加我方付款/赔偿/解除限制/验收风险/知识产权风险/保密风险/争议解决不利风险的条款。
        4. 若无法识别我方主体或我方地位，应返回无法判断，并说明原因，不得臆测。

        强势或不利条款示例：
        - 对方可单方变更、解除、延期履行，而我方缺少对应权利。
        - 我方承担高额违约金、无限责任、连带责任或无上限赔偿，对方责任明显较轻。
        - 付款条件、验收、交付、质量、质保、知识产权、保密、争议解决、管辖地等安排明显不利于我方。
        - 排除或限制我方依法解除、抗辩、追偿、索赔、验收异议或审计监督权利。

        请以JSON格式回答：{"passed": true/false, "our_party": "我方主体名称或无法判断", "our_position": "甲方/乙方/发包人/承包人/委托方/受托方/出租方/承租方/出借人/借款人/赠与方/受赠方/其他/无法判断", "has_strong_terms": true/false, "has_unfavorable_terms": true/false, "risk_terms": ["风险条款摘要"], "reason": "判断理由", "suggestion": "修改建议"}
      schema:
        type: object
        required:
        - passed
        - our_party
        - our_position
        - has_strong_terms
        - has_unfavorable_terms
        - reason
        properties:
          passed:
            type: boolean
          our_party:
            type: string
          our_position:
            type: string
          has_strong_terms:
            type: boolean
          has_unfavorable_terms:
            type: boolean
          risk_terms:
            type: array
          reason:
            type: string
          suggestion:
            type: string
      pass_when: passed == True
    logic: '1'
    messages:
      pass: 未发现明显强势条款或不利于我方的条款
      fail: 存在强势条款、不利于我方的条款或无法判断我方缔约地位
    type: ai_rule
