Skip to content

发票信息查询(数电板式和全票面信息)


1.概述:

  • 本接口用于实时查询发票信息、板式文件下载地址、发票用途信息。针对数电试点企业包含:全票面信息,版式文件(包含OFD、PDF、XML)下载地址,附加信息,特定要素信息等;非数电试点企业(综服企业):仅能获取数电发票的板式文件(包含OFD、PDF、XML)下载地址。
  • 接口:ip:port/invoice/S000522
  • 使用电票平台开具的数电发票板式文件(ofd、pdf、xml)需要鉴权查询,支持数电专票、数电普票、数电(铁路),数电(航空),调用S000522获取。
  • 税务ukey开具的电子发票板式文件(pdf、ofd)只需要查验即可获取。
  • 第三方电子发票平台开具的,暂时不能直接获取板式文件。
  • 新增查询发票状态信息,包含发票状态、入账状态、增值税用票状态、消费税用票状态。
  • 新增模式,可按需选择是否需要全票面信息、板式文件下载地址、发票用途信息。

2.请求数据:

数据格式
json
{
  "appid": "xxx",
  "serviceid": "S000522",
  "jtnsrsbh": "xxxxxxx",
  "nsrsbh": "xxxxxxx",
  "content": "",
  "signature": "xxxxxxxxxxxxxxxxx",
  "signType": "0"
}

其中:content样例:

json
{
    "InvoiceCode": "011001700112",
    "InvoiceNumber": "15323546",
    "BillingDate": "2019-06-20"
}
字段说明
ID名称长度必须说明
InvoiceCode发票代码12全电发票时可为空
InvoiceNumber发票号码8全电发票时为20位
BillingDate开票日期19若有时分秒,则传:YYYY-MM-DD HH:mm:ss若没有时分秒,则传:YYYY-MM-DD
DataType数据类型21:进项 2:销项 默认值1,如果查销项发票,本字段请传2
IsQd是否获取全电发票板式2该字段用于获取综服中的全电发票板式文件 0:获取增值税发票主信息 1:获取板式文件,默认值0 全电试点企业获取可不传。
InvoiceType发票类型6该字段用于获取综服中的全电发票板式文件时必填 31:全电专票 32:全电普票,综服还不支持获取数电火车票和数电飞机票板式文件 全电试点企业获取可不传。
returnsjurl返回税局地址1该字段用于获取数电试点企业中的全电发票板式文件,若传值为1,则返回税局的板式文件下载地址。传0,则返回封装后地址。默认1
useNew是否使用新方式11新方式,0原有方式。该字段用于选择是否使用新方式,新方式可自由组合全票面、数电板式、发票用途信息
dtInvoiceDetail不需要明细信息1新方式时才生效, 1不需要,0需要,默认0
dtInvoiceFile不需要板式文件1新方式时才生效, 1不需要,0需要,默认0
wtInvoiceUsage需要发票用途信息1新方式时才生效, 1需要(结果返回用途信息),0不需要,默认0

3.请求方式:

  • POST

4.返回数据:

ID名称长度必须说明
fpdm发票代码12
fphm发票号码8
kprq开票日期10YYYY-MM-DD
je金额20
se税额20
jshj价税合计20
jym校验码25
fplx发票类型2详见4.1 发票类型代码表
fpzt发票状态20正常 1作废 2红冲 3失控 4异常 80红字发票待确认 7部分红冲 8全额红冲
gfsh购方税号20
gfmc购方名称100
gfdzdh购方地址电话200
gfyhzh购方银行账号200
xfsh销方税号20
xfmc销方名称100
xfdzdh销方地址电话200
xfyhzh销方银行账号200
kpr开票人10
fhr复核人10
skr收款人10
jqbh机器编号20
bz备注200
ewmFile收票二维码地址500全电发票时返回
ofdFileOfd文件地址500全电发票时返回,若为综服全电发票,则只返回ofdFile、pdfFile、xmlFile
pdfFilePdf文件地址500全电发票时返回
xmlFileXml文件地址500全电发票时返回
lzfphm蓝字发票号码30数电试点企业-数电负数发票时返回。
fpxx发票全票面信息JsonObject发票全票面信息 useNew=0时返回;useNew=1并且dtInvoiceDetail=0时返回
invoiceUsage发票用途信息JsonObject发票用途信息 useNew=0时返回;useNew=1并且wtInvoiceUsage=1时返回

