开发者可根据本文指引快速接入账单数据查询及账单下载服务功能,完成商家账户买入、卖出、充值等账单信息查询。接口示例仅用于展示说明,开发者需根据自身实际业务场景需求进行接入。
**注意:**
- 本功能仅支持商家自调用,不支持服务商代调用。
- 页面实时数据查询支持 **一年内 **的账单数据。
- [@alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址接口)(API#alipay.data.dataservice.bill.downloadurl.query#api_url)](/API#alipay.data.dataservice.bill.downloadurl.query#api_url)支持查询自 2016 年 1 月 1 日以后的账单数据。
# 接口查询/下载账单数据
## 查询时间区间说明
- 商家账单功能接口中起止日期都为左闭右开区间,即 [ start_time,end_time ),起止日期间隔不能超过 31 天。
- 若起止日期相同无法查询到账单数据。
- 如需查询当日数据 end_time 需大于当日时间,但与起始时间间隔不能超过 31 天。例如:假设当日日期为 2020-08-17 ,查询其记录数据,则截止日期 end_time 需为 2020-08-18 及之后不超过 31 天。
## 查询卖出交易明细
开发者可调用 [@alipay.data.bill.sell.query(支付宝商家账户卖出交易查询接口)(API#alipay.data.bill.sell.query#api_url)](/API#alipay.data.bill.sell.query#api_url) 查询商家账户卖出交易数据信息。
### 示例代码
```java
{{std::example#alipay.data.bill.sell.query||request|java}}
```
#### 重要入参说明
- alipay_order_no:可选,支付宝生成交易流水号。如果查询参数中指定流水号,则只查询流水号相关的记录。
- merchant_order_no:可选,商家自定义交易号。如果查询参数中指定交易号,则只查询相关的记录。
- store_no:门店编号,支持 **支付宝(即蚂蚁)门店**、**口碑门店**。
**注意:**同时传入 alipay_order_no、merchant_order_no 时,二者需对应同一笔订单。
## 查询买入交易明细
开发者可调用 [@alipay.data.bill.buy.query(支付宝商家账户买入交易查询接口)(API#alipay.data.bill.buy.query#api_url)](/API#alipay.data.bill.buy.query#api_url) 查询商家支付宝账户买入交易信息,供对账使用。
### 示例代码
```java
{{std::example#alipay.data.bill.buy.query||request|java}}
```
## 查询账务流水明细
开发者可调用 [@alipay.data.bill.accountlog.query(支付宝商家账户账务明细查询接口)(API#alipay.data.bill.accountlog.query#api_url)](/API#alipay.data.bill.accountlog.query#api_url) 查询商家账户账务流水信息。
### 示例代码
```java
{{std::example#alipay.data.bill.accountlog.query||request|java}}
```
## 查询充值、转账、提现记录
开发者可调用 [@alipay.data.bill.transfer.query(支付宝商家账户充值,转账,提现查询接口)(API#alipay.data.bill.transfer.query#api_url)](/API#alipay.data.bill.transfer.query#api_url) 查询商家账户充值,转账,提现信息。
### 示例代码
```java
{{std::example#alipay.data.bill.transfer.query||request|java}}
```
#### 重要入参说明
type:必填,转账类型。枚举支持:
- DEPOSIT:充值。
- WITHDRAW:提现。
- TRANSFER:转账。
## 查询保证金明细
开发者可调用 [@alipay.data.bill.bail.query(支付宝商家账户保证金查询)(API#alipay.data.bill.bail.query#api_url)](/API#alipay.data.bill.bail.query#api_url) 查询商家账户保证金信息。
### 示例代码
```java
{{std::example#alipay.data.bill.bail.query||request|java}}
```
#### 重要入参说明
bail_type:保证金类型,目前支持:
- TMALL_BAIL:天猫保证金。
- TAOBAO_BAIL:淘宝保证金。
## 查询账户当前余额
开发者可调用 [@alipay.data.bill.balance.query(支付宝商家账户当前余额查询)(API#alipay.data.bill.balance.query#api_url)](/API#alipay.data.bill.balance.query#api_url) 查询商家账户当前余额信息。
**说明:**本接口无需业务入参,将根据 app_id 查询其归属商家主账号账户实时余额信息。
### 示例代码
```java
{{std::example#alipay.data.bill.balance.query||request|java}}
```
## 查询账户历史余额
开发者可调用 [@alipay.data.bill.balancehis.query(支付宝商家账户历史余额查询接口)(API#alipay.data.bill.balancehis.query#api_url)](/API#alipay.data.bill.balancehis.query#api_url) 查询商家账户指定自然日或自然月起止历史余额信息,供对账使用。
### 示例代码
```java
{{std::example#alipay.data.bill.balancehis.query||request|java}}
```
#### 重要入参说明
- biz_date:查询指定自然日的起初余额和期末余额,与 biz_month 互斥二者只能传入其一。
- biz_month :查询指定自然月的起初余额和期末余额,与 biz_date 互斥二者只能传入其一。
### 响应示例
```json
{{std::example#alipay.data.bill.balancehis.query||response|normal}}
```
## 离线账单文件下载
目前离线账单文件下载方式有两种:一种是在商家平台下载账单;一种是通过调用接口的方式来获取账单下载地址。服务商的对账管理请查看 [交易订单 ](https://mbillexprod.alipay.com/enterprise/tradeListQuery.htm)。
### 新企业版账单下载
商家财务人员登录新企业版 [商家平台](https://qy.alipay.com/) 进入 **对账中心**,可通过账单下载页面,下载登录账号的已完成结算的对账单,并使用该数据完成财务核算。
支持下载如下两种类型账单:
- **资金账单** 用于表达支付宝账号的收支变化,对应 [@alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址接口)(API#alipay.data.dataservice.bill.downloadurl.query#api_url)](/API#alipay.data.dataservice.bill.downloadurl.query#api_url)下载的 `trabill_type = signcustomer` 账单。
- **交易账单** 用于表达支付宝收单业务中发生的交易订单,对应 [@alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址接口)(API#alipay.data.dataservice.bill.downloadurl.query#api_url)](/API#alipay.data.dataservice.bill.downloadurl.query#api_url)下载的 `trabill_type = trade` 账单。

#### 日账单下载
进入日账单下载页面,默认显示最近日账单的所在月份,默认选中最近日账单所在日期。鼠标移动到已完成结算的日期,显示可下载链接。点击所在日期可进行下载。

##### 特殊说明
- 账单未生成:前一日的日账单在第二天生成,在第二天生成之前在下载区域提示 **账单未生成**,不可点击下载。

- 本日无收支:若已完成结算的某日无任何收支,则在下载区域提示 **本日无收支**,不可点击下载。

- 日账单下载,支持范围从 2013 年 1 月 1 日开始。
#### 月账单下载
月账单下载功能同日账单下载。进入月账单下载页面,默认显示最近月账单的所在年份,默认选中最近月账单所在月份。鼠标移动到已完成结算的日期,显示可下载链接。点击所在月份可进行下载。
**注意**:
- 月账单下载,支持范围从 2013 年 1 月开始。
- 每月账单一般会在次月 4 日或之前生成。

##### 特殊说明
账单未生成

### 调用接口获取账单下载地址
开发者可调用 [@alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址接口)(API#alipay.data.dataservice.bill.downloadurl.query#api_url)](/API#alipay.data.dataservice.bill.downloadurl.query#api_url) 查询商家对账单下载地址,可通过地址下载离线账单用于对账,支持下载接口中指定 APPID 所对应 PID 下所有交易记录的对账单。
#### 示例代码
```java
{{std::example#alipay.data.dataservice.bill.downloadurl.query||request|java}}
```
##### 重要入参说明
- bill_type:必填,账单类型,开发者可通过接口以获取以下业务/账务对应的日/月账单。
- trade:商家基于支付宝交易收单的业务账单,对应 **对账中心** > [账单下载](https://b.alipay.com/page/mbillexprod/bill/download/fundBill) 的 **交易账单**。
- signcustomer:基于商家支付宝余额收入及支出等资金变动的帐务账单,对应 **对账中心** > [账单下载](https://b.alipay.com/page/mbillexprod/bill/download/fundBill) 的 **资金账单**。
- bill_date:必填,账单时间:
- 日账单时间格式为 `yyyy-MM-dd`,最早可下载从 2016 年 1 月 1 日以后的日账单,当天离线账单会在次日 9 点前,打包成压缩文件产出,包含了当天的所有相关类型流水,特殊情况可能延迟。
- 月账单时间格式为 `yyyy-MM`,最早可下载从 2016 年 1 月 以后的月账单,当月离线账单会在次月 3 号前,打包成压缩文件产出,包含了当月的所有相关类型流水,特殊情况可能延迟。
**注意**:
- 下载地址有效时间为 30 s,请尽快下载。
- 下载的账单 excel 默认是 GBK 格式。
#### 下载账单文件示例
```java
//将接口返回的对账单下载地址传入urlStr
String urlStr = "下载地址";
//指定希望保存的文件路径
String filePath = "/Users/fund_bill_20190101.csv.zip";
URL url = null;
HttpURLConnection httpUrlConnection = null;
InputStream fis = null;
FileOutputStream fos = null;
try {
url = new URL(urlStr);
httpUrlConnection = (HttpURLConnection) url.openConnection();
httpUrlConnection.setConnectTimeout(5 * 1000);
httpUrlConnection.setDoInput(true);
httpUrlConnection.setDoOutput(true);
httpUrlConnection.setUseCaches(false);
httpUrlConnection.setRequestMethod("GET");
httpUrlConnection.setRequestProperty("Charsert", "UTF-8");
httpUrlConnection.connect();
fis = httpUrlConnection.getInputStream();
byte[] temp = new byte[1024];
int b;
fos = new FileOutputStream(new File(filePath));
while ((b = fis.read(temp)) != -1) {
fos.write(temp, 0, b);
fos.flush();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
fos.close();
httpUrlConnection.disconnect();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
```
# 附录
商家在下载账单后,会得到 **业务账单** 或 **财务账单** 对应压缩文件,解压后两种类型账单文件中都包含了 **明细** 和 **汇总 **两张表,详情如下。
## 业务账单文件示例
### 业务账单汇总

### 业务账单明细

### 账单与支付接口字段对应关系
部分业务账单字段与支付相关接口字段对应关系如下:
| **支付宝交易号** | **商家订单号** | **商品名称** | **门店编号** | **门店名称** | **终端号** | **订单金额(元)** | **商家实收(元)** | **集分宝(元)** | **商家优惠(元)** | **券核销金额(元)** | **券名称** | **退款批次号** | **服务费(元)** |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| trade_no | out_trade_no | goods_detail#goods_name | store_id | store_name | terminal_id | total_amount | receipt_amount | point_amount | mdiscount_amount | voucher_detail_list#amount | voucher_detail_list#name | batch_no | charge_amount |
| 支付宝系统中全局唯一标识用户一笔交易的流水号。 | 商家系统中唯一标识一笔用户交易的流水号。 | 商品名称。 | 商家门店编号。 | 请求交易支付中的商家店铺的名称。 | 商家机具终端编号。 | 订单总金额,
单位为 元。 | 商家实收=订单金额 total_amount - 商家出资的优惠金额。 | 该笔交易过程中使用集分宝的付款金额。 | 该笔交易过程中使用的商家优惠金额。 | 该笔交易过程中使用优惠券核销的付款金额。 | 本笔交易使用的券名称。 | 该笔交易产生退款后退款批次识别号,对应退款 out_request_no 字段。 | 该笔交易收取商家服务费(手续费)金额。 |
## 账务账单文件示例
### 账务账单汇总

### 账务账单明细

## 账单下载设置
商家可在 **商家平台** > **对账中心** > [账单下载](https://b.alipay.com/page/mbillexprod/bill/download/fundBill) 页面点击 **下载设置**,设置下载的业务及账务账单语言、包含字段等明细信息。

## 请求频次
商家账单数据查询及下载接口一定的调用频率限制,以防止对服务器产生过大压力,影响业务的正常运转。以下为常用接口的调用频率限制,请在系统逻辑设计时格外注意。
| **API** | **请求频次(QPS)** |
| --- | --- |
| [@alipay.data.bill.sell.query(支付宝商家账户卖出交易查询接口)(API#alipay.data.bill.sell.query#api_url)](/API#alipay.data.bill.sell.query#api_url) | 1800 |
| [@alipay.data.bill.buy.query(支付宝商家账户买入交易查询接口)(API#alipay.data.bill.buy.query#api_url)](/API#alipay.data.bill.buy.query#api_url) | 600 |
| [@alipay.data.bill.accountlog.query(支付宝商家账户账务明细查询接口)(API#alipay.data.bill.accountlog.query#api_url)](/API#alipay.data.bill.accountlog.query#api_url) | 1800 |
| [@alipay.data.bill.transfer.query(支付宝商家账户充值,转账,提现查询接口)(API#alipay.data.bill.transfer.query#api_url)](/API#alipay.data.bill.transfer.query#api_url) | 600 |
| [@alipay.data.bill.bail.query(支付宝商家账户保证金查询)(API#alipay.data.bill.bail.query#api_url)](/API#alipay.data.bill.bail.query#api_url) | 600 |
| [@alipay.data.bill.balance.query(支付宝商家账户当前余额查询)(API#alipay.data.bill.balance.query#api_url)](/API#alipay.data.bill.balance.query#api_url) | 1800 |
| [@alipay.data.bill.balancehis.query(支付宝商家账户历史余额查询接口)(API#alipay.data.bill.balancehis.query#api_url)](/API#alipay.data.bill.balancehis.query#api_url) | 600 |
| [@alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址接口)(API#alipay.data.dataservice.bill.downloadurl.query#api_url)](/API#alipay.data.dataservice.bill.downloadurl.query#api_url) | 3 |