手机分期支持审批退回补件流程 — 迭代需求
1. 背景与目标
现有手机分期进件在风险审批后只有通过或拒绝两个结果。对于资料缺失、资料不清晰或信息需要更正的订单,SA 只能重新办单,造成客户重复采集、审批无法追溯及重复订单风险。
本期在 PocketBuy SA App、BNS 编排和风险交易审批间补齐“审批退回补件”闭环:风险侧明确返回待补材料及补充原因;SA 在原订单详情中查看并补充;补齐后由 BNS 再次发起风险交易审批;订单及审批流水可识别这是补件客户/补件重提。
2. 范围与边界
| 范围 | 本期处理 | 不处理 |
|---|---|---|
| 风险审批结果 | 新增 FIX_REQUIRED | 降级报价/调首付确认流程 |
| SA 办单 | Applications 新增补件类型;在原 Review & Submit 汇总页处理已提交资料的修改与新增材料入口 | 新建订单或让 SA App 自行决定补件项 |
| 新增补件材料 | 本期仅支持 银行流水(Bank Statement);由独立 H5 页面采集/提交;单文件支持图片或 PDF,最大 10 MB | 其他新增材料类型、在 SA 原生页内直接上传 |
| 审批 | 原订单重新提交风险交易审批,保留每轮审批与补件快照 | SA 手工改审批结论 |
| 数据与审计 | 标记补件客户、补件轮次、原因、材料版本及操作人 | 删除历史审批/补件记录 |
3. 责任边界
| 角色/系统 | 责任 |
|---|---|
| res/fds(风险审批) | 审批人员勾选待补材料、配置是否强制,并给出每项补充原因/展示提示;不直接修改订单资料。 |
| bns | 校验回调、落审批与补件快照、推进状态、控制补件重提幂等、携带补件标记再次调用风险审批。 |
| PocketBuy SA App | 展示补件待办;在 Review & Submit 页引导修改原资料,或跳转补件 H5;提交前展示完成度。 |
| 补件 H5 | 承接本期银行流水补件的选择、上传、状态回传;由 BNS 签发一次性会话,不自行决定材料范围。 |
| 文件服务 | 保存银行流水文件及版本引用;不决定订单是否可重提。 |
FixRequired 不是拒绝:订单、客户、商品和已通过资料均保留,SA 必须进入原订单补件,不能以同手机号新建订单规避补件。
4. 风险审批返回 —— 参考
4.1 审批人员配置规则
风险侧在 Reviewing 状态返回如下业务字段;BNS 仍以 approval_request_id + decision_version 去重。审批人员在风险审批系统完成两个动作:
① 勾选“已提交资料需修改”的分组;
② 勾选新增材料 Bank statement 并选择“强制/可选”。
风险系统不直接给 SA App 拼页面,也不直接修改订单资料。
- 审批人员选择
FIX_REQUIRED后,可多选“已提交资料修改项”和“Bank statement”。 - 每一项均必须选择 强制(required) 或 可选(optional);未选择不得提交审批结论。
- 每一项必须填写 SA 可见的补件原因;
guidance可由材料字典默认带入,审批人员可在权限范围内补充。 - 同一补件轮次内,
item_type + target_code不允许重复;BANK_STATEMENT最多一项,避免同类材料重复下发。 - 风险系统应向 BNS 传递完整的
supplement_items快照。后续再次退回时新建下一轮快照,严禁更新或覆盖上一轮配置。
4.2 风险回调数据 —— 参考
可选银行流水仅需将上例材料项的 required 改为 false;展示上传入口,但未提交不阻断重提。
风险与bns需要约定好各项的字典
| 字段 | 类型 / 枚举 | 说明 |
|---|---|---|
item_id | string | 当前补件轮次唯一 ID;审计、上传和 H5 会话均绑定此 ID。 |
item_type | EXISTING_SECTION / NEW_MATERIAL | 前者修改已提交资料,后者为风险新增材料。 |
target_code | 白名单枚举 | 既有资料仅支持 CUSTOMER_IDENTITY、PERSONAL_INFO、WORK_INCOME、EMERGENCY_CONTACTS;新增材料本期仅支持 BANK_STATEMENT。 |
action | UPDATE / ADD | 既有资料固定 UPDATE;新增材料固定 ADD。 |
collection_type | H5_UPLOAD | 仅新增银行流水传入,表示由补件 H5 上传。 |
required | boolean | 审批人员显式选择;true 强制且阻断重提,false 可选且不阻断。 |
supplement_reason | string | SA 可见的具体原因;不得包含内部评分、策略、第三方原始错误或敏感信息。 |
guidance | string | 面向 SA 的操作指引;不得替代服务端校验。 |
4.3 BNS 回调校验与落库规则
FIX_REQUIRED必须同时返回非空的return_reason与至少一项supplement_items;否则 BNS 记录异常回调,不进入FixRequired。- BNS 校验
item_type/action/target_code/collection_type组合;不在白名单内的项不得下发 SA App/H5,并记录配置异常及告警。 supplement_reason是 SA 可见文案,不能透传内部规则、评分、第三方原始错误或敏感个人数据。- BNS 保存回调原文快照及规范化材料项;后续风险重新退回时新增一轮,不覆盖历史轮次。
required=true表示强制补件,未完成时不可重提;required=false表示可选补件,展示但不阻断重提。审批人员必须显式选择“强制”或“可选”,不允许由 SA App 默认推断。
5. SA App 页面与交互
5.1 Applications 列表新增补件类型
Applications 在现有 Pending / Reviewing / Completed / Closed 基础上新增第 2 个 Tab:Supplement,用于单独承接 FixRequired 订单;Pending 不再包含 FixRequired。
| UI Tab | status_tab | 订单状态 | 卡片信息/点击行为 |
|---|---|---|---|
| Pending | pending | Drafting / Approved / Signed / Paid | 沿用现有待办行为。 |
| Supplement | fix_required | FixRequired | 显示橙色 Additional info required 状态、待补件数、最近退回时间;点击进入订单详情。 |
| Reviewing | in_approval | Reviewing | 显示审批中;补件重提后由 Supplement 移入此处。 |
| Completed / Closed | 维持原口径 | 维持原口径 | 维持原行为。 |
列表卡片字段增加:is_supplement_customer、pending_material_count、return_reason_summary。其中 is_supplement_customer=true 的非 FixRequired 订单保留一个 Supplemented 小标签,便于 SA 识别已补件客户,但不改变其所在 Tab。
补件需要支持多轮,每次信息不要覆盖
5.2 Review & Submit 汇总页(补件主入口)
订单为 FixRequired 时,SA 从订单详情进入现有 Review & Submit 页面完成补件;不再以独立的“补件详情页”承载主流程。页面沿用现有订单信息、客户身份、个人资料、工作收入、紧急联系人等白色圆角分组卡片样式。
5.2.1 页面顶部与状态提示
订单信息卡保留原有字段,并在右上角显示订单已提交状态;其下新增橙色提示卡:
Information update required
Risk returned this application. Update the requested sections and add any new required materials.
1 section to update · 1 required material to add- 提示卡只展示 SA 可见的汇总原因和待办数量;不展示风险内部原因码、评分或原始报文。
- 待办数量只统计
required=true且未完成的项;可选材料不计入阻断数量。 - 所有必填待办完成前,底部
Resubmit for review禁用,并显示Complete {n} required updates。
5.2.2 已提交资料分组状态
Submitted information 下保留已提交资料的原分组。每个分组的标题、摘要和右侧状态严格对齐;点击分组仍进入对应既有 SA 办单编辑页。
| 状态 | 适用条件 | 样式与交互 |
|---|---|---|
Completed | 未被风险要求修改,或指定修改已提交 | 绿色浅色标签;保持原摘要;可查看/编辑但不计入待办。 |
Needs update | 风险要求修改该已提交资料分组,且尚未完成 | 整卡橙色边框和左侧橙色提示线;显示 1 条 SA 可见原因;显示 Update section;点击进入原分组编辑页。 |
Optional update | 风险建议补充但 required=false | 灰/橙色弱提示,显示 Optional;可进入编辑,但不阻断重提。 |
示例:风险退回“紧急联系人手机号无法验证”时,Emergency contacts 卡显示 Needs update;SA 点击 Update section 后仍使用原紧急联系人编辑页,保存成功后状态变为 Completed。
5.2.3 新增补件统一入口
新增材料不散落在各既有资料分组中,而在汇总页底部放置唯一入口:
+ Add required materials >
1 new item requested by Risk
Bank statement- 仅当当前补件单存在新增材料时展示;展示材料数量及名称摘要。
- 点击卡片进入 Add required materials H5;返回 SA App 后刷新补件要求和完成状态。
- 入口中的数量只统计强制材料;若仅有可选银行流水,显示
Optional material available,不阻断重提。 - 本期材料名称固定为
Bank statement,不展示或支持其他材料类型。
5.2.4 提交复审
| 条件 | 底部 CTA | 行为 |
|---|---|---|
| 存在未完成的强制修改或强制银行流水 | Complete {n} required updates(禁用) | 点击无动作;提示 SA 先完成待办。 |
| 仅剩可选银行流水或所有强制项完成 | Resubmit for review(可用) | 调用补件重提接口;进入提交中状态。 |
| 重提成功 | Submitting for review... → 返回订单详情 | 订单进入 Reviewing,提示 Information submitted. The application is under review. |
重提按钮重复点击必须由前端禁用和后端幂等共同防护。
5.3 Add required materials H5(银行流水补件)
新增补件页面采用 H5 开发和发布,由 SA App 通过 BNS 下发的短期、订单绑定地址打开。这样后续扩展材料字段、文件校验、展示文案或材料类型时可独立迭代,不要求 SA App 发版。
5.3.1 页面内容与样式
H5 使用与 SA App 一致的浅灰背景、白色圆角卡片、绿色主按钮、橙色补件提示和右侧状态标签;顶部显示订单短码、补件轮次与完成进度。
Add required materials Round 1
#AA11BB · 0 of 1 submitted
Why are these needed?
Risk needs this new material before review can continue.
1 Bank statement Required
Please provide the latest bank statement for review.
[ Upload bank statement > ]
[ Complete 1 material ] (disabled until upload succeeds)银行流水卡状态:
| H5 状态 | 页面展示 | 业务含义 |
|---|---|---|
Required | 橙色 Required 标签 + Upload bank statement | 强制材料未完成,阻断重提。 |
Optional | 灰色 Optional 标签 + 上传入口 | 可上传,但不阻断重提。 |
Uploading | 进度/加载态,操作置灰 | 文件正在上传或服务端校验中。 |
Submitted | 绿色 Submitted 标签、文件名、提交时间和 Replace | 当前轮材料已提交;可替换,保留版本。 |
Rejected | 橙色/红色错误说明 + Upload again | 文件格式、大小或校验未通过;仍未完成。 |
5.3.2 H5 与 SA App 的集成约束
- H5 本期只接受银行流水文件;单文件仅支持图片或 PDF,最大 10 MB。不支持其他材料类型或自由上传;文件格式、大小、账期和脱敏/加密规则由文件服务在上传前、后双重校验。格式或大小不符合时展示
Upload again和明确错误原因。 - H5 不展示客户完整 BVN、银行账户密码、风险内部规则或审批人员身份信息。
英文固定文案:
| 场景 | 文案 |
|---|---|
| 汇总提示 | Information update required |
| 已提交资料需修改 | Needs update / Update section |
| 新增补件入口 | Add required materials |
| 银行流水 | Bank statement / Upload bank statement |
| 未完成 CTA | Complete {n} required updates |
| 提交 CTA | Resubmit for review |
| 提交成功 | Information submitted. The application is under review. |
6. 提交审批接口调整
退补件完成后,重新提交审批接口中,需增加标识标明本次申请为退补件的申请。
7. 校验、异常与时限
| 场景 | 处理 |
|---|---|
| 风险回调重复/乱序 | 以 approval_request_id + decision_version 幂等;非当前审批请求只审计告警,不推进状态。 |
| 补件单已被重提 | 返回原重提结果,不重复创建风险审批请求。 |
| 必填项未完成/资料失效 | 返回可展示的材料级错误,订单保持 FixRequired。 |
| 已进入 Reviewing 后再次提交 | 返回 ORDER_NOT_FIX_REQUIRED,App 刷新详情。 |
| 风险再次退回 | 新建下一轮 approval_return,supplement_round + 1,保留上一轮材料快照。 |
| 补件窗口过期 | 后台关闭补件单并将订单置 Closed,close_reason=fix_expired;App 明确提示联系支持或重新申请。 |
补件有效期配置为 7 个自然日,从风险退回时间起算;配置值由 BNS/运营后台管理,不由客户端判断。到期前 App 显示截止时间;是否允许运营延期须保留审计记录。
8. 验收标准
- 风险返回合规
FIX_REQUIRED后,原订单进入FixRequired,Applications 的 Supplement Tab 可见且显示待补件数和原因摘要。 - SA 从订单详情可进入补件页,看到每项待补材料、补充原因和采集指引;未指定材料不可绕过新增或编辑。
- 所有必填材料完成前不能重提;材料替换后,审计能追到旧/新版本和操作时间。
- 重提成功后订单进入
Reviewing,风险请求带submission_type=SUPPLEMENT、is_supplement_customer=true、轮次和材料引用;重复点击只产生一次审批请求。 - 补件客户在后续
Approved / Closed / Completed列表中仍保留Supplemented标识,报表可按该字段统计。 - 审批第二次退回时生成 Round 2,不覆盖 Round 1;通过、拒绝、过期和乱序回调均符合状态机与审计要求。
- 所有 SA 可见英文文案不暴露风控内部规则、评分、第三方原始错误或敏感信息。
9. 设计稿交付清单
Figma 目标文件:https://www.figma.com/design/Hu0MiPgwvwehQPdNw5pKEi/%E8%A2%8B%E9%BC%A0%E9%87%91%E8%9E%8D-APP?node-id=18-324。本次写入受 Figma 认证状态限制,需完成重新授权后执行并回读截图验证。