数电试点企业的fpxx节点信息:

ID名称类型必须说明备注
bz备注string
ewm二维码string
fplxdm发票类型代码string详见码表《4.1 发票类型代码表》
tdyslxdm特定要素类型代码string详见码表《4.2 特定要素类型代码》
fhr复核人string2023-06-12
fpdm发票代码string数电纸票或增值税发票2023-06-29
fphm全电发票号码string数电票或增值税发票2023-06-29
fjxxList附加信息集合string
fjxxmc附加信息名称string
fjxxnr附加信息内容string
gmfdzdh购买方地址电话string仅用于增值税发票2023-06-12
gmfdz购买方地址string仅用于数电票
gmflxdh购买方联系电话string
gmfkhhzh购买方开户行账号string仅用于增值税发票2023-06-12
gmfkhh购买方开户行string仅用于数电票2023-06-12
gmfyhzh购买方银行账号string
gmfmc购买方名称string
gmfnsrsbh购买方税号string
hjje合计金额string
hjse合计税额string
jshj价税合计string
jym校验码string增值税发票必填
kce扣除额string
kjlx开具类型string0-蓝票 1-红票
kpr开票人string
kprq开票日期string格式:yyyy-MM-dd HH:mm:ss
xsfdz销售方地址string
xsfdzdh销售方地址电话string仅用于增值税发票2023-06-29
xsflxdh销售方联系电话string
xsfkhh销售方开户行string
xsfkhhjzh销售方开户行及账号string仅用于增值税发票2023-06-29
xsfyhzh销售方银行账号string
xsfmc销售方名称string
xsfnsrsbh销售方税号string
yfpdm原发票代码string仅用于增值税发票2023-07-25
yfphm原发票号码string仅用于增值税发票2023-07-25
zzfphm数电纸质发票号码string2023-06-29
zzsFpdm增值税发票代码string2023-06-29
zzsFphm增值税发票号码string2023-06-2
jdcxsTdysList机动车特定要素列表jsonArray发票类型为03时返回,详见jdcxsTdysList说明2024-02-29
escTdysList二手车特定要素列表jsonArray发票类型为04时返回,详见escTdysList说明2024-02-29
DzfpKpywTdysTldzkp铁路电子客票信息jsonObject发票类型为51时返回,详见DzfpKpywTdysTldzkp说明2024-02-29
HkysdzkpxcdVO航空电子客票信息jsonObject发票类型为61时返回,详见HkysdzkpxcdVO说明2024-12-20
mxList明细集合jsonArr
tdywxx特定业务信息jsonObject详见:旅客运输服务 lkysfw 说明
BdcTdysfpList不动产租赁jsonArray详见BdcTdysfpList说明2024-12-23

特定业务信息 tdywxx

ID名称类型必须说明备注
jzfw建筑服务明细jsonArray2023-06-13
jzfwTdys建筑服务特定要素jsonObject2023-06-13
lkysfw旅客运输服务jsonArray2023-06-13

明细 mxList

ID名称类型必须说明备注
xh序号string
dw单位string
ggxh规格型号string
dj单价string
fphxz发票行性质string0:正常行、1:折扣行、2:被折扣行
je不含税金额string
se税额string
slv税率string
spmc商品名称string
spsl商品数量string
ssflbm税收分类编码string
tdyslxdm特定要素类型代码string详见码表4.2 特定要素类型代码
xsyhzcbz是否享受优惠政策string0:不使用,1:使用
tdzsfsdm特定征税方式代码string详见码表 4.3 特定征税方式代码
zzstsgldm税收优惠政策类型代码string详见码表 4.4 税收优惠政策类型代码
skm税控码string增值税发票必填
skr收款人string

建筑服务明细 jzfw

ID名称类型必须说明备注
fsdxxdz发生地详细信息string2023-06-13
jzxmmc建筑项目名称string2023-06-13

建筑服务特定要素 jzfwTdys

ID名称类型必须说明备注
Tdzzsxmbh土地增值税项目编号string2023-12-10
Kdsbz跨地市标志stringY:是 N:否2023-12-10

旅客运输服务 lkysfw

ID名称类型必须说明备注
xh序号string2023-06-13
cfd出发地string2023-06-13
cxrq出行日期stringyyyy-MM-dd2023-06-13
cxr出行人string2023-06-13
cxrzjlx出行人证件类型string详见常用码表身份证件类型 4.5 出行人证件类型2023-06-13
ddd到达地string2023-06-13
zwdj座位等级string2023-12-09
jtgjlx交通工具类型string详见常用码表 4.6 交通工具类型2023-06-13
sfzjhm出行人身份证件号码string2023-06-13

