银联商务 · 农产品反向开票接口
银联商务「农产品收购反向开票服务平台」全部接口已 1:1 封装为网关原子接口:统一 OPEN-BODY-SIG 签名、多租户、沙箱/生产环境切换。请求体原样透传、响应结构原样返回;未配银联凭证时自动走 mock。下方每个接口均列出请求参数 / 响应参数。
调用时序图 · 业务闭环
从企业入驻、乐企授权,到现场收购、支付即开票、取票的完整调用时序。实线=接入方主动调用银联接口,虚线=银联异步回调本端。
shbdsq商户绑定申请 → shbdbh▶shxxDj商户信息登记(资质图片)▶getShlqsqzt轮询授权状态(接入=4 / 白名单=1 / 能力=1)▶getSqm取平台授权二维码▶bdKpy开票员绑定 → kpybdbh▶zrrSmdj自然人实名登记(四要素校验)▶createOrder创建待支付开票订单 → ddbh,ddzt=11 待农户确认▶payAndKpSubmit确认支付开票(02)· 支付即开票▶callback/pay异步支付通知 → 回 SUCCESScallback/invoice异步开票通知 → 回 SUCCESSqueryOrderInvoice取票 PDF / OFD / XML▶orderRed作废红冲(线下退款后开红字票)▶queryYe / withDrawals备付金余额查询 / 提现到对公▶业务型接口
推荐把 26 个原子接口编排成面向业务的动作,屏蔽准入五前置、待确认、异步回调等复杂度。业务流程与工商银行业务型对齐(动作 / 动词一致),换银行基本只换路径前缀;字段为银联原生。对外前缀 /api/v1/invoice/reverse/upbiz/。
| 业务动作 | 对外路径 · upbiz/ | 编排的原子接口 | 说明 |
|---|---|---|---|
| 企业开通 | enterprise/open | shbdsq + shxxDj + getSqm | 绑定 + 登记 + 授权码,一步拿 shbdbh |
| 查企业开通状态 | enterprise/status | queryShbdzt + getShlqsqzt + queryKpy | 五前置聚合 → canInvoice 布尔 |
| 散户入驻 | seller/onboard | zrrSmdj + bindZrrYhk | 四要素实名 + 农产品三证 + 绑卡 |
| 查散户状态 | seller/status | cxPlzrrSmdj | 批量实名结果 |
| ① 收购建单 | invoice/create | createOrder(zfkpqrfs=02) | 返 ddbh,待农户确认 |
| ② 确认支付开票 | invoice/pay | payAndKpSubmit | 农户确认后 · 支付即开票 |
| 查开票结果 | invoice/status | orderStatus + queryOrderInvoice | 业务态 + 发票(withInvoice) |
| 下载发票 | invoice/download | queryOrderInvoice | PDF / OFD / XML |
| 红冲 | invoice/red | orderRed | 已开票后开红字票 |
| 作废 | invoice/void | orderCancel | 确认支付前取消订单 |
| 散户改卡 | seller/update-card | bindZrrYhk | 绑新收款卡 |
| 散户注销 | seller/close | — | 银联暂无接口,待补 |
调用约定
POST openapi.kailingteck.com/api/v1/invoice/reverse/up/<slug>X-App-Key / X-Timestamp / X-Sign = sha256(appKey+ts+body+appSecret)签名 · OPEN-BODY-SIG
与腾讯 / 极简数科不同:银联签名 只签报文体、不含 URL 路径。网关已内置,租户无需自行处理。
Authorization: OPEN-BODY-SIG AppId="<appId>", Timestamp="<yyyyMMddHHmmss>", Nonce="<随机数>", Signature="<签名>" bodyHash = SHA256_hex_lower(body) signStr = appId + timestamp + nonce + bodyHash Signature = Base64( HmacSHA256(signStr, appKey) )
接口明细 · 26 个(含入参 / 出参)
管理 · 15
商户绑定申请
拿到「商户绑定编号 shbdbh」,后续所有交易必带。返回 02/03 需继续调「商户信息登记」。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shsh | string | 是 | 商户税号 / 统一社会信用代码 |
| shmc | string | 是 | 企业名称 |
| lxrmc | string | 是 | 联系人姓名 |
| lxrsjh | string | 是 | 联系人手机号 |
| lxrsfzjhm | string | 是 | 联系人身份证号 |
| ywlx | string | 是 | 业务类型(见附录 4.3) |
| 名称 | 描述 |
|---|---|
| shbdbh | 商户绑定编号(后续交易必带) |
| sqjg | 申请结果:00 失败 / 01 已入网 / 02 未入网需登记 / 03 未开通此类型 / 04 已绑定 |
| shddjxx | 待登记信息数组(sqjg=02/03 时返回) |
商户信息登记
补交 / 上传企业资质证明(图片 base64)。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| shdz | string | 否 | 商户地址 |
| shdh | string | 否 | 商户电话 |
| frxm | string | 否 | 法人姓名 |
| frsfzhm | string | 否 | 法人身份证号 |
| dgyhzh | string | 否 | 对公银行账号 |
| dgyhhh | string | 否 | 对公银行行号 |
| jrzx | string | 否 | 接入中心(1000 全国总中心,见附录 4.2) |
| yyzz | base64 | 否 | 营业执照 |
| frsfzzm/frsfzfm | base64 | 否 | 法人身份证正 / 反面 |
| khxkz | base64 | 否 | 开户许可证 |
| qymtz | base64 | 否 | 企业门头照 |
| kzdjxx | object | 否 | 扩展登记(再生资源备案证 / 报废机动车资质 / 危废经营许可证) |
商户绑定状态查询
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| ywlx | string | 是 | 业务类型 |
| 名称 | 描述 |
|---|---|
| shbdbh | 商户绑定编号 |
| bdzt | 绑定状态:00 成功 / 01 未入网 / 02 待补交 / 03 待审核 / 04 审核未过 / 05 已解绑 |
商户解绑申请
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| ywlx | string | 否 | 不指定则解绑该商户所有业务类型 |
商户乐企授权状态查询
开票前置:接入状态=4、白名单=1、能力授权=1 才能开票;未授权需调「授权二维码」。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| 名称 | 描述 |
|---|---|
| ztbm | 接入状态(4 确认通过,见附录 4.1) |
| lqdwid | 乐企 ID |
| ssjswjgDm/mc | 省市级税务机关代码 / 名称 |
| zgswjgDm/mc | 主管税务机关代码 / 名称 |
| dwgxDm | 与直连单位关系 |
| nlsqqk[] | 能力授权:nlbm 能力编码 / nlmc / yxqq 起 / yxqz 止 |
| sydwlqbmdktzt | 单位乐企白名单开通状态(1 启用) |
| sydwsqrzxx | 授权认证信息:sqrzbz(Y 已认证) / sqm 授权码 / sqrzyxqz |
商户平台授权(授权二维码)
返回二维码内容,接入方自行生成图片;有效期 10 分钟,电子税务局 APP 扫码;法人 / 财务负责人各扫各的。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| sqrlx | string | 是 | 授权人类型:01 法人 / 02 财务负责人 |
| xm | string | 是 | 姓名 |
| jmsfzhm | string | 是 | 居民身份证号 |
| 名称 | 描述 |
|---|---|
| ewm | 授权二维码内容 |
开票员查询
查电局乐企已授权、已确认的开票员;支持绑定多个。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| kpyxm | string | 是 | 开票员姓名 |
| kpysfzjhm | string | 是 | 开票员身份证号 |
| 名称 | 描述 |
|---|---|
| kpyxx[] | 开票员信息:kpyid / kpyxm(脱敏) / kpysfzjhm(脱敏) / djzt 乐企状态(1 已确认可绑定) / bdbz 绑定标志 / kpybdbh |
开票员绑定申请
只有绑定过的开票员才能开票;两种入参方式任选其一。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| kpyxm + jmsfzjhm | string | 否 | 方式一:传开票员姓名 + 完整身份证号 |
| kpyid | string | 否 | 方式二:传「开票员查询」返回的开票员 ID |
| 名称 | 描述 |
|---|---|
| kpybdbh | 开票员绑定编号(建单必带) |
开票员解绑申请
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| kpybdbh | string | 是 | 开票员绑定编号 |
商户账户余额查询
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| 名称 | 描述 |
|---|---|
| zhye | 备付金账户余额(number 18,2) |
商户账户提现
从备付金账户提现到商户对公账户。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| txje | number | 是 | 提现金额(18,2) |
自然人实名登记
带银行卡则四要素实名校验(同步);手机号为银行预留手机号。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| zrrxm | string | 是 | 自然人姓名 |
| zrrsfzjhm | string | 是 | 身份证号 |
| zrrskyhylsjh | string | 否 | 收款卡预留手机号 |
| zrrskyhzh | string | 否 | 收款银行账号 |
| khhszsf | string | 否 | 开户银行所在省份(附录 4.4) |
| hkbhzy | base64 | 否 | 户口本主页(农产品必传) |
| hkbbry | base64 | 否 | 户口本本人页(农产品必传) |
| cwhscjyzm | base64 | 否 | 村委会生产经营种植养殖证明·盖章(农产品必传) |
自然人实名登记 · 批量
异步校验;查结果调「查询批量实名结果」。一次最多 1000 条。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| pch | string | 是 | 批次号(appid 下唯一) |
| zrrxx[] | array | 是 | 自然人信息:zrrxm / zrrsfzjhm / zrrskyhylsjh / zrrskyhzh / khhszsf |
| 名称 | 描述 |
|---|---|
| sllsh | 受理流水号 |
查询自然人批量实名结果
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| pch | string | 是 | 批次号 |
| sllsh | string | 否 | 受理流水号 |
| 名称 | 描述 |
|---|---|
| cljd | 处理进度:0 完成 / 1 处理中 |
| mxsl / cgsl / sbsl | 明细 / 成功 / 失败数量 |
| jgmx[] | 结果明细:zrrxm / zrrsfzjhm / jgbs(0 成功) / sbyy 失败原因 |
自然人银行卡绑定
一人可绑多张卡;添加时实时四要素实名校验。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| zrrxm | string | 是 | 自然人姓名 |
| zrrsfzjhm | string | 是 | 身份证号 |
| zrrskyhzh | string | 是 | 收款银行账号 |
| zrrskyhkylsjh | string | 是 | 收款卡预留手机号 |
| khhszsf | string | 否 | 开户省份 |
交易服务 · 9
创建待支付开票订单
交易核心。收款自然人未登记会做登记 + 四要素校验。ywddmx = 商品明细。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| kpybdbh | string | 是 | 开票员绑定编号 |
| ywlx | string | 是 | 业务类型 |
| fppzDm | string | 是 | 发票票种:01 增值税专票 / 02 普票 |
| ywlsh | string | 是 | 业务流水号(32) |
| zfkpqrfs | string | 否 | 支付开票确认方式:01 自动支付并开票(默认) / 02 需确认后支付 |
| zrrxm | string | 是 | 自然人姓名 |
| zrrsfzjhm | string | 是 | 身份证号 |
| zrrsjhm | string | 是 | 手机号 |
| zrryhzh | string | 是 | 收款银行账号 |
| khhszsf | string | 否 | 开户省份 |
| zrrjzdz | string | 是 | 自然人居住地址(行政区划 + 街道乡镇 + 详细地址) |
| jazslxDm | string | 否 | 减按征税类型(再生资源:54 / 55 / 空) |
| sfcdf | string | 否 | 税费承担方:01 自然人承担(默认) / 02 企业承担 |
| grsdsxm | string | 否 | 个税项目:01 经营所得 / 02 劳务报酬 / 03 稿酬 / 04 特许权 / 05 财产转让 / 06 其他 |
| fpbz | string | 否 | 发票备注 |
| kptzhddz / zftzhddz | string | 否 | 开票 / 支付通知回调地址(须域名) |
| ywddmx[] | array | 是 | 业务订单明细,子字段见下 |
| — xmmc | string | 是 | 项目名称 |
| — sphfwssflhbbm | string | 是 | 商品税收分类合并编码 |
| — ggxh / dw / sl / dj | string | 否 | 规格 / 单位 / 数量 / 单价 |
| — slv | number | 是 | 增值税率 / 征收率 |
| — je | number | 是 | 金额(承担方 01=含税 / 02=不含税) |
| 名称 | 描述 |
|---|---|
| ddbh | 反向开票平台订单号 |
| ywlsh | 业务流水号 |
| ddcjrq | 订单创建日期 |
| ddzt | 订单状态:11 待自然人确认 / 21 待付款 / 31 开票中 / 41 已完成蓝票 / 51 红票 / 61 已取消 / 81 免税 … |
| skxx[] | 税款信息(资源回收返回,农产品无) |
批量创建待支付开票订单
≤1000 条;只做基本格式校验,批次结果走查询或异步通知。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| pch | string | 是 | 批次号(appid 下唯一) |
| plcjddjgtzhddz | string | 否 | 批量结果通知回调 |
| ywlx | string | 是 | 业务类型 |
| ddmx[] | array | 是 | 订单明细,每条同 createOrder 字段 + ywddmx |
| 名称 | 描述 |
|---|---|
| sllsh | 受理流水号 |
确认支付开票
「支付即开票」触发点;异步开票,结果走回调 / 状态查询。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| ddbh | string | 是 | 平台订单号 |
| shbdbh | string | 是 | 商户绑定编号 |
| zfkpqrfs | string | 是 | 固定传 02(确认支付) |
订单状态查询
平台未通知前可主动查询。ddbh / ywlsh 至少传其一。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| ddbh | string | 否 | 平台订单号(与 ywlsh 至少一个) |
| ywlsh | string | 否 | 业务流水号 |
| ywlx | string | 否 | 传业务流水查询时必传 |
| shbdbh | string | 是 | 商户绑定编号 |
| 名称 | 描述 |
|---|---|
| ddbh / jylsh | 平台订单号 / 交易流水号 |
| ddzt | 订单状态(编码同 createOrder) |
| sbyy | 失败原因 |
| zrrInfo | 自然人信息(hkbhzy / hkbbry / cwhscjyzm) |
| skxx[] | 税款信息(资源回收) |
取消订单
需确认支付的订单在确认前才可取消。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| ddbh | string | 是 | 平台订单号 |
| shbdbh | string | 是 | 商户绑定编号 |
获取发票
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| ddbh | string | 是 | 平台订单号 |
| shbdbh | string | 是 | 商户绑定编号 |
| 名称 | 描述 |
|---|---|
| xzdzPdf / xzdzOfd / xzdzXml | 发票 PDF / OFD / XML 下载地址 |
| fphm | 发票号码 |
| fppzDm | 票种 |
| kprq | 开票日期 |
| hjje / hjse / jshj | 合计金额 / 合计税额 / 价税合计 |
| fpzt | 发票状态 |
| sbyy | 开票失败原因 |
作废红冲
作废需企业与自然人线下完成货款退回,线上发起作废红冲、开红字发票。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| ddbh | string | 是 | 平台订单号 |
| shbdbh | string | 是 | 商户绑定编号 |
| kptzhddz | string | 是 | 开票通知回调地址 |
| zdtsbz | string | 否 | 自动退税标识:Y 自动退税(默认) / N 需调退税接口 |
重新提交支付(未开放)
支付失败重新提交支付请求。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| fkid | string | 是 | 付款 id |
| ywlxDm | string | 是 | 业务类型代码 |
重新提交开票(未开放)
订单开票失败重新提交开票。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| — | — | — | 文档未展开参数(未开放) |
辅助服务 · 2
行政区划及街道乡镇码表(暂不提供)
查全国行政区划 / 街道乡镇代码,保存到本地,用于自然人居住地址。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| cxlx | string | 是 | 查询类型:0 行政区划 / 1 街道乡镇 |
| xzqhjc | string | 否 | 行政区划级次:1 省 / 2 市 / 3 区县(cxlx=0 时必传) |
| sjxzqhszDm | string | 否 | 上级行政区划数字代码 |
| qxxzqhszDm | string | 否 | 区县代码(cxlx=1 必传) |
| ym | number | 是 | 页码 |
| mysl | number | 是 | 每页数量 |
| 名称 | 描述 |
|---|---|
| cxsjzl | 查询数据总量 |
| xzqhcxjgjh[] | 行政区划:xzqhszDm / xzqhmc / xzqhjc / sjxzqhszDm |
| jdxzcxjgjh[] | 街道乡镇:jdxzDm / jdxzmc / xzqhszDm |
税收分类编码码表(路径待银联确认)
税收分类编码列表,非频繁变化,获取一次即可、可增量下载。文档未给接口路径,占位待银联确认。
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| shbdbh | string | 是 | 商户绑定编号 |
| 名称 | 描述 |
|---|---|
| sjc | 时间戳(增量下载用) |
| count | 总量 |
| ssbmList[] | 编码列表:fjbm 父级 / sphfwssflhbbm 合并编码 / tdyslxdm 特定要素(11 农产品…) / cezs 差额征税 / bzs 不征税 / jzjtdm 即征即退 / sphfwmc 名称 / zzssl 增值税率 / zsl 征收率 … |
回调端点(被调)
POST /api/v1/invoice/reverse/up/callback/payPOST /api/v1/invoice/reverse/up/callback/invoiceform 表单;收到须回 SUCCESS;银联按 1/5/5/30/60/300/1800/1800/3600s 重试。请求头带 OPEN-BODY-SIG 签名,请求体含 ddbh / 发票信息等。
依据《农产品收购反向开票服务平台接口 接入指引 V2.018》整理 · 字段名以银联最新文档为准 · 部分「未开放」接口 / 税收分类码表路径待银联确认
