下载交易账单

更新时间:2025.03.21
|

商户可以通过该接口下载历史交易清单。比如掉单、系统错误等导致商户侧和微信侧数据不一致,通过对账单核对后可校正支付状态。

注意:

● 微信侧未成功下单的交易不会出现在对账单中。支付成功后撤销的交易会出现在对账单中,跟原支付单订单号一致;

● 微信在次日9点启动生成前一天的对账单,建议商户10点后再获取;

● 对账单中涉及金额的字段单位为“元”。

● 对账单接口只能下载三个月以内的账单。

● 对账单是以商户号纬度来生成的,如一个商户号与多个appid有绑定关系,则使用其中任何一个appid都可以请求下载对账单。对账单中的appid取自交易时候提交的appid,与请求下载对账单时使用的appid无关。

接口说明

适用对象: 直连模式 机构模式

请求URL: https://apihk.mch.weixin.qq.com/pay/downloadbill

请求方式: POST

是否需要证书: 否

请求参数

参数名

变量

类型

必填

描述

公众账号ID

appid

string(32)

微信分配的公众账号ID
示例值:wx8888888888888888

商户号

mch_id

string(32)

微信支付分配的商户号
示例值:1900000109

随机字符串

nonce_str

string(32)

随机字符串,不长于32位。推荐随机数生成算法
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS

签名

sign

string(64)

签名,详见签名生成算法
示例值:C380BEC2BFD727A4B6845133519F3AD6

签名类型

sign_type

string(32)

签名类型,目前支持HMAC-SHA256和MD5,默认为MD5
示例值:HMAC-SHA256

对账单日期

bill_date

string(8)

下载对账单的日期,格式:20140603
示例值:20140603

账单类型

bill_type

string(8)

ALL:(默认值),返回当日所有订单信息(不含充值退款订单)
SUCCESS:返回当日成功支付的订单(不含充值退款订单)
REFUND:返回当日退款订单(不含充值退款订单)
RECHARGE_REFUND:返回当日充值退款订单
示例值:ALL

压缩账单

tar_type

string(8)

非必传参数,固定值:GZIP,返回格式为.gzip的压缩包账单。不传则默认为数据流形式。
示例值:GZIP

请求示例:

XML
1<xml>
2   <appid>wx2421b1c4370ec43b</appid>  
3   <bill_date>20141110</bill_date>  
4   <bill_type>ALL</bill_type>  
5   <mch_id>10000100</mch_id>
6   <nonce_str>ec2316275641faa3aacf3cc599e8730f</nonce_str>
7   <sign>FDD167FAA73459FD921B144BAF4F4CA2</sign>
8</xml>

返回结果

字段名

变量

类型

必填

描述

返回状态码

return_code

string(16)

SUCCESS/FAIL
此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断
示例值:SUCCESS

返回信息

return_msg

string(128)

返回信息,如非空,为错误原因,签名失败,参数格式校验错误
示例值:签名失败

请求成功后,返回的数据将包含一行表头,其中列出了后续各行数据的字段。

第一行即为表头行,其具体内容取决于商户请求的账单类型(由 bill_type 参数指定),并包含了后续数据行所包含的各项字段。

参数名

变量

字段释义

支付示例

退款示例

交易时间

Transaction time

指该笔交易的支付成功时间或发起退款成功时间(注:不是退款成功时间),格式为yyyy-MM-dd HH:MM:SS

`2024-03-09 19:15:48

`2024-03-09 19:46:27

公众账号ID

Official account ID(appid)

发起该笔交易时使用的appid,appid是由微信给公众号或app等分配的唯一标识

`wx87b0b4160031234

`wx87b0b4160031234

商户号

Vendor ID(mch_id)

发起该笔交易下单的微信支付商户号

`123450000

`123450000

子商户号

Sub vendor ID(sub_mch_id)

发起该笔交易下单的子商户号

`600000001

`600000001

设备号

Device ID(Device_info)

对应在下单时传入的device_info字段,没填写则留空

`013467007045764

`013467007045764

微信订单号

Wechat order number(transaction_id)

微信支付为该笔订单(或该笔退款对应的订单)分配的订单号

`4200002193202403093640737027

`4200002193202403093640737027

