发票台账查询V2接口
说明
通过该接口,可以查询到结构化的发票数据。
注意事项
- 每次最多只能查询100条数据;
- 如果发票状态码为空,请传"" ,而不是null;
formCode为条件必填:默认需要提供;当taskEndDateStart与taskEndDateEnd构成合法且不超过90天的时间对,或invoiceUpdateAtStart与invoiceUpdateAtEnd构成合法且不超过90天的时间对时,可以不传。两组合法时间对也可以同时提供;invoiceUpdateAtStart与invoiceUpdateAtEnd必须成对提供,使用正值 Unix 毫秒时间戳,开始时间不得晚于结束时间,跨度不得超过90天;开始等于结束及恰好90天均合法;- 发票修改时间按闭区间
[start, end]查询,开始和结束边界均包含,实际查询精度为分钟级; - 仅能查询到被单据关联的发票,若发票为仅在账本,则不会被查到。
接口地址
/api/openapi/invoice-ledger/v2/list-invoice-info
请求类型
POST
请求参数
参数说明
| 字段名称 | 字段类型 | 是否必填 | 字段说明 |
|---|---|---|---|
| reimburseStatus | List<String> | 否 | 发票所属单据的状态 : APPROVING 审批中 AUDITING 审核中 FORWARD 审核后审批 SETTLEMENT 结算 COMPLETED 完结 CLOSED 关闭 |
| pageNo | int | 否 | 页码,默认值1 |
| pageSize | int | 否 | 每页条数。默认100,最大值为100 |
| formCode | String(100) | 条件必填 | 单据号。默认必填;提供合法且不超过90天的 taskEndDateStart/taskEndDateEnd 或 invoiceUpdateAtStart/invoiceUpdateAtEnd 任一时间对时可不传;两组合法时间对可同时提供 |
| invoiceOutStateCodes | List<String> | 否 | 发票状态码,发票状态码默认为"",该字段为发票台账回写接口传入的状态码。例如:填写"",则查询状态码为空的所有数据。 |
| buyerTaxNumber | String(140) | 否 | 购买方税号 |
| taskEndDateStart | Long | 否 | 根据单据结束时间,返回(包括)之后的数据(对应返参数的procTaskStartTime)(时间范围90天内) |
| taskEndDateEnd | Long | 否 | 根据单据结束时间,返回(不包括)之前的数据(对应返参数的procTaskEndTime) (时间范围90天内) |
| invoiceTypes | List<String> | 否 | 发票类型 |
| invoiceUpdateAtStart | Long | 否 | 发票修改时间开始值,正值 Unix 毫秒时间戳;必须与 invoiceUpdateAtEnd 成对提供,开始不得晚于结束,跨度不超过90天;开始等于结束及恰好90天合法;查询为闭区间 [start, end],实际精度为分钟级 |
| invoiceUpdateAtEnd | Long | 否 | 发票修改时间结束值,正值 Unix 毫秒时间戳;必须与 invoiceUpdateAtStart 成对提供,开始不得晚于结束,跨度不超过90天;开始等于结束及恰好90天合法;查询为闭区间 [start, end],实际精度为分钟级 |
| invoiceDataCodes | List<String> | 否 | 发票内码 |
| commonInvoiceTypes | List<String> | 否 | 每刻统一发票类型 发票类型编码 |
| signStatusList | List<String> | 否 | 签收状态: NOT_STARTED(未发起签收), SIGNING(待签收), COMPLETED(已完成) |
参数样例
{
"pageNo": 1,
"pageSize": 10,
"reimburseStatus": [
"APPROVING",
"AUDITING",
"FORWARD",
"SETTLEMENT",
"COMPLETED",
"CLOSED"
],
"formCode": "XXX",
"invoiceOutStateCodes": [
"",
"A"
],
"startDate": 1336320000000,
"endDate": 1336406400000,
"buyerTaxNumber": "11010867663556711",
"taskEndDateStart": 1672558087000,
"taskEndDateEnd": 1675063687693,
"invoiceUpdateAtStart": 1672558087000,
"invoiceUpdateAtEnd": 1675063687693,
"invoiceDataCodes": [],
"signStatusList": [
"NOT_STARTED",
"SIGNING"
]
}
按发票修改时间增量查询样例
以下示例不传 formCode,通过发票修改时间和关联单据状态增量查询发票:
{
"pageNo": 1,
"pageSize": 100,
"invoiceUpdateAtStart": 1782835200000,
"invoiceUpdateAtEnd": 1785513540000,
"reimburseStatus": [
"AUDITING",
"COMPLETED"
]
}
查询条件校验
以下请求会校验失败,具体错误结构和提示语以接口实际返回为准:
- 只提供
invoiceUpdateAtStart或invoiceUpdateAtEnd中的一个字段; - 发票修改时间的任一时间戳为0或负数;
invoiceUpdateAtStart晚于invoiceUpdateAtEnd;- 发票修改时间跨度超过90天;
- 未提供
formCode,且未提供任一组合法的单据结束时间对或发票修改时间对。
大跨度增量同步建议
首次同步或补偿同步的时间范围超过90天时,请拆分为每段不超过90天的连续窗口。由于发票修改时间使用分钟级精度和闭区间 [start, end],建议相邻窗口保留边界重叠,例如依次查询 [T0, T1]、[T1, T2],并由调用方按唯一的 invoiceDataCode 去重,避免遗漏边界数据或重复归档。
响应参数
响应参数说明
| 字段名称 | 字段类型 | 是否必填 | 字段说明 |
|---|---|---|---|
| hasNextPage | boolean | 是 | 是否有下一页 |
| list | List<InvoiceDto> | 是 | 发票对象 |
InvoiceDto 发票
| 字段名称 | 字段类型 | 是否必填 | 字段说明 |
|---|---|---|---|
| invoiceDataCode | String(25) | 是 | 发票code |
| reimburseCode | String(50) | 是 | 单据号 |
| reimburseDataCode | String(25) | 是 | 单据内码 |
| buyerName | String | 是 | 购方名称 |
| legalEntityName | string | 是 | 公司抬头 |
| buyerTaxNumber | String | 是 | 购方税号 |
| invoiceCode | String | 是 | 发票代码 |
| invoiceNumber | String | 是 | 发票号码 |
| issueDate | String | 是 | 开票时间 |
| issueDateDesc | String | 是 | 开票时间(格式化) |
| procTaskEndTime | String | 是 | 关联单据结束时间 |
| procTaskEndTimeDesc | String | 是 | 关联单据结束时间(格式化) |
| procTaskStartTime | String | 是 | 关联单据开始时间 |
| procTaskStartTimeDesc | String | 是 | 关联单据结开始间(格式化) |
| checkCode | String | 是 | 校验码 |
| totalPriceAmount | String | 是 | 不含税金额 |
| totalTaxAmount | String | 是 | 税额 |
| totalPriceAndTax | String | 是 | 价税合计 |
| untaxAmount | String | 是 | 申报未税金额 |
| supplierName | String | 是 | 销方名称 |
| supplierAddress | String | 是 | 销方地址和电话 |
| invoiceType | String | 是 | 发票类型编码 |
| invoiceTypeDesc | String | 是 | 发票类型描述 |
| attachmentFiles | List< FileInfo > | 是 | 发票对象,见下表 |
| validateStatus | String | 是 | 发票验真状态编码,见下表 |
| validateStatusDesc | String | 是 | 发票验真状态描述,见下表 |
| ticketData | String | 是 | 发票一些相关信息 |
| taxRate | String | 是 | 税率 |
| buyerAddressPhone | String | 是 | 购方地址和电话 |
| buyerAccount | String | 是 | 购方账户(购方开户行+账户)非增值税发票和未验真的发票:该字段内容为空字符串 |
| supplierAccount | String | 是 | 销方账户(销方开户行+账户)非增值税发票和未验真的发票:该字段内容为空字符串 |
| source | String | 是 | 发票来源编码 |
| sourceDesc | String | 是 | 发票来源描述 |
| companySeal | String | 是 | 有无专用章 |
| invoiceRemark | String | 是 | 发票备注 |
| lineItems | List< lineItemsDto > | 是 | 货物明细,见下表 |
| supplierTaxNumber | String | 是 | 销方税号 |
| invoiceTaxDtoList | List< InvoiceTaxDto > | 是 | 发票税额明细,见下表 |
| invoiceStateCode | String | 是 | 发票状态码(A-Z) |
| externalVoucherCodes | String | 是 | 关联单据凭证号 |
| cancellationMark | String | 是 | 发票作废状态 |
| cancellationMarkUpdateTime | String | 是 | 发票作废状态更新时间 |
| supplierUnusual | String | 是 | 销售方异常状态 |
| supplierUnusualUpdateTime | String | 是 | 销售方异常状态更新时间 |
| invoiceDeductionStatus | String | 否 | 发票抵扣状态[PARTDEDUCTION,ALLDEDUCTION,NODEDUCTION] |
| invoiceDeductionStatusDesc | String | 否 | 发票抵扣状态描述[部分抵扣,全部抵扣,不抵扣] |
| invoiceUpdateAt | String | 否 | 发票更新时间 |
| formRankCode | String | 是 | 发票费用编号 |
| expenseCode | String | 是 | 费用编码 |
| invoiceType | String | 是 | 发票类型 |
| commonInvoiceType | String | 否 | 每刻统一发票编码 发票类型编码 |
| commonInvoiceTypeDesc | String | 否 | 每刻统一发票编码描述 |
| invoiceCcy | String | 是 | 发票币种 |
| departmentBizCode | String | 是 | 承担部门业务编码 |
| departmentName | String | 是 | 承担部门名称 |
| signStatus | String | 否 | 签收状态: NOT_STARTED(未发起签收), SIGNING(待签收), COMPLETED(已完成) |
FileInfo 附件信息
| 字段名称 | 字段类型 | 是否必填 | 字段说明 |
|---|---|---|---|
| code | String(25) | 是 | 内部code |
| mimeType | String(50) | 是 | 文件类型:image/png |
| filename | String(25) | 是 | 文件名称 |
| type | String | 是 | 文件类型:image/png |
| downloadUrl | String | 是 | 源文件下载地址,有时效性,7天有效期 |
| originalUrl | String | 是 | 预览图地址,有时效性,7天有效期 |
| thumUrl | String | 是 | 缩略图地址,有时效性,7天有效期 |
| imageUrl | String | 是 | 发票图片地址,有时效性,7天有效期(用户上传的原始图片),若上传的文件是pdf,此参数返回“images/pdf.png”) |
lineItemsDto 货物明细
| 字段名称 | 字段类型 | 是否必填 | 字段说明 |
|---|---|---|---|
| code | String(25) | 是 | 明细编码 |
| invoiceDataCode | String(25) | 是 | 发票code |
| name | String(25) | 是 | 货物名称 |
| priceAmount | BigDecimal | 是 | 金额 |
| taxRate | BigDecimal | 是 | 税率 |
| taxAmount | BigDecimal | 是 | 税额 |
| num | BigDecimal | 是 | 数量 |
| specificationModel | String | 是 | 规格型号 |
| unit | String | 是 | 单位 |
| unitPrice | BigDecimal | 是 | 单价 |
| taxRateMark | String | 是 | 税率标记 |
| taxRateMarkDesc | String | 是 | 税率标记描述 |
| expenseCode | String | 是 | 费用编码 |
| invoiceType | String | 是 | 发票类型 |
InvoiceTaxDto 发票抵扣
| 字段名称 | 字段类型 | 是否必填 | 字段说明 |
|---|---|---|---|
| taxableDetails | String(25) | 是 | 应税明细 |
| taxRate | String(25) | 是 | 税率 |
| approvedDeductionAmount | AmountInput | 是 | 抵扣税额 |
| approvedTaxAmount | AmountInput | 是 | 税额 |
| transferOut | String | 是 | 是否转出 |
validateStatus(验真状态)对应validateStatusDesc(验真状态解释说明)
| 验真状态 | 验真状态解释说明 |
|---|---|
| NOT_VALIDATION | 未验真 |
| VALIDATED | 已验真 |
| VALIDATION_FAILED | 验真失败 |
AmountInput 金额
| 字段名称 | 字段类型 | 是否必填 | 字段说明 |
|---|---|---|---|
| currency | String(3) | 是 | 币种 |
| amount | BigDecimal | 是 | 金额 |
| customExchangeRate | BigDecimal | 是 | 汇率 |
| amountStr | String | 是 | 带币种金额 |
参数样例
{
"code": "ACK",
"message": "成功",
"data": {
"list": [
{
"invoiceDataCode": "INV20122912U89IWW",
"reimburseCode": "MK118070203",
"reimburseDataCode": "BX1807041LX7O64G",
"buyerName": "",
"buyerTaxNumber": "",
"invoiceCode": "",
"invoiceNumber": "",
"issueDate": 1530673200000,
"issueDateDesc": "2018-07-04",
"procTaskEndTime": 1674631618000,
"procTaskEndTimeDesc": "2023-01-25",
"procTaskStartTime": 1672739570726,
"procTaskStartTimeDesc": "2023-01-03",
"checkCode": "",
"totalPriceAmount": 0,
"totalTaxAmount": 0,
"totalPriceAndTax": 0,
"untaxAmount": "0",
"supplierName": "",
"supplierAddress": "",
"supplierTaxNumber": "12321231231",
"invoiceType": "OTHER",
"invoiceTypeDesc": "其他",
"invoiceStateCode": "A",
"cancellationMarkUpdateTime": 1672739570726,
"supplierUnusual": "BLACK",
"supplierUnusualUpdateTime": 1672739570726,
"invoiceUpdateAt": "2023-01-03",
"attachmentFiles": [
{
"code": "ATT1807051YCYYUBK",
"resourceKey": "OSS1807051OM923NK/6c89c484-3da8-4f00-9184-258668ac696c.png",
"mimeType": "image/png",
"originalUrl": "https://dd-uat.oss-cn-hangzhou.aliyuncs.com/OSS1807051OM923NK/6c89c484-3da8-4f00-9184-258668ac696c.png?Expires=1594276388&OSSAccessKeyId=LTAIW3TdsFRisDtO&Signature=FI4lQ8soBEmw3L6nsf%2FOUrjdS00%3D&x-oss-process=image%2Fauto-orient%2C1",
"thumUrl": "https://dd-uat.oss-cn-hangzhou.aliyuncs.com/OSS1807051OM923NK/6c89c484-3da8-4f00-9184-258668ac696c.png?Expires=1594276388&OSSAccessKeyId=LTAIW3TdsFRisDtO&Signature=dcUuR6JHu%2BUe6V5VXHOteZ%2FWkHU%3D&x-oss-process=image%2Fresize%2Cm_fixed%2Cw_100%2Ch_100",
"filename": "屏幕快照 2018-05-21 下午2.35.51.png",
"type": "image/png",
"imageUrl": "https://dd-uat.oss-cn-hangzhou.aliyuncs.com/OSS1807051OM923NK/6c89c484-3da8-4f00-9184-258668ac696c.png?Expires=1594276388&OSSAccessKeyId=LTAIW3TdsFRisDtO&Signature=FI4lQ8soBEmw3L6nsf%2FOUrjdS00%3D&x-oss-process=image%2Fauto-orient%2C1",
"size": 200483,
"isQrCodePic": false,
"withHandSignUrl": null,
"qrCodePic": false
}
],
"validateStatus": "NOT_VALIDATION",
"validateStatusDesc": "未验真",
"ticketData": null,
"approvedTaxAmount": {
"amount": 0,
"currency": "CNY",
"amountStr": "¥0.00"
},
"approvedDeductionAmount": {
"amount": 0,
"currency": "CNY",
"amountStr": "¥0.00"
},
"taxRate": 0,
"buyerAddressPhone": null,
"buyerAccount": "宁波银行杭州分行营业部71010122001844352",
"supplierAccount": null,
"source": null,
"sourceDesc": null,
"companySeal": null,
"invoiceTaxDtoList": [
{
"taxableDetails": "*运输服务*地铁票",
"taxRate": 0.09000,
"approvedDeductionAmount": {
"amount": 0.25,
"currency": "CNY",
"customExchangeRate": 1,
"amountStr": "¥0.25"
},
"approvedTaxAmount": {
"amount": 0.25,
"currency": "CNY",
"customExchangeRate": 1,
"amountStr": "¥0.25"
},
"transferOut": false,
"freeTax": false
}
],
"invoiceRemark": null,
"lineItems": null,
"departmentBizCode": "DI220",
"departmentName": "部门",
"signStatus": "NOT_STARTED"
}
],
"hasNextPage": false
},
"success": true
}
修改记录
2023-02-08 新增发票台账查询文档
2026-02-03 返参新增发票币种
2025-06-23 返参新增 untaxAmount(申报未税金额)
2026-08-06 DB-60885 补充按发票修改时间增量查询的条件、边界和同步建议