开具电子发票

更新时间:2024.10.25

商户完成收款后,调用本接口开具电子发票并插入微信用户的卡包。若是非微信支付场景,需要先通过【获取用户授权链接】接口获取用户授权链接,并等待用户完成授权才能调用本接口;若是微信支付场景,则无需额外获取用户授权。
注意:本接口成功返回仅代表开票请求已被受理,当开票完成时,微信支付会根据商户配置的回调地址进行回调通知,商户也可以通过【查询电子发票】接口获取开票结果及开票信息。

接口说明

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

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

请求域名:【主域名】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)

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


 scene  必填   string

【开票场景】开票场景

可选取值:

  • WITH_WECHATPAY: 微信支付场景

  • WITHOUT_WECHATPAY: 非微信支付场景


 fapiao_apply_id  必填   string(32)

【发票申请单号】发票申请单号,唯一标识一次开票行为。当开票场景为WITHOUT_WECHATPAY时,为调用【获取用户授权链接】接口时指定的发票申请单号;当开票场景为WITH_WECHATPAY时,为与本次开票关联的微信支付订单号,且必须是属于相应商户的订单(服务商模式下该订单必须属于子商户;直连模式下该订单必须属于直连商户)


 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说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号平台证书加密敏感信息指引


 email  选填   string

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


 fapiao_information  必填   array[IssueFapiaoInfo]

【需要开具的发票信息】需要开具的发票信息。注意:同一个开票申请单最多申请5张发票

属性

 fapiao_id  必填   string(32)

【商户发票单号】商户发票单号,唯一标识一张要开具的发票。只能是字母、数字、中划线-、下划线_、竖线|、星号*这些英文半角字符,且该单号在每个商户下必须唯一


 total_amount  必填   integer

【总价税合计】总价税合计,所有发票行单行金额合计的累加,展示在发票的价税合计处,单位:分 注意:若是微信支付后开票,所有发票的总价税合计之和不能超过对应的微信支付单总金额;若是非微信支付开票,所有发票的总价税合计之和不能超过【获取用户授权链接】接口中指定的总金额


 need_list  选填   boolean

【是否以清单形式开具发票】若商户使用的是区块链电子发票产品,则不支持以清单形式开具发票,该字段不需要传值


 remark  选填   string(200)

【发票备注】发票备注


 items  必填   array[object]

【发票行信息】发票行信息,单张发票的发票行不能超过8行

属性

 tax_code  必填   string(32)

【税局侧规定的货物或应税劳务、服务税收分类编码】税局侧规定的货物或应税劳务、服务税收分类编码。可自行指定符合税务部门规定的货物或应税劳务、服务编码;若使用在电子发票商户平台配置的商品类型,需要从接口【获取商户可开具的商品和服务税收分类编码对照表】获得商户已配置的编码;若该行为折扣行,必须与被折扣行的编码相同。


 goods_category  选填   string(128)

【税局侧规定的货物或应税劳务、服务分类名称】税局侧规定的货物或应税劳务、服务分类名称。
若使用在电子发票商户平台配置的商品类型进行开票时,无需传该参数。可从接口【获取商户可开具的商品和服务税收分类编码对照表】获得商户已配置的商品信息,请确认配置信息是否正确。
若该行为折扣行,则不设置


 goods_name  选填   string(128)

【货物或应税劳务、服务名称】由商户自定义的货物或应税劳务、服务名称。
若使用在电子发票商户平台配置的商品类型进行开票时,无需传该参数。可从接口【获取商户可开具的商品和服务税收分类编码对照表】获得商户已配置的商品信息,请确认配置信息是否正确。
若该行为折扣行,则不设置


 goods_id  选填   integer

【企业侧维护的货物或应税劳务、服务编码】企业侧维护的货物或应税劳务、服务编码。若使用在电子发票商户平台配置的商品类型进行开票时,需要传该编号,可从接口【获取商户可 开具的商品和服务税收分类编码对照表】获得商户已配置的编码


 specification  选填   string(20)

