发票查验

API key required
Other

发票查验技能。按票面信息或上传文件查验发票真伪,返回完整票面信息。适用于验证发票真实性的场景。

Install

openclaw skills install invoice-verify

发票查验技能

使用此技能通过票面信息或上传发票文件查验发票真伪,获取完整票面明细。

使用场景

满足以下需求时使用:

  • 根据发票号码、开票日期、金额/校验码查验发票真伪。
  • 上传发票文件(pdf/ofd/xml/jpg/png)进行批量查验。
  • 查询查验记录,按日期范围、发票号码、发票类型等条件筛选。

触发语句示例

以下用户输入应触发此技能:

  • 帮我查验这张发票 / 发票查验 / 查验发票
  • 验证发票真伪 / 发票验真 / 验真
  • 查一下这张发票是不是真的
  • 上传发票文件查验 / 文件查验
  • 这个发票文件帮我验一下
  • 查验发票 26127000000211930033
  • 查看一下查验记录 / 查验记录 / 查验历史
  • 查一下5月份的查验记录
  • 有没有查验失败的发票
  • 查验状态不一致的发票有哪些

输入参数

执行前准备以下参数:

按票面查验 (inspect)

  • 发票号码(必填)
  • 开票日期(必填,格式 YYYY-MM-DD)
  • 金额或校验码(必填,根据发票种类不同传入金额或校验码)
  • 发票代码(可选)

按文件查验 (file)

  • 发票文件路径(必填,支持 pdf、ofd、xml、jpg、png)

查询查验记录 (record)

  • 开票日期开始(选填,格式 YYYY-MM-DD)
  • 开票日期结束(选填,格式 YYYY-MM-DD)
  • 发票号码(选填)
  • 发票代码(选填)
  • 发票类型(选填,可多选,传入编码值,详见下方 fplx 枚举)
  • 页码(选填,默认 1)
  • 每页条数(选填,默认 10)
  • 查验时间开始(选填,格式 YYYY-MM-DD)
  • 查验时间结束(选填,格式 YYYY-MM-DD)

fplx 发票类型枚举

票据大类票据小类编码
增值税发票管理系统发票增值税专用发票01
货物运输业增值税专用发票02
机动车销售统一发票03
增值税普通发票04
增值税电子专用发票08
增值税电子普通发票10
增值税普通发票(卷票)11
二手车销售统一发票15
道路通行费电子普通发票14
电子发票服务平台电子发票(增值税专用发票)81
电子发票(普通发票)82
电子发票(铁路电子客票)51
电子发票(航空运输电子客票行程单)61
机动车销售电子统一发票73
电子发票(机动车销售统一发票)83
二手车销售电子统一发票84
纸质发票(增值税专用发票)85
纸质发票(普通发票)86
纸质发票(机动车销售统一发票)87
纸质发票(二手车销售统一发票)88
数电票(通行费发票)59
地方通用发票浙江通用(电子)发票Z1
云南省通用电子发票Y1
广东通用机打发票(电子)G1
北京电子普通发票B1
深圳电子普通发票S1
通用定额发票TY
江苏省车辆通行费通用(电子)发票J1
交通运输发票出租车发票CZ
汽车票QC
轮船票LC
过路过桥费发票GL
火车票HC
机票行程单JX
其他发票其他发票QT
财政票据财政票据CP
海关缴款书海关缴款书17

执行流程

前置检查(最高优先级):检查环境变量 ZXT_API_KEY 是否已设置。

注意:当前 shell 会话可能未继承 Windows 用户级环境变量,必须按以下方式检查,不能仅依赖 $ZXT_API_KEY

  • Windows:执行 powershell -Command "[System.Environment]::GetEnvironmentVariable('ZXT_API_KEY', 'User')" 获取用户级环境变量值,同时检查 $ZXT_API_KEY
  • macOS/Linux:检查 $ZXT_API_KEY 即可。

如果以上检查结果均为空,禁止执行任何后续操作,立即向用户输出以下提示并停止:

