跳转到正文
生产环境文档契约 1.5.169
正在核对线上版本…

发票完整数据交付 ​

默认字段为 invoice.flat-fields.v4,本页接口参考与字段目录按默认新版展示。平台为渠道开启“使用旧版发票 ALL 字段”时,已有和新建订单改用 invoice.flat-fields.v3.1,无需增加请求参数;可下载旧版字段表和旧版记录 Schema。开关只影响发票 ALL,不影响税务、STANDARD 或 Compatible_V1。切换后从第一页或游标首请求重新读取,新旧分页和分片不可混用。

新建授权或订单默认使用 PACKAGE 分片包,同时支持游标。三种交付方式都在 records 中返回渠道当前生效的平铺记录(默认 invoice.flat-fields.v4),使用相同的六类记录角色;交付外壳版本仍为 invoice.v1。

交付方式接口
分片包(PACKAGE,默认,同时支持游标)/api/v2/channel/invoices/package/*,分批下载文件
固定游标分页(CURSOR)/api/v2/channel/invoices/cursor,按游标续拉
普通接口(LEGACY)/api/channel/data/invoice/all,按页码读取

创建授权时可显式传 invoice_delivery_mode: "CURSOR" 或 "LEGACY" 选择其他方式。已有订单沿用创建时保存的方式,续期或重试不改变它。普通接口按页码取数仍可使用。

不采发票且省略交付方式的请求归一为 LEGACY;显式选择 CURSOR 或 PACKAGE 仍要求采集发票。只选择 STANDARD 时仍按标准接口取数,不会因默认分片包而额外申请 ALL。Compatible_V1 使用独立的 resultFormat 参数,见兼容协议。

普通接口 ​

请求 POST /api/channel/data/invoice/all。保留鉴权信息和订单身份,第二页只需把 pageNum 改为 2:

json
{
  "channelCode": "BANK",
  "channelOrderNo": "BANK-20261015-0001",
  "orderNo": "订单查询返回的标识",
  "pageNum": 2,
  "pageSize": 100
}

无需传 invoiceFormat、snapshotId 或 cursor。invoiceFormat 如需显式填写,只支持 FLAT。普通接口不接受游标参数。

响应 data.records 是本页记录,current 为当前页、pages 为总页数、total 为总记录行数。同一轮固定 pageSize,读取到 current >= pages 时结束;total=0 的成功空结果不再翻页。普通页码没有客户端快照锁定参数,采集批次或字段版本变化后应整轮重读,不能只用订单号加页码覆盖历史批次。invoiceCount 是发票张数,无法核实时为 null;不能用行数替代张数。

真实脱敏第一页响应 · 末页响应 · 全部业务记录 · 字段字典

这些响应按同一真实订单的保留资料脱敏重建,页面示例每页 10 条。完整业务文件含该样本的全部记录,但不带接口外壳;来源说明见真实脱敏样例。

游标接口 ​

请求 POST /api/v2/channel/invoices/cursor,用 limit(也接受 pageSize)控制返回大小;后续把响应 nextCursor 作为请求的 cursor,直至 nextCursor=null。响应 datasetId 标识当前快照,同一有效快照内续读 records;批次、来源或字段版本变化后,旧游标可能失效,须从首请求开始并重建本轮结果。

V2 请求不传 channelCode,使用同一订单身份,并带四个鉴权头,见签名规则。成功外壳为 success 和 data,不套用普通接口的 code=0。data.total 为完整快照的记录数,data.count 为本页记录数。不要把此接口的 cursor 传到普通接口。

分片包 ​

依次调用 /api/v2/channel/invoices/package/status、/api/v2/channel/invoices/package/manifest。状态为 READY 时,用响应的 exportId 获取清单。

包格式为 JSON_GZIP_PARTS。按清单 partNo 顺序下载 downloadUrl,校验压缩文件的 SHA-256,再解压 JSON 并读取 records。totalSize 是压缩后的字节数。

下载地址已带签名,不另加渠道签名头;地址过期后重新获取清单。字段版本或来源变化后,从状态接口取得当前导出,不拼接新旧包。历史冻结文件不改写;已签名的当前格式文件在权限和有效期内可继续下载,已停用格式的包需重新查询状态生成新包。

错误处理 ​

错误处理
INVOICE_CURSOR_INVALID / INVOICE_CURSOR_EXPIRED核对订单和游标;游标不属于当前快照或已过期时,从首次游标请求重新读取
INVOICE_SCHEMA_RETIRED旧快照或包的格式已停用,重新查询游标或分片包状态
INVOICE_DATASET_NOT_READY尚无可用资料,不能当作零发票
INVOICE_DELIVERY_MODE_MISMATCH使用该订单创建时选定的交付方式

仅已确认无发票的订单返回成功空记录。整票、商品明细和专项明细分属不同记录角色,统计时分别处理,见发票数据说明。

文档契约 API 1.5.169