【规格型号】规格型号,展示在发票中间的规格型号列。
若使用在电子发票商户平台配置的商品类型进行开票时,无需传该参数。可从接口【获取商户可开具的商品和服务税收分类编码对照表】获得商户已配置的商品信息,请确认配置信息是否正确


 unit  选填   string(20)

【单位】单位,展示在发票中间的单位列


 quantity  必填   integer

【数量】数量,展示在发票中间的数量列,单位为10-8,100000000表示数量为1。若是折扣行或者没有数量概念,则默认为100000000


 total_amount  必填   integer

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


 tax_rate  选填   integer

【税率】税率,单位为万分之一,如1300代表13%。
若使用在电子发票商户平台配置的商品类型进行开票时,无需传该参数。可从接口【获取商户可开具的商品和服务税收分类编码对照表】获得商户已配置的商品信息,请确认配置信息是否正确。

现在支持的税率为0、1%、1.5%、3%、5%、6%、9%、10%、11%、13%、16%、17%


 tax_prefer_mark  选填   string

【税收优惠政策标识】若使用在电子发票商户平台配置的商品类型进行开票时,无需传该参数。可从接口【获取商户可开具的商品和服务税收分类编码对照表】获得商户已配置的商品信息,请确认配置信息是否正确。
若该行为折扣行,则不设置。若为数电发票模式,则不设置。

可选取值:

  • NO_FAVORABLE: 无优惠

  • OUTSIDE_VAT: 不征税

  • VAT_EXEMPT: 免税

  • NORMAL_ZERO_RATED: 普通零税率

  • EXPORT_ZERO_RATED: 出口零税率


 discount  必填   boolean

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

请求示例

POST

1curl -X POST \
2  https://api.mch.weixin.qq.com/v3/new-tax-control-fapiao/fapiao-applications \
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" : "1900000109",
9    "scene" : "WITH_WECHATPAY",
10    "fapiao_apply_id" : "4200000444201910177461284488",
11    "buyer_information" : {
12      "type" : "INDIVIDUAL",
13      "name" : "深圳市南山区测试企业",
14      "taxpayer_id" : "202003261233701778",
15      "address" : "深圳市南山区深南大道10000号",
16      "telephone" : "075512345678",
17      "bank_name" : "测试银行",
18      "bank_account" : "62001234567890",
19      "phone" : "18507550000",
20      "email" : "123110@qq.com",
21      "amount" : 1,
22      "out_trade_no" : "example_out_trade_no"
23    },
24    "fapiao_information" : [
25      {
26        "fapiao_id" : "20200701123456",
27        "total_amount" : 382895,
28        "need_list" : false,
29        "remark" : "备注",
30        "items" : [
31          {
32            "tax_code" : "3010101020203000000",
33            "goods_category" : "运输服务",
34            "goods_name" : "出租汽车客运服务",
35            "goods_id" : 1,
36            "specification" : "A4",
37            "unit" : "次",
38            "quantity" : 100000000,
39            "total_amount" : 429900,
40            "tax_rate" : 1300,
41            "tax_prefer_mark" : "NO_FAVORABLE",
42            "discount" : false
43          }
44        ]
45      }
46    ]
47  }'
48

应答参数

无应答包体

应答示例

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

发票申请单已存在

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

401

SIGN_ERROR

签名错误或签名信息不完整

请检查签名参数和方法是否都符合签名算法要求

403

NO_AUTH

商户无权限

请检查是否已经开通电子发票产品相关功能权限,若是服务商模式,还需确认子商户是否接受了服务商的邀请

403

RULE_LIMIT

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

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

403

RULE_LIMIT

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

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

403

RULE_LIMIT

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

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

403

RULE_LIMIT

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

请检查微信支付订单号是否属于商户,若是服务商模式则检查是否属于子商户

404

RESOURCE_NOT_EXISTS

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

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

429

FREQUENCY_LIMITED

频率超限

请降低请求接口频率

 

 

元宝AI
反馈
目录
置顶