开具通用行业电子发票

更新时间:2025.12.03

商户完成收款后,调用本接口开具通用行业电子发票并插入微信用户的卡包。请求的交易信息必须真实存在。
注意:本接口成功返回仅代表开票请求已被受理,当开票完成时,微信支付会根据商户配置的回调地址进行回调通知,商户也可以通过【查询电子发票】接口获取开票结果及开票信息。蓝字发票开具失败时,可以通过更换fapiao_information.fapiao_id,重新填写发票信息进行重试。每个申请单可至多重试4次。

接口说明

支持商户:【普通服务商】

请求方式:【POST】/v3/new-tax-control-fapiao/fapiao-applications/issue-general

请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点

     【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看

请求参数
折叠全部参数

Header  HTTP头参数

 Authorization  必填 string

请参考签名认证生成认证信息


 Accept  必填 string

请设置为application/json


 Content-Type  必填 string

请设置为application/json


 Wechatpay-Serial  必填 string

【微信支付公钥ID】或【微信支付平台证书序列号】  请求参数中的敏感字段,需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引;也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号平台证书加密敏感信息指引


body  包体参数

 sub_mchid  必填   string(32)

【子商户号】 微信支付分配的子商户号,服务商模式下必传


 fapiao_apply_id  必填   string(32)

【发票申请单号】 发票申请单号,唯一标识一次开票行为。当需要开具交易信息为非微信支付渠道的发票时,为调用【获取用户抬头填写链接】接口时指定的发票申请单号


 buyer_information  必填   object

【购买方信息】 购买方信息,即发票抬头。若商户使用微信官方抬头,可从【获取用户填写抬头信息】接口获取用户填写的抬头;也可自行收集发票抬头

属性

 type  必填   string

【购买方类型】 购买方类型

可选取值

  • INDIVIDUAL:  个人、其他

  • ORGANIZATION:  单位


 name  必填   string(256)

【名称】 购买方名称


 taxpayer_id  选填   string(32)

【纳税人识别号】 购买方纳税人识别号,购买方类型为ORGANIZATION时必填


 address  选填   string(128)

【地址】 购买方地址


 telephone  选填   string(32)

【电话】 购买方电话


 bank_name  选填   string(128)

【开户银行名称】 购买方开户银行名称


 bank_account  选填   string(32)

【银行账号】 购买方银行账号


 phone  选填   string

【手机号】 用户手机号。注意:该字段为密文字段,作为请求字段需加密,使用微信支付公钥加密(推荐),参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引;也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号平台证书加密敏感信息指引;作为响应字段需解密,参考如何使用API证书解密敏感字段


 email  选填   string

【邮箱地址】 用户邮箱地址。注意:该字段为密文字段,作为请求字段需加密,使用微信支付公钥加密(推荐),参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引;也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号平台证书加密敏感信息指引;作为响应字段需解密,参考如何使用API证书解密敏感字段


 amount  选填   integer

【订单金额】 微信支付订单金额,仅在微信支付场景下有效,单位:分


 out_trade_no  选填   string(32)

【商户订单号】 商户订单号,仅在微信支付场景下有效


 fapiao_bill_type  选填   string

【开具的发票类型】 用户选择提交开具发票的类型

可选取值

  • COMM_FAPIAO:  增值税普通发票

  • VAT_FAPIAO:  增值税专用发票


 user_apply_message  选填   string(100)

【留言信息】 用户申请开票时提交的留言信息


 fapiao_information  必填   object

【需要开具的数电发票信息】 需要开具的通用行业数电发票信息

属性

 fapiao_id  必填   string(32)

【商户发票单号】 商户发票单号,唯一标识一张要开具的发票。只能是字母、数字、中划线-、下划线_、竖线|、星号*这些英文半角字符,且该单号在每个商户下必须唯一。当申请单下没有状态为开具中/已开具/冲红中的发票时,可以新增fapiao_id开票。1个fapiao_apply_id下最多支持5个fapiao_id


 total_amount  必填   integer

【总价税合计】 总价税合计,所有发票行单行金额合计的累加,展示在发票的价税合计处,单位:分 注意:所有发票的总价税合计之和不能超过交易的总金额


 items  必填   array[object]

【发票行信息】 发票行信息

属性

 tax_code  必填   string(32)

【税局侧规定的货物或应税劳务、服务税收分类编码】 税局侧规定的货物或应税劳务、服务税收分类编码。可自行指定符合税务部门规定的货物或应税劳务、服务编码


 goods_name  必填   string(128)

【货物或应税劳务、服务名称】 由商户自定义的货物或应税劳务、服务名称


 specification  选填   string(20)

【规格型号】 规格型号,展示在发票中间的规格型号列


 unit  选填   string(32)

【单位】 单位,展示在发票中间的单位列。若是折扣行,则不填


 quantity  选填   integer

