发票开具
接口描述
开具普通纸质发票、普通电子发票、电子专票、专用纸质发票、 卷式发票开具。
tip
发票开具失败的情况下,可以不更换 requestNo 重新请求,接口将会重新开具。如果发票开具成功 的情况下,requestNo 不更换不会重复执行开票任务。
请求地址
URL 参数
参数名称 | 类型 | 必选 | 说明 |
---|---|---|---|
Action | String | 是 | 操作的接口名称,本接口取值:Tax.Output.Invoice |
Header 参数
参数名称 | 类型 | 必选 | 说明 |
---|---|---|---|
Timestamp | String | 是 | 公共参数。 |
SecretId | String | 是 | 公共参数。 |
Signature | String | 是 | 公共参数。 |
Algorithm | String | 否 | 公共参数。 |
Content-Type | String | 是 | 取值:application/json |
Body 请求参数
参数名称 | 类型 | 必选 | 说明 |
---|---|---|---|
taxpayerNumber | String | 是 | 纳税人识别号 |
requestNo | String | 是 | 请求流水号 |
invoice | {} | 是 | 开票信息 |
+ invoiceTypeCode | String | 是 | 发票类型编码。 0:增值税普通发票 1:增值税专用发票 2:增值税电子普通发票 3:增值税电子专用发票 |
+ negative | Boolean | 是 | 是否负数发票开具(红冲) |
+ special | String | 是 | 特殊票种,金税盘:特殊票种标识(专票时 0 一般专票 2 石脑油、燃料 油增值税专用发票 普票时 0 一 般普票 8 农产品销售 9 农产品收购 14 成品油发票)税控盘、税务 key、税控服务器: “00”不是“01”农产品销售 “02”农产品收购 “08”成品油开具 |
+ sellerAddress | String | 是 | 销方地址、电话 |
+ sellerBank | String | 是 | 销方开户行及账号,专票为必填项 |
+ purchaserRegisterNum | String | 否 | 购方纳税人识别号,专票为必填项 |
+ purchaserName | String | 是 | 购方名称 |
+ purchaserAddress | String | 否 | 购方地址及电话,专票为必填项 |
+ purchaserBank | String | 否 | 购方开户行及账号,专票为必填项 |
+ taxKind | String | 是 | 含税税率标识。 税控盘: 0 是普通征收,2 是差额征收;金税盘:不填 |
+ totalAmount | String | 是 | 不含税金额合计,精确小数点后两位(小数位有值且很 多位数情况)负数发票为负值 |
+ totalTax | String | 是 | 税额合计,精确小数点后两位(小数位有值且很 多位数情况)负数发票为负值 |
+ compositeTaxRate | String | 是 | 综合税率。金税盘规则:蓝票多税率情况下, compositeTaxRate 综合税率传值为空,单一税率 下,则综合税率传值为改单一税率值 税控盘、服务器、sukey 规则:蓝票 多税率情况下,正数票可为空,负数 票:对应蓝票相同税率时“综合税率 填写 sl 的值”;对应蓝票不同税率时 “综合税率 99.01” |
+ amountInFigures | String | 是 | 价税合计,精确小数点后两位(小数位有值且很 多位数情况)负数发票为负值 |
+ withInventory | String | 否 | 是否清单发票,1 清单发票、0 非清单发票,蓝字发票默认会根据传入的明细数 量自动识别是否清单。 |
+ remarks | String | 否 | 备注,盘换行\r\n 例:AAAA\r\nBBBBB 税控钥匙:\n 例:AAAA\nBBBBB |
+ payee | String | 否 | 收款人 |
+ checker | String | 否 | 复核人 |
+ issuer | String | 是 | 开票人 |
+ mainItemName | String | 是 | 主要商品名称,一般取第一行商品名称 |
+ adviceNoteNo | String | 否 | 通知单编号,专票红字必填 |
+ sourceInvoiceCode | String | 否 | 原始发票代码,负数发票必填 |
+ sourceInvoiceNum | String | 否 | 原始发票号码,负数发票必填 |
+ sourceInvoiceTypeCode | String | 否 | 原发票类型,参考发票类型代码 invoiceTypeCode 传值,负数发票必填 |
+ sourceIssueDate | String | 否 | 原开票日期,YYYYMMDD,负数发票必填 |
+ reason | String | 否 | 冲红原因代码,负数发票必填 1-销货退回; 2-开票有误; 3-服务中止; 4-销售折让; |
+ printTemplate | String | 否 | 打印模板,目前只支持金税盘,当票种是卷票时,此字段必填 01:76mmX177mm 卷票 02:57mmX177mm 卷票 开票前确定好自己所开具的卷票尺寸,避免打印格式不正确 |
+ items | [] | 是 | 详见销货清单 |
销货清单
参数名称 | 类型 | 必选 | 说明 |
---|---|---|---|
itemKind | String | 是 | 行性质,0:正常行 1:折扣行 2:被折扣行 |
itemName | String | 是 | 货物或应税劳务、服务名称。税控服务器需自行在 SK 系统里设置 自动简称匹配 负数清单纸质发票情况下,金税盘、 税务 key、百旺税控服务器对应的商 品名称固定为: 详见对应正数发票 及清单 税控盘对应固定商品名称:(详见销 货清单)括号中文录入 电子专票、电子普票负数清单直接传 明细数据 |
specification | String | 否 | 规格型号。负数清单发票不需要传 |
unit | String | 否 | 单位 |
quantity | String | 否 | 数量。最大精确小数点后八位(小数位有值 且很多位数情况);负数清单发票不需要传;负数发票为负值 |
unitPrice | String | 是 | 单价。最大精确小数点后八位(小数位有值 且很多位数情况);负数清单发票不需要传;负数发票为正值(是否含税,以 includeTax 入参为准) |
amount | String | 是 | 金额。精确小数点后两位(小数位有值且很 多位数情况) 负数发票为负值(是否含税,以 includeTax 入参为准) |
taxRate | String | 是 | 税率,精确小数点后两位(如 0.13)。 清单开票规则详见清单开票规则。负数发票 taxRate 的参数为正值。 |
tax | String | 是 | 税额,精确小数点后两位(小数位有值且很 多位数情况) 负 0 数发票为负值 如果税额是 0,负数发票也直接传 0 |
deduction | String | 否 | 扣除金额,差额征收时必传,差额征收只能允许 一条商品明细 差额要求以含税方式传入,含税标志 必须是 1。差额征税 税额 =(含税金额-扣除)/(1+税 率)*税率 不含税金额 = 含税金额 – 税 额+ 扣除额 |
includeTax | String | 是 | 含税标识,0 不含税 1 含税 ,税控服务器电票只支持 0 不含税方 式开具 (差额征税:税控盘、税务 UKEY 含税开具。金税盘不含税开具) |
commodityCode | String | 是 | 商品编码,税收分类编码,清单发票不需要传 |
customCode | String | 否 | 自行编码,自定义编码,税控服务器不传值 |
favorable | String | 是 | 优惠政策标识,0 不使用 1 使用 |
favorablePolicy | String | 否 | 优惠政策的名称 |
zeroTax | String | 否 | 税率标识,空 正常税率,1 免税、2 不征税 3、普通零税率 |
reason | String | 是 | 税率理由,小规模用户负数发票必填,一般纳税人默认不传值 |
volumeTemplate | String | 否 | 卷票打印模板。目前只能是支持金税盘,当票种是卷 票时,此字段必填 01:76mmX177mm 卷票 02:57mmX177mm 卷票 开票前确定好自己所开具的卷票尺 寸,避免打印格式不正确 |
mutiRate | String | 否 | 是否多税率。金税规则:是否多税率,compositeTaxRate 为空时 mutiRate 必须为 1,此时发票为多 税率发。compositeTaxRate 有值时,mutiRate 不传值;税控盘、服务器、sukey 忽略此字段 |
清单开票规则
税控盘、税务Key
正数清单 | 单税率 | taxRate=税率 | compositeTaxRate= 税率 |
多税率 | taxRate=空 | compositeTaxRate =空 | |
负数清单 | 单税率 | taxRate=税率 | compositeTaxRate = 蓝票的税率 |
多税率 | taxRate=空 | compositeTaxRate = 99.01 |
金税盘
正数清单 | 单税率 | taxRate=税率 | compositeTaxRate= 税率 |
多税率 | taxRate=空 | compositeTaxRate =空 | |
负数清单 | 单税率 | taxRate=税率 | compositeTaxRate = 蓝票的税率 |
多税率 | taxRate=空 | compositeTaxRate=空 |
返回参数
公共返回参数
参数名称 | 类型 | 说明 |
---|---|---|
code | Integer | 200 表示请求成功 |
message | String | 错误提示信息 |
startTime | long | 开始时间 |
endTime | long | 结束时间 |
callId | long | 调用记录标识 |
data | {} | 返回数据 |
data 内容说明
参数名称 | 类型 | 说明 |
---|---|---|
invoiceTypeCode | String | 发票类型编码。 0:增值税普通发票 1:增值税专用发票 2:增值税电子普通发票 3:增值税电子专用发票 |
totalAmount | String | 不含税金额合计,精确小数点后两位 |
invoiceCode | String | 发票代码 |
invoiceNum | String | 发票号码 |
password | String | 密码区 |
checkCode | String | 校验码 |
issueDate | String | 开票日期 |
amountInFigures | String | 价税合计 |