优惠券底层能力与类型框架 V2
| 项目 | 内容 |
|---|---|
| 版本 | V2.0 |
| 日期 | 2026-09-14 |
| 目标 | 建设可配置、可定向发放、可使用与核销、全程可审计的订单绑定型优惠券框架 |
| 本期业务范围 | Nigeria KasyKredit 现金贷;仅启用还款抵扣金 |
| 本期交付 | 线下冻结名单的受控发券、券状态与账本、还款抵扣金赚取/自动核销、用户端闭环与审计留痕 |
| 框架预留 | 息费折扣券、息费抵扣券、X 天免息券的类型、规则与核销扩展位 |
| 不在本期 | 未来三类券的创建/发放/使用、跨订单使用、提现/转让、策略实验、成本核算与预算模型 |
1. 目标与适用边界
优惠券是绑定至特定用户和贷款订单的权益,不进入可提现余额,不能转让、赠与或跨订单使用。券能力负责规则校验、发放、状态、使用、核销、账本和审计;还款/账务负责提供可信的订单、成功还款、最终结清、退款及冲正结果;客户端仅展示可信结果,不自行计算权益或改写券状态。
本期仅允许 KasyKredit 的还款抵扣金发券。其余三类券仅定义通用框架和将来扩展规则,不提供后台配置、不参与线下名单发券,用户端亦不展示。
2. 券类型框架
| 券类型 | 用户权益定义 | 核心规则配置 | 使用/核销方式 | 本期状态 |
|---|---|---|---|---|
| 还款抵扣金 | 提前成功还款后按还款金额累计赚取的抵扣金额 | 最高可赚金额、奖励日利率、可赚取期限、最终抵扣范围 | 最终结清时自动抵扣已赚金额 | 已启用,仅 KasyKredit |
| 息费折扣券 | 对指定息费项按比例减免 | 折扣率、封顶金额、适用息费项、有效期 | 命中还款时计算优惠并在成功后核销 | 仅预留 |
| 息费抵扣券 | 对指定息费项按固定金额抵扣 | 抵扣金额、适用息费项、有效期、叠加规则 | 命中还款时抵扣,成功后核销 | 仅预留 |
| X 天免息券 | 在约定天数内免除约定范围的利息 | 免息天数、适用起止时间、适用利息范围 | 按规则重算息费,成功结算后核销 | 仅预留 |
未来券型接入必须沿用第 3 至第 6 节的通用对象、快照、状态、账本、审计和幂等规则;在其产品规则、客户展示和验收完成前,不得开放运营配置或发券。
3. 通用对象、状态与责任
| 对象 | 业务定义与要求 |
|---|---|
| 券类型 | 定义权益语义、可配置规则和核销方式;只有已启用类型可用于本期发券配置 |
| 发券配置 | 每次受控发券提交的静态权益规则与批次信息;不在系统中创建、编辑或启停 |
| 冻结名单 | 运营通过线下 SQL 取数形成的用户/订单名单;本期系统不生成筛选条件,也不保存或展示 SQL |
| 发放批次 | 一次受控发券的执行结果,记录名单凭证、提交人、校验结果、成功/失败明细与处理时间 |
| 券实例 | 绑定一名用户和一笔订单的实际权益,保存完整规则快照 |
| 使用记录 | 记录一次待结算的使用意图、关联还款及锁定/释放结果;不等同于最终核销 |
| 核销记录 | 记录成功结算后的实际优惠/抵扣金额及结清结果 |
| 账本与审计 | 发放、赚取、使用锁定、核销、失效、作废、冲正和人工调整均不可覆盖历史 |
通用状态为:待生效 → 可用 → 使用锁定 → 已核销;券有效期届满、订单取消或受控处置时进入已失效/已作废。支付失败、取消或超时后,已锁定但未结算的使用记录必须释放,券返回原可用状态。已核销、已失效和已作废为终态;退款、账务冲正或人工调整以新增冲正/调整记录表达,不得删除或改写原记录。
还款抵扣金在“可用”下细分为待赚取、赚取中、已赚满:待赚取/赚取中可继续按规则赚取,已赚金额大于零时可在最终结清使用,达到上限后停止赚取。
4. 本期线下发券配置与名单交付
本期不建设策略配置、名单筛选、名单导入或查询后台。运营完成线下 SQL 取数后提交冻结名单及下列发券配置,由受控任务执行校验和直接发券;需求只保留名单凭证,不保存或展示 SQL、表或取数实现。
| 分组 | 字段 | 规则 |
|---|---|---|
| 批次标识 | 发券批次名称、发券原因、提交人、发券时间 | 必填;用于追溯一次线下取数与发券执行 |
| 名单凭证 | 线下取数需求标识、取数时间、名单版本、名单条数 | 必填;证明冻结名单来源,不记录 SQL 内容 |
| 发券对象 | 用户标识、订单标识 | 冻结名单必填;每条只对应一笔未结清订单 |
| 券型范围 | 券类型、国家、产品 | 固定为还款抵扣金、Nigeria、KasyKredit;不可修改 |
| 权益规则 | 最高可赚金额、币种、奖励日利率 | 必填;币种固定 NGN,金额和日利率随批次快照固化 |
| 生效规则 | 生效时间、可赚取截止时间 | 必填;截止时间不得早于生效时间 |
| 逾期规则 | 逾期后停止赚取,已赚金额保留至最终结清 | 固定本期规则,不作为批次可选项 |
| 使用规则 | 最终结清自动抵扣、抵扣范围 | 固定为抵扣全部应还项;不新增券级抵扣优先级,沿用现有结清清分规则 |
| 叠加规则 | 同订单有效券数量 | 固定为最多一张还款抵扣金;不可叠加 |
| 名单结果 | 校验通过/失败、失败原因、发券结果 | 由受控任务产出并留痕;失败或重试不得重复发券 |
缺少必填字段、金额或日利率不合法、生效时间矛盾、名单凭证不完整或券型不为本期还款抵扣金时,受控任务不得发券。
5. 定向发券与规则快照
运营完成线下 SQL 取数并冻结订单名单
→ 提交发券配置、名单凭证和冻结名单
→ 受控任务校验配置完整性与名单有效性
→ 校验订单资格、重复和冲突有效券
→ 创建订单绑定券及规则快照
→ 写入发放账本和批次结果
→ 券进入待生效或待赚取发券时必须同时满足:发券配置完整、券类型为本期还款抵扣金、冻结名单有效、订单仍属于 Nigeria KasyKredit 且未结清、订单处于允许状态、同一发券配置 + 用户 + 订单未成功发放,且订单不存在冲突有效券。
一期同一订单最多一张有效还款抵扣金,不支持叠加。每张券保存发券时的批次、名单凭证、金额上限、日利率、生效/失效规则、抵扣范围和叠加规则快照;线下名单或后续规则变更不得直接改写快照。需要改变已发权益时,必须通过作废、补发或调整新增可追溯结果。
6. 使用、核销与异常通用规则(还款抵扣金不生效)
- 用户发起支付并命中使用条件时,先生成使用锁定记录;只有支付及账务结果确认成功后才写入最终核销记录。
- 失败、取消、处理中、超时或未取得可信结算结果的支付不得核销;已锁定权益须释放且可再次按原规则使用。
- 同一业务结果的重复通知、重试或并发处理必须返回既有发券、奖励、使用或核销结果,不得重复创建记录或超额优惠。
- 核销金额永不超过该券可用金额和对应可抵扣应还金额;各券型的抵扣范围与顺序以券规则快照为准。
- 客户通知如后续接入,应与发券账本解耦;通知失败不得导致重复发券或改变券有效性。
| 场景 | 处理结果 |
|---|---|
| 配置缺失、类型未启用或规则冲突 | 不发券,保存校验原因 |
| 名单重复或订单不合格 | 该目标不发券,保留批次失败原因 |
| 重复导入、重复触发或重复回调 | 返回原处理结果,不新增券或账本流水 |
| 同订单已有有效券 | 按不叠加规则拒绝新增并记录原因 |
| 支付失败/取消/超时 | 不核销;如已锁定则释放 |
| 订单取消、退款、冲正或风控处置 | 按处置结果失效、作废或新增冲正记录 |
| 人工调整 | 留存原因、操作者、时间、调整前后金额及关联凭证 |
7. 还款抵扣金专属规则
还款抵扣金的券面额为单张券的累计最高可赚金额,不是发券到账金额,也不是即时减免。仅当一笔还款已确认成功、成功日期早于该笔对应到期日且存在有效还款金额时,才产生奖励:
提前天数 = 到期日 - 成功还款日期
奖励基数 = 本次还款金额(不扣除本次交易产生的还款抵扣金)
本次理论奖励 = 提前天数 × 奖励基数 × 奖励日利率
本次实际入账 = min(本次理论奖励, 最高可赚金额 - 已累计赚取金额)- 奖励基数为还款账务确认的本次还款总金额,覆盖该笔还款实际结算的应还项;不得以抵扣后的现金实付金额或页面预估金额作为基数。
- 本次交易产生的抵扣金不从其自身奖励基数中扣除,避免“抵扣金额改变奖励金额”的循环;此前已赚抵扣金的使用不改变该笔结算前还款金额。
- 到期日当天及之后、失败、取消或处理中还款不产生奖励;同日拆分不得使同额还款金额获得额外奖励。
- 金额精度、舍入、时区、日切、到期日及成功还款金额均以还款/账务可信结果为准。
- 每笔成功还款最多对应一笔奖励入账;流水记录关联还款、计算口径、入账前后累计金额和处理时间。
- 最终结清时,自动使用全部可用已赚金额抵扣全部应还项;实际核销不超过最终结清前应还金额。
- 未赚部分不补发、不折现;订单结清、失效或作废后的处理按已发券快照执行。
7.1 单期订单与最后一期提前还
- 单期订单或最后一期在到期日前一次结清时,该笔结清还款同样参与奖励计算;不得因没有此前还款记录而排除奖励。
- 支付确认页按结清前还款金额预估本次奖励,并展示“本次奖励将在支付成功后自动抵扣”。支付成功后,先写入本次奖励,再将此前已赚金额与本次奖励一并核销;券可由
待赚取或赚取中直接转为已核销。 - 支付失败、取消、超时或未取得可信成功结果时,不写入本次奖励、不核销任何抵扣金,并释放本次结清期间的锁定金额。
- 单笔结清若覆盖多笔未来还款计划,应按每笔计划各自到期日分别计算提前天数和奖励后汇总;仅提前偿还最后一期时,只按最后一期的到期日和该笔结算前还款金额计算。
7.2 统一计算示例
以下示例假设奖励日利率为 0.1%、券剩余额度充足,且本次还款均已成功。金额均为结算前还款金额。
| 场景 | 计算 | 奖励与核销结果 |
|---|---|---|
| 单期订单提前结清 | 应还 ₦10,000,9 月 6 日支付,9 月 11 日到期:5 × 10,000 × 0.1% = ₦50 | 本次赚取 ₦50;支付成功后同笔自动核销,实际支付 ₦9,950 |
| 多期订单,仅提前还第 1 期 | 第 1 期应还 ₦4,000,10 月 1 日支付,10 月 11 日到期:10 × 4,000 × 0.1% = ₦40 | 本次支付 ₦4,000,券累计赚取 ₦40,留待最终结清使用 |
| 多期订单,仅提前还最后一期 | 此前已赚 ₦40;最后一期应还 ₦3,000,12 月 20 日支付,12 月 31 日到期:11 × 3,000 × 0.1% = ₦33 | 成功后总可抵扣 40 + 33 = ₦73,实际支付 ₦2,927 |
| 一次结清多个未来期 | 10 月 1 日结清:第 1 期 ₦4,000、10 月 11 日到期;第 2 期 ₦5,000、11 月 1 日到期 | 分别奖励 ₦40 和 ₦155,合计 ₦195;结清前应还 ₦9,000,实际支付 ₦8,805 |
| 到期日当天结清 | 应还 ₦4,000,10 月 11 日到期且当天支付 | 提前天数为 0,不新增奖励;此前已赚金额仍可在结清时抵扣 |
| 已逾期后结清 | 已逾期,之前已赚 ₦40,本次结清前应还 ₦3,000 | 逾期后不新增奖励;仅核销此前已赚 ₦40,实际支付 ₦2,960 |
| 同日拆分还款 | 同一天将 ₦4,000 拆成四笔各 ₦1,000,均距到期日 10 天 | 总奖励仍为 10 × 4,000 × 0.1% = ₦40,拆分不增加奖励 |
8. 框架验收标准
- 本期不提供策略配置、名单筛选、名单导入或查询后台;未来三类券不可配置、发券或展示。
- 发券配置、名单凭证、批次、券实例、规则快照、使用、核销、账本和审计记录可完整关联追溯。
- 配置缺失或失效、无效名单、重复名单、不合格订单、重复发券和冲突有效券均不能产生重复权益,并保留失败原因。
- 已发券规则快照不随线下名单或后续规则调整变化;同订单始终最多一张有效还款抵扣金。
- 成功提前还款才按结算前还款金额累计奖励,累计不超过上限;到期日当天及之后、失败、取消和处理中不入账。
- 支付成功才核销,失败或取消会释放锁定;重复或并发处理不得重复发券、入账、核销或超额抵扣。
- 结清自动核销不超过可抵扣应还金额;失效、作废、退款、冲正和人工调整均保留不可变流水。