商户订单号

Vendor order number(out_trade_no)

商户传入的该笔订单(或该笔退款对应的订单)的商户订单号,对应下单接口里的out_trade_no字段

`20240309458890656874661888

`20240309458890656874661888

用户标识

User tag(openid)

微信为支付用户在公众账号ID(appid)下分配的唯一标识(openid)

`oc-J25YZ8cfVl0pBgwQfjIjkgAB1

`oc-J25YZ8cfVl0pBgwQfjIjkgAB1

交易类型

Transaction type(trade_type)

该笔订单(或该笔退款单对应的订单)的类型,使用英文缩写展示,包括但不限于(后续可能新增):

`JSAPI

`JSAPI

MICROPAY,付款码支付

JSAPI,JSAPI支付、小程序支付

NATIVE,Native支付

APP,APP支付

FACE,刷脸支付

AUTH,代扣支付

交易状态

Transaction status(trade_state)

标识该笔明细数据的类型:

`SUCCESS

`REFUND

SUCCESS,支付成功,说明该行数据为一笔支付成功的订单

REFUND,转入退款,说明该行数据为一笔发起退款成功的退款单

付款银行

Payment bank(bank_type)

用户支付时使用的付款方式,包括但不限于(后续可能新增):

`CCB_DEBIT

`CCB_DEBIT

XXX_CREDIT,用户使用了XXX银行的一张信用卡付款

XXX_DEBIT,用户使用了XXX银行的一张储蓄卡付款

WPHK,用户使用了香港钱包付款

OTHERS,用户使用了中国钱包零钱/零钱通等其他付款方式

货币种类

Currency type(fee_type)

订单货币类型,符合ISO 4217标准的三位字母代码

`CNY

`CNY

总金额

Total amount(total_fee)

支付金额(参与计费的金额,标价币种)

`499.00

`0.00

如果该行数据为退款则展示0.00

单位元,保留到小数点后2位

代金券或立减优惠金额

Coupon amount

该笔订单中使用的微信支付代金券金额

`0.00

`0.00

如果未使用代金券、或该行数据为退款、则展示0.00

单位元,保留到小数点后2位

微信退款单号

Wechat refund number(refund_id)

微信支付为该笔退款分配的退款单号,如果该行数据为支付(交易状态SUCCESS)则展示0

`0

`50201309022024030935709090246

商户退款单号

Vendor refund number(out_refund_no)

商户发起退款时填入的商户退款单号,如果该行数据为支付(交易状态SUCCESS)则展示0

`0

`20240309458898381658624512

退款金额

Refund amount(refund_fee)

退款金额(参与计费的金额)

`0.00

`499.00

如果该行数据为支付则展示0.00

单位元,保留到小数点后2位

代金券或立减优惠退款金额

Coupon refund amount

退款金额中包含的充值券退款金额,如果该行数据为订单或没有充值券退款则展示为0.00,非负数、单位元,保留到小数点后2位

`0.00

`0.00

退款类型

Refund type

ORIGINAL—原路退款
BALANCE--退回微信零钱
如果该行数据为支付(交易状态SUCCESS)则留空

`

`ORIGINAL

退款状态

Refund status(refund_status)

生成账单文件时该笔退款的状态、出账后不会更新,如果该行数据为支付(交易状态SUCCESS),则留空

`

`SUCCESS

SUCCESS,退款成功

PROCESSING,退款处理中

商品名称

Product name

商户传入的该笔支付(或该笔退款对应的订单)的商品名称,对应下单接口里的body字段

`80695507873

`80695507873

商户数据包

Vendor's data package(attach)

商户传入的该笔支付(或该笔退款对应的订单)的商户数据包,对应下单接口里的attach字段,不传时留空

`

`

手续费

Fee

该笔支付/退款对应的手续费金额(结算币种),支付对应正数、退款对应负数,单位元,保留小数点后2位

`2.69000

`-2.69000

费率

Rate

该笔交易计费所使用的费率,百分数

`0.50%

`0.50%

用户支付币种

Payment Currency type(Cash_fee_type)

用户支付币种

`CNY

`CNY

用户支付金额

Cash payment amount(Cash_fee)