您需要完成以下三步,即可自动配置并执行技能:

  1. 注册账号 访问中兴通简税Skill平台:https://skill.quandianfapiao.com/ 完成注册。

  2. 申请 apiKey 登录后进入"技能中心",复制您的 apiKey。

  3. 提供 apiKey 将复制的 apiKey 发送给我,我将为您完成配置并立即执行技能。

严格限制:前置检查未通过时,禁止执行任何其他动作,包括但不限于:

  • 禁止读取文件(Excel、PDF、图片等)
  • 禁止调用任何 API
  • 禁止执行任何脚本或命令
  • 禁止进行参数解析或预处理

只允许输出提示信息,然后停止,等待用户提供 apiKey。

用户提供 apiKey 后,写入系统环境变量并使当前会话生效:

  • Windows:setx ZXT_API_KEY <apiKey> 写入用户级环境变量,然后执行 export ZXT_API_KEY=<apiKey> 使当前会话生效。
  • macOS/Linux:将 export ZXT_API_KEY=<apiKey> 追加到 ~/.bashrc~/.zshrc(根据用户使用的 shell),同时执行 export ZXT_API_KEY=<apiKey> 使当前会话生效。

环境变量就绪后,继续以下步骤:

  1. 校验必填参数存在且非空。任何必填参数缺失时必须立即停止,禁止跳过或使用空值继续执行。
    • 缺少发票号码、开票日期或金额/校验码:停止并提示用户提供对应参数。
    • 按文件查验时文件不存在或不支持该文件类型:停止并提示用户。
  2. 通过 python 执行脚本调用远程 API(Windows 下使用 python,macOS/Linux 使用 python3),脚本优先使用 --api-key 参数,未传则回退读取环境变量 ZXT_API_KEY
  3. 检查返回的 status 字段,非 200 时停止并将错误信息展示给用户,禁止重试或忽略。
  4. 解析返回结果并以可读格式输出。

请求参数说明

按票面查验 — POST /api/jxplus/zxtSkill/inspection/queryInspectionInvoice

参数类型必填说明
apiKeystringapiKey
invoiceNumberstring发票号码
invoiceDatestring开票日期(YYYY-MM-DD)
jejymstring金额或校验码,根据发票种类不同传入,详见下方 jejym 传入规则
invoiceCodestring发票代码

jejym 传入规则

不同发票类型的 jejym 入参不同:

发票类型jejym 入参
增值税专用发票开具金额(不含税)
机动车销售统一发票不含税价
二手车销售统一发票车价合计
增值税电子专用发票开具金额(不含税)
电子发票(增值税专用发票)价税合计
电子发票(普通发票)价税合计
增值税普通发票校验码后六位
增值税普通发票(卷票)校验码后六位
增值税电子普通发票校验码后六位
道路通行费电子普通发票校验码后六位
铁路电子客票价税合计
航空运输电子客票行程单价税合计
电子发票(机动车销售统一发票)价税合计
电子发票(通行费发票)价税合计

按文件查验 — POST /api/jxplus/zxtSkill/inspection/queryInspectionFile

请求头:Content-Type: multipart/form-data

参数类型必填说明
apiKeystringapiKey
filefile发票文件(pdf/ofd/xml/jpg/png)

查询查验记录 — POST /api/jxplus/zxtSkill/inspection/queryInspectionRecord

参数类型必填说明
apiKeystringapiKey
kprqStartstring开票日期开始 (YYYY-MM-DD)
kprqEndstring开票日期结束 (YYYY-MM-DD)
invoiceNumberstring发票号码
invoiceCodestring发票代码
fplxListstring[]发票类型集合
pageNostring页码,默认 1
pageSizestring每页条数,默认 10
cysjStartstring查验时间开始 (YYYY-MM-DD)
cysjEndstring查验时间结束 (YYYY-MM-DD)

返回说明

按票面查验和按文件查验共享相同的返回数据结构。按文件查验返回集合,集合内每条记录结构与按票面查验一致。

查验记录返回 (record)

返回分页列表,每条记录包含:

