工商银行 · 乐企直联(反向开票)
工行融e聚「乐企联用」把 钱(工行打款)和票(乐企开票)绑在一起,一次付款、票和税一起出。开灵中台在中间:对外给你们的系统一套简单接口,对内替你们扛工行的签名和加密。 先看执行流程(谁在什么时候做什么、要多久), 再看四张时序图按节点逐个开发。
看图说明:四条竖线 = 四个角色,箭头 = 谁给谁发一件事,从上往下是时间顺序。 橙色=最关键的一步(付款) · 紫色虚线=工行给你回复/通知 · 中间「开灵中台」那条线,就是我们要开发封装的地方。
执行流程 · 一家新企业上线,谁在什么时候做什么
一家新的回收企业,从签约到开出第一张发票,一共走五步。技术对接只做一次,但每家企业的开户和授权手续都要单独走一遍。整体预计 2 至 3 周,最慢的是工商银行分行建档。
银行内部流程,催不动,请预留时间。这一步没办完,后面全部免谈。
必须法定代表人或财务负责人本人操作,而且要用「电子税务局」App 扫码,微信和工商银行 App 都扫不了。
可与第一步同时进行,不用干等。工商银行的加密与签名全部由开灵承担,客户不用碰。
三件最容易出错的事
- 税务授权必须由法定代表人或财务负责人本人操作,而且要用「电子税务局」App 扫码,微信和工商银行 App 都扫不了。找别人代扫无效。
- 授权办完之后,一定要再去电子税务局手动下载一次发票,否则开票会一直失败。这一步最容易被漏掉,漏了从表面看不出原因。
- 工商银行的分行建档和散户审核都是银行内部流程,催不动,请预留时间。技术对接可以和这两件事同时进行,不用干等。
图 0 · 企业开通(每家回收企业办一次)
回收企业自己先在工行 + 税务这边把身份和授权办好,之后才能给散户开票。④⑤ 两步是新补的验收环节 —— 以前发出去就不知道老板办没办完,现在查得到了。
图 A · 散户入驻(每个散户办一次:扫脸实名 + 建收款人)
散户第一次卖货前办一次:资料在你们自己界面填,中间借工行扫脸实名,最后把散户报给工行建成"收款人"。
扫脸的活体检测有 动态 / 静态 / 无 三种,用哪种要跟工行分行确认(H5 直连还是 App 集成聚富通 SDK)。
图 B · 每卖一票(散户入驻后,循环)
散户入驻后每卖一票走这条线;第 ④ 步"付款"是扳机,一按,工行把钱和票一起出。
图 B2 · 散户自己交税(和图 B 二选一)
平常都是企业替散户把税交了(图 B),散户拿到手的是税后的钱。 再生资源回收这类业务里,还可以换成散户自己去交税—— 企业把货款全额给散户,税让散户本人去办。
对企业来说差别就两点:付出去的钱变多了(全额货款,不再扣税),但税不归企业管了。选哪种在下单那一步就要定,开完票再改不了。
图 C · 日常运维与对账(周期性,不在单票流程里)
这条线不在"卖一票"里,但决定这套东西能不能长期稳定跑: 授权别过期、额度别用光、每月账对得上。都是定时任务,不需要人盯。
封装顺序清单(25 个工行接口 · 严格按业务从前到后)
1–11 = 主线闭环(对应上方图 0/A/B,建完就能演示"开出一张票");12–19 = 支线(收款人维护、异常冲红、退税对账);20–25 = 工行补充的新接口(开通验收、额度管控、批量付款、失败重试、令牌续期、月度对账)。
| 封装序 | 阶段 | 大白话 | 开灵方法 | 工行接口 | 状态 |
|---|---|---|---|---|---|
| 底座 | — | 签名/加密底座 | lib/upstream/icbc-leqi.ts | RSA2 + AES(已建) | ✅ 已建·已测 |
| 1 | 企业开通 | 企业授权二维码 | POST /api/v1/icbc/enterprise/auth | 企业授权与发票管理接口 | ✅ 已建·已测 |
| 2 | 散户入驻 | 带散户去扫脸 | POST /api/v1/icbc/receiver/face-auth | 实人认证H5页面接口 | ✅ 已建·已测 |
| 3 | 散户入驻 | 查扫脸结果 | POST /api/v1/icbc/receiver/face-auth/query | 实人认证H5结果查询接口 | ✅ 已建·已测 |
| 4 | 散户入驻 | 建成"收款人" | POST /api/v1/icbc/receiver/add | 反向开票自然人新增接口 | ✅ 已建·已测 |
| 5 | 散户入驻 | 接入驻审核结果 | /api/callback/icbc + /receiver/audit-status | 智慧清分收方审核异步通知 | ✅ 已建·已测 |
| 6 | 每卖一票 | 查能不能开 · 500万红线 | POST /api/v1/icbc/person/quota | 查询自然人开票信息接口 | ✅ 已建·已测 |
| 7 | 每卖一票 | 下单 | POST /api/v1/icbc/order/pre | 开票信息预下单接口 | ⚠ 待工行文档 |
| 8 | 每卖一票 | 老板付款(扳机) | POST /api/v1/icbc/order/pay | 开票付方支付接口 | ✅ 已建·已测 |
| 9 | 每卖一票 | 接开票通知 | /api/callback/icbc + /invoice/notify-status | 银税协同通知报文(反向开票通知) | ✅ 已建·已测 |
| 10 | 每卖一票 | 查开票状态 | POST /api/v1/icbc/invoice/query | 开票信息预查询接口 | ✅ 已建·已测 |
| 11 | 每卖一票 | 下载发票 | POST /api/v1/icbc/invoice/download | 发票下载接口 | ✅ 已建·已测 |
| 12 | 收款人维护 | 散户换银行卡 | POST /api/v1/icbc/receiver/update | 反向开票自然人修改接口 | ✅ 已建·已测 |
| 13 | 收款人维护 | 散户注销 | POST /api/v1/icbc/receiver/delete | 反向开票自然人删除接口 | ✅ 已建·已测 |
| 14 | 收款人维护 | 查散户 | POST /api/v1/icbc/receiver/query | 反向开票自然人查询接口 | ✅ 已建·已测 |
| 15 | 异常 | 红冲 | POST /api/v1/icbc/invoice/red-offset | 红字冲销开票接口 | ✅ 已建·已测 |
| 16 | 异常 | 撤销红字确认单 | POST /api/v1/icbc/invoice/red-offset/revoke | 红字冲销确认单撤销接口 | ✅ 已建·已测 |
| 17 | 异常 | 作废发票 | POST /api/v1/icbc/invoice/reversal | 发票取消接口 | ✅ 已建·已测 |
| 18 | 退税/对账 | 退税 | POST /api/v1/icbc/invoice/back-tax | 开票退税接口(仅再生资源) | ✅ 已建·已测 |
| 19 | 退税/对账 | 拉对账单(SFTP) | 需 SFTP + 凭据(非透传) | 国税再生资源对账单文件获取接口 | ⚠ 待工行文档 |
| 20 | 企业开通 | 老板授权办完没有 | POST /api/v1/icbc/invoice/register-confirm | 查询开票人员登记确认状态接口 | ✅ 已建·已测 |
| 21 | 企业开通 · 每卖一票 | 还能开多少票 / 额度激活没 | POST /api/v1/icbc/invoice/ticket-info | 查询剩余发票信息接口 | ✅ 已建·已测 |
| 22 | 每卖一票 | 批量付款开票 | POST /api/v1/icbc/order/batch-pay | 开票批量实名签接口 | ✅ 已建·已测 |
| 23 | 异常 | 上传失败重试 | POST /api/v1/icbc/invoice/upload-retry | 发票上传重试接口 | ✅ 已建·已测 |
| 24 | 运维 | 刷新企业授权令牌 | POST /api/v1/icbc/enterprise/refresh-auth | 刷新企业授权令牌接口 | ✅ 已建·已测 |
| 25 | 退税/对账 | 月度开票汇总对账 | POST /api/v1/icbc/invoice/summary-confirm | 查询发票汇总确认信息接口 | ✅ 已建·已测 |
工行凭据在 控制台 → 工商银行 tab 配置,未配前接口返回 mock、不扣费。
