发票开具

1、修订记录

修订记录 日期 说明
1.0 2026.07.01 初版
1.1 2026.07.27 新增“交易渠道”参数
1.2 2.26.08.06 调整各项参数描述字段

2、业务说明

(1)接口说明

发票开具

请求主体类型:application/json

请求方式:POST

3、请求地址

环境 HTTPS请求地址
测试环境 https://appdev.ysepay-test.com/openapi/invoice/issue
正式环境 https://ysgate.ysepay.com/openapi/invoice/issue

4、请求参数说明

4.1、公共请求参数

参数 类型 长度 必填 参数说明
timeStamp String - Y 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss"
method String 128 Y 接口名称,固定值:invoice.issue
charset String 10 Y 请求使用的编码格式,如utf-8,gbk,gb2312等,固定为utf-8
sign String - Y 商户请求参数的签名串(签名算法默认为国密),详见demo,注意:请用商户私钥进行签名
check String - Y 银盛公钥加密随机生成的字符串(key)得到的加密值,详见demo
bizContent String - Y 业务参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递。注意:需要通过AES以及随机生成的字符串(key)加密业务参数集合,得到bizContent
reqId String 32 Y 请求唯一流水号,商户系统唯一,要求32个字符内(最少14个字符),只能是数字、大小写字母_-且在同一个商户号下唯一。最后12位要求格式为"yyMMddHHmmss" 示例值:xy1415220315145602
certId String - Y 发起方商户号,服务商在银盛给自己开设的商户号,即可当作发起方商户号,由银盛生成并下发。 注意:不同于子商户号,服务商发展的商户即为子商户号
version String - Y 调用的接口版本,固定为:1.1

4.2、业务请求参数

(bizContent加密前的json数据明文字符串)

参数 类型 长度 必填 参数说明
ability String 50 Y 开票类型,BASIC-基础行业,REAL_ESTATE_LEASE -不动产租赁,REFINED_OIL-成品油
buyerType String 20 Y 购买方类型:ENTERPRISE-企业,INDIVIDUAL-个人
amount String 15 Y 开票金额,单位分
buyerAddress String 500 N 购买方地址
buyerBankAccount String 500 N 购买方银行账号
buyerBankName String 500 N 购买方开户行
buyerName String 100 Y 购买方名称
buyerTaxNo String 50 N 购买方税号 购买方为企业则必填
channelOrderNo String 100 Y 渠道订单号,微信支付传微信的订单号,支付宝传支付宝的订单号
payTime String 100 Y 支付时间,毫秒时间戳
channelType String 20 Y 渠道类型,WECHAT-微信,ALIPAY-支付宝
goodsInfo Array - Y 商品开票信息列表
invoiceKind String 20 Y 发票种类,NORMAL-增值税普通发票,SPECIAL-增值税专用发票
merchantId String 50 Y 商户号
orderAmount String 15 Y 订单金额,单位分
outOrderNo String 50 Y 商户订单号
outerApplyId String 64 Y 服务商侧开票申请编号
partnerId String 32 Y 服务商编号,801开头的代理商编号
remark String 500 N 备注
realEstateInfo Array - N 不动产信息列表,产品为不动产租赁发票时必填
transactionChannel String - N 交易渠道 OTHER-非微信交易
渠道类型为微信并且是非微信交易,则交易渠道传OTHER,否则传空

4.2.1 goodsInfo具体参数

