查询异步识别查验结果

接口说明

  • url: /common/invoiceCheck/checkResult
  • method: GET
  • 参数格式:Query String

该接口使用发起异步纯识别查验返回的 task_id 查询结果。识别字段和查验字段都直接位于每条 data[] 中。

返回说明

场景 返回内容
正在识别 返回 msg_code=C005,票面字段可能尚未生成
识别完成,正在查验 返回已识别的票面字段和 msg_code=C001
识别查验完成 返回票面字段、查验字段和 msg_code=C003
查验失败 返回已取得的票面字段、失败信息以及 C002 或 C004
同一字段在识别和查验结果中都存在 优先返回查验值;查验值为空时使用识别值

所有票面和查验字段都直接位于 data[] 中,不使用额外包装层。不同票种只返回该票种存在的字段。

请求参数

字段名称 字段类型 字段描述 是否必填
bizId String 当前请求的业务唯一标识 true
timestamp Long 当前请求的毫秒时间戳 true
task_id Long 发起接口返回的任务 ID true

响应参数

字段名称 字段类型 字段描述
bizId String 与请求入参一致
resCode Integer 接口响应状态码
resMsg String 返回信息
data Array 识别查验结果,每张票据一条
data[].result Integer 处理结果,1 表示已取得票据结果
data[].msg_code String 轮询状态码,见下表
data[].error_message String 当前识别或查验信息
data[].check_date Long 最后查验时间
data[].invoice_type String 发票类型
data[].invoice_code String 发票代码
data[].invoice_num String 发票号码
data[].receipt_date Long 开票日期
data[].check_code String 校验码
data[].total_amount BigDecimal 价税合计
data[].amount BigDecimal 不含税金额
data[].tax_amount BigDecimal 税额
data[].remark String 备注
data[].buyer_name String 购方名称
data[].buyer_tax_code String 购方税号
data[].buyer_address_phone String 购方地址、电话
data[].buyer_account String 购方开户行及账号
data[].seller_name String 销方名称
data[].seller_tax_code String 销方税号
data[].seller_address_phone String 销方地址、电话
data[].seller_account String 销方开户行及账号
data[].cancellation_mark String 作废标识
data[].repeat_flag String 是否已查验
data[].detail Array 历史兼容明细行

票面补充字段

字段名称 字段类型 字段描述
data[].card_id String 微信/企业微信来源发票的 card_id
data[].encrypt_code String 微信/企业微信来源发票的 encrypt_code
data[].userId String 支付宝来源发票的用户 ID
data[].invoiceCode String 支付宝来源发票的发票代码
data[].invoiceNum String 支付宝来源发票的发票号码
data[].invoice_ocr_log_id Long 识别日志 ID
data[].image_size Integer[] 图片分辨率 [width, height]
data[].page Integer 页码,从 0 开始
data[].page_number String 多页发票页码
data[].receipt_currency String 票据币种
data[].attachment_url String 文件地址
data[].direction Integer 顺时针旋转方向
data[].region Integer[] 单张票据在图片中的区域 [x1, y1, x2, y2]
data[].invoice_number String OCR 识别的发票号码
data[].subtotal_amount BigDecimal 小计金额
data[].tax_rate BigDecimal 税率
data[].highway_flag String 高速标识
data[].title String 票据标题
data[].agent_mark String 是否代开
data[].buyer_bank_account String 购买方银行账号
data[].buyer_addr_tel String 购买方地址、电话
data[].buyer_address String 购买方地址
data[].seller_bank_account String 销售方银行账号
data[].seller_addr_tel String 销售方地址、电话
data[].seller_address String 销售方地址
data[].purchase_order String 采购订单
data[].province String 省
data[].city String 市
data[].company_seal String 是否有公司印章
data[].red_letter_flag String 红字发票标识
data[].error_num_flag Boolean 发票号码是否存在错误
data[].subject String 科目
data[].buyer_bank String 开户银行
data[].purchase_invoice String 是否进入票据池
data[].other_info String 其他信息
data[].custom_data String 定制数据
data[].country String 国家
data[].consume_scene String 消费场景

交通、住宿及其他票种字段

字段名称 字段类型 字段描述
data[].date String 票据日期或乘车日期
data[].start_time String 开始时间
data[].end_time String 结束时间
data[].start_datetime String 开始日期时间或乘车时间
data[].end_datetime String 结束日期时间
data[].mileage BigDecimal 里程
data[].license_plate String 车牌号
data[].destination_city String 起点
data[].destination_city_to String 终点
data[].location_from String 出发地/取车地点
data[].location_to String 到达地/还车地点
data[].station_from String 出发站
data[].station_to String 到达站
data[].train_class String 火车席别
data[].train_number String 车次
data[].name String 乘车人姓名
data[].id_card String 乘车人身份证号
data[].passenger_name String 乘客/入住人/用车人
data[].currency String 币种
data[].fare BigDecimal 票价
data[].civil_avn_dev_fund BigDecimal 民航发展基金
data[].fuel_surcharge BigDecimal 燃油附加费
data[].other_taxes BigDecimal 航空客票其他税费
data[].insurance BigDecimal 航空客票保险费
data[].international_flag String 国内/国际航班标识
data[].flight_class String 航班舱位类型
data[].flight_number String 航班号
data[].flight_detail Array 航段信息
data[].shop_location String 商户地址
data[].duration Integer 晚数/天数
data[].mobile_number String 号码/账户
data[].cross_border_flag String 是否跨境

data[].flight_detail[] 字段:

字段名称 字段类型 字段描述
from String 出发站
to String 到达站
time String 乘机时间
date String 乘机日期
seat String 座位等级
flight_class String 舱位类型
class_name String 舱位等级
flight_number String 航班号
allow String 行李额
carrier String 承运人
not_valid_before String 客票生效日期
not_valid_after String 客票有效截止日期

OCR 明细行字段

字段名称 字段类型 字段描述
data[].items Array OCR 识别的票据明细行
data[].items[].name String 货物或应税劳务、服务名称
data[].items[].specification String 规格型号
data[].items[].unit String 单位
data[].items[].quantity BigDecimal 数量
data[].items[].price BigDecimal 单价
data[].items[].amount BigDecimal 金额
data[].items[].tax_rate Integer 税率
data[].items[].tax_amount BigDecimal 税额
data[].items[].total_amount BigDecimal 价税合计
data[].items[].material_name String 明细名称
data[].items[].classification_code String 税收分类编码

查验补充字段

字段名称 字段类型 字段描述
data[].error String 查验错误码
data[].message String 查验信息
data[].check_status String 查验状态
data[].check_message String 查验说明
data[].origin_message Object 原始查验信息
data[].detail_list Array 查验明细行
data[].receipt_id Integer 票据 ID
data[].sales_list_flag String 销货清单标志
data[].abnormal_status String 异常状态标志
data[].log_id Long 识别批次日志 ID
data[].dkbs String 代开标识
data[].total_amount_cn String 价税合计中文大写
data[].electronic_ticket_number String 电子客票号
data[].boarding_date String 乘车日期
data[].id_number String 证件号
data[].train_type String 席别
data[].seat String 席位
data[].railway_carriage String 车厢
data[].air_conditioning_characteristics String 空调特征
data[].departure String 出发时间
data[].international_type String 国内/国际类型
data[].gp_order String GP 单号
data[].estate_lease_detail Array 不动产经营租赁服务明细
data[].passenger_transportation_detail Array 旅客运输服务明细
data[].task_id String 查验任务 ID
data[].specific_feature String 特定要素
data[].business_type String 业务类型
data[].sales_point_code String 销售网点代号
data[].filling_unit String 填开单位
data[].endorsement String 签注
data[].billing_status String 开票状态
data[].ofd_url String OFD 文件地址
data[].xml_url String XML 文件地址
data[].pdf_url String PDF 文件地址

data[].detail_list[] 字段:

字段名称 字段类型 字段描述
name String 货物名称
specification String 规格型号
unit String 单位
total_amount BigDecimal 价税合计
amount BigDecimal 金额
tax_amount BigDecimal 税额
price BigDecimal 不含税单价
quantity BigDecimal 数量
tax_rate BigDecimal 税率
classification_code String 税收分类编码
start_date Long 开始日期,时间戳
end_date Long 结束日期,时间戳
license_plate String 车牌号
car_type String 车辆类型

data[].flight_detail[] 在查验结果中存在时优先返回以下结构:

字段名称 字段类型 字段描述
destination_airport String 始发站
destination_airport_to String 到达站
flight_number String 航班号
carrier_date String 承运日期,格式 yyyy-MM-dd
departure_time String 起飞时间,格式 HH:mm
segment_number String 航段序号
carrier String 承运人
seating_class String 座位等级
ticket_category String 客票类型
ticket_validity_date String 客票生效日期
expiration_date String 有效截止日期
free_baggage String 免费行李
flight_class String 舱位类型

data[].estate_lease_detail[] 字段:

字段名称 字段类型 字段描述
propertyCertificateNumber String 产权证书/不动产权证号
propertyAddressProvince String 不动产地址(省)
propertyAddressCity String 不动产地址(市)
propertyAddressDetail String 不动产详细地址
leaseStartDate String 租赁开始日期
leaseEndDate String 租赁结束日期
leaseStartAndEndDate String 租赁起止日期
crossCityFlag String 跨地(市)标志

data[].passenger_transportation_detail[] 字段:

字段名称 字段类型 字段描述
serialNumber Integer 序号
passengerName String 出行人
idCardNumber String 身份证件号码
idCardTypeCode String 出行人证件类型代码
travelDate String 出行日期
departureLocation String 出发地
arrivalLocation String 到达地
transportType String 交通工具类型

轮询状态

msg_code 含义 是否建议继续轮询
C001 查验中 是
C002 查验失败,系统仍可能重试 是
C003 查验完成,或票种无需查验 否
C004 查验最终失败 否
C005 识别中 是

请求示例

GET /common/invoiceCheck/checkResult?task_id=469793911900995584&bizId=12345678-1234-1234-1234-123456789012&timestamp=1788141600000

响应示例

{
  "resCode": 200000,
  "resMsg": "success",
  "bizId": "12345678-1234-1234-1234-123456789012",
  "data": [
    {
      "result": 1,
      "msg_code": "C003",
      "invoice_type": "65",
      "invoice_num": "7812345678901",
      "total_amount": 860.00,
      "passenger_name": "示例乘客",
      "fare": 700.00,
      "civil_avn_dev_fund": 50.00,
      "fuel_surcharge": 100.00,
      "other_taxes": 10.00
    }
  ]
}

注意事项

  • resCode=200000 只表示轮询请求处理成功,票据业务状态以 msg_code 为准。
  • 同一文件可能返回多条 data。
  • 当 msg_code 为 C003 或 C004 时应停止轮询。
  • 查验失败时,请结合 error_message 和同层的识别查验字段排查,不要只比较发票号码。

results matching ""

    No results matching ""