【数量】 数量,展示在发票中间的数量列,单位为10-8,100000000表示数量为1。非折扣行不填时默认为100000000,表示数量为1。若是折扣行,则不填


 total_amount  必填   integer

【单行金额合计】 单行金额和税费的和,折扣行的金额为负数,非折扣行的金额为正数,单位:分


 tax_rate  必填   integer

【税率】 税率,单位为万分之一,如1300代表13%。
现在支持的税率为0、1%、1.5%、3%、5%、6%、9%、10%、11%、13%、16%、17%


 discount  必填   boolean

【是否折扣行】 指定该发票行是否折扣行,折扣行必须是被折扣行的下一行


 preferential_policy_code  选填   integer

【优惠政策标识】 优惠政策标识。1:简易征收; 2:稀土产品; 3:免税; 4:不征税; 5:先征后退; 6:100%先征后退; 7:50%先征后退; 8:按3%简易征收; 9:按5%简易征收; 10:按5%简易征收减按1.5%计征; 11:即征即退30%; 12:即征即退50%; 13:即征即退70%; 14:即征即退100%; 15:超税负3%即征即退; 16:超税负8%即征即退; 17:超税负12%即征即退; 18:超税负6%即征即退


 export_business_policy_code  选填   integer

【出口业务适用政策代码】 1:退税政策; 2:免税政策; 3:征税政策


 vat_refund_levy_code  选填   integer

【增值税即征即退代码】 1:软件产品; 2:资源综合利用产品; 3:管道运输服务; 4:有形动产融资租赁服务; 5:有形动产融资性售后回租服务; 6:新型墙体材料; 7:风力发电产品; 8:光伏发电产品; 9:动漫软件产品; 10:飞机维修劳务; 11:黄金; 12:铂金


 billing_person_id  必填   string(64)

【开票人ID】 税局乐企系统登记的开票人ID


 billing_person  选填   string(64)

【开票人名称】 税局乐企系统登记的开票人名称的脱敏格式,格式为:除最后一个字外其它字用*填充的姓名+空格+身份证后四位


 fapiao_bill_type  必填   string

【发票类型】 商户提交申请开票的发票类型

可选取值

  • COMM_FAPIAO:  增值税普通发票

  • VAT_FAPIAO:  增值税专用发票


 transaction_information  必填   array[object]

【交易信息】 发票对应的交易信息,最大支持传入10条交易信息

属性

 pay_channel  必填   string

【支付渠道】 发票对应交易所属的交易渠道

可选取值

  • WECHAT_PAY:  微信支付


 transaction_id  选填   string(64)

【支付订单号】 发票对应交易的支付订单号,支付系统生成的订单号。微信支付交易渠道时,支付订单号、支付商户订单号必须传递其中一个参数


 out_trade_no  选填   string(64)

【支付商户订单号】 发票对应交易的商户订单号,商户系统内部订单号。微信支付交易渠道时,支付订单号、支付商户订单号必须传递其中一个参数


 amount  必填   integer

【交易金额】 发票对应交易信息的交易金额,单位:分


 remark  选填   string

【发票备注】 发票备注

请求示例

curl
Java
Go

