> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 结算报告与导出

> Waffo 如何计算结算报告中的每一个金额、每一列适用哪条取整规则、如何使用 Settlement History、Settlement Batch 和 Customized Export，以及为什么结算文件可能缺失或为空。

本页解释**你结算报告中的数字是如何产生的**，以及如何从商户 Portal 中导出数据。
字段定义、CSV 布局和 SFTP 路径见 [对账报告](/docs/zh/developer-docs/tools-and-references/references/reconciliation-reports)。

## 每个金额是怎么计算的？为什么我的费用差了一分钱？

每一明细行按交易、以结算币种计算：

| 交易类型 | Settlement Amount |
| - | - |
| `PAYMENT` | Order Amount（结算币种）− Fee − Tax |
| `REFUND` | −Order Amount（结算币种）− Fee − Tax（+ 退还费用，如果你的合约有的话） |
| `CHARGEBACK` | −Chargeback Amount（结算币种）− Chargeback Fee |

一分钱的差距来自取整规则，各列不同：

| 规则 | 含义 | 应用于 |
| - | - | - |
| `ROUND2` | 四舍五入，2 位小数 | 金额换算为结算币种，以及汇总 `TOTAL` |
| `ROUNDUP2` | **向上**取整，2 位小数 | 费用金额、税额 |
| `ROUNDDOWN2` | **向下**取整，2 位小数 | 退款行上的退还费用 |

在 2 位小数账户上费用和税向上取整，所以你用普通四舍五入算出的数字可能比报告低一分。
在 **6 位小数**账户上，费用改为**在 6 位小数上四舍五入**——见
[结算计算详解](/docs/zh/support/settlement-calculation-explained)。
拒付费用按该案件报告的金额直接采用，
不按你的费率重新计算，所以它永远不会与费率 × 金额的公式相符。汇总 `TOTAL` 是明细行求和后
在最后取整一次：`TOTAL = ROUND2(Σ detail Settlement Amount)`。

## 退款时我能拿回原始支付费用吗？

如果你的合约包含退还费用，退款行会把它作为该行 Settlement Amount 的**正**分量退回，
按原始交易的比例分摊：

```
Returned fee = ROUNDDOWN2( refund amount / original order amount × original fee amount )
```

结算币种的数字以同样方式分摊，使用 `ROUND2`。部分退款只退回对应份额；全额退款退回全部。
合约中没有退还费用时，该行没有这一分量。

## 为什么我的订单币种与结算币种相同时，Forex Currency Pair 仍有值？

费用和税可以以第三种币种计费。货币对按优先级解析——第一个匹配的条件胜出：

| 评估顺序 | 条件 | 货币对 |
| - | - | - |
| 1 | Settlement Currency ≠ Order Currency | `Settlement/Order` |
| 2 | Settlement Currency ≠ Fee Currency | `Settlement/Fee` |
| 3 | Settlement Currency ≠ Tax Currency | `Settlement/Tax` |
| — | 以上都不满足 | 空（不涉及外汇） |

只要 `Forex Currency Pair` 为空，`Forex Rate` 就为空。

## Settlement History 还是 Settlement Batch——我该用哪个？

| 菜单 | 单位 | 默认窗口 | 用途 |
| - | - | - | - |
| **Settlement History** | 一条结算指令 | 最近 90 天（UTC+8） | 状态（`Succeeded` / `Failed` / `Unsettled`）和执行时间线，包括重试 |
| **Settlement Batch** | 商户 + 实际结算日期 + 结算币种 | 最近 30 天 | 核对到达你结算账户的金额，以及下载批次交易明细 |

仍处于初始状态的指令不会列出。批次按**结算币种**打包，所以一个批次和一套文件覆盖其中的
每一种订单币种，按交易显示外汇汇率；日期字段标注为 `(UTC+8)`。`Settlement Original Amount`
是以**订单币种**汇总的净金额；`Settlement Target Amount` 是同一笔钱**换算后**的金额——
两种币种相同时二者一致，换算完成之前为空而不是数据缺失。

## Customized Export 能给我什么？在哪里下载？

| 选项 | 可选值 |
| - | - |
| 时间维度 | Payment Date 或 Settlement Date |
| 币种 | 一种币种，或全部币种——每日汇总用订单币种，其他两种类型用结算币种 |
| 导出类型 | *Transaction Settlement Detail*、*Daily Settlement Summary* 或 *Selected Period Summary* |
| Report Language | 明细和期间汇总类型为 English、中文 或 にほんご；每日汇总为英语 |

所选类型的所有列都会输出；没有按列选择。在每日汇总中，`Order Amount` 是
**支付 − 退款 − 拒付**，不是支付总额。当交易币种等于费用币种时一天为一行；当它们不同、
或存在多种费用币种时，该天按每种费用币种拆分为一行，税币种折入费用币种。汇总需要单一结算
币种，所以涉及多种币种时导出会拆分为独立文件。

明细导出按每文件 **60,000 行**分页并异步运行——启动导出，然后从 **Reports** 模块获取文件。
完整的选项集、跨度限制和列布局见
[结算报告模块](/docs/zh/support/settlement-reports-export-faq)。

## 批次交易明细文件里有什么？

从批次下载它，以逐笔交易对照你的结算账户条目进行核对。文件名为
`SETTLEMENT_{MID}_{settlement success date YYYYMMDD}_{SETTLEMENT_REFERENCE_ID}.csv`，
其列的设计便于与你自己的记录关联：结算参考号和日期、你自己的订单 / 支付请求 / 退款订单
标识符、Waffo 的订单和退款标识符、交易类型（支付或退款）、交易成功时间，以及订单、费用、
税和结算的金额/币种对。精确的列标题及其格式请始终阅读
[对账报告](/docs/zh/developer-docs/tools-and-references/references/reconciliation-reports)
和 [结算文件规范](/docs/zh/support/settlement-file-specification-faq)，
而不是从本页硬编码名称。

## 今天没有结算文件——是结算失败了，还是文件失败了？

默认情况下，没有结算就没有文件：`GENERATE_ON_VALID_SETTLEMENT` 只在发生有效结算时才生成
明细和汇总文件。要始终收到文件，以便"没有可结算的内容"永远不会与"文件生成问题"混淆，
请联系客服把你的账户切换为 `GENERATE_ALWAYS`。此后你会在**每个计划结算日期收到一份仅含
表头的文件**，包括被延期的日期，文件名使用全零批次 id 占位符：

```
settlement_details_{merchant id}_S000...000_{settlement date}_{settlement currency}.csv
settlement_summary_{merchant id}_S000...000_{settlement date}_{settlement currency}.csv
```

这些占位符仅是投递信号——商户 Portal 中不会创建 Settlement Batch 记录，你可以据此把它们
与真实结算区分开。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.