对账
Quick Reference
What结算对账(Reconciliation)
Why将每笔收费与其结算记录匹配,在问题扩大前发现差异
Reading Time12 分钟
Difficulty中级
Prerequisites结算概述 → 查询收款列表 API
什么是对账
对账(Reconciliation)是将系统中的每笔收费与其对应的结算记录进行匹配的过程。这确保了每笔收到的付款都已正确结算、费用按预期扣除,且没有资金遗漏。
对账流程
1
获取已结算的收费
使用结算状态筛选条件查询收费列表 API,获取指定时间段内所有已结算的收费。
2
与银行入账匹配
将结算记录与银行对账单进行比对。每个结算批次应对应一笔银行入账。
3
核实费用明细
确认 MDR、Interchange 和处理费与您的合同条款一致。
4
标记差异
识别已支付但尚未结算的收费,或结算金额与预期净值不匹配的情况。
查询已结算的收费
GET
/api/v1/bank/wallet/charge/Bearer Token使用结算筛选条件列出收费使用收费列表端点的查询参数按结算状态和日期范围进行筛选:
- cURL
- Python
curl -G https://core-manager.a55.tech/api/v1/bank/wallet/charge/ \
-H "Authorization: Bearer $ACCESS_TOKEN" \
--data-urlencode "status=paid" \
--data-urlencode "settled=true" \
--data-urlencode "settled_after=2026-01-01T00:00:00Z" \
--data-urlencode "settled_before=2026-01-31T23:59:59Z" \
--data-urlencode "page_size=100"
import requests
response = requests.get(
"https://core-manager.a55.tech/api/v1/bank/wallet/charge/",
headers={"Authorization": f"Bearer {access_token}"},
params={
"status": "paid",
"settled": "true",
"settled_after": "2026-01-01T00:00:00Z",
"settled_before": "2026-01-31T23:59:59Z",
"page_size": 100,
},
)
charges = response.json()["results"]
for charge in charges:
net = charge["gross_amount"] - charge["total_fees"]
assert abs(net - charge["net_amount"]) < 0.01, f"收费 {charge['charge_uuid']} 金额不匹配"
结算报告字段
结算报告中每笔收费包含以下字段:
| 字段 | 说明 |
|---|---|
charge_uuid | 收费的唯一标识符 |
type | 支付方式(credit_card、pix、boleto 等) |
status | 收费状态(paid、refunded 等) |
gross_amount | 原始收费金额 |
mdr_amount | 已扣除的 MDR 费用 |
interchange_amount | Interchange 费(仅限卡支付) |
processing_fee | 每笔交易处理费 |
fx_fee | 货币转换费(仅限跨境交易) |
net_amount | 存入您账户的金额 |
settled_at | 结算完成的时间戳 |
settlement_batch_id | 将同一银行转账中结算的收费归为一组 |
chargeback_amount | 因退单扣除的金额(如有) |
争议处理
退单扣款
当持卡人对一笔收费提出争议且争议失败时,退单金额将从您的下一个结算批次中扣除:
| 扣款组成 | 说明 |
|---|---|
| 原始收费金额 | 全额交易金额退还给持卡人 |
| 退单手续费 | 每笔退单的管理费(取决于合同) |
| Interchange 退还 | 原始 Interchange 退还给发卡行 |
高退单率影响
退单率过高(超过交易量的 1%)可能触发额外费用、资金冻结或账户审查。请实施反欺诈措施以减少争议。
自动化对账最佳实践
每日对账
每天运行对账以尽早发现问题:
from datetime import date, timedelta
yesterday = date.today() - timedelta(days=1)
settled = fetch_settled_charges(date=yesterday)
deposits = fetch_bank_deposits(date=yesterday)
settled_total = sum(c["net_amount"] for c in settled)
deposit_total = sum(d["amount"] for d in deposits)
if abs(settled_total - deposit_total) > 0.01:
alert_finance_team(settled_total, deposit_total, yesterday)
对账检查清单
| 检查项 | 验证内容 |
|---|---|
| 完整性 | 每笔 paid 状态的收费都有对应的结算记录 |
| 准确性 | 净额 = 总额 - MDR - Interchange - 处理费 - FX |
| 时效性 | 收费在其支付方式对应的预期窗口期内完成结算 |
| 退单 | 所有退单扣款与争议记录匹配 |
| 银行匹配 | 净结算总额与该期间的银行入账一致 |
幂等性
始终使用 charge_uuid 和 settlement_batch_id 作为唯一键进行对账。如果您重新处理结算报告,这些 ID 可以防止在您的会计系统中产生重复条目。
多服务商对账
A55 汇集来自 29 家以上收单机构的结算数据,每家机构都有不同的报告格式和时间表。API 将所有数据标准化为一致的数据结构。但部分服务商按周而非按日结算——如果您发现某种支付方式的每日结算出现间断,请查看您合同中该服务商的结算周期。