POST

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/new-tax-control-fapiao/fapiao-applications/issue-general \
3  -H "Authorization: WECHATPAY2-SHA256-RSA2048 mchid=\"1900000001\",..." \
4  -H "Accept: application/json" \
5  -H "Wechatpay-Serial: 5157F09EFDC096DE15EBE81A47057A7232F1B8E1"  \
6  -H "Content-Type: application/json" \
7  -d '{
8    "sub_mchid" : "example_sub_mchid",
9    "fapiao_apply_id" : "example_fapiao_apply_id",
10    "buyer_information" : {
11      "type" : "INDIVIDUAL",
12      "name" : "深圳市南山区测试企业",
13      "taxpayer_id" : "202003261233701778",
14      "address" : "深圳市南山区深南大道10000号",
15      "telephone" : "075512345678",
16      "bank_name" : "测试银行",
17      "bank_account" : "62001234567890",
18      "phone" : "mI7HGEJ4Q2B91IGjHrl7FNN9QuFPDfzeXoaJM4B8ZghZPzXK+vNotEZu/Gthm87Szv0MK2AoC0/3ZMDgltMtdoY6O0qZ4F1iXiwCuqkkBe+9M4ggvdzpPGM+fyed2QU1seUGbii5RVVVB9s+zLEQ8nv74vsgl77MZx14nd5obtCcfAvPfDJob3oG7FqlThmYKJqjiOwBvvQse7p9R8onj/POzSrbM8re8ZYGp4LcehXopTLdk2ZVWRv8bnJgKZWArAcqMdahq4jY2UVYeY4vpMmq4xuRTYk6xNXvowBBKK2SX8SqM+jm1USyoBIazLu4oaNFNdBO3fip1a1rFW0vRw==",
19      "email" : "NzJy3r0Z2u2Vs5l+WSH0A3CZ1oGlCZ66aa2wUlMXNmACbd4wU8LqqYCuTG4cYWxrVUSmviV59/Uy9vLdIwuHZVrMalYAZGtb8inWGhDj3wUqQnPkmBKBVGIWG5Y6XJmMvpXW6rIKsdzxs8NwWj30cRNfjanLxiWc0aIgl8Knwo0JcxlcYLo38T9ntsrRkQZMQEWHaMYnzjp7ysLbp6yW83OZb/NwEufERBdPnIbDbVE7DUd5MGhvO+tlr2YC1b4VCsrDmjryuTD5nvYYCGHyfXW2CM23hZdBm9tPc+mU18Z9d4XkasnfsecGWd2ISkpPmnk3DtapnD64Nw8JyLtkgw==",
20      "amount" : 1000,
21      "out_trade_no" : "order_20200701_123456",
22      "fapiao_bill_type" : "COMM_FAPIAO",
23      "user_apply_message" : "用户留言"
24    },
25    "fapiao_information" : {
26      "fapiao_id" : "20200701123456",
27      "total_amount" : 382895,
28      "items" : [
29        {
30          "tax_code" : "3010101020203000000",
31          "goods_name" : "*xxx*服务",
32          "specification" : "米",
33          "unit" : "米",
34          "quantity" : 100000000,
35          "total_amount" : 429900,
36          "tax_rate" : 1300,
37          "discount" : false,
38          "preferential_policy_code" : 1
39        }
40      ],
41      "export_business_policy_code" : 1,
42      "vat_refund_levy_code" : 1,
43      "billing_person_id" : "128279891283",
44      "billing_person" : "**伟 0020",
45      "fapiao_bill_type" : "COMM_FAPIAO",
46      "transaction_information" : [
47        {
48          "pay_channel" : "WECHAT_PAY",
49          "transaction_id" : "4200000008202508080512076713",
50          "out_trade_no" : "order_20200701_123456",
51          "amount" : 382895
52        }
53      ],
54      "remark" : "备注"
55    }
56  }'
57

应答参数

无应答包体

应答示例

202 Accepted

1'无应答包体'
2

 

错误码

以下是本接口返回的错误码列表。详细错误码规则,请参考微信支付接口规则-错误码和错误提示

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

400

INVALID_REQUEST

请求参数符合参数格式,但不符合业务规则

请使用正确的参数重新调用

400

RESOURCE_ALREADY_EXISTS

发票申请单已存在

请稍后调用【查询电子发票】接口获取开票结果

400

INVALID_REQUEST

当前发票开具中,不可申请重开发票

请在调用【查询电子发票】接口获取发票状态

400

INVALID_REQUEST

当前发票冲红中,不可申请重开发票

请在调用【查询电子发票】接口获取发票状态

400

INVALID_REQUEST

申请开票次数,超过最大限制

请在调用【查询电子发票】接口获取当前发票已冲红后,换发票申请单号重试开票

400

INVALID_REQUEST

开票请求已被受理,请调用【查询电子发票】接口获取开票结果

开票请求已被受理,请调用【查询电子发票】接口获取开票结果

400

INVALID_REQUEST

交易单已申请开票,两次申请的交易金额不相同

修改交易单金额重试

400

INVALID_REQUEST

交易可剩余开票金额不足

修改交易订单或者开票金额重试

403

NO_AUTH

商户乐企不动产租赁发票能力未授权

确认商户是否发起不动产租赁发票能力邀请授权,以及电子税局确认操作。确认无误,请稍后重试

403

NO_AUTH

商户无权限

请检查是否已经开通电子发票产品相关功能权限

403

RULE_LIMIT

商户尚未配置电子发票卡券模板信息

请先调用【创建电子发票卡券模板】接口成功后再重新调用

403

RULE_LIMIT

商户不可对该货物或应税劳务、服务编码开具发票

请检查参数中的货物或应税劳务、服务编码是否在【获取商品和服务税收分类对照表】接口返回的数据中

403

RULE_LIMIT

商户提交的购买方信息与用户填写的发票抬头不一致

请检查参数中的购买方信息与【获取用户填写抬头信息】接口返回的发票抬头信息是否一致

403

RULE_LIMIT

微信支付订单所属商户与当前商户不一致(仅微信支付场景)

请检查微信支付订单号是否属于子商户

404

RESOURCE_NOT_EXISTS

用户尚未完成发票抬头填写(仅非微信支付场景)

请在调用【获取用户填写抬头信息】接口成功后再以相同发票申请单号重新调用

429

FREQUENCY_LIMITED

频率超限

请降低请求接口频率

 

元宝AI
反馈
目录
置顶