---
url: "https://pay.weixin.qq.com/doc/v2/partner/4011988384.md"
title: "下载交易账单"
doc_id: 4011988384
---

>更新时间：2024.11.14

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

注意：

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

2、微信在次日9点启动生成前一天的对账单，建议商户10点后再获取。

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

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

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



## 接口说明

适用对象：服务商

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

请求方式： POST

数据格式： XML

是否需要证书： 否

## 请求参数

| 参数名 | 变量 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- | --- |
| 应用ID | appid | string\[1,32\] | 是 | 服务商申请的公众号或移动应用appid。<br>示例值：wxcbda96de0b165486 |
| 商户号 | mch\_id | string\[1,32\] | 是 | 商户号是商户在微信申请微信支付成功后分配的账号ID，登录平台为pay.weixin.qq.com<br>示例值：1200009811 |
| 子商户应用ID | sub\_appid | string\[1,32\] | 否 | 子商户号绑定的appid(非必填，如需操作，需要服务商在商户平台为子商户绑定)<br>示例值：wxcbda96de0b165489 |
| 子商户号 | sub\_mch\_id | string\[1,32\] | 否 | 微信支付分配的子商户号，如需下载指定的子商户号对账单，则此参数必传。<br>示例值：1900000109 |
| 随机字符串 | nonce\_str | string\[1,32\] | 是 | 随机字符串，不长于32位。推荐[随机数生成算法](https://pay.weixin.qq.com/doc/v2/partner/4011985884.md)<br>示例值：5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
| 签名 | sign | string\[1,32\] | 是 | 签名，详见[签名生成算法](https://pay.weixin.qq.com/doc/v2/partner/4011985884.md)<br>示例值：C380BEC2BFD727A4B6845133519F3AD6 |
| 对账单日期 | bill\_date | string\[1,8\] | 是 | 下载对账单的日期，格式：20140603<br>示例值：20140603 |
| 账单类型 | bill\_type | string\[1,8\] | 否 | 账单类型，枚举值：<br>ALL：（默认值），返回当日所有订单信息（不含充值退款订单）<br>SUCCESS：返回当日成功支付的订单（不含充值退款订单）<br>REFUND：返回当日退款订单（不含充值退款订单）<br>RECHARGE\_REFUND：返回当日充值退款订单<br>示例值：ALL |
| 压缩账单 | tar\_type | string\[1,4\] | 否 | 非必传参数，固定值：GZIP，返回格式为.gzip的压缩包账单。不传则默认为数据流形式。<br>示例值：GZIP |

## 请求示例：

XML

```
<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <bill_date>20141110</bill_date>
   <bill_type>ALL</bill_type>
   <mch_id>10000100</mch_id>
   <nonce_str>21df7dc9cd8616b56919f20d9f679233</nonce_str>
   <sign>332F17B766FC787203EBE9D6E40457A1</sign>
</xml>
```

## 返回参数

失败时，返回以下字段

| 参数名 | 变量 | 类型 | 必填 | 描述 |
| --- | --- | --- | --- | --- |
| 返回状态码 | return\_code | string\[1,16\] | 是 | SUCCESS/FAIL<br>此字段是通信标识，非交易标识，交易是否成功需要查看result\_code来判断<br>示例值：SUCCESS |
| 返回信息 | return\_msg | string\[1,128\] | 否 | 返回信息，如非空，为错误原因<br>如：签名失败 等。<br>示例值：签名失败 |
| 错误代码 | err\_code | string\[1,16\] | 否 | 失败错误码，详见错误码列表<br>示例值：20002 |

成功时，数据以文本表格的方式返回，第一行为表头，后面各行为对应的字段内容，字段内容跟查询订单或退款结果一致，具体字段说明可查阅相应接口。

第一行为表头，根据请求下载的对账单类型不同而不同(由bill\_type决定), 目前有：

当日所有订单

交易时间,应用ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,代金券或立减优惠金额,微信退款单号,商户退款单号,退款金额, 代金券或立减优惠退款金额，退款类型，退款状态,商品名称,商户数据包,手续费,费率

当日成功支付的订单

交易时间,应用ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额, 代金券或立减优惠金额,商品名称,商户数据包,手续费,费率

当日退款的订单

交易时间,应用ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额, 代金券或立减优惠金额,退款申请时间,退款成功时间,微信退款单号,商户退款单号,退款金额, 代金券或立减优惠退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率

从第二行起，为数据记录，各参数以逗号分隔，参数前增加\`符号，为标准键盘1左边键的字符，字段顺序与表头一致。

倒数第二行为订单统计标题，最后一行为统计数据

总交易单数，总交易额，总退款金额，总代金券或立减优惠退款金额，手续费总金额

举例如下：

交易时间,应用ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,代金券或立减优惠金额,微信退款单号,商户退款单号,退款金额,代金券或立减优惠退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率

\`2014-11-10 16：33：45,\`wx2421b1c4370ec43b,\`10000100,\`0,\`1000,\`1001690740201411100005734289,\`1415640626,

\`085e9858e3ba5186aafcbaed1,\`MICROPAY,\`SUCCESS,\`OTHERS,\`CNY,\`0.01,\`0.0,\`0,\`0,\`0,\`0,\`,\`,\`被扫支付测试,\`订单额外描述,\`0,\`0.60%

2014-11-10 16：46：14,\`wx2421b1c4370ec43b,\`10000100,\`0,\`1000,\`1002780740201411100005729794,\`1415635270,

\`085e9858e90ca40c0b5aee463,\`MICROPAY,\`SUCCESS,\`OTHERS,\`CNY,\`0.01,\`0.0,\`0,\`0,\`0,\`0,\`,\`,\`被扫支付测试,\`订单额外描述,\`0,\`0.60%

总交易单数,总交易额,总退款金额,总代金券或立减优惠退款金额,手续费总金额

\`2,\`0.02,\`0.0,\`0.0,\`0

## 结算对账单

| 普通结算对账单 | 普通结算对账单 | 普通结算对账单 |
| --- | --- | --- |
| 字段名称 | 示例值 | 字段说明 |
| 交易时间 | 2015-01-01 10:00:00 | 指该笔交易的支付成功时间或发起退款成功时间（注：不是退款成功时间），格式为YYYY-MM-DD HH:MM:SS，如2015-01-01 10:00:00 |
| 应用ID | wxab8acb865bb11234 | 发起该笔交易时使用的appid，appid是由微信平台给公众号或app分配的唯一标识、用于区分交易场景 |
| 商户号 | 1234567890 | 发起该笔交易的微信支付商户号，8~10位数字 |
| 子商户号 | 0 | 如果是普通受理模式下的交易，展示特约商户的商户号，8~10位数字<br>如果是直连模式交易，则展示成数字0 |
| 设备号 | 8888 | 该笔交易下单时在device\_info字段中传入的信息，没填写则留空 |
| 微信订单号 | 4200000008201712143733500001 | 微信支付为该笔订单（或该笔退款对应的订单）分配的订单号 |
| 商户订单号 | test1 | 商户传入的该笔订单（或该笔退款对应的订单）的商户订单号，对应下单接口里的out\_trade\_no字段 |
| 用户标识 | testxt08c-XB5-QD208X1Aid0Cbs | 微信平台为支付用户在公众账号(appid)下分配的唯一标识(openid) |
| 交易类型 | NATIVE | 该笔订单（或该笔退款单对应的订单）的交易类型，使用英文缩写展示，取值和含义： 值：<br>JSAPI-JSAPI支付（或小程序支付）<br>NATIVE-Native支付<br>APP-app支付<br>MWEB-H5支付<br>MICROPAY-付款码支付<br>PAP-委托代扣 |
| 交易状态 | SUCCESS | SUCCESS—支付成功，说明该行数据为一笔支付成功的订单<br>REFUND—转入退款，说明该行数据为一笔发起退款成功的退款单<br>REVOKED—已撤销，说明该行数据为一笔成功撤销的撤销单 |
| 付款银行 | OTHERS | 银行类型，采用字符串类型的银行标识，如CMC\_CREDIT，完整说明见[参数规定文档](https://pay.weixin.qq.com/doc/v2/partner/4011941200.md) |
| 货币种类 | CNY | 货币类型，符合ISO 4217标准的三位字母代码，如CNY |
| 总金额 | 0.01 | 该笔订单的应结算金额（=订单金额-用户使用的免充值券金额），如果该行数据为退款或撤销则展示0.00，单位元，保留到小数点后2位 |
| 代金券或立减优惠金额 | 0.00 | 该笔订单中使用的微信支付代金券金额（包括充值券和免充值券），如果未使用代金券、或该行数据为退款或撤销则展示0.00，单位元，保留到小数点后2位 |
| 微信退款单号 | 0 | 微信支付为该笔退款分配的退款单号，如果该行数据为订单则展示0 |
| 商户退款单号 | 0 | 商户发起退款时填入的商户退款单号，如果该行数据为订单则展示0 |
| 退款金额 | 0.00 | 该笔退款或撤销单的应结算金额（申请退款金额-免充值券退款金额），如果该行数据为订单则展示为0.00，非负数、单位元，保留到小数点后2位 |
| 代金券或立减优惠退款金额 | 0.00 | 退款金额中包含的充值券退款金额，如果该行数据为订单或没有充值券退款则展示为0.00，非负数、单位元，保留到小数点后2位 |
| 退款类型 | ORIGINAL | ORIGINAL—原路退款<br>BALANCE—转退到用户的微信支付零钱<br>如果该行数据为订单，则留空 |
| 退款状态 | SUCCESS | 生成账单文件时该笔退款的状态、后续不会更新，如果该行数据为订单，则留空<br>SUCCES—退款成功<br>FAIL—退款失败<br>PROCESSING—退款处理中 |
| 商品名称 | 中文\[body\] | 商户传入的该笔订单（或该笔退款对应的订单）的商品名称，对应下单接口里的body字段 |
| 商户数据包 | 测试中文\[attach\] | 商户传入的该笔订单（或该笔退款对应的订单）的商户数据包，对应下单接口里的attach字段，不传时留空 |
| 手续费 | 0.00000 | 该笔订单/退款对应的手续费金额，订单对应正数、退款对应负数，单位元，保留小数点后2位 |
| 费率 | 0.00% | 该笔交易计费所使用的费率，百分数，如0.60% |

|     |     |     |
| --- | --- | --- |
| 开通免充值券后的结算对账单 | 开通免充值券后的结算对账单 | 开通免充值券后的结算对账单 |
| 字段名称 | 示例值 | 字段说明 |
| 交易时间 | 2015-01-01 10:00:00 | 指该笔交易的支付成功时间或发起退款成功时间（注：不是退款成功时间），格式为YYYY-MM-DD HH:MM:SS，如2015-01-01 10:00:00 |
| 应用ID | wxab8acb865bb11234 | 发起该笔交易时使用的appid，appid是由微信平台给公众号或app分配的唯一标识、用于区分交易场景 |
| 商户号 | 1234567890 | 发起该笔交易的微信支付商户号，8~10位数字 |
| 特约商户号 | 0 | 如果是普通受理模式下的交易，展示特约商户的商户号，8~10位数字<br>如果是直连模式交易，则展示成数字0 |
| 设备号 | 8888 | 该笔交易下单时在device\_info字段中传入的信息，没填写则留空 |
| 微信订单号 | 4200000008201712143733500001 | 微信支付为该笔订单（或该笔退款对应的订单）分配的订单号 |
| 商户订单号 | test1 | 商户传入的该笔订单（或该笔退款对应的订单）的商户订单号，对应下单接口里的out\_trade\_no字段 |
| 用户标识 | testxt08c-XB5-QD208X1Aid0Cbs | 微信平台为支付用户在公众账号(appid)下分配的唯一标识(openid) |
| 交易类型 | NATIVE | 该笔订单（或该笔退款单对应的订单）的交易类型，使用英文缩写展示，取值和含义： 值：<br>JSAPI-JSAPI支付（或小程序支付）<br>NATIVE-Native支付<br>APP-app支付<br>MWEB-H5支付<br>MICROPAY-付款码支付<br>PAP-委托代扣 |
| 交易状态 | SUCCESS | SUCCESS—支付成功，说明该行数据为一笔支付成功的订单<br>REFUND—转入退款，说明该行数据为一笔发起退款成功的退款单<br>REVOKED—已撤销，说明该行数据为一笔成功撤销的撤销单 |
| 付款银行 | OTHERS | 银行类型，采用字符串类型的银行标识，如CMC\_CREDIT，完整说明见[参数规定文档](https://pay.weixin.qq.com/doc/v2/partner/4011941200.md) |
| 货币种类 | CNY | 货币类型，符合ISO 4217标准的三位字母代码，如CNY |
| 应结订单金额 | 0.01 | 该笔订单的应结算金额（=订单金额-用户使用的免充值券金额），如果该行数据为退款或撤销则展示0.00，单位元，保留到小数点后2位 |
| 代金券<br>金额 | 0.00 | 该笔订单中使用的微信支付代金券金额（包括充值券和免充值券），如果未使用代金券、或该行数据为退款或撤销则展示0.00，单位元，保留到小数点后2位 |
| 微信退款单号 | 0 | 微信支付为该笔退款分配的退款单号，如果该行数据为订单则展示0 |
| 商户退款单号 | 0 | 商户发起退款时填入的商户退款单号，如果该行数据为订单则展示0 |
| 退款金额 | 0.00 | 该笔退款或撤销单的应结算金额（申请退款金额-免充值券退款金额），如果该行数据为订单则展示为0.00，非负数、单位元，保留到小数点后2位 |
| 充值券退款金额 | 0.00 | 退款金额中包含的充值券退款金额，如果该行数据为订单或没有充值券退款则展示为0.00，非负数、单位元，保留到小数点后2位 |
| 退款类型 | ORIGINAL | ORIGINAL—原路退款<br>BALANCE—转退到用户的微信支付零钱<br>如果该行数据为订单，则留空 |
| 退款状态 | SUCCESS | 生成账单文件时该笔退款的状态、后续不会更新，如果该行数据为订单，则留空<br>SUCCES—退款成功<br>FAIL—退款失败<br>PROCESSING—退款处理中 |
| 商品名称 | 中文\[body\] | 商户传入的该笔订单（或该笔退款对应的订单）的商品名称，对应下单接口里的body字段 |
| 商户数据包 | 测试中文\[attach\] | 商户传入的该笔订单（或该笔退款对应的订单）的商户数据包，对应下单接口里的attach字段，不传时留空 |
| 手续费 | 0.00000 | 该笔订单/退款对应的手续费金额，订单对应正数、退款对应负数，单位元，保留小数点后2位 |
| 费率 | 0.00% | 该笔交易计费所使用的费率，百分数，如0.60% |
| 订单金额 | 0.01 | 该笔订单的金额，包括用户支付金额、充值券金额、免充值券金额，如果该行数据为退款或撤销则填0.00，单位元，保留到小数点后2位 |
| 申请退款金额 | 0.00 | 商户发起退款的金额，包括退给用户的金额、充值券退款金额、免充值券退款金额，如果该行数据订单则填0.00，单位元，保留到小数点后2位 |
| 费率备注 | - | 如果有特殊费率规则时则加以说明，默认留空 |

## 错误码

| 错误码 | 名称 | 描述 | 解决方案 |
| --- | --- | --- | --- |
| 100 | SYSTEMERROR | 下载失败 | 请尝试再次查询。 |
| 20003 | SYSTEMERROR | 下载失败 | 请尝试再次查询。 |
| 20001 | sign error | 签名错误 | 签名错误，请重新检查参数和签名密钥是否正确 |
| 20001 | nonce\_str too long | 参数nonce\_str错误 | 参数nonce\_str长度超长 |
| 20001 | invalid tar\_type, Only GZIP supported | 参数tar\_type错误 | 请重新检查参数invalid tar\_typ是否正确 |
| 20001 | invalid bill\_type | 参数bill\_type错误 | 请重新检查参数bill\_type是否正确 |
| 20001 | invalid bill\_date | 参数bill\_date错误 | 请重新检查参数bill\_date是否符合要求 |
| 20001 | require POST method | 请求方式错误 | 请求检查参数请求方式是否为post |
| 20001 | empty post data | 请求报文错误 | 请重新检查请求报文是否正确 |
| 20001 | data format error | 参数格式错误 | 请重新检查请求参数格式是否为xml |
| 20001 | missing parameter | 缺少参数 | 请重新检查是否所有必传参数都上传了，且不为空 |
| 20001 | invalid appid | appid错误 | 请重新检查参数appid是否正确 |
| 20001 | invalid parameter | 参数错误 | 请重新检查是否所有参数都与文档相符 |
| 20002 | NO Bill Exist | 账单不存在 | 请检查当前商户号在指定日期内是否有成功的交易。 |
| 20002 | Bill Creating | 账单未生成 | 请先检查当前商户号在指定日期内是否有成功的交易，如指定日期有交易则表示账单正在生成中，请在上午10点以后再下载。 |
| 20007 | 当前商户号账单API权限已经关闭 | 当前商户号账单API权限已经关闭 | 当前商户号账单API权限已经关闭，请联系微信支付解决 |
| 20100 | system error | 下载失败 | 请尝试再次查询。 |