开具电子发票

更新时间:2024.12.27

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

# 接口说明

支持商户:
【普通商户】
请求方式:
【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
    【微信支付平台证书序列号】 请求参数中的敏感字段,需要使用微信支付平台证书公钥加密。请设置为该证书的证书序列号。详见敏感信息加解密
    Body 包体参数
  • scene 必填 string
    【开票场景】 开票场景
    可选取值:
    • WITH_WECHATPAY: 微信支付场景
    • WITHOUT_WECHATPAY: 非微信支付场景
  • fapiao_apply_id 必填 string(32)
    【发票申请单号】 发票申请单号,唯一标识一次开票行为。当开票场景为WITHOUT_WECHATPAY时,为调用【获取用户授权链接】接口时指定的发票申请单号;当开票场景为WITH_WECHATPAY时,为与本次开票关联的微信支付订单号,且必须是属于相应商户的订单(服务商模式下该订单必须属于子商户;直连模式下该订单必须属于直连商户)
  • buyer_information 必填 object
    【购买方信息】 购买方信息,即发票抬头。若商户使用微信官方抬头,可从【获取用户授权信息】接口获取用户填写的抬头;也可自行收集发票抬头
    • 属性
  • fapiao_information 必填 array[IssueFapiaoInfo]
    【需要开具的发票信息】 需要开具的发票信息。注意:同一个开票申请单最多申请5张发票
    • 属性

请求示例

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 "scene" : "WITH_WECHATPAY",
9 "fapiao_apply_id" : "4200000444201910177461284488",
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" : "18507550000",
19 "email" : "123110@qq.com"
20 },
21 "fapiao_information" : [
22 {
23 "fapiao_id" : "20200701123456",
24 "total_amount" : 382895,
25 "need_list" : false,
26 "remark" : "备注",
27 "items" : [
28 {
29 "tax_code" : "3010101020203000000",
30 "goods_category" : "运输服务",
31 "goods_name" : "出租汽车客运服务",
32 "goods_id" : 1,
33 "specification" : "A4",
34 "unit" : "次",
35 "quantity" : 100000000,
36 "total_amount" : 429900,
37 "tax_rate" : 1300,
38 "tax_prefer_mark" : "NO_FAVORABLE",
39 "discount" : false
40 }
41 ]
42 }
43 ]
44 }'

# 应答参数

无应答包体

应答示例

202 Accepted
1无应答包体

# 错误码

# 公共错误码

状态码 错误码 描述 解决方案
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 频率超限 请降低请求接口频率
反馈
咨询
目录

微信支付文档中心已升级,你当前所查看的是旧文档中心的内容,旧文档中心将于 2025年 3 月 31日 下线,请移步 [新文档中心] 查看相应的内容