文件
hyb-oa/.trellis/tasks/05-27-invoice-verification-api-poc/research/invoice-verification-api-poc.md
T

4.3 KiB

发票验真 API POC 与采购决策

Conclusion

hyb-oa 已经有发票验真能力的骨架:invoice_verification feature flag、verificationProvider、验真 job、票据中心 /verify 路由、权限 invoice.verify 和 mock/tax provider 测试。但真实 provider 当前未配置,tax provider 只是返回 tax_provider_not_configured。下一步应做供应商 POC,而不是直接启用生产。

Official Boundary

国家税务总局全国增值税发票查验平台说明显示:

  • 可查验最近 5 年内相关发票。
  • 每天每张发票可在线查询次数为 5 次。
  • 平台提供票面信息查验结果;有疑议需持发票原件至税务机关鉴定。

因此系统不应爬取官方查验平台作为生产能力;应接合规 API 或保留人工查验。

Vendor Matrix

候选 公开信息 适配性 风险 建议
腾讯云 OCR 增值税发票核验 官方价格页显示首次开通 50 次免费资源包,页面可见阶梯单价 现有系统已用腾讯 OCR SDK 和腾讯凭据配置,接入成本最低 需要开通付费能力、费用限额和异常降级 首选 POC
百度智能云财务票据 OCR 产品页声明支持 10 余类票据结构化识别和增值税发票验真 可作为第二候选 价格和购买方式需控制台/商务确认 备选 POC
华为云发票识别与验真 本轮资料访问触发安全验证,未取得稳定公开价格页 需要另行确认产品状态和价格 信息可得性不足 不作为首选
百望/诺诺类平台 更偏财税平台和发票生命周期服务 可能适合规模化发票管理 采购、合同、数据边界和集成成本较高 后续询价,不进首轮

首选腾讯云,理由:

  1. 现有 OCR provider 已是腾讯链路,凭据和 SDK 管理成本最低。
  2. 供应商数量少,运维和采购复杂度低。
  3. 可用现有 verificationProvider 抽象扩展为 tencent 或明确命名的 tencent_tax provider。

POC 范围:

  • 仅使用授权样票别名,不保存真实票面或敏感字段。
  • 仅在测试/受控环境开启 INVOICE_VERIFICATION_ENABLED=true 和 feature flag。
  • 对一张已 OCR 的 PDF 发票执行验真,保存状态、resultCode、resultMessage、provider、尝试次数和脱敏摘要。
  • API 不可用、超限、欠费、查无结果时不阻断提交,只进入财务人工复核。

POC 验收标准:

  • provider adapter 单测覆盖成功、查无结果、信息不匹配、超限/欠费、provider 未配置和网络错误。
  • 验真任务重复触发受最大尝试次数、冷却时间和权限控制约束。
  • 票据中心动作 E2E 覆盖管理员/财务可触发、普通员工不可越权触发。
  • 日志、审计和 UI 摘要均不得保存完整税号、银行账号、二维码、真实票面或原始接口响应。
  • provider 不可用时,报销提交链路继续可用并进入财务人工复核。

后续实施命令建议:

cd server && npm run prisma:validate
cd server && npm test -- --runInBand --testPathPattern=verification
cd client && npm run typecheck && npm run build
cd client && npx playwright test tests/e2e/invoice-ocr-flow.spec.ts

Product Decision

  • 首批真实试运行仍采用 OCR + 查重 + 财务人工复核。
  • 发票验真上线后作为“财务复核增强”,不是自动报销通过条件。
  • 验真失败分为:信息不匹配、查无结果、接口错误、超限/欠费、provider 未配置。
  • 发票验真结果不得替代原始 PDF、审批记录、付款证据和财务判断。

Implementation Notes For Later

  • 新增 provider 前先更新 server/src/config.js 和 deploy/trialrun/.env.example。
  • 增加 provider 单测、错误分类单测、job 单测和票据中心动作 E2E。
  • 验真 payload 和报告不得存完整税号、完整票面、二维码、银行账号或原始接口响应。
  • 费用控制:默认关闭;按部门 allowlist 或管理员手动触发;冷却时间和最大尝试次数继续沿用现有配置。

References

  • 国家税务总局全国增值税发票查验平台说明:https://inv-veri.chinatax.gov.cn/fpcysm.html
  • 腾讯云 OCR 价格页:https://buy.cloud.tencent.com/price/ocr
  • 百度智能云财务票据文字识别:https://cloud.baidu.com/product/OCR/finance.html