机动车特定要素信息 jdcxsTdysList说明 发票类型 03 83 87 机动车特定要素列表

ID名称类型必须说明备注
CllxDm车辆类型string2024-02-29
Cpxh厂牌型号string2024-02-29
Cd产地string2024-02-29
Hgzh合格证号string2024-02-29
Fdjhm发动机号码string2024-02-29
Clsbdh车辆识别代码string2024-02-29
Xhdwmc销货单位名称string2024-02-29
Dh电话string2024-02-29
Nsrsbh纳税人识别号string2024-02-29
zh账号string2024-02-29
Dz地址string2024-02-29
Khyh客户银行string2024-02-29
Zzsse增值税税额string2024-02-29
ZgswjgDm主管税务机关代码string2024-02-29
Zgswjgmc主管税务机关名称string2024-02-29
Cjfy不含税价string2024-02-29
Dw吨位string2024-02-29
Xcrs限乘人数string2024-02-29
Sphfwssflhbbm商品编码string2024-02-29
Jshj价税合计string2024-02-29
Slv税率string0.13格式2024-02-29
Scqymc生产企业名称string0.13格式2024-02-29

二手车特定要素信息 escTdysList说明 发票类型 15 84

ID名称类型必须说明备注
CllxDm车辆类型string2024-02-29
Cpxh厂牌型号string2024-02-29
Cphm车牌号码string2024-02-29
Djzh登记账号string2024-02-29
Clsbdh车辆识别代号string2024-02-29
Zrdclglsmc转入地车辆管理所名称string2024-02-29
Escscnsrmc二手车市场名称string2024-02-29
Escscnsrsbh二手车市场纳税人识别号string2024-02-29
Escscdz二手车市场地址string2024-02-29
Escscdh二手车市场电话string2024-02-29
Escsckhyhzh二手车市场银行账户string2024-02-29
Spbm商品编码string2024-02-29
Cjhj车价合计string2024-02-29

二手车特定要素列表 escTdysList说明 发票类型 88

ID名称类型必须说明备注
Clsbdh车辆识别代号string2024-06-29
Escscnsrmc二手车市场名称string2024-06-29
Xmmc车辆类型string2024-06-29
Hwhyslwfwmc商品名称string机动车小型普通客车2024-06-29
Cjhjdx车价合计大写string玖万伍仟捌佰零壹圆整2024-06-29
Escscyhzh二手车市场银行账户string2024-06-29
Escscdz二手车市场地址string2024-06-29
Escscdh二手车市场电话string2024-06-29
Cphm车牌号码string2024-06-29
Cjhjxx车价合计string2024-06-29
Djzh登记账号string2024-06-29
Sphfwssflhbbm税收分类编码string2024-06-29
Escscyhzh二手车市场开户行银行string2024-06-29
Escscnsrsbh二手车市场纳税人识别号string2024-06-29
Spfwjc商品服务简称string2024-06-29
Zrdclglsmc转入地车辆管理所名称string2024-06-29
Cpxh厂牌型号string2024-06-29

数电票(铁路电子客票) DzfpKpywTdysTldzkp说明 发票类型 51

ID名称类型必须说明备注
Ywlxmcsht业务类型string0:售票 1:退票(手续费) 2:改签(手续费)2024-10-24
Cfz出发站string南京南2024-10-24
Cfzpy出发站拼音stringNanjingnan2024-10-24
Ddz到达站string太原南2024-10-24
Ddzpy到达站拼音stringTaiyuannan2024-10-24
Cccc车次stringG18622024-10-24
Rq乘车日期string2024-10-212024-10-24
Cfsj1出发时间string08:412024-10-24
Xb1席别string二等座2024-10-24
Cx车厢string03车2024-10-24
Xw席位string02D号2024-10-24
Dzkph电子客票号string306712A0861021969416720242024-10-24
Zjhm证件号码string3208301994****26132024-10-24
Xm姓名string李朋辉2024-10-24
Tsxxq特殊信息区string买票请到12306 发货请到95306\r\n中国铁路祝您旅途愉快2024-10-24

数电票(航空运输电子客票行程单) HkysdzkpxcdVO 发票类型 61