字段说明
invoiceNumber发票号码
invoiceCode发票代码
fplx发票类型
fplxName发票类型名称
kprq开票日期
jshj价税合计
cyzt查验状态:0 未查验,1 查验中,2 查验真票,3 查无此票,4 查询不一致,5 查验失败,6 不支持查验,7 抬头不符
cyztName查验状态名称
cysj查验时间
xsfMc销售方名称

外层返回字段

字段类型说明
statusstring返回接口状态码
messagestring返回接口状态描述信息
dataobject业务数据体(按文件查验时为数组)

data 业务数据体

字段类型说明
invoiceTypestring发票种类,详见发票类型说明
invoiceCodestring发票代码
invoiceNumberstring发票号码
invoiceDatestring开票日期
hjjedecimal合计金额
hjsedecimal合计税额
jshjdecimal价税合计
fpStatusstring发票状态:0 正常,2 作废,3 红冲
xsfMcstring销售方名称
xsfNsrsbhstring销售方纳税人识别号
xsfAddressTelstring销售方地址、电话
xsfBankAccountstring销售方开户行及账号
gmfMcstring购买方名称
gmfNsrsbhstring购买方税号
gmfAddressTelstring购买方地址、电话
gmfBankAccountstring购买方开户行及账号
payeestring收款人
reviewerstring复核人
invoicerstring开票人
machineNostring机器编号
checkCodestring校验码
passwordAreastring密码区
remarkstring备注
xmlFileUrlstringxml 文件地址
pdfFileUrlstringpdf 文件地址
ofdFileUrlstringofd 文件地址
itemsList发票明细
specialDetailList特殊票种明细(铁路电子客票、航空运输电子客票行程单)

items 明细数据体

商品详情列表(其他类型发票)

字段类型说明
projectNamestring货物或应税劳务、服务名称
ggxhstring规格型号
projectUnitstring单位
projectCountstring数量
projectPriceEtstring单价
projectJeEtstring金额
slstring税率
sestring税额

二手车详情列表(15 二手车发票)

字段类型说明
cpzhstring车牌照号
djzhstring登记证号
cllxstring车辆类型
cjhstring车架号/车辆识别号
cpxhstring厂牌型号
glsMcstring转入地车辆管理所名称
jyDwstring经营、拍卖单位
jyDzstring经营、拍卖单位地址
jyShstring经营、拍卖单位税号
jyYhstring经营、拍卖单位开户银行、账号
jyDhstring经营、拍卖单位电话
escscstring二手车市场
escscShstring二手车市场税号
escscDzstring二手车市场地址
escscYhstring二手车市场开户银行、账号
escscDhstring二手车市场电话

通行费详情列表(14 道路通行费 & 59 电子发票通行费)

字段类型说明
projectNamestring项目名称
carNumberstring车牌号
typestring类型
beginDatestring通行日起
endDatestring通行日止
projectJeEtstring金额
slstring税率
sestring税额

机动车详情列表(03 机动车发票 & 83 电子发票机动车)

字段类型说明
hgzhstring合格证号
jkzmshstring进口证明书号
sjdhstring商检单号
fdjhmstring发动机号码
clsbhstring车辆识别代号/车架号码
zzsslstring增值税税率或征收率
zzssestring增值税税额
zgswjgstring主管税务机关
zgswjgdmstring主管税务机关代码
bhsjstring不含税价
wspzhmstring完税凭证号码
dwstring吨位
xccrstring限乘人数
dzstring地址
dhstring电话
khyhstring开户银行
zhstring账号

specialDetail 特殊票种明细数据体

铁路电子客票详情列表(51 铁路电子客票)

字段类型说明
nameOfPassengerstring旅客姓名
departureTimestring出发时间
farestring票价
promptInformationAreastring提示信息
seatstring座位
travelDatestring乘车日期
passengerIdNumberstring身份证号码
departureStationstring出发地
trainNumberstring车次
destinationStationstring目的地
eticketNumberstring电子客票号码
seatLevelstring座位等级