用户支付金额

`499.00

`0.00

结算币种

Settlement currency type

结算币种

`HKD

`HKD

结算币种金额

Settlement currency amount

结算币种金额

`538.95

`0.00

汇率

Exchange rate

汇率

`92585931

`0

退款汇率

Refund exchange rate

退款汇率

`0

`92585931

用户退款金额

Payer’s Refund amount

用户退款金额

`0

`499.00

用户退款金额

Payer’s Refund currency type

用户退款金额

`

`CNY

退款币种

Refund currency type

退款币种

`

`CNY

退款结算币种

Refund settlement currency type

退款结算币种

`

`HKD

结算币种退款金额

Refund settlement amount

结算币种退款金额

`0.00

`538.95

分账类型(新版本展示)

Fund type

`是否分账订单,包括:

SplittingOrder分账订单

NonSplittingOrder非分账订单

`NonSplittingOrder

`NonSplittingOrder

手续费RMB(新版本展示)

Fee RMB

该笔支付/退款对应的手续费金额(人民币),支付对应正数、退款对应负数,单位元,保留小数点后2位

`2.50000

`2.50000

退款出资账户(新版本展示)

Refund account

`退款出资账户,包括:

UnsettledFund未结算余额

RechargeFund充值余额

`UnsettledFund

`UnsettledFund

交易记录从第二行开始;各交易字段以逗号分隔,并以“`”字符(位于标准键盘“1”键右侧)开头,排列顺序与返回数据首行(表头行)中的字段顺序一致。

对账文件的最后两行显示了所有交易的汇总信息,具体字段如下:

交易总笔数、交易总金额、退款总金额、优惠券退款总金额、佣金总金额。

Total transaction count

Total transaction amount

Total refund amount

Total coupon refund amount

Total commission amount

`110

`6096.73

`0.00

`0.00

`152.45000

错误码

错误码

名称

描述

原因

解决方案

100

SYSTEM_ERROR

下载失败

系统超时

请尝试再次查询

100

Network_Traffic_Limit

网络流量限制

当前系统请求繁忙

请尝试再次查询

20003

SYSTEM_ERROR

下载失败

系统超时

请尝试再次查询

20001

sign error

签名错误

请求参数未按要求进行填写

签名错误,请重新检查参数和签名密钥是否正确

nonce_str too long

参数nonce_str错误

请求参数未按要求填写

参数nonce_str长度超长

invalid tar_type, Only GZIP supported

参数tar_type错误

请求参数未按指引进行填写

请重新检查参数invalid tar_typ是否正确

invalid bill_type

参数bill_type错误

请求参数未按指引进行填写

请重新检查参数bill_type是否正确

invalid bill_date

参数bill_date错误

请求参数未按指引进行填写

请重新检查参数bill_date是否符合要求

require POST method

请求方式错误

请求方式不符合要求

请求检查参数请求方式是否为post

empty post data

请求报文错误

请求报文为空

请重新检查请求报文是否正确

data format error

参数格式错误

请求参数要求为xml格式

请重新检查请求参数格式是否为xml

missing parameter

缺少参数

有必传的参数未上传

请重新检查是否所有必传参数都上传了,且不为空

invalid appid

appid错误

请求参数appid有误

请重新检查参数appid是否正确

invalid parameter

参数错误

有未知的请求参数

请重新检查是否所有参数都与文档相符

20002

NO Bill Exist

账单不存在

当前商户号没有已成交的订单,不生成对账单

请检查当前商户号在指定日期内是否有成功的交易。

Bill Creating

账单未生成

当前商户号没有已成交的订单或对账单尚未生成

请先检查当前商户号在指定日期内是否有成功的交易,如指定日期有交易则表示账单正在生成中,请在上午10点以后再下载。

20007

当前商户号账单API权限已经关闭

当前商户号账单API权限已经关闭

当前商户号账单API权限已经关闭

当前商户号账单API权限已经关闭,请联系微信支付解决

20008

Frequency Limited

请求频率超过限制

当前IP或商户号的请求过于频繁,超过了频率限制

请放慢请求速度,稍后再次查询

20100

SYSTEM_ERROR

下载失败

系统超时

请尝试再次查询