参数 类型 长度 必填 参数说明
goodsName String - Y 商品/服务名称
taxCode String - Y 税务编码
taxRate String - Y 税率:由商户确定开票的税率,系统仅做透传 例:13% 传值13 商品不同税率不同,税率不在范围内会开票失败。(税务编号及对应的名称,可以通过第三方接口查询获取;如果需要我司提供,请联系技术对接人员)
specification String 20 N 规格型号
discount String - Y 是否折扣行 取值范围(Boolean:true/false):指定该发票行是否折扣行,折扣行必须是被折扣行的下一行。当某个goodsInfo数据为折扣行时,只能传taxCode、taxRate、goodName、amount、discount这几个参数并保持和上一条被折扣行数据一致(折扣行时金额为负数),其他的参数不要传,否者会开票失败
preferentialPolicy String - N 优惠政策标识,优惠政策标识。SIMPLE_COLLECTION-简易征收; RARE_EARTH_PRODUCT-稀土产品; TAX_EXEMPT-免税; NO_COLLECTION-不征税; ADVANCE_REFUND-先征后退; FULL_ADVANCE_REFUND-100%先征后退; HALF_ADVANCE_REFUND-50%先征后退; SIMPLE_COLLECTION_3_PERCENT-按3%简易征收; SIMPLE_COLLECTION_5_PERCENT-按5%简易征收; SIMPLE_COLLECTION_5_PERCENT_REDUCED-按5%简易征收减按1.5%计征; IMMEDIATE_REFUND_30_PERCENT-即征即退30%; IMMEDIATE_REFUND_50_PERCENT-即征即退50%; IMMEDIATE_REFUND_70_PERCENT-即征即退70%; IMMEDIATE_REFUND_100_PERCENT-即征即退100%; SUPER_TAX_REFUND_3_PERCENT-超税负3%即征即退; SUPER_TAX_REFUND_8_PERCENT-超税负8%即征即退; SUPER_TAX_REFUND_12_PERCENT-超税负12%即征即退; SUPER_TAX_REFUND_6_PERCENT-超税负6%即征即退
fuelInfo Object - N 成品油信息
quantity String - N 数量, 据实际情况定,最多支持4位小数
unit String - N 单位,成品油时必须为:LITER 或 TON,普通发票为自由单位,建议传中文计量单位,如个/件/份/升/次
amount String - N 价格,含税金额(分),折扣行时必填且必须为负数,非折扣行选填(不传则使用订单金额)

4.2.1.1 fuelInfo具体参数

参数 类型 长度 必填 参数说明
gunNumber String 20 Y 油枪编号
station String 100 Y 油站地址

4.2.2 realEstateInfo具体参数

参数 类型 长度 必填 参数说明
serialNo String 32 Y 明细行号,与商品明细行号对应
province String 20 Y 不动产坐落省份,必须以省、自治区、特别行政区、北京市、天津市、上海市、重庆市任意一个关键词结尾。涉及多笔不动产租赁订单时,该字段值必须相同
city String 20 N 不动产坐落城市,必须以市、盟、自治州、地区、区任意一个关键词结尾。省为香港/澳门/台湾时可为空,其他情况必填。省为重庆市/海南省时可以县结尾
address String 80 Y 不动产坐落详细地址,必须包含街、路、村、乡、镇、道、巷、号任意一个关键词。发票版式文件上的不动产地址由省、市、详细地址三个字段拼接而成
startTime String 32 Y 租赁期起,遵循RFC3339标准格式:yyyy-MM-DDTHH:mm:ss+TIMEZONE
endTime String 32 Y 租赁期止,遵循RFC3339标准格式:yyyy-MM-DDTHH:mm:ss+TIMEZONE
crossCityFlag String 32 Y 跨地(市)标志,销售方营业执照注册地址与不动产地址中地市一致时为false,不一致时为true
certificateNo String 40 N 产权证书/不动产权证号,无值时传"无"。该字段为密文字段,需要使用微信支付公钥加密
plateNos Array - N 车牌号列表,最多3个。发票行信息tax_code为3040502020200000000(车辆停放服务)时必填
area String 30 Y 不动产使用面积,整数最长17位,小数最长13位,单位为平方米
code String 32 N 不动产自定义编码,仅支持英文字母(大写和小写)、数字、短横线(-)和下划线(_)

5、响应参数说明

请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。

5.1、公共响应参数