航空运输电子客票行程单详情列表(61 航空运输电子客票行程单)

字段类型说明
nameOfPassengerstring旅客姓名
issuingStatusstring填开状态
departureStationstring出发地
firstDestinationStationstring第一站
secondDestinationStationstring第二站
thirdDestinationStationstring第三站
fourthDestinationStationstring第四站
totalAmountstring合计
markingOfDomesticOrInternationalstring国内国际标识
gpoddnumbersstringGP 单号
eticketNumberstring电子客票号码
itineraryDetailList行程明细

itineraryDetail 行程明细数据体

字段类型说明
departureTimestring出发时间
flightstring航班号
carrierstring承运人
levelstring座位等级
carrierDatestring承运日期
fareBasisstring客票级别/客票类别

异常状态码

状态码说明
400请求参数错误
300参数为空或格式错误
305无权访问该接口
307消费失败,授权余次不足
308超出接口调用次数
500系统异常

接口请求示例

按票面查验 — POST /api/jxplus/zxtSkill/inspection/queryInspectionInvoice

请求:

{
  "data": {
    "apiKey": "sk-sg-9EVbsJLJnlKVLaSO4FZtPUVFysbFL",
    "invoiceNumber": "26127000000211930033",
    "invoiceDate": "2026-05-12",
    "jejym": "162.43"
  }
}

成功返回:

{
  "status": "200",
  "message": "成功",
  "data": {
    "invoiceType": "82",
    "invoiceCode": "",
    "invoiceNumber": "26127000000211930033",
    "invoiceDate": "2026-05-12",
    "hjje": "146.33",
    "hjse": "16.10",
    "jshj": "162.43",
    "fpStatus": "0",
    "xsfMc": "天津象鲜科技有限公司",
    "xsfNsrsbh": "91120101MADQKPT067",
    "xsfAddressTel": "天津市和平区南市街道张自忠路与多伦道交口合生国际大厦1号楼1-L7-101 021-52559777",
    "xsfBankAccount": "招商银行股份有限公司天津滨海分行营业部 122917783510000",
    "gmfMc": "北京中兴通融资产管理股份有限公司",
    "gmfNsrsbh": "911101087582285868",
    "gmfAddressTel": "",
    "gmfBankAccount": "",
    "items": [
      {
        "projectName": "*水果*水果",
        "ggxh": "/",
        "projectUnit": "件",
        "projectCount": "4",
        "projectPriceEt": "18.4850000000",
        "projectJeEt": "73.94",
        "sl": "0.090",
        "se": "6.66"
      },
      {
        "projectName": "*纸制品*纸制品",
        "ggxh": "/",
        "projectUnit": "件",
        "projectCount": "1",
        "projectPriceEt": "16.7300000000",
        "projectJeEt": "16.73",
        "sl": "0.130",
        "se": "2.17"
      }
    ]
  }
}

异常返回:

{
  "status": "400",
  "message": "金额/校验码不能为空",
  "data": ""
}

按文件查验 — POST /api/jxplus/zxtSkill/inspection/queryInspectionFile

请求方式:multipart/form-data,包含 apiKey 字段和 file 文件字段。

返回值:集合,集合内结构与按票面查验一致。

命令示例

按票面查验:

python .claude/skills/invoice-verify/invoice_verify.py inspect --invoice-number "26127000000211930033" --invoice-date "2026-05-12" --jejym "162.43"

按文件查验:

python .claude/skills/invoice-verify/invoice_verify.py file --file "E:\\invoices\\test.pdf"

查询查验记录(按日期范围):

python .claude/skills/invoice-verify/invoice_verify.py record --kprq-start "2026-05-01" --kprq-end "2026-05-31"

查询查验记录(按发票号码):

python .claude/skills/invoice-verify/invoice_verify.py record --invoice-number "26127000000211930033"

查询查验记录(按发票类型筛选,可多选):

python .claude/skills/invoice-verify/invoice_verify.py record --kprq-start "2026-05-01" --kprq-end "2026-05-31" --fplx 82 81