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

03-取现与Instant-Cash

原文 · 60 段(高亮 = 已被卡片引用)
p1# 03 · 取现与 Instant Cash
p2> 事实来源 = SDK 代码仓 `ifes-resm` + 产品口径。费率/比例以最新 PRD/PM 为准。 > 2026-07-16 增补 D 节「取现全链路编排」并勘误三处(入口门槛行号、DBDP 拦截点、挽留问卷触发时机),基于分支 `vibe-coding-case/K-S-2607-opt-20260710` 代码逐行查实。
p3## 模块定位
p4Instant Cash(取现)是 SDK 内的**主借款产品**:用户在取现额度内申请一笔现金借款,选分期、读合同(RIPLAY)、密码确认后,资金到账 Allo Wallet,随后按"期数 × 每月应还"分期偿还并生成借据。形态 = **主动发起、金额自定、一次放款、固定分期**。
p5## 业务视角:一笔取现是怎么发生的
p6> 本节用产品语言描述业务全貌;每条规则的代码证据见下方 D 节。
p7### 三类用户、三种入口体验
p8| 用户 | 进入体验 | 产品意图 | |---|---|---| | **首借用户**(从没借过) | 先看一页产品介绍(Intro),点"Get Cash Now"才进流程 | 教育与建立信任 | | **复借用户** | 直接进金额页 | 减摩擦、促复借 | | **持低价券用户** | 先进**利率档选择页**(0% / 0.5% 等档位任选),再进金额页 | 低价感知前置——先让用户看到"便宜",再谈金额 |
p9### 用户旅程(六步)
p101. **点入口**:首页点 Instant Cash。此时有一道**准入闸门**:账户冻结的用户静默拦下(产品口径不弹窗);额度低于门槛的用户被告知额度不足。门槛本身是**分层的**——普通用户最低 10 万卢比才可进入,**持低价券用户 2 千卢比就放行**(低价权益的普惠设计)。从额度首页进入的用户还会经过五道账户检查(邮箱未验证→去验证、证件待重传→去重传、冻结/审核中→告知、已逾期→引导先还款),每种拦截都给出明确的下一步动作。 2. **输金额**:金额以"千"为单位输入,页面给三个快捷推荐档(约为可取额度的 100%/50%/25%)。可取上限 = 可用额度与取现额度中较小者;下限统一 2 千。 3. **选期数**:系统按金额实时试算分期档(1~24 期,档位由后端按用户资质下发),**默认选最长期数**——月供最低,还款压力感知最小。每档展示每期金额与月费率;用券时同屏对照"券前划线价 vs 券后价 + 共省多少"。 4. **确认与合规**:确认页把关键数字摊开——**到账多少(借款额减头息)、头息多少、每月还多少、每月几号还、首期哪天**。同时必须**读完并勾选 RIPLAY 合同**(监管要求的产品信息披露,含费率、还款计划、逾期后果),合同没加载完/没勾选就不能提交。**DBDP 复借受限用户在这一步被拦**:有未结清欠款则弹窗要求先还清(单笔单批策略)。 5. **身份与风控**:输 PIN(**IM3/BIMA 合作渠道免 PIN**,其风控依据待确认);首次借款用户会被要求授权定位(合规留痕)。**CL 取现要串行过四个后端决策引擎:反欺诈引擎 → 刷脸引擎 → 首借引擎/复借引擎**(PM 口径 2026-07-16,串行过闸;PL 消费支付只过前两个,见 [02](02-支付消费.md) 引擎矩阵)——首借/复借用户走不同的授信决策引擎,这与前端"首借看 Intro 教育页、复借直进金额页"的分流形态呼应;引擎判定可疑时加验人脸或 OTP(含 WhatsApp 通道)后才放款。 6. **放款**:秒级放款到 Allo Wallet,页面最多等约 12 秒。结果分四种——**成功(含到账额与参考号)/ 失败 / 审核中 / 额度变化**。最后一种值得注意:提交瞬间授信刷新导致新额度低于申请额,用户会看到"额度已变化,请重试",点重试回金额页按新额度再来。
p11### 业务规则速览
p12| 维度 | 规则(产品口径) | |---|---| | 门槛 | 入口:普通 100K / 持低价券 2K;进入金额页后统一 2K | | 上限 | min(可用额度, 取现额度) | | 期数 | 1~24 期;**每次展示试算都实时调用定价引擎,期数档与各档价格均由引擎返回**(PM 确认 2026-07-16);默认最长期 | | 费用 | **两费结构(PM 2026-07-16 复核,与 PL 对称)**:**砍头息**(放款时一次性扣,≈6%,到账=本金−头息)+ **admin fee**(月费 0–9%,按原始本金每期等额);详见 [R4](../参考/R4-定价与费率.md) | | 低价权益 | 营销发放 DJ 权益(前端表现为 INT_RG 价格券),独立利率档流程;**静默生效**——确认页不展示券名,用户只看到便宜后的价格 | | 合规 | RIPLAY 必读必勾;首借强制定位授权;合同版本随单存档 | | 复借限制 | DBDP 客群单笔单批:有未结清欠款不得再借。**机制=字段强控**(风控预先打在用户 riskCode 上的 DBDP 标签,前端直接硬拦截),**不经复借引擎实时决策**(PM 确认 2026-07-16)| | 渠道差异 | IM3/BIMA 渠道免 PIN、结果页引导下载 Allo App | | 决策引擎 | **反欺诈 → 刷脸 → 首借/复借四引擎串行过闸**(PM 口径;PL 支付仅前两个),引擎在后端,前端只见放行/挑战;注意 DBDP 是字段强控非引擎 |
p13### 经营与体验关注点(供产品/运营决策)
p14- **挽留问卷是经营抓手**:额度动用率低于 20% 的用户(额度很富余却不借)在**放弃取现返回时**触发调研问卷,每人每 7 天最多一次——这是目前对"高额度低动用"人群唯一的主动运营触点。 - **低价券静默生效是把双刃剑**:用户享受了低价但看不到"用了什么权益/省了多少"(确认页无券名行),权益感知弱,可能削弱低价营销的心智效果。 - **"额度变化"场景的体验**:用户确认借款后被告知额度缩水需重试,属于授信实时刷新与支用并发的固有场景,文案与引导决定了它是"贴心"还是"挫败"。 - **渠道免 PIN 的风控口径**:IM3/BIMA 免验 PIN 是渠道协议行为,建议风控侧留档依据。
p15## 核心能力
p16| 能力 | 说明 | |---|---| | **常规取现** | 首页「Instant Cash」进入:Intro 介绍 → 输金额 → 选期数 → 读 RIPLAY 合同 → 密码 → 资金到账 Allo Wallet。提交接口实为 **`coreTransApplyLoan`**(`Confirm.vue:332`),入参中**无 `LOAN_CODE`**;产品号 9022 作为常量定义在 `constants/pay-later/withdraw.js`,非提交时透传。流程页 `service/withdraw/{Intro,Index,Confirm}.vue`。常规取现页对**全部用户统一**最低取现额度 Rp2,000(`Index.vue:553-557` 注释明示双轨已退场,不再区分是否低价权益用户)— 《低价感知定价取现流程优化方案 0417》 | | **低价权益取现** | 持利率券时月服务费降至 0% / 0.5% 等;可先选利率档(`WithdrawMethods.vue`)再输金额,展示省多少。**前端实际识别的低价标识是 `INT_RG` 价格券**(`constants/coupon.js:68`),代码内并无 `DJ`/`DJXXX` 字面常量——"DJ 权益(DJXXX)"是营销系统下发口径,落到前端表现为 `INT_RG` 价格券。低价档列表由 `withdraw-utils.js#formatMethods` 生成。详见低价权益取现专章与 [11](11-营销优惠券与落地页.md) | | **RIPLAY 合同披露** | 监管要求的产品信息摘要(PIS),iframe 展示;勾选"已阅读同意" + 加载完成后才能提交。合同字段 `CONTRACT_URL/NAME/VERSION` | | **复借限制(DBDP)** | 当 RiskCode 含 **DBDP** 且**在贷余额 > 0**(= 总额度 − 可用信用额度)时弹窗"需还清贷款后才可复借"(单人单笔),非 DBDP 用户可多笔并存 — 《部分用户单笔单批 0514》。**拦截点不在首页入口,而在确认页提交时**(`Confirm.vue:219-228` `onConfirmWithdraw` 内判断,blocking-popup 阻断,2026-07-16 代码查实)| | **VDC Auto top-up** | 绑定 VDC 虚拟借记卡后,卡余额不足时自动从额度/钱包补足,保障线上/绑卡支付(与消费渠道 VDC 联动,见 [02](02-支付消费.md))。**注:本仓前端无 VDC 承载(全仓 grep 零命中),属原生/外部仓/后端能力,触发阈值与补足来源以 PM 口径为准。
p17** | | **借款交易详情** | 已完成借据详情:金额 / 服务费 / 期数 / 参考号 / 还款计划 + Repay 入口(`transaction/InstantCash.vue` 旧版、`NewInstantCash.vue` 新版式)|
p18## 关键字段与门槛
p19- **试算结果字段**:`loanTotalAmount`(借款额) / `loanTotalTerm`(期数) / `adminFee` 或 `tryCalcLevelMonthFeeRate`(月费率) / `firstBillAmt`(首期) / `fundAmt`(实际到账=借款额−前置费) / `billingCycle`(每月还款日)。 - **准入拦截**(`checkAccountBeforeWithdrawAndPay`):邮箱验证、ID 重传(blockCode `q`)、冻结(`R|S|F|n|B`)、审核中(`T`)、逾期(`A|Z` 或 acctStmtStatus=OVER_DUE)。 - **复借门槛**:`riskCode ∋ DBDP` + 在贷余额 > 0(在贷余额 = 总额度 − 可用信用额度)。DBDP 埋点见 `creditline.js:301,306,311`。 - **取现入口门槛**:主页「Instant Cash」入口的最低取现门槛为——持 `INT_RG` 价格券则 Rp2,000,否则 Rp100,000(`home/Index.vue:1154-1157`,行号 2026-07-16 勘误,原记 1108-1110 处实为重组判断);进入常规取现页后则全用户统一 Rp2,000(`Index.vue:553-557`)。推荐金额芯片 = 可取额度的 [100%, 50%, 25%] 向下取整到 10 万(<50 万剔除但补 500K 档,`home/Index.vue:856-874`),非最低门槛。 - **低价档生成**:`withdraw-utils.js#formatMethods` 输出各低价档,每档 `minLimit = max(tryCalcLevelMinLimit, 2000)`,列表按费率升序排列、disabled 档沉底。
p20## 低价权益取现(INT_RG 价格券 / DJ 权益)
p21营销系统侧以 **DJ 类权益(DJXXX)** 为口径下发低价标记,落到 SDK 前端的实际识别物是 **`INT_RG` 价格券**(`constants/coupon.js:68`),由其触发取现页的低价定价与一系列展示/门槛规则。`DJXXX` 为营销编码(后端/营销口径),前端不出现该字面常量。以下为 PRD 口径的业务规则(部分代码看不到)。
p22### 最低取现金额门槛
p23- 进入**常规取现页**后,最低取现额度对**全部用户统一为 Rp2,000**(`Index.vue:553-557`,注释明示低价/非低价双轨已退场)。 - 主页「Instant Cash」入口门槛:持 `INT_RG` 价格券则 Rp2,000,否则 Rp100,000(`home/Index.vue:1154-1157`)。500K 为推荐金额档,非门槛。 - 低价取现页内按可用低价额度判断: - 可用低价额度 ≥ 2K:可完成支用流程。 - 可用低价额度 < 2K:显示"额度已用完"样式,文案为 *"Only the first Rpxxx loan amount is eligible for this interest rate. You can repayment current bills first and then use it."* - 低价权益用户若 0% admin fee 额度已全部用完,或剩余 PL 额度 < 2K,则展示上述提示文案。 — 《低价感知定价取现流程优化方案 0417》
p24### 低价支用主页:单券默认选中、多券不默认
p25- 用户当前**仅有 1 个低价利率且可用**时,进入页面自动选中该利率并展示对应信息。 - 用户有 **> 1 个低利率**时,不默认选中,展示全部利率列表由用户自行选择。 - 此页展示的"可用额度"数值应为用户**当前可用的取现额度**,而非总额度。 — 《低价感知定价取现流程优化方案 0417》
p26### 低价额度与可用取现额度的取小逻辑
p27- 在低价主页内,若用户**剩余可用低价额度 > 剩余可用取现额度**,则页面内展示的低价额度最大值应等于**剩余可用取现额度**(取两者中较小值)。 - 引擎输出的当前剩余可用低价额度字段为 `TryCalcLevelMaxLimit`。 — 《低价感知定价取现流程优化方案 0417》
p28### 主页低价权益引导标记
p29- 主页判断用户是否持有 DJXXX 低价权益,命中则展示低利率引导文案(如 *0% interest / 0% admin*),对正常 PL 与 Y001 用户均生效。 - **二期收紧(后端/营销/PM 口径,前端未必承载)**:引导标记的展示条件为「持有 DJ 权益 **且** 当前额占率 < 营销系统配置的第一个价格区间上限值」: - **当前额占率 = 100% − 可用信用额度 / 用户总额度**。 - 额占率 < DJ 权益配置的第一个价格区间上限值则展示低价引导,≥ 则不展示。 - 标记内的 X% 文案读取营销系统配置 DJ 权益时的费率值(第一个价格区间的费率值)。 — 《低价感知优化方案二期 0427》。注:额占率收紧的价格区间上限值由营销系统配置下发,属后端/营销/PM 口径,本仓前端未见对应判定常量,落地以 PM 为准。
p30### 低价支用页交互
p31- 低价选择里不展示 special 文案;分期里不展示划掉的每月还款原价;感知定价页的还款计划里不展示划掉的原价。 - 无 more cash / more instalment 按钮,底部为统一按钮:点击 more cash & instalment 跳转常规取现页(携带当前金额与期数),点击 continue 进入支用金额与期数预览页。 - 在低价支用流程滑动到最大金额时出现特殊交互:金额显示为 `XXX(Max)` 并出现"更多金额"按钮,点击进入常规取现页(携带当前金额与期限)。 — 《感知低价取现页优化 0310》
p32> 注:DJ 权益(DJXXX)是营销系统侧的低价权益编码,落到 SDK 前端的实际识别物是 `INT_RG` 价格券(`constants/coupon.js:68`,见 [11](11-营销优惠券与落地页.md));前端不出现 `DJ`/`DJXXX` 字面常量。本知识库未见统一叠加器,叠加优先级以 PM 规则为准。
p33### 高额度挽留问卷弹窗
p34- 触发时机 = **从取现金额页/低价档页点返回(onNavBack)离开时**(`Index.vue:576`、`WithdrawMethods.vue:313-318`;2026-07-16 勘误:非"进入流程"触发),且用户**可用额度占比 > 0.8**(`availableLimit/totalLimit > 0.8`,即几乎未动用额度)——高额度却放弃取现的挽留调研。 - 节流:**每 7 天最多弹一次**(localStorage 时间戳 `INVESTIGATION_POPUP_TIMESTAMP`,`withdraw-utils.js:41-69`)。
p35## RIPLAY Instant Cash 合同披露字段
p36RIPLAY(Ringkasan Informasi Produk dan Layanan,产品与服务信息摘要)是监管要求展示的产品信息摘要,取现提交前以 iframe 展示并需勾选已阅读同意。**注:合同 URL、费率与期限枚举等由后端 `CONTRACT_BASE` 下发,前端仅渲染 iframe(不在本仓前端组装合同内容)**;下方字段口径为 RIPLAY 文档内容,非前端写死。其披露字段(印尼文)口径如下 — 《RIPLAY Instant Cash - Personal - May 2025》:
p37- **发行方**:PT. Allo Bank Indonesia Tbk;**产品类型**:Kredit Tanpa Agunan(无抵押信贷);**产品名**:Instant Cash;**币种**:Rupiah。 - **产品描述**:面向持有 PayLater 的 Allo Bank 客户的现金贷,**资金发放至 Allo Wallet**,供个人用途使用;可按所选期限分期偿还,期限枚举为 **1 / 3 / 6 / 12 / 18 / 24 个月**。 - **费用**: - 申请费用:管理费 `{admin_fee}`、Instant Cash 交易费 `{service_fee}`。 - 偶发费用:**逾期费 0.3%/日**(按逾期账单金额);**提前还款费 = 提前还款金额的 10%**。 - **试算(Simulasi)字段**:到期日 `{due_date}`、期限 `{Installments}`、贷款额度 `{loan_amount}`、服务费 `Biaya Layanan {service_fee}`、实际到账 `{loan_amount − service_fee}`、利息费 `Biaya Bunga (X%) = {admin_fee}`、应还总额 `loan_amount + total_adminfee`;还款计划逐期列出到期日、应还、利息分摊、本金分摊与剩余本金,**每月还款日为每月 10 日**。 - **监管声明**:Allo Bank 受 OJK 监管并参加 LPS 存款保障;逾期可依规将催收/债权转让第三方等。
p38### 用券后 RIPLAY 显示折后 admin fee
p39- 用户使用 **admin fee 利率券**时,RIPLAY 还款计划里 `Biaya Layanan`(admin fee)需展示**用券后的折后金额**。 - 取现示例:贷款额 Rp1,000,000、admin fee 4% = Rp120,000、upfront fee 3% = Rp30,000,用 0% admin fee 券(仅首月)→ 第 1 期 `Biaya Layanan` 显示 Rp0,其后各期按原费率计。 - 消费(PayLater)示例:贷款额 Rp128,585、admin fee Rp7,715、1 期、用 0% admin fee 券 → `Biaya Layanan` 显示 Rp0。 - 同批次新增的监管披露:取现与 PayLater 协议的 Disclaimer 章节均新增"债权可转让第三方"一条(Allo Bank dapat mengalihkan hak tagih … kepada pihak ketiga …)。 — 《RIPLAY 更新优化 0507》
p40## 取现埋点
p41- 取现埋点**不在** `top-up.js`(`top-up.js` 是充值/Top-up 分区,与取现无关)。取现实际埋点分布在两处文件: - `creditline.js#INSTANT_CASH`:Instant Cash 取现主流程埋点;DBDP 复借相关与 RIPLAY 相关埋点亦在此文件(`creditline.js:301,306,311`)。 - `deposit-liquidity.js#WITHDRAWAL_PROCESS`:取现流程(WITHDRAWAL_PROCESS)分区埋点。 — 来源:SDK 代码(埋点字典全量以 BI 导出为准)。
p42## D. 取现全链路编排(代码查实,2026-07-16)
p43> 源:`ifes-resm` 分支 `vibe-coding-case/K-S-2607-opt-20260710`。流程页 `service/withdraw/{Intro,Index,Confirm,WithdrawMethods}.vue` + `utils/withdraw-utils.js`。产品号常量 `WITHDRAW_PRODUCT_CODE='9022'`(`constants/pay-later/withdraw.js:36`)。
p44### D.1 入口与分流(`home/Index.vue:1120-1181` `onGetCashClicked`,debounce 1s)
p45顺序:①埋点 + 对外上报 `ENTER_GET_CASH_CLICK` → ②路由权限(不可开 → `goOpenAllo()`)→ ③**冻结静默拦截**(`frozenState≠NONE` 直接 return,产品口径不弹框)→ ④**门槛**(持 INT_RG 券 2K / 否则 100K,`cashLimit` 不足 → alert + 埋点 `CREDIT_NOT_ENGOUTH`)→ ⑤按 **`cashState`** 分流:
p46| cashState | 语义 | 去向 | |---|---|---| | `W`(NEW_CREDIT,首借) | 未借款未支付 | Intro 介绍页 → 点 Get Cash Now 再分流 | | `AC`(AVAILABLE_CREDIT)/ default | 可借 | `goWithdraw()` |
p47`goWithdraw` 与 Intro 内**同款持券分流**(`home/Index.vue:1346-1361`、`Intro.vue:91-108`):`equities` 中有 `INT_RG` 且 `STATUS='0'` → 低价档页 `WithdrawMethods`(带 `listNo/equityType/equityNo`);否则常规金额页。`cashState` 派生自 `models/pay-later/account.js:140-158`(逾期→REPAY_FIRST_CREDIT、`cashLimit=0 且 availableLimit≠0 且未借过`→ONLY_PAY_CREDIT 等)。
p48**`checkAccountBeforeWithdrawAndPay` 五级拦截顺序**(`view.js:395-499`;由 `Home.vue:1275`/`HomeV2.vue:898`/`AppGuidedTour.vue:169` 调用,**alpha 首页 `home/Index.vue` 的取现入口不走它**,用自身冻结/门槛判断):
p49| 序 | 拦截 | 判据 | 弹窗主行为 | |---|---|---|---| | 1 | 邮箱待验证 | `emailVerifyRequired` | Verify now → 邮箱验证页 | | 2 | 身份证待重传 | blockCode 含 `q` | Re-upload → 扫描页 | | 3 | 账户冻结 | blockCode 含 `R/S/F/n/B` | Got it(无二级按钮)| | 4 | 身份验证中 | blockCode 含 `T` | Got it | | 5 | 已逾期 | `acctStmtStatus=OVER_DUE` 或 blockCode 含 `A/Z` | Repay → 还款页(带未还总额)|
p50### D.2 金额与期数页(`withdraw/Index.vue`)
p51- **可取上限** = `min(availableLimit, cashLimit)`(`:547-552`);**下限统一 2000**;金额**以"千"为单位输入**(实际值 ×1000)。输入校验三态:<2K 红框提示 more than minimum / >cashLimit 红框提示 up to 上限 / 合法 → **debounce 500ms 后试算**。 - **试算 `coreTransTryLoan` 入参**(`:1075-1096`):`AMOUNT`(真实卢比)、`TERM:''`(后端返全部档)、**`LOAN_CODE = accountInfo.loanPlans[0].loanCode`(动态取账户产品,非硬编码 9022——与低价页硬编码不同)**、`TXN_CODE='AUTH_LOAN_CASH'`;选券或低价页带入 defaultCoupon 时附 `EXT_EQUITY_TYPE/EXT_EQUITY_VALUE`。 - **档位**:返回 `LOAN_LIST` 按期数**降序**渲染,**默认选最大期数档**(`termDidSelected(0)`);每档展示每期金额(用券时 `firstBillAmtWithCoupon` + 划线原价)、月费率 `adminFee`、省额 `totalSave`。选中档明细:1 期显示 due date;多期显示首期账单日、Service fee(0 显示 FREE)、到账额 `fundAmt`。 - **普通券选择**:券列表过滤 `status='0' && equityScenario=CASH_LOAN`,按券的金额区间/期数(`useLowerAmt/useUpperAmt/usePlanTerm`)实时判可用性并给禁用原因;选券触发**带券+不带券双试算**对照展示。
p52### D.3 低价流程(WithdrawMethods)与常规差异
p53先 `coreTransLoanPreCheck`(入参 txnCode/loanCode/listNo/equityType)拿分档 `tryCalcList` + 取现 OTB,`formatMethods`(`withdraw-utils.js:6-39`)生成档位(每档 `minLimit=max(档位下限,2000)`、上限受 cashOtb 封顶、不可用档置灰沉底带原因)。试算与常规页三点不同:**并发带券/不带券两次**、多传 **`ONLY_DISCOUNT_PRICE:'Y'`**、`LOAN_CODE` **硬编码 '9022'**。选定后跳常规金额页并携带 `defaultCoupon` 静默生效。
p54### D.4 确认页与提交(`Confirm.vue`)
p55- **展示**:到账额 `fundAmt` / 借款额 `loanTotalAmount`(0 显 FREE)/ Service fee(券后 vs 原价划线)/ 期数 / 每月还款日 `billingCycle` / 首期 `firstBillAmt`+日期 / 姓名/KTP/收款=Allo Wallet / 券名+Total saving(**价格券 INT_RG 无 equityName 故不展示券行,静默生效**)。- **RIPLAY iframe**:URL 取试算返回 `CONTRACT_BASE[0].CONTRACT_URL`;加载完成后按合同版本 >1.1 用 `CONTRACT_DATA` 否则前端格式化金额字段,`postMessage` 注入 iframe;**提交按钮门控 = 勾选同意 && iframe 加载完成**(加载失败无重试 UI,按钮持续禁用)。- **DBDP 拦截**在此页提交时(见核心能力表勘误)。- **验密**:`COMMON_PASSWORD_VERIFY`(category=WITHDRAW)——**IM3/BIMA 渠道跳过验密直接提交**(`:208-236`);验密成功即触发 **GPS 上报 `CASH_POSITION`**(首借 + `cashLoanSceneSwitch='Y'` 时强制授权,失败弹 LocationPopup),Android 再查 App List 授权(`agreeFlag='Y'` 则采集随单上送)。- **提交 `coreTransApplyLoan`** 入参:`LOAN_INIT_PRIN`(本金)/`LOAN_TERM`/`FEE_AMT`/`INEREST_RATE`(接口拼写如此)/`APP_ID`/`CONTRACT_BASE`(合同名+版本)/`DECISION_CONTRACT_TIME`/**`session`(验密凭证)**/`appListData`/**`MES_INFO`(券核销:EQUITY_TYPE/NO/VALUE,仅带券时)**。- **提交结果分支**:`STATUS='1212'` = **支用反欺诈引擎的挑战出口**(PM 口径 2026-07-16 + 代码印证)——按 `RULE_CODE_LIST_PARTNER` 走 OTP/刷脸增强验证后续查(WhatsApp 反欺诈 OTP 有专用模式 `GET_CASH_WHATSAPP`,注释即"支用反欺诈whatsapp",`constants/map.js:33`,短信模板 `3001186`);`LOAN_STATUS='F'` → 失败页;`ret_code=80531026` → UNDER_REVIEW 在途页;其余 → 轮询。
p56- **轮询** `coreTransQueryTransactionStatus`(`NBS_ORDER_NO`):**2s × 最多 6 次**;`LOAN_STATUS='O'`(WAIT) 继续;**超时/异常一律落失败页**;FAIL 且 `ACTION_CODE` 含 `LRCLNR/LRCLNL` → **QUOTA_LIMIT 页**(授信刷新后新额度<取现额,Try again → 刷新额度回金额页);其余成功 → 「being processed」结果页(含到账额+参考号+费用明细;IM3/BIMA 主按钮为下载 App 的 onelink,其他渠道 Done 回首页)。
p57### D.5 交易详情新旧版与埋点
p58- **新旧版由上游路由决定**:通用交易列表 `transaction/Detail.vue` → 旧版 `InstantCash.vue`;调整还款计划流 `adjust-repayment-plan` → 新版 `NewInstantCash.vue`(字段几乎相同:`LOAN_REAL_AMT/TRANSACTION_AMT/UPFRONT_ADMIN_FEE/CURR_TOTAL_TERM/TRANSACTION_TIME/TRANSACTION_NO`+还款计划,新版换新式导航与 footer)。**Repay 按钮** = 交易 SUCCESSFUL 且有未还期 → 提前结清流(EARLY_REPAYMENT + receiptId)。 - **对外上报点位**:首页 `ENTER_GET_CASH_CLICK` → 金额页 `INSTANT_CASH_CONTINUE`/`INSTANT_CASH_NO_CONTINUE`(返回)→ 确认页 `INSTANT_CASH_CONFIRMATION_CLICK`/`NO_CLICK`;stats 埋点在 `creditline.js#INSTANT_CASH` 与 `deposit-liquidity.js#WITHDRAWAL_PROCESS` 双分区(见取现埋点节)。
p59## 待确认
p60- 各利率档(0/0.5/1.5/2.5%)的现网档位与适用人群属后端/营销/PM 口径(利率档位由后端下发),以 PRD 为准。 - VDC Auto top-up 的触发阈值与补足来源(额度 vs 钱包)口径以 PM 确认为准(本仓前端无 VDC 承载)。 - `DJXXX` 营销编码的具体规则、额占率二期收紧的价格区间配置均为后端/营销系统口径,前端不承载。 - 取现 vs PayLater 消费的"提前还款费"口径不同(见 [05](05-灵活还款.md)),需 PM 统一。 - **IM3/BIMA 渠道取现跳过 PIN 验密**(D.4,代码查实)——该豁免的风控依据(IOH OTP 前置?渠道协议?)待 PM/风控确认。 - 常规页试算 `LOAN_CODE` 动态取 `loanPlans[0]` 而低价页硬编码 9022(D.2/D.3)——多产品号账户下两条路径是否会试算到不同产品,待后端确认。
抽出的卡片 · 92
定义DOC-2026-007#p4pending_review

Instant Cash(取现)是 SDK 内的主借款产品:用户在取现额度内申请一笔现金借款,选分期、读 RIPLAY 合同、密码确认后资金到账 Allo Wallet,随后按期数×每月应还分期偿还并生成借据。

"Instant Cash(取现)是 SDK 内的**主借款产品**:用户在取现额度内申请一笔现金借款,选分期、读合同(RIPLAY)、密码确认后,资金到账 Allo Wallet,随后按"期数 × 每月应还"分期偿还并生成借据。"

定义DOC-2026-007#p4pending_review

取现的产品形态为:主动发起、金额自定、一次放款、固定分期。

"形态 = **主动发起、金额自定、一次放款、固定分期**。"

动作条件DOC-2026-007#p8pending_review

首借用户(从没借过)进入取现时先看一页产品介绍(Intro),点“Get Cash Now”才进入流程。

"**首借用户**(从没借过) | 先看一页产品介绍(Intro),点"Get Cash Now"才进流程"

动作条件DOC-2026-007#p8pending_review

复借用户进入取现时直接进入金额页。

"**复借用户** | 直接进金额页"

动作条件DOC-2026-007#p8pending_review

持低价券用户进入取现时先进入利率档选择页(0%/0.5% 等档位任选),再进金额页。

"**持低价券用户** | 先进**利率档选择页**(0% / 0.5% 等档位任选),再进金额页"

规则DOC-2026-007#p10pending_review

点入口时有准入闸门:账户冻结的用户被静默拦下(不弹窗);额度低于门槛的用户被告知额度不足。

"账户冻结的用户静默拦下(产品口径不弹窗);额度低于门槛的用户被告知额度不足。"

规则DOC-2026-007#p10pending_review

取现入口门槛分层:普通用户最低 10 万卢比才可进入,持低价券用户 2 千卢比即放行。

"门槛本身是**分层的**——普通用户最低 10 万卢比才可进入,**持低价券用户 2 千卢比就放行**"

流程步骤DOC-2026-007#p10pending_review

从额度首页进入的用户经过五道账户检查:邮箱未验证→去验证、证件待重传→去重传、冻结/审核中→告知、已逾期→引导先还款,每种拦截给出明确下一步动作。

"从额度首页进入的用户还会经过五道账户检查(邮箱未验证→去验证、证件待重传→去重传、冻结/审核中→告知、已逾期→引导先还款),每种拦截都给出明确的下一步动作。"

规则DOC-2026-007#p10pending_review

取现金额可取上限=可用额度与取现额度中较小者;下限统一 2 千。

"可取上限 = 可用额度与取现额度中较小者;下限统一 2 千。"

规则DOC-2026-007#p10pending_review

选期数时系统按金额实时试算分期档(1~24 期,档位由后端按用户资质下发),默认选最长期数。

"系统按金额实时试算分期档(1~24 期,档位由后端按用户资质下发),**默认选最长期数**"

规则DOC-2026-007#p10pending_review

确认页必须读完并勾选 RIPLAY 合同(监管要求的产品信息披露),合同未加载完或未勾选就不能提交。

"同时必须**读完并勾选 RIPLAY 合同**(监管要求的产品信息披露,含费率、还款计划、逾期后果),合同没加载完/没勾选就不能提交。"

规则DOC-2026-007#p10pending_review

DBDP 复借受限用户在确认与合规步骤被拦:有未结清欠款则弹窗要求先还清(单笔单批策略)。

"**DBDP 复借受限用户在这一步被拦**:有未结清欠款则弹窗要求先还清(单笔单批策略)。"

例外DOC-2026-007#p10pending_review

身份验证需输 PIN,但 IM3/BIMA 合作渠道免 PIN。

"输 PIN(**IM3/BIMA 合作渠道免 PIN**,其风控依据待确认)"

动作条件DOC-2026-007#p10pending_review

首次借款用户会被要求授权定位(合规留痕)。

"首次借款用户会被要求授权定位(合规留痕)"

流程步骤DOC-2026-007#p10pending_review

CL 取现要串行过四个后端决策引擎:反欺诈引擎→刷脸引擎→首借引擎/复借引擎,首借与复借用户走不同授信决策引擎。

"**CL 取现要串行过四个后端决策引擎:反欺诈引擎 → 刷脸引擎 → 首借引擎/复借引擎**"

规则DOC-2026-007#p10pending_review

决策引擎判定可疑时,加验人脸或 OTP(含 WhatsApp 通道)后才放款。

"引擎判定可疑时加验人脸或 OTP(含 WhatsApp 通道)后才放款。"

状态DOC-2026-007#p10pending_review

取现放款结果分四种:成功(含到账额与参考号)、失败、审核中、额度变化。

"结果分四种——**成功(含到账额与参考号)/ 失败 / 审核中 / 额度变化**。"

动作条件DOC-2026-007#p10pending_review

提交瞬间授信刷新导致新额度低于申请额时,用户看到“额度已变化,请重试”,点重试回金额页按新额度重新申请。

"提交瞬间授信刷新导致新额度低于申请额,用户会看到"额度已变化,请重试",点重试回金额页按新额度再来。"

规则DOC-2026-007#p12pending_review

门槛规则:入口普通用户 100K、持低价券 2K;进入金额页后统一 2K。

"门槛 | 入口:普通 100K / 持低价券 2K;进入金额页后统一 2K"

规则DOC-2026-007#p12pending_review

取现上限=min(可用额度, 取现额度)。

"上限 | min(可用额度, 取现额度)"

规则DOC-2026-007#p12pending_review

取现费用为两费结构:砍头息(放款时一次性扣,≈6%,到账=本金−头息)+ admin fee(月费 0–9%,按原始本金每期等额)。

"费用 | **两费结构(PM 2026-07-16 复核,与 PL 对称)**:**砍头息**(放款时一次性扣,≈6%,到账=本金−头息)+ **admin fee**(月费 0–9%,按原始本金每期等额)"

规则DOC-2026-007#p12pending_review

低价权益由营销发放 DJ 权益(前端表现为 INT_RG 价格券),走独立利率档流程,静默生效——确认页不展示券名,用户只看到便宜后的价格。

"低价权益 | 营销发放 DJ 权益(前端表现为 INT_RG 价格券),独立利率档流程;**静默生效**——确认页不展示券名,用户只看到便宜后的价格"

规则DOC-2026-007#p12pending_review

合规规则:RIPLAY 必读必勾;首借强制定位授权;合同版本随单存档。

"合规 | RIPLAY 必读必勾;首借强制定位授权;合同版本随单存档"

规则DOC-2026-007#p12pending_review

复借限制:DBDP 客群单笔单批,有未结清欠款不得再借;机制为字段强控(风控预先打在用户 riskCode 上的 DBDP 标签,前端直接硬拦截),不经复借引擎实时决策。

"复借限制 | DBDP 客群单笔单批:有未结清欠款不得再借。**机制=字段强控**(风控预先打在用户 riskCode 上的 DBDP 标签,前端直接硬拦截),**不经复借引擎实时决策**"

规则DOC-2026-007#p12pending_review

渠道差异:IM3/BIMA 渠道免 PIN,结果页引导下载 Allo App。

"渠道差异 | IM3/BIMA 渠道免 PIN、结果页引导下载 Allo App"

动作条件DOC-2026-007#p14pending_review

额度动用率低于 20% 的用户在放弃取现返回时触发挽留调研问卷,每人每 7 天最多一次。

"额度动用率低于 20% 的用户(额度很富余却不借)在**放弃取现返回时**触发调研问卷,每人每 7 天最多一次"

规则DOC-2026-007#p16pending_review

常规取现页对全部用户统一最低取现额度 Rp2,000,不再区分是否低价权益用户。

"常规取现页对**全部用户统一**最低取现额度 Rp2,000(`Index.vue:553-557` 注释明示双轨已退场,不再区分是否低价权益用户)"

定义DOC-2026-007#p16pending_review

常规取现提交接口为 coreTransApplyLoan,入参无 LOAN_CODE;产品号 9022 作为常量定义,非提交时透传。

"提交接口实为 **`coreTransApplyLoan`**(`Confirm.vue:332`),入参中**无 `LOAN_CODE`**;产品号 9022 作为常量定义在 `constants/pay-later/withdraw.js`,非提交时透传。"

定义DOC-2026-007#p16pending_review

前端实际识别的低价标识是 INT_RG 价格券,代码内无 DJ/DJXXX 字面常量;DJ 权益是营销系统下发口径,落到前端表现为 INT_RG 价格券。

"**前端实际识别的低价标识是 `INT_RG` 价格券**(`constants/coupon.js:68`),代码内并无 `DJ`/`DJXXX` 字面常量——"DJ 权益(DJXXX)"是营销系统下发口径,落到前端表现为 `INT_RG` 价格券。"

规则DOC-2026-007#p16pending_review

RIPLAY 合同为监管要求的产品信息摘要(PIS),iframe 展示,勾选“已阅读同意”且加载完成后才能提交。

"监管要求的产品信息摘要(PIS),iframe 展示;勾选"已阅读同意" + 加载完成后才能提交。"

动作条件DOC-2026-007#p16pending_review

当 RiskCode 含 DBDP 且在贷余额>0(=总额度−可用信用额度)时弹窗“需还清贷款后才可复借”(单人单笔);非 DBDP 用户可多笔并存。

"当 RiskCode 含 **DBDP** 且**在贷余额 > 0**(= 总额度 − 可用信用额度)时弹窗"需还清贷款后才可复借"(单人单笔),非 DBDP 用户可多笔并存"

边界DOC-2026-007#p16pending_review

DBDP 复借拦截点不在首页入口,而在确认页提交时判断并以 blocking-popup 阻断。

"**拦截点不在首页入口,而在确认页提交时**(`Confirm.vue:219-228` `onConfirmWithdraw` 内判断,blocking-popup 阻断,2026-07-16 代码查实)"

定义DOC-2026-007#p16pending_review

VDC Auto top-up:绑定 VDC 虚拟借记卡后,卡余额不足时自动从额度/钱包补足,保障线上/绑卡支付。

"绑定 VDC 虚拟借记卡后,卡余额不足时自动从额度/钱包补足,保障线上/绑卡支付"

规则DOC-2026-007#p19pending_review

取现准入拦截包括:邮箱验证、ID 重传(blockCode q)、冻结(R|S|F|n|B)、审核中(T)、逾期(A|Z 或 acctStmtStatus=OVER_DUE)。

"**准入拦截**(`checkAccountBeforeWithdrawAndPay`):邮箱验证、ID 重传(blockCode `q`)、冻结(`R|S|F|n|B`)、审核中(`T`)、逾期(`A|Z` 或 acctStmtStatus=OVER_DUE)。"

规则DOC-2026-007#p19pending_review

复借门槛:riskCode 含 DBDP 且在贷余额>0(在贷余额=总额度−可用信用额度)。

"**复借门槛**:`riskCode ∋ DBDP` + 在贷余额 > 0(在贷余额 = 总额度 − 可用信用额度)。"

规则DOC-2026-007#p19pending_review

取现入口门槛:主页 Instant Cash 入口持 INT_RG 价格券为 Rp2,000,否则 Rp100,000;进入常规取现页后全用户统一 Rp2,000。

"**取现入口门槛**:主页「Instant Cash」入口的最低取现门槛为——持 `INT_RG` 价格券则 Rp2,000,否则 Rp100,000(`home/Index.vue:1154-1157`,行号 2026-07-16 勘误,原记 1108-1110 处实为重组判断);进入常规取现页后则全用户统一 Rp2,000"

规则DOC-2026-007#p19pending_review

推荐金额芯片=可取额度的[100%,50%,25%]向下取整到 10 万(<50 万剔除但补 500K 档),非最低门槛。

"推荐金额芯片 = 可取额度的 [100%, 50%, 25%] 向下取整到 10 万(<50 万剔除但补 500K 档,`home/Index.vue:856-874`),非最低门槛。"

规则DOC-2026-007#p19pending_review

低价档生成:每档 minLimit=max(tryCalcLevelMinLimit, 2000),列表按费率升序排列、disabled 档沉底。

"**低价档生成**:`withdraw-utils.js#formatMethods` 输出各低价档,每档 `minLimit = max(tryCalcLevelMinLimit, 2000)`,列表按费率升序排列、disabled 档沉底。"

定义DOC-2026-007#p21pending_review

营销系统以 DJ 类权益(DJXXX)为口径下发低价标记,落到 SDK 前端的实际识别物是 INT_RG 价格券,由其触发取现页的低价定价与展示/门槛规则。

"营销系统侧以 **DJ 类权益(DJXXX)** 为口径下发低价标记,落到 SDK 前端的实际识别物是 **`INT_RG` 价格券**"

边界DOC-2026-007#p21pending_review

DJXXX 为后端/营销口径的营销编码,前端不出现该字面常量。

"`DJXXX` 为营销编码(后端/营销口径),前端不出现该字面常量。"

规则DOC-2026-007#p23pending_review

进入常规取现页后,最低取现额度对全部用户统一为 Rp2,000(低价/非低价双轨已退场)。

"进入**常规取现页**后,最低取现额度对**全部用户统一为 Rp2,000**"

规则DOC-2026-007#p23pending_review

主页 Instant Cash 入口门槛:持 INT_RG 价格券则最低 Rp2,000,否则 Rp100,000;500K 为推荐金额档而非门槛。

"主页「Instant Cash」入口门槛:持 `INT_RG` 价格券则 Rp2,000,否则 Rp100,000"

动作条件DOC-2026-007#p23pending_review

低价取现页内,可用低价额度 ≥ 2K 时可完成支用流程。

"可用低价额度 ≥ 2K:可完成支用流程。"

规则DOC-2026-007#p23pending_review

低价取现页内,可用低价额度 < 2K 时显示"额度已用完"样式并展示提示文案(仅首笔金额享此利率,可先还当前账单再使用)。

"可用低价额度 < 2K:显示"额度已用完"样式"

规则DOC-2026-007#p23pending_review

低价权益用户若 0% admin fee 额度已全部用完,或剩余 PL 额度 < 2K,则展示提示文案。

"低价权益用户若 0% admin fee 额度已全部用完,或剩余 PL 额度 < 2K,则展示上述提示文案。"

规则DOC-2026-007#p25pending_review

低价支用主页:用户当前仅有 1 个低价利率且可用时,进入页面自动选中该利率并展示对应信息。

"用户当前**仅有 1 个低价利率且可用**时,进入页面自动选中该利率并展示对应信息。"

规则DOC-2026-007#p25pending_review

低价支用主页:用户有 >1 个低利率时不默认选中,展示全部利率列表由用户自行选择。

"用户有 **> 1 个低利率**时,不默认选中,展示全部利率列表由用户自行选择。"

规则DOC-2026-007#p25pending_review

低价支用主页展示的"可用额度"数值应为用户当前可用的取现额度,而非总额度。

"此页展示的"可用额度"数值应为用户**当前可用的取现额度**,而非总额度。"

规则DOC-2026-007#p27pending_review

低价主页内,若剩余可用低价额度 > 剩余可用取现额度,则展示的低价额度最大值等于剩余可用取现额度(取两者较小值)。

"若用户**剩余可用低价额度 > 剩余可用取现额度**,则页面内展示的低价额度最大值应等于**剩余可用取现额度**(取两者中较小值)。"

定义DOC-2026-007#p27pending_review

引擎输出的当前剩余可用低价额度字段为 TryCalcLevelMaxLimit。

"引擎输出的当前剩余可用低价额度字段为 `TryCalcLevelMaxLimit`。"

动作条件DOC-2026-007#p29pending_review

主页判断用户是否持有 DJXXX 低价权益,命中则展示低利率引导文案,对正常 PL 与 Y001 用户均生效。

"主页判断用户是否持有 DJXXX 低价权益,命中则展示低利率引导文案(如 *0% interest / 0% admin*),对正常 PL 与 Y001 用户均生效。"

规则DOC-2026-007#p29pending_review

二期收紧:低价引导标记展示条件为持有 DJ 权益且当前额占率 < 营销系统配置的第一个价格区间上限值。

"引导标记的展示条件为「持有 DJ 权益 **且** 当前额占率 < 营销系统配置的第一个价格区间上限值」"

定义DOC-2026-007#p29pending_review

当前额占率 = 100% − 可用信用额度 / 用户总额度。

"**当前额占率 = 100% − 可用信用额度 / 用户总额度**。"

规则DOC-2026-007#p29pending_review

额占率 < DJ 权益配置的第一个价格区间上限值则展示低价引导,≥ 则不展示;标记内 X% 文案读取营销系统配置 DJ 权益第一个价格区间的费率值。

"额占率 < DJ 权益配置的第一个价格区间上限值则展示低价引导,≥ 则不展示。"

规则DOC-2026-007#p31pending_review

低价支用页:低价选择里不展示 special 文案,分期里不展示划掉的每月还款原价,感知定价页还款计划里不展示划掉的原价。

"低价选择里不展示 special 文案;分期里不展示划掉的每月还款原价;感知定价页的还款计划里不展示划掉的原价。"

规则DOC-2026-007#p31pending_review

低价支用页底部为统一按钮:点击 more cash & instalment 跳转常规取现页(携带当前金额与期数),点击 continue 进入支用金额与期数预览页。

"无 more cash / more instalment 按钮,底部为统一按钮:点击 more cash & instalment 跳转常规取现页(携带当前金额与期数),点击 continue 进入支用金额与期数预览页。"

动作条件DOC-2026-007#p31pending_review

低价支用流程滑动到最大金额时,金额显示为 XXX(Max) 并出现"更多金额"按钮,点击进入常规取现页(携带当前金额与期限)。

"在低价支用流程滑动到最大金额时出现特殊交互:金额显示为 `XXX(Max)` 并出现"更多金额"按钮,点击进入常规取现页(携带当前金额与期限)。"

定义DOC-2026-007#p32pending_review

DJ 权益(DJXXX)是营销系统侧的低价权益编码,落到 SDK 前端的实际识别物是 INT_RG 价格券;前端不出现 DJ/DJXXX 字面常量。

"DJ 权益(DJXXX)是营销系统侧的低价权益编码,落到 SDK 前端的实际识别物是 `INT_RG` 价格券"

边界DOC-2026-007#p32pending_review

本知识库未见统一叠加器,权益叠加优先级以 PM 规则为准。

"本知识库未见统一叠加器,叠加优先级以 PM 规则为准。"

动作条件DOC-2026-007#p34pending_review

高额度挽留问卷弹窗触发时机为从取现金额页/低价档页点返回(onNavBack)离开时。

"触发时机 = **从取现金额页/低价档页点返回(onNavBack)离开时**"

规则DOC-2026-007#p34pending_review

高额度挽留问卷弹窗还需用户可用额度占比 > 0.8(availableLimit/totalLimit > 0.8,即几乎未动用额度)才触发。

"且用户**可用额度占比 > 0.8**(`availableLimit/totalLimit > 0.8`,即几乎未动用额度)"

规则DOC-2026-007#p34pending_review

高额度挽留问卷弹窗节流:每 7 天最多弹一次(localStorage 时间戳 INVESTIGATION_POPUP_TIMESTAMP)。

"节流:**每 7 天最多弹一次**"

定义DOC-2026-007#p36pending_review

RIPLAY 是监管要求展示的产品与服务信息摘要,取现提交前以 iframe 展示并需勾选已阅读同意。

"RIPLAY(Ringkasan Informasi Produk dan Layanan,产品与服务信息摘要)是监管要求展示的产品信息摘要,取现提交前以 iframe 展示并需勾选已阅读同意。"

边界DOC-2026-007#p36pending_review

合同 URL、费率与期限枚举等由后端 CONTRACT_BASE 下发,前端仅渲染 iframe,不在前端组装合同内容。

"合同 URL、费率与期限枚举等由后端 `CONTRACT_BASE` 下发,前端仅渲染 iframe(不在本仓前端组装合同内容)"

定义DOC-2026-007#p37pending_review

Instant Cash 产品:发行方 PT. Allo Bank Indonesia Tbk,产品类型无抵押信贷(Kredit Tanpa Agunan),币种 Rupiah。

"**发行方**:PT. Allo Bank Indonesia Tbk;**产品类型**:Kredit Tanpa Agunan(无抵押信贷);**产品名**:Instant Cash;**币种**:Rupiah。"

定义DOC-2026-007#p37pending_review

Instant Cash 为面向持有 PayLater 客户的现金贷,资金发放至 Allo Wallet 供个人用途,可按所选期限分期偿还,期限枚举为 1/3/6/12/18/24 个月。

"面向持有 PayLater 的 Allo Bank 客户的现金贷,**资金发放至 Allo Wallet**,供个人用途使用;可按所选期限分期偿还,期限枚举为 **1 / 3 / 6 / 12 / 18 / 24 个月**。"

定义DOC-2026-007#p37pending_review

Instant Cash 申请费用包括管理费 admin_fee 和交易费 service_fee。

"申请费用:管理费 `{admin_fee}`、Instant Cash 交易费 `{service_fee}`。"

规则DOC-2026-007#p37pending_review

Instant Cash 偶发费用:逾期费 0.3%/日(按逾期账单金额);提前还款费 = 提前还款金额的 10%。

"偶发费用:**逾期费 0.3%/日**(按逾期账单金额);**提前还款费 = 提前还款金额的 10%**。"

规则DOC-2026-007#p37pending_review

RIPLAY 试算还款计划逐期列出到期日、应还、利息分摊、本金分摊与剩余本金,每月还款日为每月 10 日。

"还款计划逐期列出到期日、应还、利息分摊、本金分摊与剩余本金,**每月还款日为每月 10 日**。"

定义DOC-2026-007#p37pending_review

监管声明:Allo Bank 受 OJK 监管并参加 LPS 存款保障;逾期可依规将催收/债权转让第三方。

"**监管声明**:Allo Bank 受 OJK 监管并参加 LPS 存款保障;逾期可依规将催收/债权转让第三方等。"

规则DOC-2026-007#p39pending_review

用户使用 admin fee 利率券时,RIPLAY 还款计划里 Biaya Layanan(admin fee)需展示用券后的折后金额。

"用户使用 **admin fee 利率券**时,RIPLAY 还款计划里 `Biaya Layanan`(admin fee)需展示**用券后的折后金额**。"

规则DOC-2026-007#p39pending_review

用 0% admin fee 券(仅首月)时,取现示例第 1 期 Biaya Layanan 显示 Rp0,其后各期按原费率计。

"用 0% admin fee 券(仅首月)→ 第 1 期 `Biaya Layanan` 显示 Rp0,其后各期按原费率计。"

规则DOC-2026-007#p39pending_review

取现与 PayLater 协议的 Disclaimer 章节均新增"债权可转让第三方"披露条款。

"取现与 PayLater 协议的 Disclaimer 章节均新增"债权可转让第三方"一条"

流程步骤DOC-2026-007#p45pending_review

alpha首页取现入口点击后依次执行:埋点上报ENTER_GET_CASH_CLICK→路由权限校验(不可开则goOpenAllo)→冻结静默拦截→门槛校验→按cashState分流。

"顺序:①埋点 + 对外上报 `ENTER_GET_CASH_CLICK` → ②路由权限(不可开 → `goOpenAllo()`)→ ③**冻结静默拦截**(`frozenState≠NONE` 直接 return,产品口径不弹框)→ ④**门槛**(持 INT_RG 券 2K / 否则 100K,`cashLimit` 不足 → alert + 埋点 `CREDIT_NOT_ENGOUTH`)→ ⑤按 **`cashState`** 分流:"

动作条件DOC-2026-007#p45pending_review

取现入口在frozenState不等于NONE(存在冻结)时直接静默拦截并return,产品口径不弹框提示。

"`frozenState≠NONE` 直接 return,产品口径不弹框"

规则DOC-2026-007#p45pending_review

取现门槛:持有INT_RG券时最低2K,否则100K;cashLimit不足门槛时弹alert并埋点CREDIT_NOT_ENGOUTH。

"持 INT_RG 券 2K / 否则 100K,`cashLimit` 不足 → alert + 埋点 `CREDIT_NOT_ENGOUTH`"

状态DOC-2026-007#p46pending_review

cashState取值W(NEW_CREDIT,首借)表示未借款未支付,去向为Intro介绍页,点Get Cash Now再分流。

"`W`(NEW_CREDIT,首借) | 未借款未支付 | Intro 介绍页 → 点 Get Cash Now 再分流"

状态DOC-2026-007#p46pending_review

cashState取值AC(AVAILABLE_CREDIT)或default表示可借,去向为goWithdraw()。

"`AC`(AVAILABLE_CREDIT)/ default | 可借 | `goWithdraw()`"

规则DOC-2026-007#p47pending_review

持券分流:equities中有INT_RG且STATUS='0'时进入低价档页WithdrawMethods(携带listNo/equityType/equityNo),否则进入常规金额页。

"`equities` 中有 `INT_RG` 且 `STATUS='0'` → 低价档页 `WithdrawMethods`(带 `listNo/equityType/equityNo`);否则常规金额页"

边界DOC-2026-007#p48pending_review

五级拦截checkAccountBeforeWithdrawAndPay仅由Home.vue/HomeV2.vue/AppGuidedTour.vue调用;alpha首页home/Index.vue的取现入口不走它,使用自身的冻结/门槛判断。

"**alpha 首页 `home/Index.vue` 的取现入口不走它**,用自身冻结/门槛判断"

动作条件DOC-2026-007#p49pending_review

五级拦截中账户冻结判据为blockCode含R/S/F/n/B,弹窗主行为为Got it且无二级按钮。

"账户冻结 | blockCode 含 `R/S/F/n/B` | Got it(无二级按钮)"

动作条件DOC-2026-007#p49pending_review

五级拦截中已逾期判据为acctStmtStatus=OVER_DUE或blockCode含A/Z,弹窗主行为为Repay跳还款页并带未还总额。

"已逾期 | `acctStmtStatus=OVER_DUE` 或 blockCode 含 `A/Z` | Repay → 还款页(带未还总额)"

规则DOC-2026-007#p51pending_review

取现可取上限为availableLimit与cashLimit的较小值,下限统一为2000。

"**可取上限** = `min(availableLimit, cashLimit)`(`:547-552`);**下限统一 2000**"

规则DOC-2026-007#p51pending_review

试算返回的LOAN_LIST按期数降序渲染,默认选中最大期数档。

"返回 `LOAN_LIST` 按期数**降序**渲染,**默认选最大期数档**(`termDidSelected(0)`)"

规则DOC-2026-007#p51pending_review

普通券券列表过滤条件为status='0'且equityScenario=CASH_LOAN。

"券列表过滤 `status='0' && equityScenario=CASH_LOAN`"

规则DOC-2026-007#p53pending_review

低价流程试算与常规页三点不同:并发带券/不带券两次、多传ONLY_DISCOUNT_PRICE='Y'、LOAN_CODE硬编码为'9022'。

"**并发带券/不带券两次**、多传 **`ONLY_DISCOUNT_PRICE:'Y'`**、`LOAN_CODE` **硬编码 '9022'**"

例外DOC-2026-007#p55pending_review

验密采用COMMON_PASSWORD_VERIFY(category=WITHDRAW),但IM3/BIMA渠道跳过验密直接提交。

"**IM3/BIMA 渠道跳过验密直接提交**"

规则DOC-2026-007#p55pending_review

确认页提交按钮门控为勾选同意且RIPLAY iframe加载完成,加载失败无重试UI则按钮持续禁用。

"**提交按钮门控 = 勾选同意 && iframe 加载完成**(加载失败无重试 UI,按钮持续禁用)"

动作条件DOC-2026-007#p55pending_review

提交coreTransApplyLoan返回STATUS='1212'为支用反欺诈引擎的挑战出口,按RULE_CODE_LIST_PARTNER走OTP/刷脸增强验证。

"`STATUS='1212'` = **支用反欺诈引擎的挑战出口**"

规则DOC-2026-007#p56pending_review

提交后轮询coreTransQueryTransactionStatus间隔2s最多6次,LOAN_STATUS='O'(WAIT)继续轮询,超时或异常一律落失败页。

"**2s × 最多 6 次**;`LOAN_STATUS='O'`(WAIT) 继续;**超时/异常一律落失败页**"

动作条件DOC-2026-007#p56pending_review

轮询FAIL且ACTION_CODE含LRCLNR/LRCLNL时跳QUOTA_LIMIT页,表示授信刷新后新额度小于取现额,Try again则刷新额度回金额页。

"FAIL 且 `ACTION_CODE` 含 `LRCLNR/LRCLNL` → **QUOTA_LIMIT 页**(授信刷新后新额度<取现额,Try again → 刷新额度回金额页)"

动作条件DOC-2026-007#p58pending_review

交易详情页Repay按钮的出现条件为交易SUCCESSFUL且有未还期,点击进入提前结清流(EARLY_REPAYMENT+receiptId)。

"**Repay 按钮** = 交易 SUCCESSFUL 且有未还期 → 提前结清流(EARLY_REPAYMENT + receiptId)"