ID名称类型必须说明备注
Lkxm旅客姓名string2024-12-18
Sfzjhm身份证件号码string2024-12-18
Gngjbz国内国际标识string2024-12-18
Xcdqz签注stringQ/不得签转/变更退票收费2024-12-18
Dzkphm电子客票号码string78435622858012024-12-18
Bxf保险费stringXXX2024-12-18
Xcdtkdw填开单位string2024-12-18
Xcdtkrq填开日期string2024-12-18
Pj票价stringCNY 1532.112024-12-18
Ryfjf燃油附加费stringCNY 9.172024-12-18
Zzssl增值税税率string9%2024-12-18
Zzsse增值税税额stringCNY 138.722024-12-18
Mhfzjj民航发展基金stringCNY 50.002024-12-18
Hj合计stringCNY 1730.002024-12-18
HkysdzkpxcdMxList航段array2024-12-18
Sfz始发地string合肥-新桥2024-12-18
Mdz目的地string广州-白云 T22024-12-18
Cyr承运人string南航2024-12-18
Hbh航班号stringCZ42682024-12-18
Zwdj座位等级string2024-12-18
Cyrq承运日期string2024-12-112024-12-18
Qfsj起飞时间string15:002024-12-18
Kpjbkplb客票级别string2024-12-18
Kpsxrq客票生效日期string2024-12-112024-12-18
Hdxh航段序号string12024-12-18
Yxjzrq有效截止日期string2024-12-112024-12-18
Mfxle免费行李string20K2024-12-18

不动产租赁 BdcTdysfpList

ID名称类型必须说明备注
Xh序号string2024-12-23
Kprq开票日期string2024-12-23
Cqzsh产权证书号string2024-12-23
Bdcdz不动产地址string2024-12-23
Kdsbz跨地(市)标志stringY:是 N:否2024-12-23
Zlqq租赁期起string2024-12-23
Zlqz租赁期止string2024-12-23
Zlqqz租赁期起止string2024-12-23
Cph车牌号string2024-12-23

发票用途信息 invoiceUsage

ID名称长度必须说明
InvoiceCode发票代码12
InvoiceNumber发票号码8
BillingDate开票日期10YYYY-MM-DD HH:mm:ss
TotalAmount未税金额18
TotalTax税额18
ValidTax有效税额18
InvoiceType发票类型2详见:《发票类型代码表》
State发票状态10:正常 1:作废 80:红字申请待确认 7:部分红冲 8:全额红冲
SalesTaxName销方名称200
SalesTaxNo销方税号20
CheckStatus勾选状态10-否,1-是
CheckDate勾选日期10YYYY-MM-DD
Deductible是否认证1(0-未认证,1-已认证)
DeductibleDate认证日期10(已认证时不为空 YYYY-MM-DD)
DeductiblePeriod认证属期4(已认证时不为空 YYYYMM)
DeductibleType认证方式1(已认证时不为空 1-勾选,2-扫描)
DeductibleMode认证模式1(已认证时不为空 1-勾选抵扣,2-退税,4-不抵扣勾选)
ManagementStatus管理状态10-正常,1-异常凭证 2-疑点发票
AbnormalType异常类别1空值 0-发票状态异常 1-用途变更 2-管理状态异常,数电试点企业该字段不返回
Lrrq录入时间20
Fprzztmc发票入账状态名称20
FprzztDm发票入账状态代码200:未入账 01:已入账
Rzsj入账时间20
dkInfo用票状态text
lzfphm蓝字发票号码30数电试点企业-数电负数发票时返回。
  • dkInfo:
ID名称长度必须说明
ZZSYT_DM增值税用途代码20ZZ00:未使用; ZZ01:已使用; ZZ02:不抵扣不退税不代办退税; ZZ03:已勾选(退税); ZZ04:已勾选(代办退税); ZZ05:待抵扣; ZZ06:待退税; ZZ07:已抵扣; ZZ09:已退税; ZZ10:已代办退税;
zzsytmc增值税用途名称50
ZZS_SKSSQ增值税税款所属期20格式:202311
XFSYT_DM消费税用途代码20XF00:未使用 XF01:已使用 ZZ02
xfsytmc消费税用途名称20
XFS_SKSSQ消费税用途名称20格式:202311
json
返回数据:
{
    "uuid": "8fbc665f5eb04845851e362efb815e29",
    "code": "0000",
    "msg": "发票[011001700112]-[15323222]查询成功",
    "content": "base64编码后的业务报文"
}