参数 类型 长度 必填 参数说明
code String 5 Y 网关响应码,示例值:00000 详见网关公共响应码
msg String 50 Y 网关响应码描述
subCode String - Y 业务响应码,参见具体的API接口文档
subMsg String - Y 业务响应描述
timeStamp String - Y 响应时间,格式"yyyy-MM-dd HH:mm:ss"
norce String 128 Y 随机参数
sign String - Y 响应参数的签名串,详见demo,
注意:请用银盛公钥进行验签
businessData String - Y 业务响应参数集合,
注意:银盛网关通过AES加密业务响应参数集合,得到businessData,商户需要对其进行解密,详情请见demo

5.2、业务响应参数

响应业务参数businessData(json数据)

参数 类型 长度 必填 参数说明
statusCode String 10 Y 业务状态码,业务状态码,成功为0000,失败返回对应错误码
errorMsg String 500 N 错误信息,成功为空,失败返回具体错误描述
fapiaoApplyId String 50 N 发票申请ID,系统内发票申请编号(受理成功时返回)
outerApplyId String 64 N 外部申请单号,服务商侧开票申请编号(原样返回)
invoiceStatus String 20 N 发票状态,APPLYING-开票中,SUCCESS-开票成功,FAIL-开票失败,REVERSING-冲红中,REVERSED-已冲红

6、业务响应码 网关公共响应码

响应码 响应码描述 解决方案
00000 成功 请求处理成功
40000 参数错误 请求参数缺失或格式不正确
40001 签名验证不通过 请求签名验证失败,请检查签名参数
40002 商户号有误 请检查商户号是否真实存在
40003 频率超限 请求频率超过限制,请稍后重试
40004 开票金额超过可开票额度 开票金额超过该订单剩余可开票额度
40005 交易剩余开票额度不足 该交易剩余可开票额度不足
40006 商户税号不匹配 商户税号与配置不一致
40007 开票产品类型不支持 开票产品类型不支持
40008 不支持该税收分类编码 该税收分类编码不支持
40009 并发冲突,请稍后重试 并发冲突,请稍后重试
40010 网关非法参数 检查请求参数,修改后重新发起请求
40011 前置系统参数验证错误 检查请求参数,修改后重新发起请求
40012 不允许开具增值税专用发票 该场景不允许开具增值税专用发票
40013 个人抬头不允许开增值税专用发票 个人抬头不允许开具增值税专用发票
50000 系统异常 系统内部异常,请稍后重试
50001 失败 请求处理失败
50002 交易超时 请求处理超时,请稍后查询确认结果
50003 业务失败 参看具体错误描述
50004 商户无权限 商户未开通该功能或无操作权限
50005 资源不存在 请求的资源不存在
50006 发票申请单已存在 同一订单或外部申请单号已存在发票申请
50007 发票开具中,不可重复申请 该笔订单已有开票申请正在处理中
50008 发票冲红中,不可重复申请 该发票正在冲红处理中,请等待完成
50009 关联蓝字发票不存在 冲红时关联的蓝字发票不存在
50010 关联蓝字发票状态异常 冲红时关联的蓝字发票状态异常
50011 发票信息不存在 查询的发票信息不存在
50012 蓝字发票已被红冲 蓝字发票已被红冲,不可重复操作
50013 企业开票配置不存在 企业开票配置信息不存在
50014 企业发票产品不存在 企业发票产品信息不存在
50015 开票产品未开通 开票产品尚未开通
50016 开票产品未启用 开票产品未启用
50017 商品不存在 商品信息不存在
50018 企业未配置默认商品 企业未配置默认商品
50019 购买方信息与用户填写抬头不一致 购买方信息与用户填写抬头不一致
50020 订单所属商户与当前商户不一致 订单所属商户与当前商户不一致
50021 用户尚未完成发票抬头填写 用户尚未完成发票抬头填写
50022 业务规则限制 业务规则限制
50023 发票状态异常 发票状态异常
50024 发票文件下载失败 发票文件下载失败
50025 发票文件下载返回空 发票文件下载返回空
50026 查询结果为空 原订单或发票记录不存在

results matching ""

    No results matching ""