---
url: "https://pay.weixin.qq.com/doc/v2/partner/4014314705.md"
title: "下载资金账单"
doc_id: 4014314705
---

>更新时间：2025.04.16

## 应用场景

商户可以通过该接口下载自2017年6月1日起 的历史资金流水账单。

说明：

1、资金账单中的数据反映的是商户微信账户资金变动情况；

2、当日账单在次日上午9点开始生成，建议商户在上午10点以后获取；

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

## 接口链接

https://api.mch.weixin.qq.com/pay/downloadfundflow

## 是否需要证书

请求需要双向证书。 详见[证书使用](https://pay.weixin.qq.com/doc/v2/partner/4011985884.md)

## 请求参数

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 公众账号ID | appid | 是 | String(32) | wx8888888888888888 | 微信分配的公众账号ID（企业号corpid即为此appId） |
| 商户号 | mch\_id | 是 | String(32) | 1900000109 | 微信支付分配的商户号 |
| 随机字符串 | nonce\_str | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串，不长于32位。推荐[随机数生成算法](https://pay.weixin.qq.com/doc/v2/partner/4011985884.md) |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名，详见[签名生成算法](https://pay.weixin.qq.com/doc/v2/partner/4011985884.md) |
| 签名类型 | sign\_type | 否 | String(32) | HMAC-SHA256 | 签名类型，目前仅支持HMAC-SHA256 |
| 资金账单日期 | bill\_date | 是 | String(8) | 20140603 | 下载对账单的日期，格式：20140603 |
| 资金账户类型 | account\_type | 是 | String(8) | Basic | 账单的资金来源账户：<br>Basic  基本账户<br>Operation 运营账户<br>Fees 手续费账户 |
| 压缩账单 | tar\_type | 否 | String(8) | GZIP | 非必传参数，固定值：GZIP，返回格式为.gzip的压缩包账单。不传则默认为数据流形式。 |

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

## 返回结果

接口请求成功时，数据以文本表格的方式返回

1）第一行为表头

记账时间,微信支付业务单号,资金流水单号,业务名称,业务类型,收支类型,收支金额（元）,账户结余（元）,资金变更提交申请人,备注,业务凭证号

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

3）倒数第二行为资金账单统计标题

资金流水总笔数,收入笔数,收入金额,支出笔数,支出金额

4）最后一行为统计数据

账单示例如下：

```
记账时间,微信支付业务单号,资金流水单号,业务名称,业务类型,收支类型,收支金额（元）,账户结余（元）,资金变更提交申请人,备注,业务凭证号
`2018-02-01 04:21:23,`50000305742018020103387128253,`1900009231201802015884652186,`退款,`退款,`支出,`0.02,`0.17,`system,`缺货,`REF4200000068201801293084726067
资金流水总笔数,收入笔数,收入金额,支出笔数,支出金额
`20.0,`17.0,`0.35,`3.0,`0.18
```

5）header中Digest为完整性校验信息，内容格式为：签名类型=签名

举例如下：

```
Digest: SHA=ec45d7c24492dcd62d92472b0f2816c8d9a2d773
```

注：当前仅支持sha1签名返回

接口请求时如有协议错误，将返回以下字段

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 返回状态码 | return\_code | 是 | String(16) | SUCCESS | SUCCESS/FAIL<br>此字段是通信标识，非交易标识，交易是否成功需要查看trade\_state来判断 |
| 返回信息 | return\_msg | 是 | String(128) | OK | 当return\_code为FAIL时返回信息为错误原因 ，例如<br>签名失败<br>参数格式校验错误<br>请求频率过快，请稍后再试 |

当return\_code为SUCCESS时，进一步返回以下字段指明业务失败的原因

| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
| --- | --- | --- | --- | --- | --- |
| 业务结果 | result\_code | 是 | string(16) | FAIL | FAIL<br>此字段是业务标识，表示业务是否成功。目前只在失败时返回这个字段，所以只会出现FAIL值 |
| 错误代码 | err\_code | 是 | String(16) | SYSTEMERROR | 见错误码列表 |
| 错误代码描述 | err\_code\_des | 否 | String(128) | 账单不存在 | 错误信息描述 |

```
请求协议错误示例：
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<result_code><![CDATA[FAIL]]></result_code>
<err_code><![CDATA[NO_BILL_EXIST]]></err_code>
<err_code_des><![CDATA[商户查询账户当日无资金账单]]></err_code_des>
</xml>
```

## 特殊字符转义

资金账单会对字段取值中含有的\\1字符、\\r字符、\\n字符做替换处理，其中\\1会替换为空格，\\r字符和\\n字符会分别替换为\\\r字符,\\\n字符

针对明细数据中的备注、业务凭证号这两个商户自定义字段，账单在处理过程中对其进行了特殊字符的转义，具体规则包括：

| 原始特殊字符<br>Unicode | 含义 | 转义后<br>Unicode | 含义 |
| --- | --- | --- | --- |
| `\u000a` | 换行符(LF) | `\u005c\u006e` | \\n |
| `\u000d` | 回车符(CR) | `\u005c\u0072` | \\r |
| `\u0001` | 控制字符SOH(\\001) | `\u0020` | 空格 |

## 错误码

| 错误码 | 描述 | 解决方案 |
| --- | --- | --- |
| SYSTEMERROR | 微信支付内部错误 | 请稍后重试。 |
| PARAM\_ERROR | 参数错误 | 请对照文档的请求参数说明检查参数。 |
| NO\_BILL\_EXIST | 账单不存在 | 请检查当前商户号在指定日期内是否有成功的交易。 |
| BILL\_CREATING | 账单未生成 | 请先检查当前商户号在指定日期内是否有成功的交易，如指定日期有交易则表示账单正在生成中，请在上午10点以后再下载。 |