content  base64解码后为:
{
    "DeductibleType": "1",
    "Deductible": "1",
    "DeductiblePeriod": "202204",
    "CheckTime": "",
    "ManagementStatus": "0",
    "Lrrq": "未入账",
    "DeductibleDate": "",
    "Fprzztmc": "未入账",
    "CheckStatus": "1",
    "BillingDate": "2022-04-27 08:54:42",
    "ValidTax": "28.08",
    "AbnormalType": "",
    "Source": "1",
    "InvoiceType": "01",
    "FprzztDm": "00",
    "DeductibleMode": "1",
    "State": "01",
    "Rzsj": "未入账",
    "InvoiceCode": "4400214130",
    "CheckDate": "",
    "InvoiceNumber": "64545111",
    "SalesTaxNo": "914452033039542222",
    "SalesTaxName": "和酒店",
    "dkInfo": "{\"ZZSYT_DM\":\"ZZ00\",\"zzsytmc\":\"未使用\",\"XFS_SKSSQ\":\"\",\"xfsytmc\":\"未使用\",\"ZZS_SKSSQ\":\"\",\"XFSYT_DM\":\"XF00\",\"code\":\"200\",\"ycfpbsmc\":\"正常\",\"YCFPBS_DM\":\"\",\"message\":\"\",\"fxlx\":\"1\",\"fpkjfxlxmc\":\"\"}"
}
返回数据:
{
    "uuid": "8fbc665f5eb04845851e362efb815e29",
    "code": "0000",
    "msg": "发票[011001700112]-[15323222]查询成功",
    "content": "base64编码后的业务报文"
}

content  base64解码后为:
{
    "bz": "",
    "fhr": "",
    "fpdm": "",
    "fphm": "22312000000000000000",
    "fplx": "09",
    "fpzt": "0",
    "gfdzdh": "",
    "gfmc": "股份有限公司",
    "gfsh": "913101125316220000",
    "gfyhzh": "",
    "je": "",
    "jqbh": "",
    "jshj": "4630.38",
    "jym": "",
    "kpr": "徐俊",
    "kprq": "2022-08-22 09:57:36",
    "se": "",
    "skr": "",
    "xfdzdh": "",
    "xfmc": "管理有限公司",
    "xfsh": "913101182200220111",
    "xfyhzh": "",
    "ofdFile": "https://dppt.shanghai.chinatax.gov.cn:8443/kpfw/fpjfzz/v1/exportDzfpwjEwm?Wjgs=OFD&Jym=DE90&Fphm=22312000000000000000&Kprq=20220822095736&Czsj=1661324452575",
    "pdfFile": "https://dppt.shanghai.chinatax.gov.cn:8443/kpfw/fpjfzz/v1/exportDzfpwjEwm?Wjgs=PDF&Jym=DE90&Fphm=22312000000000000000&Kprq=20220822095736&Czsj=1661324452575",
    "xmlFile": "https://dppt.shanghai.chinatax.gov.cn:8443/kpfw/fpjfzz/v1/exportDzfpwjEwm?Wjgs=XML&Jym=DE90&Fphm=22312000000000000000&Kprq=20220822095736&Czsj=1661324452575"
}

4.1 发票状态代码表

type类型名称
01正常
02已作废
03已红冲-全额
04已红冲-部分

4.2 发票类型代码表

type类型名称
81全电发票(增值税专用发票)
82全电发票(普通发票)
83数电票(机动车销售统一发票)
84数电票(二手车销售统一发票)
85全电纸质发票(增值税专用发票)
86全电纸质发票(普通发票)
87数电纸质发票(机动车销售统一发票)
88数电纸质发票(二手车销售统一发票)
08增值税电子专用发票
10增值税电子普通发票
01增值税专用发票
04增值税普通发票
03机动车销售统一发票
15二手车销售统一发票
11增值税普通发票(卷式)
14道路通行费电子普通发票
61全电发票(航空运输电子客票行程单)
51全电发票(铁路电子客票)

4.3 特定要素类型代码

