发票开具

1、修订记录

修订记录 日期 说明
1.0 2026.07.01 初版

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 Y 请求唯一流水号,商户系统唯一,要求32个字符内(最少14个字符),只能是数字、大小写字母_-且在同一个商户号下唯一。最后12位要求格式为"yyMMddHHmmss" 示例值:xy1415220315145602
certId String Y 发起方商户号,服务商在银盛给自己开设的商户号,即可当作发起方商户号,由银盛生成并下发。 注意:不同于子商户号,服务商发展的商户即为子商户号
version String Y 调用的接口版本,固定为:1.0

4.2、业务请求参数

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

参数 类型(长度) 必填 参数说明
ability String(50) Y 开票类型,
BASIC-基础行业,REAL_ESTATE_LEASE -不动产租赁,REFINED_OIL-成品油

</pre> | | 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 | 不动产信息列表,不动产信息列表,产品为不动产租赁发票时必填
|

4.2.1 goodsInfo具体参数

参数 类型(长度) 必填 参数说明
goodsName String Y 商品/服务名称
taxCode String Y 税务编码
taxRate String Y 税率
specification String(20) N 规格型号,规格型号
discount String Y 是否折扣行,是否折扣行
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 数量,数量
unit 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 ""