本体协作平台
M 2 · DOC-2026-009 · extracted

05-灵活还款

原文 · 99 段(高亮 = 已被卡片引用)
p1# 05 · 灵活还款(Repayment)
p2> 初稿 · 事实来源 = SDK 代码仓 `ifes-resm` + `AGENTS.md`。费率/比例以最新 PRD/PM 为准。 > 业务规则增补 = 源 PRD 查实(月最低还款以《月最低还款额二期 0119》为准,旧《1225》冲突时作废;逾期重组《逾期重组UI交互说明 0716》;逾期重组预付门槛/引导页以 `ifes-resm/docs/prd/restructure-prepay/PRD.md` release/Jalak_2606_Phase2 为准;逾期重组 DPD 窗口/日终维护窗口/金额口径以 feature/K-S-2607(2026-07-06~14,维护窗口有独立 PRD `docs/prd/K-S-2607-restructure-maintenance-window/PRD.md`)为准;展期入口《新增展期入口 1230》;费率《RIPLAY PayLater - New 2025-05》)。Flex code 位段口径以 [R1 业务码位段速查表](../参考/R1-业务码位段速查表.md) 为准。
p3## 模块定位
p4PayLater 的还款能力,覆盖从"正常全额"到"各种减压方式":正常还款、提前还款、月最低还款、账单分期、逾期重组、借新还旧(重协商)。多数能力由 **flexCode 位 + 后台 switch** 双门控。
p5## 业务视角:一笔还款是怎么发生的
p6> 本节用产品语言描述业务全貌;每条规则的代码证据见 PRD 口径各节与下方 D 节。
p7### 还款方式全景:一条"减压梯度"
p8六种还款方式本质是**给不同还款能力的用户递进的减压选项**,从"全还"到"重组"压力递减、代价递增:
p9| 梯度 | 方式 | 一句话 | 给谁 | |---|---|---|---| | 0 | **全额/部分还款** | 还清或还一部分当期账单(允许部分还款)| 所有人 | | 1 | **提前还款(结清借据)** | 一次结清整笔借据 = 剩余本金 + 利息 + 违约金 + 月费 | 想省后续月费的人 | | 2 | **月最低还款** | 本月只还最小额,剩余自动转成下月起的新借据(**免服务费**)| 当月手紧的人 | | 3 | **账单分期** | 当期全额"结清"+ 同时生成新借据按月还(本月不还、下月起,收服务费)| 想推迟的人 | | 4 | **转分期(展期)** | 把一笔已有借据摊成更多期(收费),见 [06](06-转分期.md) | 单笔月供压力大的人 | | 5 | **逾期重组** | 多笔借据合并成一笔更长期新贷、降月供;逾期入口免管理费与罚息 | 已逾期/风险名单用户 | | 5+ | **借新还旧(重协商)** | 后台直接给协商减免方案(本金/费用/罚息按比例减),用户接受后按新计划还 | 深度逾期协商户 |
p10### 用户旅程(账单还款主线)
p111. **从账单进入**:账单页点「Repay this bill」,应还金额自动带入还款页。系统按用户身份分流——**Y001(LimitUp)用户和提前结清走简版还款页**(只有一个金额框);**普通用户走常规还款页**,看到"全额卡 + 最低还款卡"并排(最低卡只在资格命中且金额达门槛时出现)。 2. **决定还多少**:全额卡金额可编辑,**允许部分还款**;校验只有两条——不能超过应还、不能超过钱包余额。若用户输的金额 ≥ 最低还款额但又不是全额,系统会**弹窗建议"试试最低还款"**(首次触发一次)。 3. **确认**:PIN 验证(IM3/BIMA 渠道走专用 OTP)→ 从 Allo Wallet 钱包扣款(还款方式只有钱包代扣一种)。 4. **等结果**:轮询确认,成功/处理中/失败三态。 5. **Y001 的即时激励**(关键体验设计):还款成功那一刻,系统并发查询三路奖励——**质押杠杆率变化、还款提额奖励、活跃还款 bonus**——凑齐后在成功页直接展示"你的额度涨了多少",把还款行为和额度成长闭环在同一屏。这是 LimitUp"还款提额"心智的核心触点。
p12### 业务规则速览
p13| 维度 | 规则(产品口径) | |---|---| | 还款方式 | 仅 Allo Wallet 钱包代扣(`REPAY_TYPE=VA`),无其他渠道 | | 部分还款 | 允许;上限 = min(应还, 钱包余额),无最低限制 | | 最低还款资格 | flexCode 第3位 + 开关 + 应还≥门槛(默认500K) + 最低额<账单余额;**已部分还款则禁用** | | 最低 vs 分期 | 最低还款**免服务费**、剩余转下月新借据;账单分期**收服务费**、当期结清+新借据下月起 | | 借新还旧新借据 | 均走定价引擎试算(BIZ_SCENE 区分 MINI_REPAY/JXHJ/MULTI_SETTLE/OVERDUE_RESTRUCTURE 四场景)| | 重组门槛 | ≥2 笔、≤10 笔可重组借据;确认后不可变更;DPD [30,90] + 维护窗口拦截(见 K-S-2607 节)| | 协商方案 | 后台下发(无/未生效/已生效三态);未生效弹窗选方案确认,生效后按月用普通还款还 | | 合规 | 最低还款/分期/重组的新借据均出 RIPLAY 合同并随单存档合同版本 |
p14### 经营与体验关注点(供产品/运营决策)
p15- **Y001 还款即时激励是行为闭环的关键**:奖励查询是轮询拼装的(最多等 4 秒),查不到就不展示——激励的"即时性"依赖后端调额引擎的处理速度,慢了这个心智触点就丢了。 - **「Try minimum」弹窗是最低还款的导流器**:只在"金额≥最低额且≠全额"时弹一次,是唯一的主动交叉引导。 - **还款全链路无 GPS 上报、成功后无对外事件上报**(与取现形成对比)——若经营侧要做还款成功的外部触达/归因,目前无数据出口。 - **预付-重组的断点体验**:预付还款成功页直接给「Restructure my plan now」按钮续到重组,断点被产品化衔接;但预付状态接口仍是占位(OQ-006 未注册),上线依赖后端落地。
p16> **月最低还款与账单分期是两个相互独立的功能** —《月最低还款额二期 0119》: > - 一期功能(账单分期)= 自动借新还旧并分期至**最长期限**,定位"账单分期"; > - 二期功能(月最低还款)= 真正意义上的月最低还款,借新还旧借据**默认 1 期(可配 N 期)**,定位"月最低还款"。 > > 两者均由"风险名单配置(是否对客展示)+ 全局功能开关(是否启用,关则全员隐藏入口)"双重控制;**正常用户与逾期用户均可使用**。控制方式从原先的 Market code 改为新增 **Flex code 大字段**(不再依赖 Market code 控制新还款方式的展示)。Flex code 共 50 位,初始化值 `000099009900000000000000000000`,可由营销系统 + PPLM 批量/实时刷新指定用户的该字段。— 《月最低还款额二期 0119》
p17## 路由分流(`utils/view.js#viewPayLaterRepayment`)
p18- `Y001`(LimitUp) → `PAY_LATER_SERVICE_REPAYMENT`(**基础还款页**,无最小还款卡) - **`EARLY_REPAYMENT`(提前还款)同样走基础还款页** `PAY_LATER_SERVICE_REPAYMENT`(`utils/view.js:132-139`)——除 Y001 外,提前还款入口也分流到基础页。 - 其余(非 Y001、非提前还款)→ `PAY_LATER_SERVICE_REPAYMENT_REGULAR`(**常规还款页**,有最小还款卡)
p19另有 `preselectMinimum` 三段链路把"从首页最小还款入口进入"的状态一路带到常规页并自动预选最小还款(`home/Index.vue:1190-1198` → `utils/view.js:128-130` → `repayment/regular/Index.vue:450-457`)。
p20## 核心能力
p21| 能力 | 入口/门槛 | 说明 | |---|---|---| | **正常还款(全额/部分)** | 两个还款页都支持;`coreTransApplyRepay`(TXN=BillRepay, REPAY_TYPE=VA)→ 轮询结果 | 输入金额 ≤ 余额 & ≤ 应还 → 密码 → 结果。Y001 成功后做额度重算 | | **提前还款(结清借据)** | `type=IOURepay` + `receiptId`;拉 `coreTransQueryPayOffInfo` | 结清剩余本金 + 利息 + 提前还款违约金 + 月管理费;按字段拆行展示 | | **月最低还款** | 常规页最小卡;门槛 `isMinimumRepaymentAllow`:flexCode第3位=1 + `minimumRepaymentSwitch=Y` + 应还≥`minimumRepaymentMinAmount` + 最小额<账单余额 | 本月只还最小额(本金+利息),**剩余转成下月起的新借据**,免服务费;`HAS_REPAY=Y` 时禁用。本轮 UI 优化对象(见独立 PRD)| | **账单分期** | `PAY_LATER_SERVICE_REPAYMENT_INSTALLMENT`;门槛 `repayByInstallmentSwitch=Y`(+ flexCode第1位)| 本月全额结清当期 + 同时生成新借据按期还("本月不还,下月起");账单分期走 `coreTransTryLoan` 试算、入参 `LOAN_CODE='9022', TXN_CODE=AUTH_LOAN_CASH, BIZ_SCENE='JXHJ'`(`installment/Index.vue:144-152`),`.
p22then` 消费 `LOAN_LIST` 渲染分期计划,与月最低还款 `BIZ_SCENE=MINI_REPAY` 成对| | **逾期重组** | `PAY_LATER_SERVICE_ADJUST_REPAYMENT_PLAN`;门槛 `isAdjustRepayAllow`:flexCode第19位∈{1,2} + `loanRestructuringSwitch=Y`;逾期下**额外**叠加后台 `loanRestructuringOverdueSwitch` carve-out(见下注)**+ 账户逾期天数落在 DPD 窗口 [30,90]**(K-S-2607,见下方增强小节);首页入口在**日终维护窗口 23:30–24:00(服务端时间)内被拦截**;命中预付门槛时先走预付引导/还款 | 选≥2笔可重组借据(≤10笔)合并成一笔更长期限的新贷,降月供;逾期入口免 admin+罚息(`feeWaivedAmt`);预付门槛场景强调"先还一笔,再设置新还款计划",重组不会自动完成 | | **借新还旧 / 重协商** | 后台给出协商还款方案(`negotiateRepaymentPlanQuery`,`promiseResult` 状态)| 针对逾期/有压力账单,后台提供协商分期方案、用户接受后按新计划偿还 |
p23## 月最低还款:计算口径与配置(PRD 查实)
p24> 源:《月最低还款额二期 0119》。Flex code 位段引用以 [R1 表](../参考/R1-业务码位段速查表.md) 为准。
p25**门槛**:账单金额需 ≥ 最小门槛,默认 **500K**,门槛金额可配置;低于门槛不支持月最低还款。— 《月最低还款额二期 0119》
p26**核心系统月最低还款额计算规则**:
p27> 月最低还款额 = `X% 指定期数借据本金` + `其他期数借据当期应还本金` + `X% 当期应还利息` + `额外功能服务费(如有)` + `逾期罚息(如有)`
p28逐项口径(均《月最低还款额二期 0119》):
p29- **X% 指定期数借据本金**:默认 **10%**,默认适用 **1 期及 3 期**借据(即仅还当期账单里 1 期 / 3 期借据出账本金的 10%);比例与适用期数均可配置。 - **其他期数借据当期应还本金**:除指定期数外的其余借据,当期应还本金全额计入。(旧《1225》写"剩余期数借据",0119 改为"其他期数借据",以 0119 为准。) - **X% 当期应还利息**:默认 **100%** 应还,可配置 0%–100%。**此处"利息"含全部应收 fee(admin fee + service fee)**。— 《月最低还款额二期 0119(1.14 更新)》(旧《1225》未明确利息含 fee) - **额外功能服务费(如有)**:月最低还款功能可配置额外功能服务费,金额可配(固定值,或为本次最低还款借新还旧金额的 X%)。 - **逾期罚息(如有)**:逾期账户的罚息计入。
p30对客呈现:最终金额按上式合计;展开后分行展示应还本金总额、应还利息总额,并提示剩余应还金额在下个月需支付的金额(即借新还旧 1 期借据首月还款额)。— 《月最低还款额二期 0119》
p31月最低还款 info 弹窗里的"功能服务费行"在前端被注释屏蔽(`repayment/regular/Index.vue:611-615`),当前版本不向客户展示该行。PRD 0119 列出的"功能服务费(如有)"参与后台计算口径,但前端弹窗不渲染此明细行——若需对客展示,须解除注释。
p32**借新还旧借据**:默认 **1 期**,可配置 N 期;新借据为**取现借据**。借新还旧实际通过 `coreTransTryLoan` 试算、入参 `BIZ_SCENE=MINI_REPAY, LOAN_CODE=9022` 发起(`repayment/regular/Index.vue:497-505`)。头息与月费由后台定价引擎输出。
p33期数由后台 `coreTransTryLoan` 试算返回:可选期数与默认预选项均由后台返回的试算结果驱动(与转分期、支付分期同一套"档位由后台返回"的模式),前端不读 Flex 第 13–16 位。PRD 0119 虽描述用 Flex 第 13–14 位(新借据最大期数)、第 15–16 位(最小期数)判断期数选项,但该口径属后台语义,Flex 位段语义见 [R1 表](../参考/R1-业务码位段速查表.md)。
p34**砍头息(头息)配置**:Flex code **第 17 位**为新借据头息率,取值 0–9 对应 0%–9%。判断当前可用额度是否覆盖剩余应还时需加上头息,即 `当前可用额度 ≥ 剩余应还账单金额 × (1 + 头息费率)`。— 《月最低还款额二期 0119》+[R1 表](../参考/R1-业务码位段速查表.md) Flex 第 17 位 > 注:旧《1225》将砍头息写在"第 15 位",0119 改为第 17 位,与 R1 表 Flex 第 17 位一致,以 0119 / R1 表为准。
p35**额度恢复与 Flex code 下标**:还款交易完成后调用实时调额引擎,系统先调升、后调降两次调用,自动将客户额度恢复至之前的取现额度;额度恢复完成后实时调额引擎自动对 Flex code 下标(结清当期账单后由实时调额引擎判断是否更新 Flex code)。— 《月最低还款额二期 0119》
p36**资金放款顺序**:借新还旧资金可先放款至个人钱包户,再从个人钱包户执行还款划扣。— 《月最低还款额二期 0119》
p37### 异常与置灰口径(月最低还款)
p38- **部分还款后置灰**:若用户已针对账单**部分还款**,则月最低还款功能**不可用,置灰并给出不可用原因提示**。— 《月最低还款额二期 0119(1.14 更新)》 - 选择全额还款时,若支付金额 ≥ 最低还款金额且 ≠ 账单金额,则在最低还款金额下出现对应提示。 - 钱包余额不足 → 引导充值。 - 月最低还款失败 → 引导用户重新发起。 - 最小还款额已入账但后台未自动还清剩余待还 → 提示用户将本期剩余待还结清。 - 新取现 / 提额被风险拒绝(兜底)话术:「经评估,您暂时不能使用最小还款功能,需全额还款,如您想继续申请开通此功能,请联系客服。」 - **Limit up(Y001)用户默认隐藏此功能**(与代码版路由分流一致:Y001 走基础还款页,无最小卡)。 — 《月最低还款额二期 0119》
p39### 首页最小还款入口:门控与链路(代码现况)
p40PRD 之外,前端在首页对"月最低还款入口"做了完整门控,函数为 `isMinimumRepaymentEntryVisible`(`home/Index.vue:810-821`)。需**同时满足**以下条件入口才可见:
p41- 非 Y001(LimitUp)用户; - 账单**已出账且未逾期**; - flexCode **第 3 位** 命中(月最低还款可用位); - 后台开关 `minimumRepaymentSwitch` 开启; - 应还金额 ≥ 最小还款门槛 `minimumRepaymentMinAmount`。
p42入口点击后通过前述 `preselectMinimum` 三段链路(`home/Index.vue:1190-1198` → `utils/view.js:128-130` → `repayment/regular/Index.vue:450-457`)进入常规还款页并自动预选最小还款。
p43借新还旧通过 `coreTransTryLoan`、`BIZ_SCENE=MINI_REPAY, LOAN_CODE=9022` 发起(`repayment/regular/Index.vue:497-505`)。
p44**埋点**:还款相关 `REPAYMENT.*` 埋点已在 `stats/creditline.js:1571-1597` 接线。注意区分:**首页最小还款入口的点击埋点事件是 `CREDITLINE_MIN_REPAY_CLICK`,并非 `REPAYMENT.*`**——后者覆盖还款页内动作,首页入口走前者,勿混。
p45## 逾期重组:计算口径与流程(PRD 查实)
p46> 源:《逾期重组UI交互说明 0716》。
p47逾期重组名单与方案由**风险上传**(风险上传的名单 + 方案)。首页判断用户是否为"已确认逾期重组用户且有对应逾期方案",是则展示"新还款计划"入口。
p48**重组后应还总额计算**:
p49> 新还款计划应还金额 = `剩余未还本金 × (1 − 本金减免比例)` + `剩余未还利息及罚息 × (1 − 利息及罚息减免比例)`
p50流程与规则(均《逾期重组UI交互说明 0716》):
p51- 点击入口弹窗展示:当前剩余未还金额、重组后应还总额、可选期数(从小到大排列,默认选最小一期),每期应还 = 重组后应还总额 ÷ 选择期数。 - **确认重组方案后不可再变更**,除非风险重新针对该用户上传新的重组计划;**每个重组计划只能被选择一次期数方案**。 - 新还款计划页展示:当前剩余未还金额、重组后应还总额,以及距离逾期重组计划里**最近一个月账单的最后还款日**。 - 还款计划按重组期数分期,**首期 = 逾期重组计划里最近一个月账单的最后还款日**,以此类推;每期应还 = 重组后剩余未还金额 ÷ 重组期数。 - 点击 repay now 进入还款页,每月还款金额作为默认值带入。
p52### 逾期重组预付门槛与引导页(Jalak_2606 Phase2)
p53> 源:`ifes-resm/docs/prd/restructure-prepay/PRD.md`,release 分支 `release/Jalak_2606_Phase2`,提交 `f4c5ff4`(2026-06-27)。
p54命中逾期重组预付门槛时,用户不会直接进入正式重组页,而是先进入预付引导过渡页,讲清"为什么先付 + 付完能得到什么",再引导去预付还款。产品口径如下:
p55- **核心利益表达**:`Combine all loans into easier installments`,副文案强调 `This plan covers all your loans, not only the overdue bill.` 即重组方案覆盖全部贷款,不只是逾期账单。 - **两步流程**: 1. `Repay Rp200k first` / `As well as waiving all fees for your loans.` 2. `Setting new repayment plan` / `Combine all loans into easier installment.` - **重组非自动完成**:预付只是解锁/推进新还款计划;支付后仍需进入正式重组流程设置新计划。 - **For example 对照区**:展示 `Remaining total amount` → `New repayment plan`,数据与正式重组页同源: - `Remaining total amount` = **剩余应还总额 `ACCT_SUM_PAID_OUT`(本金+利息+罚息+费用,Personal Center call #2)**——K-S-2607 修正(2026-07-07,MR !158):原 Phase2 实现取剩余本金 `accountPrinAmt`(`ACCT_PRIN_PAID_OUT`),只改展示值,重组试算 `coreTransTryLoan` 的 `AMOUNT` 仍用剩余本金; - `New repayment plan` = `coreTransTryLoan` 返回方案,默认展示最长期(月供最低),格式 `RpY x Nmonths`; - 框内提示 `You can freely choose your tenor.`,说明期数可自由选择。 - **视觉口径**:引导页使用 3D 文档 + 循环图标 `src/assets/images/pay-later/home/restructure-prepay.png`;标题中等字重,不加粗。
p56预付还款页复用现有还款页,只在 `restructurePrepay=1` 预付路径下定制,普通还款零影响:
p57- 导航标题:`Repay first`; - 顶部提示:`One step from your new plan` / `After this payment, set up your new repayment plan.`; - 卡片文案:`First repayment` / `Pay this to combine all loans into easier installments.` / `Amount to repay`; - 金额锁定为门槛额,隐藏 Edit,不可改; - 底部按钮:`Repay`; - 预付路径底部固定栏加大安全间距,避免按钮贴底。
p58### 逾期重组 K-S-2607 增强(2026-07):DPD 窗口、维护窗口与口径修正
p59> 源:feature/K-S-2607 分支(2026-07-06~14);维护窗口有独立 PRD `ifes-resm/docs/prd/K-S-2607-restructure-maintenance-window/PRD.md`(2026-07-14);其余以 MR !153/!158/!159/!161/!162 提交为源。
p60**① DPD 窗口门控 [30,90]**(2026-07-06,MR !153):逾期重组入口在原有门槛之上再叠加**账户级逾期天数窗口**——`accountInfo.overdueDays`(后端 `OVERDUE_DAYS`)须落在 `[restructureOverdueMinDpd, restructureOverdueMaxDpd]`(**双闭区间**,前端默认 30/90,边界后台可配,见[后台开关与配置项](../参考/R6-后台开关与配置项.md))。要点:
p61- **作用范围**:首页逾期重组入口 + 预付(`home/Index.vue`)、账期页 SIKLUS TAGIHAN 的 Adjust Repayment Plan 单元格(`bill/OverDues.vue`);**只 gate 逾期分支**,非逾期的转分期路径不受影响(`isOverDue=false` 时窗口判断恒过)。 - **缺失即隐藏(fail-closed)**:`OVERDUE_DAYS` 缺失时 `Number(undefined)=NaN` → 两个比较都不成立 → 入口隐藏,属有意为之。
p62**② 日终维护窗口拦截 23:30–24:00**(2026-07-14,独立 PRD):核心系统日终批处理窗口内逾期重组交易必失败,故前端在入口处拦截:
p63- **窗口**:`[23:30, 24:00)` **服务端时间**,含头不含尾,不支持跨午夜;边界可由后台 `restructureMaintenanceStartTime/EndTime`(`HHmm` 字符串)免发版调整,前端默认 `'2330'/'2400'`。 - **服务端时间来源**:app 启动时从 ifes-ams `getCommonPage` 下发的 `currentServerTime`(`DD/MM/YYYY HH:mm:ss`)算一次时钟偏移;字段缺失/不可解析时偏移=0 退化为设备时间(**fail-open**,后端交易层仍是窗口内的硬拦截)。 - **交互**:窗口内点入口弹底部弹窗(红 X,标题 `The function is not available` / `Menu tidak tersedia`,副文案"系统维护请明天再试",按钮 `Got it`,点遮罩也可关),**不发生任何跳转**;窗口外正常路由 `new-loan?source=overdue`。 - **作用范围(刻意收窄)**:仅首页两个逾期重组入口(逾期 banner 的 Adjust CTA + Adjust Repayment Plan 菜单格,共用 `onAdjustRepayClicked`);**非逾期 Adjust 流程与账单页入口不在本期范围**。 - **回滚**:后台把窗口推成 start ≥ end(如都 `'0000'`)即永不命中,免发版。 - **边界验证**:23:29:59 放行 / 23:30:00 拦 / 23:59:59 拦 / 00:00:00 放行。
p64**③ 金额与路由口径修正**(2026-07-07~08,MR !158/!159/!161/!162):
p65| 修正点 | 修正前 → 修正后 | |---|---| | 逾期次数 >1 的 Adjust CTA | 逾期重组 banner 被 `overdueTimes` 计数分支挡掉、多次逾期用户看不到 CTA → banner 提到分支之上,`overdueTimes>1` 也正常展示 | | 账单页入口漏过预付门槛 | SIKLUS TAGIHAN(`bill/OverDues.vue`)与 DETAIL TAGIHAN(`bill/components/BillCard.vue`)的 Adjust CTA 直接推 NewLoan、绕过首页强制的预付步骤 → 与首页同款走 `needRestructurePrepay` → PrepayIntro | | PrepayIntro「Remaining total amount」 | 展示剩余**本金** `ACCT_PRIN_PAID_OUT` → 展示剩余**应还总额** `ACCT_SUM_PAID_OUT`(本金+利息+罚息+费用);试算 `AMOUNT` 不变仍用剩余本金 | | 逾期直入重组的提交本金 | `LOAN_INIT_PRIN` 取试算回显值 → 改取精确剩余本金 `ACCT_PRIN_PAID_OUT`(residualPrincipal),与展示金额、试算入参三者对齐;MULTI_SETTLE 分支不变 | | 重组失败 Try Again 路由 | 一律回多借据选择页(adjust-repayment-plan)→ 逾期直入用户回 `NewLoan?source=overdue`(与入口一致) |
p66**预付门槛判定来源同步换轨**(revision #4):预付 gate 的输入改从专用 AMS 预付状态读接口(`payLaterRepayment.restructurePrepayStatus`)取,**不再来自 negotiate**;命中 = 总开关 `restructurePrepaySwitch='Y'` 且 `prepayRequired='Y'` 且 `prepayStatus≠'PAID'`(PENDING/VERIFYING 均拦);开关关/接口缺失 = 不设门槛直接放行。
p67## 展期入口(PRD 查实)
p68> 源:《新增展期入口 1230》。
p69当白名单用户**当期账单金额 = 0 或账单已还清**、且**下一个未出账单金额 > 0** 时,模块展示下个未出账的账单金额,并在此模块下新增**展期入口**,点击进入现有展期流程;其他账单状态按原有展示。 例:1 月 15 日支用一笔 3 期借据(出账日 2 月 1 日),1 月 15–30 日属当期无账单且下月有未出账金额 → 展示入口;2 月 1 日结清当期后、3 月账单未出账 → 同样展示。— 《新增展期入口 1230》
p70> **口径统一(与 06 转分期同源)**:此处的"展期入口"与 [06 转分期](06-转分期.md) 底层是**同一个 EXTENSION(展期)能力**——转分期走 `TXN_CODE=EXTENSION` / `TRANSACTION_TYPE='EX'`(`service/convert/Select.vue:206`、`service/convert/List.vue:84`)。本篇展期入口是"账单当期为 0、下月有未出账"时在还款模块内进入既有展期流程;06 篇是"主动把已有借据摊期"的独立入口。两个入口复用同一笔后台交易,两篇口径据此统一。
p71## 提前还款费率(RIPLAY 查实)
p72- **PayLater 提前还款费(Biaya Pelunasan dipercepat)= 提前结清金额的 8%**。— 《RIPLAY PayLater - New 2025-05》 - 逾期费(Biaya Keterlambatan)= 逾期账单金额的 **0.3%/日**;账单到期日为每月 **10 日**。— 同上 - Instant Cash 的提前还款费为 **10%**(与 PayLater 的 8% 不同),口径以 Instant Cash 对应 RIPLAY 为准;本篇仅就 PayLater RIPLAY 注明 8%,[03 取现](03-取现与Instant-Cash.md) 注明 Instant Cash 10%。
p73## 关键字段与门槛
p74| 能力 | 门控 | |---|---| | 最小还款 | `flexCode[2]==='1'` + `minimumRepaymentSwitch='Y'` + 金额门槛 | | 账单分期 | `repayByInstallmentSwitch='Y'`(+ flexCode第1位)| | 逾期重组 | `flexCode.charAt(18)∈{'1','2'}` + `loanRestructuringSwitch='Y'` + 逾期 carve-out + **DPD∈[30,90](仅逾期分支,K-S-2607)**;首页入口另受维护窗口 23:30–24:00 拦截 |
p75> **逾期 carve-out**:逾期/非逾期一律读 Flex 第 19 位(`charAt(18)∈{1,2}`)配合 `loanRestructuringSwitch=Y` 判断;逾期场景在此之上**额外**叠加后台开关 `loanRestructuringOverdueSwitch` carve-out——`isAdjustRepayAllow`(`home/Index.vue:783-787`)先 `if(isOverDue && loanRestructuringOverdueSwitch==='N') return false`,再读位段 + `loanRestructuringSwitch`。该开关=N 时即便位段命中也禁用逾期入口,但它是叠加的 carve-out,不取代位段读取。K-S-2607 起逾期分支还要再过 DPD 窗口 [30,90](见上方增强小节)。Flex 位段后台口径见 [R1 表](../参考/R1-业务码位段速查表.md)。
p76- 最小还款信息:`MINI_REPAY_AMT / MINI_REPAY_PRINCIPAL_AMT / MINI_REPAY_INTEREST_AMT / STMT_BAL_AMT / HAS_REPAY`。 - 提前还款:`LOAN_PAID_OUT_PRIN/INT/PENALTY/VIOLATION/INST_HANDLE_FEE_AMT`。 - 各还款都接合同(RIPLAY)iframe + 密码验证(`COMMON_PASSWORD_VERIFY`)。
p77## D. 还款全链路编排(代码查实,2026-07-16)
p78> 源:`ifes-resm` 分支 `vibe-coding-case/K-S-2607-opt-20260710`。还款域专用接口 16 个(`constants/api.js`),核心页 `service/repayment/{Index,regular/Index,installment/*}.vue` + `service/adjust-repayment-plan/*`。
p79### D.1 两个还款页:差异清单
p80分流在 `utils/view.js:96-160`(isY001 或提前结清 → 基础页;否则 → 常规页):
p81| 维度 | 基础页 `repayment/Index.vue` | 常规页 `regular/Index.vue` | |---|---|---| | 面向 | Y001 / 提前结清 | 非 Y001 账单还款 | | 卡片 | 单金额框 | 全额卡 + 最低还款卡 | | 金额校验 | 允许部分;仅"≤应还、≤钱包余额"两条(`:201-212`)| 同左(`:405-410`)+「Try minimum」弹窗(金额≥最低且≠全额时首次弹,`:856-866`)| | 验证 | PIN(scene=OTHER,category 按提前结清区分);**IM3/BIMA 走 IOH OTP**(category=REPAYMENT)| PIN | | 提交 | `coreTransApplyRepay{TXN_CODE: BillRepay/IOURepay, REPAY_TYPE:'VA', TOT_AMOUNT, session, LOAN_LIST(仅结清带)}` | 全额同左(无 LOAN_LIST);最低走 `coreTransMinimumRepayApply` | | 轮询 | `coreTransQueryRepayResult{ORI_BIZ_SEQ_NO, ORI_MER_BIZ_NO}` 2s×8(Loading 15s)| 同接口(Loading 30s);最低还款走 `coreTransRepayInstallmentResult{FLOW_NO}` 2s×6 | | 成功页 | `COMMON_RESULT`(Y001 附奖励区)| 全额 `COMMON_RESULT` / 最低 `COMMON_RESULT_BILL_REPAY`(五态 status 1/2/3/5/6)| | Y001 奖励链 | 有(见 D.2)| 无 |
p82结果判定细节:轮询以 `REPAY_STATUS='S'` **且** `MARKET_CODE_HANDLE_STATUS='END'`(调额引擎处理完)为成功终态,PENDING 继续轮(`repayment/Index.vue:570-609`)。
p83### D.2 Y001 还款成功奖励链(`repayment/Index.vue:636-762`)
p84成功后 `Promise.all` 并发三路,凑齐后随成功页展示:
p851. **杠杆变化**:仅 `MARKET_CODE_HANDLE_STATUS='END'` 时调 `coreTransFlexibleLimitPledgeLeverageLimitInfo{marketCode: NEW_MARKET_CODE, originalMarketCode: ORI_MARKET_CODE}`——还款结果里直接带新旧 marketCode; 2. **还款提额奖励**:轮询 `coreTransFlexibleLimitHistory{BIZ_TYPE:'PayLaterRepayment'}` 1s×4,校验 `ADJ_TIME` 是当日且 `TRAN_AMT>0`; 3. **活跃还款 bonus**:同上 `BIZ_TYPE:'ActiveRepayment'`。
p86成功页可弹会员升级引导(→ `PAY_LATER_FLEXIBLE_LIMIT_MEMBER`)。
p87### D.3 提前结清与账单分期
p88- **提前结清**:`coreTransQueryPayOffInfo{REF_NBR_LIST}` 返回结清构成——本金 `LOAN_PAID_OUT_PRIN_AMT` / 利息 `LOAN_PAID_OUT_INT_AMT` / 罚息 `LOAN_PAID_OUT_PENALTY_AMT` / 违约金 `LOAN_PAID_OUT_VIOLATION_AMT` / 月费 `LOAN_PAID_OUT_INST_HANDLE_FEE_AMT`;金额锁死不可改,提交时整包随 `LOAN_LIST` 上送。 - **账单分期 vs 月最低还款**(同族对照):
p89| 维度 | 账单分期(JXHJ) | 月最低还款(MINI_REPAY) | |---|---|---| | 试算 | `BIZ_SCENE='JXHJ'`,AMOUNT=账单额 | `BIZ_SCENE='MINI_REPAY'`,**AMOUNT='0'**(额度由后端算)| | 提交 | `coreTransRepayInstallmentApply`(独立 Confirm 页 + RIPLAY + TnC)| `coreTransMinimumRepayApply`(常规页内联,额外带 `MINI_REPAY_AMT`)| | 服务费 | 收(展示 service fee)| **免**(卡上 no_service_fee 徽标)| | 结果 | 共用 `coreTransRepayInstallmentResult{FLOW_NO}` 轮询;`CODE=80530014`→轮询、`80530015`→在途态 | 同 | | 结果态 | FLOW_STATUS:PROC_SUCC 成功 / WAIT 处理中 / CASH_FAIL 放款失败 / REPAY_FAIL 还款失败(放款成功还款失败=「one more step」部分态)| 同 |
p90### D.4 逾期重组流程页编排
p91- **多借据选择页**(`adjust-repayment-plan/Index.vue`):`coreTransLoanRestructuringList{QUERY_LOAN_STATUS:'UN_PAID_OUT'}` 拉列表,按 `eligibleForRestructure='Y'` 分可选/不可选;**至少选 2 笔、至多 10 笔**(超限 toast);Combine 后带选中借据进新贷页。 - **新贷页两分支**(`NewLoan.vue`):
p92| | MULTI_SETTLE(多选合并) | OVERDUE_RESTRUCTURE(逾期直入 `source=overdue`)| |---|---|---| | 金额 | 选中借据本金合计 | 残余本金 `acctPrinPaidOut`(Personal Center call#2)| | 试算 BIZ_SCENE | `MULTI_SETTLE` | `OVERDUE_RESTRUCTURE` | | 提交接口 | `coreTransRepayInstallmentApply`(200029),带 `ORIG_STMT_BAL_AMT`+逐笔 `LOAN_LIST` | **专用 `coreTransOverdueRestructuringApply`(200037)**,`LOAN_LIST=null` | | 入口弹窗 | 无 | 逾期减免弹窗(`feeWaivedAmt` = 账户利息+罚息合计)|
p93- **结果页四态**(`AdjustRepaymentPlanResult`):成功(含重组前后账单对比)/ 处理中 / 失败(**Try Again**:逾期回 NewLoan、多选回选择页——K-S-2607 修正)/ **one-more-step**(新贷已放款但还款失败,引导去还款)。 - **预付回流闭环**:`needRestructurePrepay`(开关+`prepayRequired='Y'`+状态≠PAID)→ PrepayIntro → 预付还款走**常规还款页**(`restructurePrepay='1'` 定制文案)→ 成功时调 `restructurePrepaySettle`(带双流水)核销 → 成功页「Restructure my plan now」直接续到 `NewLoan?source=overdue`。预付状态四值 `PENDING/VERIFYING/PAID/EXPIRED`,VERIFYING 轮询 5s×12。**注:预付状态/结算两接口为占位(OQ-006 未注册),真实契约待后端**。
p94### D.5 借新还旧(negotiate 协商)
p95- 方案状态三值(`promiseResult`):`NO_PLAN` 无 / `UNACTIVE_PLAN` 未生效(首页入口卡 → 弹窗选方案)/ `ACTIVE_PLAN` 已生效(→ 方案详情页)。 - 接受方案 = `negotiateRepaymentPlanConfirm{promiseCode, version, term, reducePrinRatio, reduceFeeRatio, reducePenaltyRatio}`——**减免维度是本金/费用/罚息三个比例**;确认成功后的放款/换据交易在后端执行,SDK 不可见。 - 生效后每月还款**复用普通 BillRepay**(方案详情页 Repay 按钮带下期金额进还款页)。
p96### D.6 埋点与上报(还款段)
p97- stats 分区:`BILL_REPAYMENT` / `BILL_EARLY_REPAYMENT` / `REPAYMENT_INSTALLMENT` / `REPAYMENT`(常规页)/ `REPAYMENT_REGULAR`(结果态)/ `ADJUST_REPAYMENT_PLAN` / `NEGOTIATE_REPAYMENT_PLAN(_POPUP)`(`stats/creditline.js`)。 - 对外上报仅入口级:`VIEW_BILLING_CYCLE_PAGE`、`BILLING_CYCLE_REPAY_THIS_BILL_CLICK/NO_CLICK`、`BILLING_CYCLE_REPAY_NOW_CLICK/NO_CLICK`;**还款成功无对外上报、全链路无 GPS 上报**(与取现对比,grep 零命中)。
p98## 待确认
p99- "借新还旧/重协商"与"逾期重组"的产品边界:逾期重组由风险上传名单+方案、确认后不可变更(《0716》);月最低还款的借新还旧是用户自助分期(《0119》),二者口径不同,是否同一入口仍待 PM 厘清。 - 最小卡主文案用"protect your credit"(信用保护向),属信用承诺措辞,建议合规复核(见最小还款优化 PRD §合规)。 - Flex 第 7–8 位(最长可用期数)"本次不做"(《0119》明确);占用 Flex 新位须经"风险 + 产品确认"。
抽出的卡片 · 157
定义DOC-2026-009#p4pending_review

PayLater 的还款能力覆盖正常还款、提前还款、月最低还款、账单分期、逾期重组、借新还旧(重协商)等方式。

"PayLater 的还款能力,覆盖从"正常全额"到"各种减压方式":正常还款、提前还款、月最低还款、账单分期、逾期重组、借新还旧(重协商)。"

规则DOC-2026-009#p4pending_review

多数还款能力由 flexCode 位加后台 switch 双重门控。

"多数能力由 **flexCode 位 + 后台 switch** 双门控。"

定义DOC-2026-009#p9pending_review

全额/部分还款:还清或还一部分当期账单,允许部分还款,适用于所有人。

"**全额/部分还款** | 还清或还一部分当期账单(允许部分还款)| 所有人"

定义DOC-2026-009#p9pending_review

提前还款(结清借据):一次结清整笔借据,金额=剩余本金+利息+违约金+月费。

"**提前还款(结清借据)** | 一次结清整笔借据 = 剩余本金 + 利息 + 违约金 + 月费 | 想省后续月费的人"

定义DOC-2026-009#p9pending_review

月最低还款:本月只还最小额,剩余自动转成下月起的新借据,免服务费。

"**月最低还款** | 本月只还最小额,剩余自动转成下月起的新借据(**免服务费**)| 当月手紧的人"

定义DOC-2026-009#p9pending_review

账单分期:当期全额结清并同时生成新借据按月还,本月不还、下月起,收服务费。

"**账单分期** | 当期全额"结清"+ 同时生成新借据按月还(本月不还、下月起,收服务费)| 想推迟的人"

定义DOC-2026-009#p9pending_review

逾期重组:将多笔借据合并成一笔更长期新贷、降低月供,逾期入口免管理费与罚息,面向已逾期/风险名单用户。

"**逾期重组** | 多笔借据合并成一笔更长期新贷、降月供;逾期入口免管理费与罚息 | 已逾期/风险名单用户"

定义DOC-2026-009#p9pending_review

借新还旧(重协商):后台直接给出协商减免方案(本金/费用/罚息按比例减),用户接受后按新计划还,面向深度逾期协商户。

"**借新还旧(重协商)** | 后台直接给协商减免方案(本金/费用/罚息按比例减),用户接受后按新计划还 | 深度逾期协商户"

规则DOC-2026-009#p11pending_review

还款页按用户身份分流:Y001(LimitUp)用户和提前结清走简版还款页(只有一个金额框),普通用户走常规还款页。

"系统按用户身份分流——**Y001(LimitUp)用户和提前结清走简版还款页**(只有一个金额框);**普通用户走常规还款页**"

动作条件DOC-2026-009#p11pending_review

最低还款卡只在资格命中且金额达门槛时才出现。

"最低卡只在资格命中且金额达门槛时出现"

规则DOC-2026-009#p11pending_review

全额卡金额可编辑,允许部分还款;校验只有两条:不能超过应还、不能超过钱包余额。

"全额卡金额可编辑,**允许部分还款**;校验只有两条——不能超过应还、不能超过钱包余额。"

动作条件DOC-2026-009#p11pending_review

当用户输入金额≥最低还款额但不是全额时,系统弹窗建议"试试最低还款",仅首次触发一次。

"若用户输的金额 ≥ 最低还款额但又不是全额,系统会**弹窗建议"试试最低还款"**(首次触发一次)。"

流程步骤DOC-2026-009#p11pending_review

确认步骤:先 PIN 验证(IM3/BIMA 渠道走专用 OTP),再从 Allo Wallet 钱包扣款,还款方式只有钱包代扣一种。

"**确认**:PIN 验证(IM3/BIMA 渠道走专用 OTP)→ 从 Allo Wallet 钱包扣款(还款方式只有钱包代扣一种)。"

状态DOC-2026-009#p11pending_review

还款结果通过轮询确认,有成功、处理中、失败三态。

"**等结果**:轮询确认,成功/处理中/失败三态。"

动作条件DOC-2026-009#p11pending_review

Y001用户还款成功时,系统并发查询质押杠杆率变化、还款提额奖励、活跃还款bonus三路奖励,凑齐后在成功页展示额度增长。

"还款成功那一刻,系统并发查询三路奖励——**质押杠杆率变化、还款提额奖励、活跃还款 bonus**——凑齐后在成功页直接展示"你的额度涨了多少""

规则DOC-2026-009#p13pending_review

还款方式仅支持 Allo Wallet 钱包代扣(REPAY_TYPE=VA),无其他渠道。

"还款方式 | 仅 Allo Wallet 钱包代扣(`REPAY_TYPE=VA`),无其他渠道"

规则DOC-2026-009#p13pending_review

允许部分还款,上限=min(应还,钱包余额),无最低限制。

"部分还款 | 允许;上限 = min(应还, 钱包余额),无最低限制"

规则DOC-2026-009#p13pending_review

最低还款资格条件:flexCode第3位+开关+应还≥门槛(默认500K)+最低额<账单余额;已部分还款则禁用。

"最低还款资格 | flexCode 第3位 + 开关 + 应还≥门槛(默认500K) + 最低额<账单余额;**已部分还款则禁用**"

边界DOC-2026-009#p13pending_review

最低还款免服务费、剩余转下月新借据;账单分期收服务费、当期结清并新借据下月起。

"最低 vs 分期 | 最低还款**免服务费**、剩余转下月新借据;账单分期**收服务费**、当期结清+新借据下月起"

规则DOC-2026-009#p13pending_review

借新还旧的新借据均走定价引擎试算,BIZ_SCENE区分MINI_REPAY/JXHJ/MULTI_SETTLE/OVERDUE_RESTRUCTURE四场景。

"借新还旧新借据 | 均走定价引擎试算(BIZ_SCENE 区分 MINI_REPAY/JXHJ/MULTI_SETTLE/OVERDUE_RESTRUCTURE 四场景)"

规则DOC-2026-009#p13pending_review

逾期重组门槛:≥2笔且≤10笔可重组借据;确认后不可变更;DPD[30,90]加维护窗口拦截。

"重组门槛 | ≥2 笔、≤10 笔可重组借据;确认后不可变更;DPD [30,90] + 维护窗口拦截(见 K-S-2607 节)"

状态DOC-2026-009#p13pending_review

协商方案由后台下发,有无/未生效/已生效三态;未生效弹窗选方案确认,生效后按月用普通还款还。

"协商方案 | 后台下发(无/未生效/已生效三态);未生效弹窗选方案确认,生效后按月用普通还款还"

规则DOC-2026-009#p13pending_review

最低还款/分期/重组的新借据均出RIPLAY合同并随单存档合同版本。

"合规 | 最低还款/分期/重组的新借据均出 RIPLAY 合同并随单存档合同版本"

规则DOC-2026-009#p15pending_review

Y001还款激励奖励查询采用轮询拼装,最多等待4秒,查不到就不展示。

"奖励查询是轮询拼装的(最多等 4 秒),查不到就不展示"

动作条件DOC-2026-009#p15pending_review

Try minimum弹窗只在金额≥最低额且≠全额时弹一次,是唯一的主动交叉引导。

"**「Try minimum」弹窗是最低还款的导流器**:只在"金额≥最低额且≠全额"时弹一次"

边界DOC-2026-009#p15pending_review

还款全链路无GPS上报,成功后无对外事件上报。

"**还款全链路无 GPS 上报、成功后无对外事件上报**(与取现形成对比)"

定义DOC-2026-009#p16pending_review

月最低还款与账单分期是两个相互独立的功能。

"**月最低还款与账单分期是两个相互独立的功能**"

定义DOC-2026-009#p16pending_review

一期功能(账单分期)为自动借新还旧并分期至最长期限,定位账单分期。

"一期功能(账单分期)= 自动借新还旧并分期至**最长期限**,定位"账单分期""

定义DOC-2026-009#p16pending_review

二期功能(月最低还款)为真正意义的月最低还款,借新还旧借据默认1期(可配N期),定位月最低还款。

"二期功能(月最低还款)= 真正意义上的月最低还款,借新还旧借据**默认 1 期(可配 N 期)**,定位"月最低还款""

规则DOC-2026-009#p16pending_review

月最低还款与账单分期均由风险名单配置(是否对客展示)加全局功能开关(是否启用,关则全员隐藏入口)双重控制,正常用户与逾期用户均可使用。

"两者均由"风险名单配置(是否对客展示)+ 全局功能开关(是否启用,关则全员隐藏入口)"双重控制;**正常用户与逾期用户均可使用**"

规则DOC-2026-009#p16pending_review

新还款方式的展示控制改用新增的Flex code大字段(不再依赖Market code)。Flex code共50位,初始化值000099009900000000000000000000,可由营销系统+PPLM批量/实时刷新指定用户该字段。

"控制方式从原先的 Market code 改为新增 **Flex code 大字段**(不再依赖 Market code 控制新还款方式的展示)。Flex code 共 50 位,初始化值 `000099009900000000000000000000`,可由营销系统 + PPLM 批量/实时刷新指定用户的该字段。"

规则DOC-2026-009#p18pending_review

Y001(LimitUp)用户路由到基础还款页 PAY_LATER_SERVICE_REPAYMENT,无最小还款卡。

"`Y001`(LimitUp) → `PAY_LATER_SERVICE_REPAYMENT`(**基础还款页**,无最小还款卡)"

规则DOC-2026-009#p18pending_review

提前还款(EARLY_REPAYMENT)同样走基础还款页 PAY_LATER_SERVICE_REPAYMENT。

"**`EARLY_REPAYMENT`(提前还款)同样走基础还款页** `PAY_LATER_SERVICE_REPAYMENT`"

规则DOC-2026-009#p18pending_review

非Y001、非提前还款的其余用户路由到常规还款页 PAY_LATER_SERVICE_REPAYMENT_REGULAR,有最小还款卡。

"其余(非 Y001、非提前还款)→ `PAY_LATER_SERVICE_REPAYMENT_REGULAR`(**常规还款页**,有最小还款卡)"

动作条件DOC-2026-009#p21pending_review

正常还款(全额/部分)要求输入金额≤余额且≤应还,经密码后出结果;Y001用户成功后做额度重算。

"输入金额 ≤ 余额 & ≤ 应还 → 密码 → 结果。Y001 成功后做额度重算"

定义DOC-2026-009#p21pending_review

提前还款(结清借据)的结清金额=剩余本金+利息+提前还款违约金+月管理费,按字段拆行展示。

"结清剩余本金 + 利息 + 提前还款违约金 + 月管理费"

动作条件DOC-2026-009#p21pending_review

月最低还款门槛isMinimumRepaymentAllow:需flexCode第3位=1、minimumRepaymentSwitch=Y、应还≥minimumRepaymentMinAmount、且最小额<账单余额。

"flexCode第3位=1 + `minimumRepaymentSwitch=Y` + 应还≥`minimumRepaymentMinAmount` + 最小额<账单余额"

规则DOC-2026-009#p21pending_review

月最低还款本月只还最小额(本金+利息),剩余转成下月起的新借据,免服务费。

"本月只还最小额(本金+利息),**剩余转成下月起的新借据**,免服务费"

例外DOC-2026-009#p21pending_review

月最低还款在HAS_REPAY=Y时禁用。

"`HAS_REPAY=Y` 时禁用"

动作条件DOC-2026-009#p21pending_review

账单分期门槛:repayByInstallmentSwitch=Y(叠加flexCode第1位)。

"门槛 `repayByInstallmentSwitch=Y`(+ flexCode第1位)"

规则DOC-2026-009#p21pending_review

账单分期本月全额结清当期,同时生成新借据按期还(本月不还、下月起)。

"本月全额结清当期 + 同时生成新借据按期还("本月不还,下月起")"

动作条件DOC-2026-009#p22pending_review

逾期重组门槛isAdjustRepayAllow:需flexCode第19位∈{1,2}且loanRestructuringSwitch=Y。

"`isAdjustRepayAllow`:flexCode第19位∈{1,2} + `loanRestructuringSwitch=Y`"

动作条件DOC-2026-009#p22pending_review

逾期场景的重组在门槛外额外叠加后台loanRestructuringOverdueSwitch carve-out,且账户逾期天数须落在DPD窗口[30,90]。

"**+ 账户逾期天数落在 DPD 窗口 [30,90]**"

例外DOC-2026-009#p22pending_review

逾期重组首页入口在日终维护窗口23:30–24:00(服务端时间)内被拦截。

"首页入口在**日终维护窗口 23:30–24:00(服务端时间)内被拦截**"

规则DOC-2026-009#p22pending_review

逾期重组可选≥2笔且≤10笔可重组借据合并成一笔更长期限的新贷,降低月供。

"选≥2笔可重组借据(≤10笔)合并成一笔更长期限的新贷,降月供"

规则DOC-2026-009#p22pending_review

逾期重组入口免admin费与罚息(feeWaivedAmt)。

"逾期入口免 admin+罚息(`feeWaivedAmt`)"

定义DOC-2026-009#p22pending_review

借新还旧/重协商:针对逾期或有压力账单,后台提供协商分期方案,用户接受后按新计划偿还。

"针对逾期/有压力账单,后台提供协商分期方案、用户接受后按新计划偿还"

规则DOC-2026-009#p25pending_review

月最低还款门槛:账单金额须≥最小门槛(默认500K,可配置),低于门槛不支持月最低还款。

"账单金额需 ≥ 最小门槛,默认 **500K**,门槛金额可配置;低于门槛不支持月最低还款"

规则DOC-2026-009#p27pending_review

月最低还款额=X%指定期数借据本金+其他期数借据当期应还本金+X%当期应还利息+额外功能服务费(如有)+逾期罚息(如有)。

"月最低还款额 = `X% 指定期数借据本金` + `其他期数借据当期应还本金` + `X% 当期应还利息` + `额外功能服务费(如有)` + `逾期罚息(如有)`"

定义DOC-2026-009#p29pending_review

X%指定期数借据本金默认10%,默认适用1期及3期借据(仅还当期账单里1期/3期借据出账本金的10%),比例与适用期数均可配置。

"默认 **10%**,默认适用 **1 期及 3 期**借据(即仅还当期账单里 1 期 / 3 期借据出账本金的 10%);比例与适用期数均可配置"

定义DOC-2026-009#p29pending_review

其他期数借据当期应还本金:除指定期数外的其余借据,当期应还本金全额计入。

"除指定期数外的其余借据,当期应还本金全额计入"

定义DOC-2026-009#p29pending_review

X%当期应还利息默认100%应还,可配置0%–100%;此处利息含全部应收fee(admin fee+service fee)。

"默认 **100%** 应还,可配置 0%–100%。**此处"利息"含全部应收 fee(admin fee + service fee)**"

定义DOC-2026-009#p29pending_review

额外功能服务费可配置,金额可配为固定值或本次最低还款借新还旧金额的X%。

"月最低还款功能可配置额外功能服务费,金额可配(固定值,或为本次最低还款借新还旧金额的 X%)"

定义DOC-2026-009#p29pending_review

逾期罚息(如有):逾期账户的罚息计入月最低还款额。

"逾期账户的罚息计入"

边界DOC-2026-009#p31pending_review

月最低还款info弹窗的功能服务费行在前端被注释屏蔽,当前版本不向客户展示该行;该费用仍参与后台计算口径。

"在前端被注释屏蔽(`repayment/regular/Index.vue:611-615`),当前版本不向客户展示该行"

定义DOC-2026-009#p32pending_review

借新还旧借据默认1期、可配置N期;新借据为取现借据。

"默认 **1 期**,可配置 N 期;新借据为**取现借据**"

规则DOC-2026-009#p33pending_review

借新还旧期数由后台coreTransTryLoan试算返回,可选期数与默认预选项均由后台试算结果驱动,前端不读Flex第13–16位。

"可选期数与默认预选项均由后台返回的试算结果驱动(与转分期、支付分期同一套"档位由后台返回"的模式),前端不读 Flex 第 13–16 位"

规则DOC-2026-009#p34pending_review

Flex code第17位为新借据头息率,取值0–9对应0%–9%。

"Flex code **第 17 位**为新借据头息率,取值 0–9 对应 0%–9%"

规则DOC-2026-009#p34pending_review

判断当前可用额度是否覆盖剩余应还需加头息,即当前可用额度≥剩余应还账单金额×(1+头息费率)。

"`当前可用额度 ≥ 剩余应还账单金额 × (1 + 头息费率)`"

流程步骤DOC-2026-009#p35pending_review

还款交易完成后调用实时调额引擎,先调升、后调降两次调用,自动将客户额度恢复至之前的取现额度。

"系统先调升、后调降两次调用,自动将客户额度恢复至之前的取现额度"

规则DOC-2026-009#p35pending_review

额度恢复完成后,实时调额引擎在结清当期账单后判断是否更新Flex code(对Flex code下标)。

"额度恢复完成后实时调额引擎自动对 Flex code 下标(结清当期账单后由实时调额引擎判断是否更新 Flex code)"

规则DOC-2026-009#p36pending_review

借新还旧资金可先放款至个人钱包户,再从个人钱包户执行还款划扣。

"借新还旧资金可先放款至个人钱包户,再从个人钱包户执行还款划扣"

例外DOC-2026-009#p38pending_review

若用户已针对账单部分还款,则月最低还款功能不可用,置灰并给出不可用原因提示。

"若用户已针对账单**部分还款**,则月最低还款功能**不可用,置灰并给出不可用原因提示**"

规则DOC-2026-009#p38pending_review

选择全额还款时,若支付金额≥最低还款金额且≠账单金额,则在最低还款金额下出现对应提示。

"选择全额还款时,若支付金额 ≥ 最低还款金额且 ≠ 账单金额,则在最低还款金额下出现对应提示"

规则DOC-2026-009#p38pending_review

月最低还款时钱包余额不足则引导充值。

"钱包余额不足 → 引导充值"

规则DOC-2026-009#p38pending_review

月最低还款失败则引导用户重新发起。

"月最低还款失败 → 引导用户重新发起"

规则DOC-2026-009#p38pending_review

最小还款额已入账但后台未自动还清剩余待还时,提示用户将本期剩余待还结清。

"最小还款额已入账但后台未自动还清剩余待还 → 提示用户将本期剩余待还结清"

例外DOC-2026-009#p38pending_review

Limit up(Y001)用户默认隐藏月最低还款功能,走基础还款页、无最小卡。

"**Limit up(Y001)用户默认隐藏此功能**(与代码版路由分流一致:Y001 走基础还款页,无最小卡)"

动作条件DOC-2026-009#p40pending_review

首页月最低还款入口由isMinimumRepaymentEntryVisible门控,需同时满足多项条件入口才可见。

"需**同时满足**以下条件入口才可见"

动作条件DOC-2026-009#p41pending_review

最小还款功能可用的条件之一:用户须为非 Y001(LimitUp)用户。

"非 Y001(LimitUp)用户"

动作条件DOC-2026-009#p41pending_review

最小还款功能可用的条件之一:账单已出账且未逾期。

"账单**已出账且未逾期**"

动作条件DOC-2026-009#p41pending_review

最小还款功能可用的条件之一:flexCode 第 3 位(月最低还款可用位)命中。

"flexCode **第 3 位** 命中(月最低还款可用位)"

动作条件DOC-2026-009#p41pending_review

最小还款功能可用的条件之一:后台开关 minimumRepaymentSwitch 开启。

"后台开关 `minimumRepaymentSwitch` 开启"

动作条件DOC-2026-009#p41pending_review

最小还款功能可用的条件之一:应还金额须大于等于最小还款门槛 minimumRepaymentMinAmount。

"应还金额 ≥ 最小还款门槛 `minimumRepaymentMinAmount`"

流程步骤DOC-2026-009#p42pending_review

点击最小还款入口后,经 preselectMinimum 三段链路进入常规还款页并自动预选最小还款。

"入口点击后通过前述 `preselectMinimum` 三段链路"

规则DOC-2026-009#p43pending_review

借新还旧通过 coreTransTryLoan 发起,业务场景 BIZ_SCENE=MINI_REPAY、LOAN_CODE=9022。

"借新还旧通过 `coreTransTryLoan`、`BIZ_SCENE=MINI_REPAY, LOAN_CODE=9022` 发起"

规则DOC-2026-009#p47pending_review

逾期重组的名单与方案由风险方上传(含名单和方案)。

"逾期重组名单与方案由**风险上传**(风险上传的名单 + 方案)"

动作条件DOC-2026-009#p47pending_review

当用户为已确认逾期重组用户且有对应逾期方案时,首页展示"新还款计划"入口。

"首页判断用户是否为"已确认逾期重组用户且有对应逾期方案",是则展示"新还款计划"入口"

规则DOC-2026-009#p49pending_review

重组后新还款计划应还金额 = 剩余未还本金×(1−本金减免比例) + 剩余未还利息及罚息×(1−利息及罚息减免比例)。

"新还款计划应还金额 = `剩余未还本金 × (1 − 本金减免比例)` + `剩余未还利息及罚息 × (1 − 利息及罚息减免比例)`"

规则DOC-2026-009#p51pending_review

入口弹窗中可选期数从小到大排列、默认选最小一期,每期应还=重组后应还总额÷选择期数。

"可选期数(从小到大排列,默认选最小一期),每期应还 = 重组后应还总额 ÷ 选择期数"

规则DOC-2026-009#p51pending_review

确认重组方案后不可再变更。

"**确认重组方案后不可再变更**,除非风险重新针对该用户上传新的重组计划"

例外DOC-2026-009#p51pending_review

确认重组方案后不可变更的例外:风险重新针对该用户上传新的重组计划时可变更。

"**确认重组方案后不可再变更**,除非风险重新针对该用户上传新的重组计划"

规则DOC-2026-009#p51pending_review

每个重组计划只能被选择一次期数方案。

"**每个重组计划只能被选择一次期数方案**"

规则DOC-2026-009#p51pending_review

还款计划按重组期数分期,首期为逾期重组计划里最近一个月账单的最后还款日。

"还款计划按重组期数分期,**首期 = 逾期重组计划里最近一个月账单的最后还款日**"

规则DOC-2026-009#p51pending_review

重组后每期应还金额=重组后剩余未还金额÷重组期数。

"每期应还 = 重组后剩余未还金额 ÷ 重组期数"

流程步骤DOC-2026-009#p51pending_review

点击 repay now 进入还款页,每月还款金额作为默认值带入。

"点击 repay now 进入还款页,每月还款金额作为默认值带入"

动作条件DOC-2026-009#p54pending_review

命中逾期重组预付门槛时,用户不直接进入正式重组页,而是先进入预付引导过渡页,再引导去预付还款。

"命中逾期重组预付门槛时,用户不会直接进入正式重组页,而是先进入预付引导过渡页"

规则DOC-2026-009#p55pending_review

重组非自动完成:预付只解锁/推进新还款计划,支付后仍需进入正式重组流程设置新计划。

"重组非自动完成**:预付只是解锁/推进新还款计划;支付后仍需进入正式重组流程设置新计划"

定义DOC-2026-009#p55pending_review

预付引导页展示的 Remaining total amount 取剩余应还总额 ACCT_SUM_PAID_OUT(本金+利息+罚息+费用)。

"`Remaining total amount` = **剩余应还总额 `ACCT_SUM_PAID_OUT`(本金+利息+罚息+费用,Personal Center call #2)**"

规则DOC-2026-009#p55pending_review

K-S-2607 修正只改展示值,重组试算 coreTransTryLoan 的 AMOUNT 仍使用剩余本金 accountPrinAmt(ACCT_PRIN_PAID_OUT)。

"只改展示值,重组试算 `coreTransTryLoan` 的 `AMOUNT` 仍用剩余本金"

规则DOC-2026-009#p55pending_review

New repayment plan 取 coreTransTryLoan 返回方案,默认展示最长期(月供最低),格式 RpY x Nmonths。

"`New repayment plan` = `coreTransTryLoan` 返回方案,默认展示最长期(月供最低),格式 `RpY x Nmonths`"

规则DOC-2026-009#p56pending_review

预付还款页复用现有还款页,仅在 restructurePrepay=1 预付路径下定制,对普通还款零影响。

"预付还款页复用现有还款页,只在 `restructurePrepay=1` 预付路径下定制,普通还款零影响"

规则DOC-2026-009#p57pending_review

预付还款页金额锁定为门槛额,隐藏 Edit,不可修改。

"金额锁定为门槛额,隐藏 Edit,不可改"

动作条件DOC-2026-009#p60pending_review

逾期重组入口在原有门槛之上叠加账户级逾期天数窗口:overdueDays 须落在 [restructureOverdueMinDpd, restructureOverdueMaxDpd] 双闭区间,前端默认 30/90。

"`accountInfo.overdueDays`(后端 `OVERDUE_DAYS`)须落在 `[restructureOverdueMinDpd, restructureOverdueMaxDpd]`(**双闭区间**,前端默认 30/90"

边界DOC-2026-009#p61pending_review

逾期重组入口的窗口/门槛判断只对逾期分支生效;非逾期的转分期路径不受影响,isOverDue=false 时窗口判断恒过。

"只 gate 逾期分支,非逾期的转分期路径不受影响(`isOverDue=false` 时窗口判断恒过)"

规则DOC-2026-009#p61pending_review

OVERDUE_DAYS 缺失时按 fail-closed 处理:两个比较均不成立,逾期重组入口隐藏。

"`OVERDUE_DAYS` 缺失时 `Number(undefined)=NaN` → 两个比较都不成立 → 入口隐藏,属有意为之"

规则DOC-2026-009#p62pending_review

核心系统日终批处理窗口内逾期重组交易必失败,因此前端在入口处进行拦截。

"核心系统日终批处理窗口内逾期重组交易必失败,故前端在入口处拦截"

规则DOC-2026-009#p63pending_review

日终维护拦截窗口为服务端时间 [23:30, 24:00),含头不含尾、不支持跨午夜;边界可由后台 restructureMaintenanceStartTime/EndTime 免发版调整,前端默认 '2330'/'2400'。

"**窗口**:`[23:30, 24:00)` **服务端时间**,含头不含尾,不支持跨午夜;边界可由后台 `restructureMaintenanceStartTime/EndTime`(`HHmm` 字符串)免发版调整,前端默认 `'2330'/'2400'`"

定义DOC-2026-009#p63pending_review

服务端时间来源:app 启动时从 ifes-ams getCommonPage 下发的 currentServerTime 算一次时钟偏移;字段缺失或不可解析时偏移=0,退化为设备时间(fail-open),后端交易层仍在窗口内硬拦截。

"app 启动时从 ifes-ams `getCommonPage` 下发的 `currentServerTime`(`DD/MM/YYYY HH:mm:ss`)算一次时钟偏移;字段缺失/不可解析时偏移=0 退化为设备时间(**fail-open**,后端交易层仍是窗口内的硬拦截)"

流程步骤DOC-2026-009#p63pending_review

维护窗口内点击逾期重组入口弹底部弹窗(标题 The function is not available / Menu tidak tersedia,按钮 Got it),不发生任何跳转;窗口外正常路由至 new-loan?source=overdue。

"窗口内点入口弹底部弹窗(红 X,标题 `The function is not available` / `Menu tidak tersedia`,副文案"系统维护请明天再试",按钮 `Got it`,点遮罩也可关),**不发生任何跳转**;窗口外正常路由 `new-loan?source=overdue`"

边界DOC-2026-009#p63pending_review

维护窗口拦截仅作用于首页两个逾期重组入口(逾期 banner 的 Adjust CTA 与 Adjust Repayment Plan 菜单格);非逾期 Adjust 流程与账单页入口不在范围内。

"仅首页两个逾期重组入口(逾期 banner 的 Adjust CTA + Adjust Repayment Plan 菜单格,共用 `onAdjustRepayClicked`);**非逾期 Adjust 流程与账单页入口不在本期范围**"

动作条件DOC-2026-009#p63pending_review

回滚方式:后台把维护窗口配成 start ≥ end(如都 '0000')即永不命中,免发版。

"后台把窗口推成 start ≥ end(如都 `'0000'`)即永不命中,免发版"

规则DOC-2026-009#p63pending_review

维护窗口边界行为:23:29:59 放行、23:30:00 拦截、23:59:59 拦截、00:00:00 放行。

"23:29:59 放行 / 23:30:00 拦 / 23:59:59 拦 / 00:00:00 放行"

规则DOC-2026-009#p65pending_review

修正后:逾期重组 banner 提到 overdueTimes 计数分支之上,overdueTimes>1 的多次逾期用户也正常展示 Adjust CTA。

"逾期重组 banner 被 `overdueTimes` 计数分支挡掉、多次逾期用户看不到 CTA → banner 提到分支之上,`overdueTimes>1` 也正常展示"

规则DOC-2026-009#p65pending_review

修正后:账单页 SIKLUS TAGIHAN 与 DETAIL TAGIHAN 的 Adjust CTA 与首页同款走 needRestructurePrepay → PrepayIntro,不再绕过预付步骤。

"SIKLUS TAGIHAN(`bill/OverDues.vue`)与 DETAIL TAGIHAN(`bill/components/BillCard.vue`)的 Adjust CTA 直接推 NewLoan、绕过首页强制的预付步骤 → 与首页同款走 `needRestructurePrepay` → PrepayIntro"

规则DOC-2026-009#p65pending_review

修正后:PrepayIntro「Remaining total amount」展示剩余应还总额 ACCT_SUM_PAID_OUT(本金+利息+罚息+费用),试算 AMOUNT 不变仍用剩余本金。

"展示剩余**本金** `ACCT_PRIN_PAID_OUT` → 展示剩余**应还总额** `ACCT_SUM_PAID_OUT`(本金+利息+罚息+费用);试算 `AMOUNT` 不变仍用剩余本金"

规则DOC-2026-009#p65pending_review

修正后:逾期直入重组的提交本金 LOAN_INIT_PRIN 改取精确剩余本金 ACCT_PRIN_PAID_OUT,与展示金额、试算入参三者对齐;MULTI_SETTLE 分支不变。

"`LOAN_INIT_PRIN` 取试算回显值 → 改取精确剩余本金 `ACCT_PRIN_PAID_OUT`(residualPrincipal),与展示金额、试算入参三者对齐;MULTI_SETTLE 分支不变"

规则DOC-2026-009#p65pending_review

修正后:重组失败 Try Again 路由对逾期直入用户回 NewLoan?source=overdue(与入口一致),不再一律回多借据选择页。

"一律回多借据选择页(adjust-repayment-plan)→ 逾期直入用户回 `NewLoan?source=overdue`(与入口一致)"

规则DOC-2026-009#p66pending_review

预付门槛判定来源改为专用 AMS 预付状态接口 restructurePrepayStatus;命中条件为 restructurePrepaySwitch='Y' 且 prepayRequired='Y' 且 prepayStatus≠'PAID'(PENDING/VERIFYING 均拦);开关关或接口缺失则不设门槛直接放行。

"预付 gate 的输入改从专用 AMS 预付状态读接口(`payLaterRepayment.restructurePrepayStatus`)取,**不再来自 negotiate**;命中 = 总开关 `restructurePrepaySwitch='Y'` 且 `prepayRequired='Y'` 且 `prepayStatus≠'PAID'`(PENDING/VERIFYING 均拦);开关关/接口缺失 = 不设门槛直接放行"

动作条件DOC-2026-009#p69pending_review

白名单用户当期账单金额=0 或账单已还清、且下一个未出账单金额>0 时,模块展示下个未出账账单金额并新增展期入口,点击进入现有展期流程;其他账单状态按原有展示。

"当白名单用户**当期账单金额 = 0 或账单已还清**、且**下一个未出账单金额 > 0** 时,模块展示下个未出账的账单金额,并在此模块下新增**展期入口**,点击进入现有展期流程;其他账单状态按原有展示"

定义DOC-2026-009#p70pending_review

展期入口与 06 转分期底层是同一个 EXTENSION(展期)能力,走 TXN_CODE=EXTENSION / TRANSACTION_TYPE='EX',两个入口复用同一笔后台交易。

"转分期走 `TXN_CODE=EXTENSION` / `TRANSACTION_TYPE='EX'`(`service/convert/Select.vue:206`、`service/convert/List.vue:84`)"

规则DOC-2026-009#p72pending_review

PayLater 提前还款费(Biaya Pelunasan dipercepat)为提前结清金额的 8%。

"**PayLater 提前还款费(Biaya Pelunasan dipercepat)= 提前结清金额的 8%**"

规则DOC-2026-009#p72pending_review

逾期费(Biaya Keterlambatan)为逾期账单金额的 0.3%/日;账单到期日为每月 10 日。

"逾期费(Biaya Keterlambatan)= 逾期账单金额的 **0.3%/日**;账单到期日为每月 **10 日**"

规则DOC-2026-009#p72pending_review

Instant Cash 的提前还款费为 10%(与 PayLater 的 8% 不同)。

"Instant Cash 的提前还款费为 **10%**(与 PayLater 的 8% 不同)"

动作条件DOC-2026-009#p74pending_review

最小还款能力门控:flexCode[2]==='1' 且 minimumRepaymentSwitch='Y' 且满足金额门槛。

"最小还款 | `flexCode[2]==='1'` + `minimumRepaymentSwitch='Y'` + 金额门槛"

动作条件DOC-2026-009#p74pending_review

账单分期能力门控:repayByInstallmentSwitch='Y' 且 flexCode 第 1 位命中。

"账单分期 | `repayByInstallmentSwitch='Y'`(+ flexCode第1位)"

动作条件DOC-2026-009#p74pending_review

逾期重组能力门控:flexCode.charAt(18)∈{'1','2'} 且 loanRestructuringSwitch='Y' 且满足逾期 carve-out 且 DPD∈[30,90](仅逾期分支);首页入口另受维护窗口 23:30–24:00 拦截。

"逾期重组 | `flexCode.charAt(18)∈{'1','2'}` + `loanRestructuringSwitch='Y'` + 逾期 carve-out + **DPD∈[30,90](仅逾期分支,K-S-2607)**;首页入口另受维护窗口 23:30–24:00 拦截"

规则DOC-2026-009#p75pending_review

逾期 carve-out:逾期场景在读 Flex 第 19 位 + loanRestructuringSwitch 之上额外叠加 loanRestructuringOverdueSwitch,isAdjustRepayAllow 先判断 isOverDue && loanRestructuringOverdueSwitch==='N' 时返回 false,再读位段。

"逾期场景在此之上**额外**叠加后台开关 `loanRestructuringOverdueSwitch` carve-out——`isAdjustRepayAllow`(`home/Index.vue:783-787`)先 `if(isOverDue && loanRestructuringOverdueSwitch==='N') return false`,再读位段 + `loanRestructuringSwitch`"

例外DOC-2026-009#p75pending_review

loanRestructuringOverdueSwitch=N 时即便 Flex 位段命中也禁用逾期入口;它是叠加的 carve-out,不取代位段读取。

"该开关=N 时即便位段命中也禁用逾期入口,但它是叠加的 carve-out,不取代位段读取"

规则DOC-2026-009#p76pending_review

各类还款都需接合同(RIPLAY)iframe 并做密码验证(COMMON_PASSWORD_VERIFY)。

"各还款都接合同(RIPLAY)iframe + 密码验证(`COMMON_PASSWORD_VERIFY`)"

动作条件DOC-2026-009#p80pending_review

两个还款页分流:isY001 或提前结清走基础页;否则走常规页。

"分流在 `utils/view.js:96-160`(isY001 或提前结清 → 基础页;否则 → 常规页)"

边界DOC-2026-009#p81pending_review

基础还款页面向 Y001 与提前结清场景,常规还款页面向非 Y001 的账单还款

"面向 | Y001 / 提前结清 | 非 Y001 账单还款"

规则DOC-2026-009#p81pending_review

基础还款页金额校验允许部分还款,仅校验金额≤应还且≤钱包余额两条

"金额校验 | 允许部分;仅"≤应还、≤钱包余额"两条"

动作条件DOC-2026-009#p81pending_review

常规还款页当输入金额≥最低还款额且≠全额时首次弹出「Try minimum」弹窗

"「Try minimum」弹窗(金额≥最低且≠全额时首次弹)"

规则DOC-2026-009#p81pending_review

基础还款页验证走 PIN(scene=OTHER),IM3/BIMA 客群走 IOH OTP(category=REPAYMENT);常规还款页验证走 PIN

"验证 | PIN(scene=OTHER,category 按提前结清区分);**IM3/BIMA 走 IOH OTP**(category=REPAYMENT)| PIN"

规则DOC-2026-009#p81pending_review

基础还款页提交调用 coreTransApplyRepay,参数含 TXN_CODE(BillRepay/IOURepay)、REPAY_TYPE='VA'、TOT_AMOUNT、session,LOAN_LIST 仅结清时携带

"提交 | `coreTransApplyRepay{TXN_CODE: BillRepay/IOURepay, REPAY_TYPE:'VA', TOT_AMOUNT, session, LOAN_LIST(仅结清带)}`"

规则DOC-2026-009#p81pending_review

常规还款页全额提交同基础页但不带 LOAN_LIST,最低还款走 coreTransMinimumRepayApply

"全额同左(无 LOAN_LIST);最低走 `coreTransMinimumRepayApply`"

规则DOC-2026-009#p81pending_review

基础还款页结果轮询调用 coreTransQueryRepayResult,2s×8,Loading 15s

"轮询 | `coreTransQueryRepayResult{ORI_BIZ_SEQ_NO, ORI_MER_BIZ_NO}` 2s×8(Loading 15s)"

规则DOC-2026-009#p81pending_review

常规还款页轮询同接口但 Loading 30s,最低还款走 coreTransRepayInstallmentResult,2s×6

"同接口(Loading 30s);最低还款走 `coreTransRepayInstallmentResult{FLOW_NO}` 2s×6"

状态DOC-2026-009#p81pending_review

常规还款页最低还款成功页为 COMMON_RESULT_BILL_REPAY,含五态 status 1/2/3/5/6

"全额 `COMMON_RESULT` / 最低 `COMMON_RESULT_BILL_REPAY`(五态 status 1/2/3/5/6)"

动作条件DOC-2026-009#p81pending_review

基础还款页 Y001 有还款成功奖励链,常规还款页无

"Y001 奖励链 | 有(见 D.2)| 无"

规则DOC-2026-009#p82pending_review

还款轮询以 REPAY_STATUS='S' 且 MARKET_CODE_HANDLE_STATUS='END'(调额引擎处理完)为成功终态,PENDING 继续轮询

"轮询以 `REPAY_STATUS='S'` **且** `MARKET_CODE_HANDLE_STATUS='END'`(调额引擎处理完)为成功终态,PENDING 继续轮"

流程步骤DOC-2026-009#p84pending_review

Y001 还款成功后 Promise.all 并发三路奖励查询,凑齐后随成功页展示

"成功后 `Promise.all` 并发三路,凑齐后随成功页展示"

动作条件DOC-2026-009#p85pending_review

杠杆变化奖励仅当 MARKET_CODE_HANDLE_STATUS='END' 时调用 coreTransFlexibleLimitPledgeLeverageLimitInfo,带新旧 marketCode

"仅 `MARKET_CODE_HANDLE_STATUS='END'` 时调 `coreTransFlexibleLimitPledgeLeverageLimitInfo{marketCode: NEW_MARKET_CODE, originalMarketCode: ORI_MARKET_CODE}`"

规则DOC-2026-009#p85pending_review

还款提额奖励轮询 coreTransFlexibleLimitHistory(BIZ_TYPE='PayLaterRepayment') 1s×4,校验 ADJ_TIME 是当日且 TRAN_AMT>0

"**还款提额奖励**:轮询 `coreTransFlexibleLimitHistory{BIZ_TYPE:'PayLaterRepayment'}` 1s×4,校验 `ADJ_TIME` 是当日且 `TRAN_AMT>0`"

规则DOC-2026-009#p85pending_review

活跃还款 bonus 轮询 coreTransFlexibleLimitHistory(BIZ_TYPE='ActiveRepayment'),规则同还款提额奖励

"**活跃还款 bonus**:同上 `BIZ_TYPE:'ActiveRepayment'`"

动作条件DOC-2026-009#p86pending_review

还款成功页可弹出会员升级引导,跳转 PAY_LATER_FLEXIBLE_LIMIT_MEMBER

"成功页可弹会员升级引导(→ `PAY_LATER_FLEXIBLE_LIMIT_MEMBER`)"

定义DOC-2026-009#p88pending_review

提前结清构成由 coreTransQueryPayOffInfo 返回,含本金、利息、罚息、违约金、月费五项

"**提前结清**:`coreTransQueryPayOffInfo{REF_NBR_LIST}` 返回结清构成——本金 `LOAN_PAID_OUT_PRIN_AMT` / 利息 `LOAN_PAID_OUT_INT_AMT` / 罚息 `LOAN_PAID_OUT_PENALTY_AMT` / 违约金 `LOAN_PAID_OUT_VIOLATION_AMT` / 月费 `LOAN_PAID_OUT_INST_HANDLE_FEE_AMT`"

规则DOC-2026-009#p88pending_review

提前结清金额锁死不可改,提交时整包随 LOAN_LIST 上送

"金额锁死不可改,提交时整包随 `LOAN_LIST` 上送"

规则DOC-2026-009#p89pending_review

账单分期试算 BIZ_SCENE='JXHJ' 且 AMOUNT=账单额;月最低还款试算 BIZ_SCENE='MINI_REPAY' 且 AMOUNT='0'(额度由后端算)

"试算 | `BIZ_SCENE='JXHJ'`,AMOUNT=账单额 | `BIZ_SCENE='MINI_REPAY'`,**AMOUNT='0'**(额度由后端算)"

规则DOC-2026-009#p89pending_review

账单分期提交调 coreTransRepayInstallmentApply(独立 Confirm 页+RIPLAY+TnC);月最低还款提交调 coreTransMinimumRepayApply(常规页内联,额外带 MINI_REPAY_AMT)

"提交 | `coreTransRepayInstallmentApply`(独立 Confirm 页 + RIPLAY + TnC)| `coreTransMinimumRepayApply`(常规页内联,额外带 `MINI_REPAY_AMT`)"

规则DOC-2026-009#p89pending_review

账单分期收服务费并展示 service fee;月最低还款免服务费,卡上带 no_service_fee 徽标

"服务费 | 收(展示 service fee)| **免**(卡上 no_service_fee 徽标)"

规则DOC-2026-009#p89pending_review

账单分期与月最低还款共用 coreTransRepayInstallmentResult 轮询,CODE=80530014 继续轮询、80530015 为在途态

"结果 | 共用 `coreTransRepayInstallmentResult{FLOW_NO}` 轮询;`CODE=80530014`→轮询、`80530015`→在途态"

状态DOC-2026-009#p89pending_review

分期结果态 FLOW_STATUS:PROC_SUCC 成功、WAIT 处理中、CASH_FAIL 放款失败、REPAY_FAIL 还款失败(放款成功还款失败为 one more step 部分态)

"结果态 | FLOW_STATUS:PROC_SUCC 成功 / WAIT 处理中 / CASH_FAIL 放款失败 / REPAY_FAIL 还款失败(放款成功还款失败=「one more step」部分态)"

规则DOC-2026-009#p91pending_review

逾期重组多借据选择页调 coreTransLoanRestructuringList(QUERY_LOAN_STATUS='UN_PAID_OUT') 拉列表,按 eligibleForRestructure='Y' 分可选/不可选

"`coreTransLoanRestructuringList{QUERY_LOAN_STATUS:'UN_PAID_OUT'}` 拉列表,按 `eligibleForRestructure='Y'` 分可选/不可选"

规则DOC-2026-009#p91pending_review

逾期重组多借据选择至少选 2 笔、至多 10 笔,超限 toast 提示

"**至少选 2 笔、至多 10 笔**(超限 toast)"

规则DOC-2026-009#p92pending_review

MULTI_SETTLE 新贷金额为选中借据本金合计;OVERDUE_RESTRUCTURE 新贷金额为残余本金 acctPrinPaidOut

"金额 | 选中借据本金合计 | 残余本金 `acctPrinPaidOut`(Personal Center call#2)"

规则DOC-2026-009#p92pending_review

MULTI_SETTLE 提交调 coreTransRepayInstallmentApply(200029)带 ORIG_STMT_BAL_AMT+逐笔 LOAN_LIST;OVERDUE_RESTRUCTURE 提交调专用 coreTransOverdueRestructuringApply(200037)且 LOAN_LIST=null

"提交接口 | `coreTransRepayInstallmentApply`(200029),带 `ORIG_STMT_BAL_AMT`+逐笔 `LOAN_LIST` | **专用 `coreTransOverdueRestructuringApply`(200037)**,`LOAN_LIST=null`"

动作条件DOC-2026-009#p92pending_review

OVERDUE_RESTRUCTURE 入口有逾期减免弹窗,feeWaivedAmt=账户利息+罚息合计;MULTI_SETTLE 无入口弹窗

"入口弹窗 | 无 | 逾期减免弹窗(`feeWaivedAmt` = 账户利息+罚息合计)"

状态DOC-2026-009#p93pending_review

逾期重组结果页四态:成功(含重组前后账单对比)、处理中、失败(Try Again 逾期回 NewLoan、多选回选择页)、one-more-step(新贷已放款但还款失败,引导去还款)

"**结果页四态**(`AdjustRepaymentPlanResult`):成功(含重组前后账单对比)/ 处理中 / 失败(**Try Again**:逾期回 NewLoan、多选回选择页——K-S-2607 修正)/ **one-more-step**(新贷已放款但还款失败,引导去还款)"

流程步骤DOC-2026-009#p93pending_review

预付回流闭环流程:needRestructurePrepay 满足(开关+prepayRequired='Y'+状态≠PAID)→ PrepayIntro → 预付还款走常规还款页(restructurePrepay='1')→ 成功调 restructurePrepaySettle 核销 → 成功页续到 NewLoan?source=overdue

"**预付回流闭环**:`needRestructurePrepay`(开关+`prepayRequired='Y'`+状态≠PAID)→ PrepayIntro → 预付还款走**常规还款页**(`restructurePrepay='1'` 定制文案)→ 成功时调 `restructurePrepaySettle`(带双流水)核销 → 成功页「Restructure my plan now」直接续到 `NewLoan?source=overdue`"

状态DOC-2026-009#p93pending_review

预付状态四值 PENDING/VERIFYING/PAID/EXPIRED,VERIFYING 状态轮询 5s×12

"预付状态四值 `PENDING/VERIFYING/PAID/EXPIRED`,VERIFYING 轮询 5s×12"

状态DOC-2026-009#p95pending_review

借新还旧方案状态三值 promiseResult:NO_PLAN 无、UNACTIVE_PLAN 未生效(首页入口卡→弹窗选方案)、ACTIVE_PLAN 已生效(→方案详情页)

"方案状态三值(`promiseResult`):`NO_PLAN` 无 / `UNACTIVE_PLAN` 未生效(首页入口卡 → 弹窗选方案)/ `ACTIVE_PLAN` 已生效(→ 方案详情页)"

规则DOC-2026-009#p95pending_review

接受协商方案调 negotiateRepaymentPlanConfirm,减免维度为本金/费用/罚息三个比例

"接受方案 = `negotiateRepaymentPlanConfirm{promiseCode, version, term, reducePrinRatio, reduceFeeRatio, reducePenaltyRatio}`——**减免维度是本金/费用/罚息三个比例**"

规则DOC-2026-009#p95pending_review

协商方案生效后每月还款复用普通 BillRepay,方案详情页 Repay 按钮带下期金额进还款页

"生效后每月还款**复用普通 BillRepay**(方案详情页 Repay 按钮带下期金额进还款页)"

规则DOC-2026-009#p97pending_review

还款段对外上报仅入口级(VIEW_BILLING_CYCLE_PAGE 及 REPAY 点击类),还款成功无对外上报、全链路无 GPS 上报

"对外上报仅入口级:`VIEW_BILLING_CYCLE_PAGE`、`BILLING_CYCLE_REPAY_THIS_BILL_CLICK/NO_CLICK`、`BILLING_CYCLE_REPAY_NOW_CLICK/NO_CLICK`;**还款成功无对外上报、全链路无 GPS 上报**"

规则DOC-2026-009#p99pending_review

逾期重组由风险上传名单+方案,用户确认后不可变更

"逾期重组由风险上传名单+方案、确认后不可变更(《0716》)"