json
[{"code":"01","name":"成品油发票"},{"code":"02","name":"稀土发票"},{"code":"03","name":"建筑服务发票"},{"code":"04","name":"货物运输服务发票"},{"code":"05","name":"不动产销售服务发票"},{"code":"06","name":"不动产经营租赁服务"},{"code":"07","name":"代收车船税"},{"code":"08","name":"通行费"},{"code":"09","name":"旅客运输服务发票"},{"code":"10","name":"医疗服务(住院)发票"},{"code":"11","name":"医疗服务(门诊)发票"},{"code":"12","name":"自产农产品销售发票"},{"code":"13","name":"拖拉机和联合收割机发票"},{"code":"14","name":"机动车"},{"code":"15","name":"二手车"},{"code":"16","name":"农产品收购发票"},{"code":"17","name":"光伏收购发票"},{"code":"18","name":"卷烟发票"},{"code":"19","name":"出口发票"},{"code":"20","name":"农产品"},{"code":"21","name":"铁路电子客票"},{"code":"22","name":"航空运输电子客票行程单"},{"code":"23","name":"白酒"},{"code":"24","name":"报废产品收购"},{"code":"51","name":"二手车正常开具"},{"code":"52","name":"二手车反向开具"}]

4.4 特定征税方式代码

json
[{"code":"01","name":"不征税"},{"code":"02","name":"零税率"},{"code":"03","name":"差额征税"},{"code":"04","name":"免税"},{"code":"05","name":"简易征税"},{"code":"06","name":"减按征税"}]

4.5 税收优惠政策类型代码

json
[ { "code": "01", "name": "简易征收" }, { "code": "02", "name": "稀土产品" }, { "code": "03", "name": "免税" }, { "code": "04", "name": "不征税" }, { "code": "05", "name": "先征后退" }, { "code": "06", "name": "100%先征后退" }, { "code": "07", "name": "50%先征后退" }, { "code": "08", "name": "按3%简易征收" }, { "code": "09", "name": "按5%简易征收" }, { "code": "10", "name": "按5%简易征收减按1.5%计征" }, { "code": "11", "name": "即征即退30%" }, { "code": "12", "name": "即征即退50%" }, { "code": "13", "name": "即征即退70%" }, { "code": "14", "name": "即征即退100%" }, { "code": "15", "name": "超税负3%即征即退" }, { "code": "16", "name": "超税负8%即征即退" }, { "code": "17", "name": "超税负12%即征即退" }, { "code": "18", "name": "超税负6%即征即退" } ]

4.6 出行人证件类型

json
[ { "code": "101", "name": "组织机构代码证" }, { "code": "102", "name": "营业执照" }, { "code": "103", "name": "税务登记证" }, { "code": "199", "name": "其他单位证件" }, { "code": "201", "name": "居民身份证" }, { "code": "202", "name": "军官证" }, { "code": "203", "name": "武警警官证" }, { "code": "204", "name": "士兵证" }, { "code": "205", "name": "军队离退休干部证" }, { "code": "206", "name": "残疾人证" }, { "code": "207", "name": "残疾军人证(1-8级)" }, { "code": "208", "name": "外国护照" }, { "code": "210", "name": "港澳居民来往内地通行证" }, { "code": "212", "name": "中华人民共和国往来港澳通行证" }, { "code": "213", "name": "台湾居民来往大陆通行证" }, { "code": "214", "name": "大陆居民往来台湾通行证" }, { "code": "215", "name": "外国人居留证" }, { "code": "216", "name": "外交官证" }, { "code": "217", "name": "使(领事)馆证" }, { "code": "218", "name": "海员证" }, { "code": "219", "name": "香港永久性居民身份证" }, { "code": "220", "name": "台湾身份证" }, { "code": "221", "name": "澳门特别行政区永久性居民身份证" }, { "code": "222", "name": "外国人身份证件" }, { "code": "224", "name": "就业失业登记证" }, { "code": "225", "name": "退休证" }, { "code": "226", "name": "离休证" }, { "code": "227", "name": "中国护照" }, { "code": "228", "name": "城镇退役士兵自谋职业证" }, { "code": "229", "name": "随军家属身份证明" }, { "code": "230", "name": "中国人民解放军军官转业证书" }, { "code": "231", "name": "中国人民解放军义务兵退出现役证" }, { "code": "232", "name": "中国人民解放军士官退出现役证" }, { "code": "233", "name": "外国人永久居留身份证(外国人永久居留证)" }, { "code": "234", "name": "就业创业证" }, { "code": "235", "name": "香港特别行政区护照" }, { "code": "236", "name": "澳门特别行政区护照" }, { "code": "237", "name": "中华人民共和国港澳居民居住证" }, { "code": "238", "name": "中华人民共和国台湾居民居住证" }, { "code": "239", "name": "《中华人民共和国外国人工作许可证》(A类)" }, { "code": "240", "name": "《中华人民共和国外国人工作许可证》(B类)" }, { "code": "241", "name": "《中华人民共和国外国人工作许可证》(C类)" }, { "code": "291", "name": "医学出生证明" }, { "code": "299", "name": "其他个人证件" } ]

