SA 代客办单流程
1. 流程目标
SA 代客办单覆盖从门店准入到提交审批结果处理的前半段链路:
SA 登录 -> 选品试算 -> 客户验证 -> 资料采集 -> 提交进件 -> 审批结果处理
本流程结束后,订单进入签约、首付和放款阶段,详见 04-签约首付与放款到商户.md。
2. 参与方
| 参与方 | 职责 |
|---|---|
| PocketBuy SA | 门店销售使用的代客办单前端 |
| bns / bns-gateway | 前端入口、会话、订单草稿、流程编排 |
| 渠道商品域 | SA、门店、POS、商品 SKU、商户账户、IMEI 辅助能力 |
| crs | OTP、BVN/NIN、KYC、活体、人脸、征信等三方接入 |
| res / fds | 政策预览、审批决策、人审、补件、拒绝、降级 |
| fcs / pfs | 分期产品、试算、后续借据准备 |
3. SA 登录与准入
| 步骤 | 说明 | MVP 判断 |
|---|---|---|
| SA 输入账号密码 | SA 账号不开放注册 | 必做 |
| bns 校验登录态 | 返回 token 和基础档案 | 必做 |
| 查询 SA 授权门店 | 校验 SA 是否可在当前门店办单 | 必做 |
| 重置密码 | Settings 内直接改密,不发 OTP | MVP 简化 |
SA 账号创建、禁用、门店授权可以先由渠道中心或人工数据维护完成,完整运营后台后置。
4. 选品、POS 与试算
| 能力 | 口径 |
|---|---|
| 商品列表 / Hot Picks | 渠道商品域提供 SKU、品牌、型号、建议售价和推荐方案 |
| POS 反查 | 用于确认门店和销售场景 |
| 实际售价 | SA 可录入实际成交价 |
| 信贷政策预览 | 风控根据门店、手机型号、售价等信息返回可售边界和金融产品等级,详见下方第 5 节 |
| 金融产品查询 | bns 用风控返回的金融产品等级调用 pfs,获取可选 payment methods 和 payment terms |
| 分期试算 | SA 确认选择后,按最终 product_fee_id 试算单期应还、总利息和还款计划 |
| IMEI 反查 | 作为辅助能力,不作为试算硬前置 |
商品中心不承载风控政策语义;政策由 res/fds 动态计算,金融产品配置由 pfs 输出,试算由 fcs/pfs 输出账务口径结果。
4.1 产品匹配与试算
SA 确定门店和手机型号后,先调用风控政策预览。风控政策预览在原有可售边界基础上,需要额外返回一个金融产品等级;pfs 暂将该金融产品等级按“用户等级”处理,用于查询 pfs_cust_level_product 下的可售产品配置。
| 步骤 | 调用 | 输入 | 输出 / 处理 |
|---|---|---|---|
| 1. 确定销售上下文 | PocketBuy SA | 门店、POS、手机型号、售价 | 得到商品和渠道上下文 |
| 2. 风控政策预览 | bns -> res/fds | 门店、POS、手机型号、售价等 | 返回可售边界和 financial_product_level |
| 3. 查询金融产品 | bns -> pfs | financial_product_level、商品价格、可选频率约束 | 返回可用 product_id / product_fee_id、payment_methods、payment_terms、利率和费用配置 |
| 4. 前端展示 | bns -> PocketBuy SA | pfs 产品配置结果 | 展示 payment methods 和 payment terms |
| 5. SA 代客户确认 | PocketBuy SA | 客户选择的 payment method、payment term、首付 | 确认最终 product_fee_id |
| 6. 产品试算 | bns/fcs -> pfs | 最终 product_fee_id、售价、首付、分期本金 | 返回单期应还、总利息、还款计划摘要、罚息配置 |
| 7. 草稿保存 | bns | 客户选择方案和试算结果 | 保存最终产品配置和试算快照,继续客户验证和进件流程 |
SA 代客户确认选择后,product_fee_id 即为后续流程使用的最终金融产品配置。后续审批、签约、合同、还款计划、计罚息和贷后处理均以该 product_fee_id 对应配置为准。
4.2 草稿订单内的产品快照
草稿订单必须保存 pfs 返回并经 SA 确认的产品快照,用于后续审批提交、签约和账务建借据。
| 字段 | 说明 |
|---|---|
financial_product_level | 风控政策预览返回的金融产品等级,pfs 暂按用户等级使用 |
payment_method | SA 代客户选择的还款频率或支付方式,如 weekly / monthly |
payment_term | SA 代客户选择的期限,如 16 / 24 / 32 / 3 / 6 / 9 |
product_id | pfs 返回并最终确认的主产品 ID |
product_fee_id | pfs 返回并最终确认的子产品 ID,后续全链路锁定使用 |
pricing_snapshot | 利率、费用、单期应还、总利息、还款计划摘要、罚息配置、报价版本 |
pricing_confirmed_at | SA 代客户确认最终产品方案的服务端时间 |
5. 信贷政策预览
5.1 业务目的
信贷政策预览发生在客户正式 OTP 和建单之前,用于告诉 SA 当前商品和售价下“是否可做、可怎么做”。它不是最终审批,也不生成授信结果。
首付区间、分期期数、价格上限不是商品固有属性,而是 (商品 + 价格 + 客户 + 渠道) 在当下风控策略下的动态计算结果。商品中心只提供商品属性和商品标识,不承载 min_dp_ratio / max_dp_ratio / price_cap / promo_term 等政策语义。
| 项 | 说明 |
|---|---|
| 触发页面 | PocketBuy SA 的 Calculate 页 |
| 调用方向 | PocketBuy SA -> bns -> res/fds |
| 核心作用 | 返回价格上限、首付区间、首付档位、可售边界和金融产品等级 |
| 不做事项 | 不返回最终审批结论,不替代 fcs/pfs 费率试算,不创建订单 |
5.2 调用场景和触发时机
| 场景 | 触发位置 | 说明 |
|---|---|---|
| catalog 选品 | 商品选定 + 价格 onBlur | 用 product_id + price 取 DP 区间和 term 选项,渲染 Calculate 页 |
| IMEI 扫码 | IMEI 反查回填品牌/型号 + 价格 onBlur | 无 product_id 时,用 device.brand + device.model + price 计算政策 |
| 商品变更 | SA 切换商品 | 清空已渲染的首付和期数,重新触发政策预览 |
| 渠道变更 | SA 切换门店或 POS 场景变化 | 重新触发政策预览,渠道分层参与策略计算 |
价格输入建议在 onBlur 时触发,不在 onChange 中做高频防抖调用。
5.3 入参与来源
| 入参 | 来源 | 必填 | 说明 |
|---|---|---|---|
product_id | 商品目录路径 | 二选一 | catalog 选品路径有;与 device 二选一 |
device.brand | IMEI 反查 | 二选一 | IMEI 路径必填 |
device.model | IMEI 反查 | 二选一 | IMEI 路径必填 |
price | SA 输入 | 是 | 现场实际售价,单位 NGN,不一定等于商品参考价 |
customer_id | 客户绑定结果 | 否 | 已绑定客户时传;未绑定时为空,按默认策略计算 |
payment_method / frequency | SA 选择或空 | 否 | 如 weekly / monthly;可为空,由 pfs 产品配置返回可选项 |
channel_id | POS / 门店上下文 | 否 | 渠道或门店标识,用于渠道分层 |
5.4 出参与页面使用
| 出参 | 页面用途 |
|---|---|
policy_id | 本次政策计算记录 ID,保存到草稿,后续提交审批时关联追溯 |
policy_version | 政策版本号,用于审批追溯和防止口径漂移 |
price_cap | 价格上限;若售价超限,CTA 不可达 |
dp_min / dp_max | 控制首付输入范围 |
dp_tiers | 展示可选首付百分比档位,如 [30, 40, 50, 60, 70] |
suggested_dp | 推荐首付,前端首次默认带入 |
financial_product_level | 传给 pfs 的金融产品等级;pfs 暂按用户等级处理 |
term_options | 可选分期期数边界;最终展示以 pfs 返回的 payment_terms 为准 |
promo_term | 推荐分期期数,前端首次默认带入 |
policy_id、policy_version、入参回显、出参回显和命中的分层标签需要在风控侧形成 credit_policy_preview_log,供后续审批和问题追溯使用。
5.5 政策决策维度
| 维度 | 说明 |
|---|---|
| 商品分层 | 品类、品牌、型号、价格档位等商品属性 |
| 价格层级 | 价格段决定首付区间倾向和期数上限 |
| 客户分层 | 新户/复借、评分段、历史履约;MVP 可先按新户固定档位 |
| 渠道分层 | 重点门店、一般门店、新接入门店等渠道策略 |
5.6 与 fcs/pfs 试算的关系
风控政策预览给“可售边界 + 金融产品等级”,pfs 根据该等级给出可选产品配置,fcs/pfs 再基于 SA 最终确认的 product_fee_id 生成账务报价。
| 步骤 | 调用 | 结果 |
|---|---|---|
| 1. SA 选品并输入售价 | PocketBuy SA -> bns | 获得商品、门店、SA、客户上下文 |
| 2. 政策预览 | bns -> res/fds | 返回首付范围、价格上限、政策追溯 ID 和 financial_product_level |
| 3. 产品配置查询 | bns -> pfs | 按 financial_product_level 查询可用 payment_methods / payment_terms 和产品配置 |
| 4. SA 选择方案 | PocketBuy SA | SA 代客户选择 payment method、payment term、首付,确认最终 product_fee_id |
| 5. 产品试算 | bns/fcs -> pfs | 按最终 product_fee_id 返回利率、单期应还、总利息、还款计划摘要和罚息配置 |
| 6. 草稿保存 | bns | 保存客户选择方案、政策版本、政策预览日志 ID、最终 pfs 产品配置和报价快照 |
pfs 匹配产品配置时,只使用风控政策预览返回的 financial_product_level 和商品金额等上下文。SA 代客户确认后,product_fee_id 即成为后续流程的最终金融产品配置。正式提交审批时,bns 传给风控的是“客户选择方案 + 政策预览结果 + 最终 pfs 产品配置和试算快照”,而不是只传前端草稿。
5.7 异常处理
| 错误码 | 含义 | SA 端处理 |
|---|---|---|
POLICY_PRICE_OVER_CAP | 价格超出上限 | CTA 不可达,引导调价或走人工通道 |
POLICY_PRODUCT_NOT_ELIGIBLE | 商品不在政策范围内 | 引导手动选品或拒单 |
POLICY_CUSTOMER_REJECTED | 客户层面已拒 | 引导拒单或走人工 |
POLICY_UPSTREAM_UNAVAILABLE | 政策引擎不可达 | 可按全局兜底默认展示,并标记降级;正式受理时必须再次校验 |
POLICY_PREVIEW_EXPIRED | 政策预览过期 | 提交审批前重新调用政策预览 |
PRICING_FAILED | fcs/pfs 试算失败 | 不允许进入 OTP / 建单,提示重试 |
6. 客户验证与草稿订单
| 步骤 | 说明 |
|---|---|
| 发送客户 OTP | bns 调 crs 发送短信验证码 |
| 校验 OTP | crs 校验结果回传 bns |
| 检查手机号存量订单 | 按客户手机号查询是否已有手机分期订单,并按订单状态判断是否允许继续 |
| 创建草稿订单 | bns 创建 Drafting 订单,绑定 SA、门店、商品和客户手机号 |
| 采集 BVN/NIN | bns 调 crs 做实时核验 |
手机号验证和订单创建建议拆成后端原子能力,避免一个接口同时承担 OTP 校验、客户建档、活跃订单检查和订单创建,降低失败补偿复杂度。
6.1 手机号存量分期订单检查(可申请分期能力的判断)
客户手机号 OTP 校验通过后、创建新草稿订单前,bns 必须按规范化手机号查询该客户是否已有手机分期订单。查询口径使用统一的国际格式手机号,例如 +234...,避免同一号码因 0 开头、本地 10 位、11 位或带国家码格式不同而绕过检查。
检查目标是阻止同一手机号在不合适的状态下重复办单,同时允许 SA 恢复尚未完成的草稿或补件流程。
| 已有订单状态 | 是否允许继续新流程 | SA 端处理 | 说明 |
|---|---|---|---|
| 无存量订单 | 允许 | 创建新的 Drafting 订单 | 正常继续 |
Drafting | 不新建;允许恢复 | 弹窗提示已有未提交订单,提供继续原订单入口 | 避免重复草稿;进入原订单继续录入 |
FixRequired | 不新建;允许恢复 | 弹窗提示已有待补件订单,提供补件入口 | 补件重提后回到 Reviewing |
Reviewing | 阻断 | 弹窗阻塞,提示订单正在审批中,暂不能重复申请 | 审批中不可重复进件 |
Approved | 阻断 | 弹窗阻塞,提示已有审批通过订单,请先完成签约或取消原订单 | 已通过待签约,不允许新申请 |
Signed | 阻断 | 弹窗阻塞,提示已有已签约订单,等待首付或后续处理 | 已签约,不能重复申请 |
Paid | 阻断 | 弹窗阻塞,提示已有待交机/放款完成订单,不能重复申请 | 交机前或放款完成后仍属于未完成订单 |
Completed | 允许 | 创建新的 Drafting 订单 | 历史订单已完成,可再次申请 |
Closed | 允许 | 创建新的 Drafting 订单 | 拒绝、取消、超时或异常关闭后可重新申请;是否因黑名单拒绝由风控决定 |
若同一手机号查到多笔订单,bns 先按“阻断优先”处理:只要存在 Reviewing / Approved / Signed / Paid 中任一订单,即弹窗阻断;否则存在 Drafting / FixRequired 时引导恢复对应订单;只有全部为 Completed / Closed 时才允许新建。
阻断弹窗必须是强阻塞弹窗,不允许 SA 关闭后继续当前新办单流程。弹窗至少展示:客户手机号、已有订单号、当前订单状态、下一步动作。对于可恢复状态,按钮文案使用 Continue Application 或 Update Application;对于阻断状态,仅提供 Got It 和 View Order。
6.2 存量订单弹窗样式与英文文案
弹窗出现位置:客户手机号 OTP 校验通过后、创建新草稿订单前。若命中可恢复或阻断订单,页面停留在客户验证页,不继续创建新订单。
弹窗样式:
| 项 | 规范 |
|---|---|
| 弹窗类型 | 居中 modal,强阻塞;遮罩层点击、返回键、右上角关闭均不允许绕过 |
| 图标 | 可恢复订单使用 info 图标;阻断订单使用 warning 图标 |
| 标题 | 18px / semibold,英文标题不换行优先;窄屏可两行展示 |
| 正文 | 14px,展示客户手机号、已有订单号、当前状态和下一步动作 |
| 主按钮 | 使用品牌主色;可恢复场景跳转原订单,阻断场景返回客户验证页 |
| 次按钮 | 线框按钮;用于查看订单详情 |
| 底部提示 | 12px 灰色说明,不展示技术错误码 |
通用信息字段:
| 字段 | 展示文案 |
|---|---|
| Customer phone | Customer phone: {phone} |
| Existing order | Existing order: {order_no} |
| Current status | Current status: {status} |
| Next step | Next step: {next_action} |
弹窗英文文案:
| 命中状态 | 弹窗类型 | Title | Body | Primary button | Secondary button | Next step |
|---|---|---|---|---|---|---|
Drafting | 可恢复 | Continue existing application? | This customer already has an unfinished application. Continue the existing order instead of creating a new one. | Continue Application | View Order | Continue the existing draft application. |
FixRequired | 可恢复 | Additional information required | This customer has an application that needs additional information. Please update the existing order and resubmit it. | Update Application | View Order | Update the existing application and resubmit. |
Reviewing | 阻断 | Application under review | This customer's application is currently under review. A new application cannot be created until the review is completed. | Got It | View Order | Wait for the review result. |
Approved | 阻断 | Approved application exists | This customer already has an approved application. Please complete signing or cancel the existing order before starting a new one. | Got It | View Order | Complete signing or cancel the existing order. |
Signed | 阻断 | Signed application exists | This customer already has a signed application. Please complete the down payment or follow the existing order process. | Got It | View Order | Complete the down payment or continue the existing order. |
Paid | 阻断 | Order awaiting delivery | This customer already has a paid order awaiting merchant payout, device delivery, or final confirmation. A new application cannot be created. | Got It | View Order | Complete delivery and order confirmation first. |
按钮行为:
| 按钮 | 行为 |
|---|---|
Continue Application | 跳转到已有 Drafting 订单的下一待办步骤 |
Update Application | 跳转到已有 FixRequired 订单的补件步骤 |
View Order | 打开已有订单详情页,只读或按当前状态展示可操作入口 |
Got It | 关闭弹窗并停留在客户验证页;不得继续创建新草稿 |
7. 资料采集
| 资料类型 | MVP 处理 |
|---|---|
| 个人信息 | 必填,支持分步保存 |
| 地址信息 | 必填,字段按现有进件要求收口 |
| 工作与收入 | 必填,作为风控输入 |
| 紧急联系人 | 必填,至少保留姓名、关系、手机号;前端原型中的 Guarantor 在 MVP 内统一改为“紧急联系人”,不表达担保责任 |
| 照片 / 活体 | 先做人脸照片质量检查,通过后再通过 crs 做活体和人脸比对,结果给风控消费 |
| 征信授权 | 在进件提交前完成授权确认 |
草稿保存需要支持重复提交幂等。正式提交后,订单从 Drafting 进入 Reviewing。
资料有效期口径:
| 资料 | MVP 口径 |
|---|---|
| 人脸/活体结果 | 当天有效,按采集地业务日计算;跨日继续办单、补件或签约中断后重进时,需要重新采集客户人脸 |
| 其他资料 | 本期不做自动复用;30 天内复用基本信息、收入、地址等资料放到 Phase 2 再考虑 |
| 照片来源 | 全流程只允许实时拍摄或扫码,不允许从相册上传照片 |
如果用户二次申请订单,基本信息、收入、地址等信息都有的话,用户完成 OTP 验证后输入身份信息(BVN 或 NIN)后,直接进入活体验证 —— 本期不用实现,后续迭代时再考虑。
7.1 照片质量、活体与人脸比对
对应前端页面:/pocketbuy_sa/application/sign?orderId=preview&signStep=2&docs=0。
活体认证入口采用“先质量、后比对”的顺序,避免把明显不可用的自拍照提交给活体或人脸比对供应商。
| 步骤 | 处理 | 通过条件 | 失败处理 |
|---|---|---|---|
| 1. 自拍采集 | SA 引导客户现场拍摄自拍视频或自拍照,前端生成 selfie_ref;禁止从相册选择或上传已有照片 | 图片可读取,分辨率和文件大小满足上传要求 | 提示重拍,不消耗活体/比对次数 |
| 2. 人脸照片质量检查 | 前端或 bns 使用本地检测能力先判断是否存在单人脸、脸部是否完整、姿态是否正向、眼睛是否睁开、脸部占比是否足够 | 仅检测到 1 张主脸;脸部检测框未贴边;脸部像素满足阈值;头部偏转角在阈值内;眼睛睁开概率满足阈值 | 提示“请保持正脸、光线充足、完整露出面部后重拍”,不进入比对 |
| 3. 照片基础质量评估 | 对清晰度、亮度、过曝/欠曝、遮挡、模糊做质量闸门 | 清晰度、亮度和曝光评分达到阈值 | 提示针对性重拍,不进入比对 |
| 4. 活体检测 | bns 调 crs 对接活体供应商 | liveness_status=PASSED | 返回失败原因,允许在限额内重试 |
| 5. 人脸比对 | 活体通过后,bns 调 crs 将现场自拍与 KYC/BVN/NIN 返回的证件照或 photo_ref 比对 | face_match_status=PASSED 且 face_match_score 达到风控阈值 | 阻断或进入人审,按风控策略处理 |
| 6. 结果沉淀 | crs 返回质量、活体和比对结果引用,bns 保存到草稿订单 | 结果可追溯,正式提交审批时纳入 third_party_results | 缺失时返回资料补齐 |
人脸/活体有效期:
| 规则 | 说明 |
|---|---|
| 有效期 | 录入的人脸/活体结果仅当天有效 |
| 跨日处理 | 订单仍在 Drafting / FixRequired / Approved 等未完成阶段时,若人脸结果跨日,继续提交审批或签约前必须重新采集 |
| 签约中断 | 签约流程中断后重新进入签约,必须重新采集客户人脸;合照也必须重新拍摄 |
| 其他资料 | 个人信息、地址、工作收入、紧急联系人等 30 天内复用放到 Phase 2,本期不实现自动跳过 |
ML Kit 人脸检测能力调研结论:
| 评估项 | ML Kit 人脸检测是否直接支持 | MVP 使用建议 |
|---|---|---|
| 是否有人脸 / 人脸数量 | 支持。API 可检测图片中的人脸并返回检测框 | 可用于判断自拍是否有人脸、是否只有一张主脸 |
| 人脸完整度 | 部分支持。可用人脸检测框、脸部轮廓点、关键点是否存在来间接判断 | 可作为前置规则:检测框不得贴边,脸部轮廓点完整度达到阈值 |
| 姿态是否适合比对 | 支持。返回 Euler X/Y/Z 角度 | 可限制侧脸、仰头、歪头,要求正脸采集 |
| 眼睛是否睁开 | 支持。分类能力可返回左右眼睁开概率 | 可用于自拍质量提示,但不要等同于活体检测 |
| 清晰度 | 不直接支持。官方只提示焦点差会影响准确性 | 需要端上或服务端另做模糊检测,例如拉普拉斯方差、供应商质量分 |
| 明亮程度 / 过曝欠曝 | 不直接支持 | 需要另做图像亮度、曝光检测,或使用供应商照片质量能力 |
| 照片质量综合评分 | 不直接支持 | crs 需沉淀内部质量结果;ML Kit 只作为人脸结构检测输入之一 |
| 人脸识别 / 人脸比对 | 不支持。ML Kit 该 API 只做人脸检测,不识别具体人员 | 比对必须走 crs 对接的人脸比对供应商 |
| 活体检测 | 不支持完整活体认证 | 活体仍走 crs 供应商;ML Kit 只做提交前质量闸门 |
24 小时重试规则:
| 规则 | 说明 |
|---|---|
| 限额口径 | 同一客户、同一草稿订单、同一活体认证场景,24 小时内最多发起 3 次活体/人脸比对尝试 |
| 不计入限额 | 仅照片质量检查失败、未调用 crs 活体或比对供应商的重拍,不计入 3 次 |
| 计入限额 | 已调用 crs 活体检测或人脸比对供应商,无论通过、失败、超时,都计入尝试次数;供应商明确未受理且无计费时可按配置不计入 |
| 超限处理 | 返回 LIVENESS_ATTEMPT_LIMIT_EXCEEDED,前端提示 24 小时后再试或转人工处理 |
| 前端展示 | 展示剩余可尝试次数,例如“今日还可认证 2 次”;每次进入活体前先查询当前限额 |
| 后端控制 | bns 以 customer_id + installment_order_id + scene 查询限额,crs 记录 attempt_count、attempt_window_start_at、next_retry_at |
8. 审批提交与结果处理
本节把审批业务口径、提交接口和回调处理放在一起。审批不同于第 5 节的信贷政策预览:政策预览只判断商品和价格可售边界,不改变订单状态;正式审批发生在客户资料采集完成后,会推动订单从 Drafting 进入 Reviewing,并最终进入 Approved / FixRequired / Closed。FixRequired 表示风险明确退回补充材料,SA 必须在原订单补件后重提。
8.1 正式提交审批
以@文哲提供文档为准。
8.2 审批结果回调
| 项 | 内容 |
|---|---|
| 调用方向 | res/fds -> bns |
| 触发时点 | 自动审批或人审完成 |
| 幂等键 | approval_request_id + decision_version |
| 状态前置 | 订单必须处于 Reviewing 或 FixRequired 重提后的 Reviewing |
回调字段:
| 字段 | 必填 | 说明 |
|---|---|---|
approval_request_id | 是 | 审批流水 |
decision_result | 是 | 见结果枚举 |
decision_at | 是 | 决策时间 |
reason_codes | 否 | 拒绝、补件、降级原因码,用来对SA展示 |
return_reason | 条件必填 | FIX_REQUIRED 时的 SA 可见总补充原因 |
required_materials | 条件必填 | FIX_REQUIRED 时的待补材料、每项补充原因和采集指引 |
结果枚举:
| 结果 | 订单状态 | 说明 |
|---|---|---|
APPROVED | Approved | 原方案通过 |
Approved | 降级/调价通过,需要客户确认新方案 | |
FIX_REQUIRED | FixRequired | 需要 SA 在原订单补充风险指定材料后重提 |
REJECTED | Closed | 拒绝 |
EXPIRED | Closed | 审批超时或方案失效 |
本期启用
APPROVED、FIX_REQUIRED和REJECTED;降级报价仍不启用。
状态映射:
| 当前状态 | 回调结果 | 目标状态 | 处理 |
|---|---|---|---|
Reviewing | APPROVED | Approved | 保存审批结果和报价快照引用 |
Reviewing | REVISED_APPROVED | Approved | 标记 offer_type=revised,等待客户确认新方案 |
Reviewing | FIX_REQUIRED | FixRequired | 保存总补充原因、待补材料及其原因;置订单补件客户标记和轮次 |
Reviewing | REJECTED | Closed | 保存拒绝原因 |
FixRequired | SA 补齐并重提 | Reviewing | 生成 submission_type=SUPPLEMENT 审批请求,携带补件客户标记、轮次和材料版本引用 |
非 Reviewing | 任意 | 不变 | 记录异常回调,不推进 |