4.7 交通工具类型

json
[ { "code": "1", "name": "飞机" }, { "code": "2", "name": "火车" }, { "code": "3", "name": "长途汽车" }, { "code": "4", "name": "公共交通" }, { "code": "5", "name": "出租车" }, { "code": "6", "name": "汽车" }, { "code": "7", "name": "船舶" }, { "code": "9", "name": "其他" } ]

5.code码表

代码(code)中文描述
0000接口调用成功,其他值表示接口发生错误
0023税号格式错误
0024纳税人名称格式错误
0025接口调用失败
0026接口调用异常
0038证书未配置
0039开票日期所属月份 格式错误
0040税款所属期 格式错误
0041开票日期范围 格式错误
0042批次号 格式错误
0043数据同步条件 未定义
0044纳税人识别号 证书配置有误
0045纳税人识别号 证书状态标记有误
0047进项数据同步执行异常
0048任务编号不存在
0049任务编号已回调
0050第一次身份认证失败
0051第一次身份认证异常
0052第二次身份认证失败
0053第二次身份认证异常
0062发票查询失败
0063发票查询失败,服务端返回空
0066发票未找到
0067发票查询成功,数据解析异常

6.备注 代码示例:

java
package xy;

import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.MD5;

import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import xy.domain.InvoiceCollectionContentReq;
import xy.domain.InvoiceCollectionReq;
import xy.domain.ZipUtil;

import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.util.HashMap;

public class S000522 {
public static void main(String[] args) {
String appsecret = " ";
 
String url = "http://ip:port/invoice/S000522";

        InvoiceCollectionReq<String> req = new InvoiceCollectionReq<>();
        req.setAppid(" ");
        req.setServiceid(" ");
        req.setNsrsbh(" ");
        req.setJtnsrsbh("xxxx xxx");
        HashMap<String, String> map = new HashMap<>();
        map.put("InvoiceNumber", " ");
        map.put("BillingDate", " ");
        map.put("InvoiceCode", "");
        map.put("DataType", "1");
        map.put("useNew","1");
        map.put("wtInvoiceUsage","1");


        // 1. 业务content字段(Base64编码)
        req.setContent(Base64.encode(JSON.toJSONString(map)));

        // 2. 签名signType 0 (HmacSHA256)
        String signType = "0"; // 或者 "1"
        String signature = "";

        if ("0".equals(signType)) {
            // HmacSHA256
            String toSign = String.format("appid=%s&content=%s&jtnsrsbh=%s&nsrsbh=%s&serviceid=%s",
                    req.getAppid(), req.getContent(), req.getJtnsrsbh(), req.getNsrsbh(), req.getServiceid());
            HMac hMac = new HMac("HmacSHA256", appsecret.getBytes(StandardCharsets.UTF_8));
            signature = Base64.encode(hMac.digest(toSign));
        } else {
            // MD5
            String toSign = req.getAppid() + appsecret + req.getContent() + req.getJtnsrsbh() + req.getNsrsbh() + req.getServiceid();
            signature = MD5.create().digestHex(toSign).toUpperCase();
        }

        // 3. 发送POST请求 (x-www-form-urlencoded)
        HttpRequest form = HttpRequest.post(url)
                .header("Content-Type", "application/x-www-form-urlencoded")
                .form("appid", req.getAppid())
                .form("serviceid", req.getServiceid())
                .form("nsrsbh", req.getNsrsbh())
                .form("jtnsrsbh", req.getJtnsrsbh())
                .form("content", req.getContent())
                .form("signature", signature)
                .form("signType", signType);
        System.out.println("form.toString() = " + form.toString());
        String response = form
                .execute()
                .body();

        System.out.println("Response: " + response);

        // 4. 解析返回的content
        JSONObject jsonObject = JSON.parseObject(response);
        String respContent = jsonObject.getString("content");
        System.out.println("respContent = " + respContent);
    }
}