bank-reconciliation2026-07-15

Shopee、TikTok Shop 与 Stripe 净额结算银行对账:MDR 手续费与入账延迟处理指南

马来西亚电商对账实务指南:把 Shopee、TikTok Shop 与 Stripe 的销售总额、退款、MDR 手续费、延迟批次和银行净额入账完整拆解。

GetPay 财会团队
更新于: 2026-08-23

核心要点 (TL;DR)

  • 电商平台或支付网关的入账必须按结算批次核对:销售总额减退款、MDR 或网关手续费,再加减有报表依据的调整,结果才应等于银行收到的净额。
  • 若 RM10,000 销售已入账,平台扣除 RM300 手续费后汇入 RM9,700,结算分录为:借记银行 RM9,700、借记 6100 Bank Charges RM300、贷记 1200 Accounts Receivable RM10,000。
  • 销售日、平台结算日、出款日与银行价值日不能混为一谈;月底尚未到账的批次应留在平台应收或清算余额,不能因下月才收到现金而漏记本月销售。
  • GetPay 会从银行贷记交易提出匹配建议,并在确认后记录付款;目前多发票分配要求发票未收余额合计等于银行入账,因此不会从较低的净额自动推算 MDR 手续费。

先拆销售总额与银行净额,不要硬找一对一交易

Shopee、TikTok Shop 或 Stripe 的结算通常是批次对账,不是在银行流水中寻找一笔金额相同的订单。财会人员必须根据平台或支付网关的正式报表证明以下公式:

批次销售总额
− 客户退款与冲销
− MDR、网关、佣金及其他有报表依据的费用
± 有报表依据的调整
= 银行收到的净额

MDR 是商家折扣率或收单手续费,属于商业收费,并非马来西亚法定费率。不能沿用上一个批次的百分比,也不能因为差额看起来像手续费就自行补数;每次都应采用该结算报表实际列明的金额。Shopee、TikTok Shop 与 Stripe 的报表格式和交易标签可能不同,企业可以建立统一的内部对账表,但不能假设三个平台的原始栏位完全一样。

假设一个结算批次有 RM10,000 销售,没有退款,平台报表列明 RM300 手续费,银行最终收到 RM9,700:

批次项目金额(RM)核对证据
销售总额10,000.00与批次相连的订单明细合计
减:MDR 或网关手续费(300.00)结算报表的实际费用行
银行净额9,700.00出款报表与银行贷记

RM300 不是客户少付,也不是不明差额,而是平台在汇款前代扣的费用。若银行对账只寻找 RM10,000,这笔净额永远无法匹配;若直接把 RM9,700 当销售收入,则会同时低估销售和手续费。

净额结算应该怎样做复式分录?

正确分录取决于销售总额是否已经入账。GetPay 预设账目表内,与这个流程有关的惯例包括:

  • 1200 Accounts Receivable,应收账款;
  • 4200 Sales Revenue,销售收入;
  • 6100 Bank Charges,BANK_FEE 类别会映射至这个费用科目;以及
  • 已映射的银行科目,例如 1110 Public Bank、1120 UOB、1130 Maybank、1140 BSN 或 1150 CIMB。

若订单或发票在结算前已经确认销售,第一笔分录是:

总账科目借记(RM)贷记(RM)
1200 Accounts Receivable10,000.00
4200 Sales Revenue10,000.00

当 RM9,700 真正进入银行,而且结算报表证明 RM300 是手续费,就以总额清掉应收:

总账科目借记(RM)贷记(RM)
对应银行科目9,700.00
6100 Bank Charges300.00
1200 Accounts Receivable10,000.00
合计10,000.0010,000.00

这个做法保留完整销售额,让手续费在损益表中清楚呈现,同时清掉销售时产生的同一笔总额应收。

如果企业没有在订单层面记录收入,有些账务流程会采用合并分录:

借:银行(净额)
借:手续费费用
    贷:销售收入(总额)

只有在这项做法符合企业收入确认政策,而且不会与订单层面的销售重复时才可采用。若订单已贷记 4200,出款时再次贷记销售会导致收入重复。企业若需要专用的平台清算科目,应在自己的账目表中正式建立并记录政策;本次核对的 GetPay 程序文件没有定义 Shopee、TikTok Shop、Stripe 或通用“支付网关清算”科目代码,因此不能虚构一个号码。

为什么多张订单最后只形成一笔银行入账?

电商平台或支付网关在一个结算周期内收取多名客户的款项,再把应付商家的余额合并汇出。批次可能横跨不同订单日,平台完成结算后,银行也可能隔几天才显示款项。实际关系通常是一对多:

一笔银行贷记
      ↓
一个出款或结算批次
      ↓
多张订单、退款、手续费与调整

银行流水是最终现金证据,却不是完整销售明细。它可以证明价值日、金额、参考资料和交易说明,但单凭一行银行资料,无法证明批次包含哪些订单、退款和费用。

内部标准化的批次表至少应有:

  • batch_id:平台或网关可长期追踪的出款编号;
  • order_id:纳入该批次的每张订单或每笔交易;
  • transaction_type:销售、退款、费用、拒付、暂扣或调整,但只能采用报表确实支持的分类;
  • order_datesettlement_datepayout_datebank_value_date
  • gross_salesrefundsfeesadjustmentsnet_payout
  • currency;以及
  • 原始文件名称或报表期间。

这些是企业自行控制的对账栏位,不代表三个服务商都会输出同名标题。标准化之后仍须保存原始报表,确保下一位会计人员能够从源文件重做每一步转换。

电商结算报表应该按什么步骤核对?

1. 先冻结同一批报表

下载同一范围的订单或余额活动明细,以及结算或出款报表。记录导出时间、商家账号、币种、期间和文件名称。不能一边更新订单报表,一边拿旧版本出款报表对账,否则新增交易会令两边人口范围不同。

2. 先找批次编号,再看银行金额

优先使用服务商提供的 payout、settlement 或 transfer 编号,把相关销售、退款、费用和调整归入同一批。若交易尚未取得最终出款编号,就把它列入未结算滚存表,不要自行编造批次身份。

3. 只统一一次正负号

一种清楚做法是:销售总额存正数,退款和费用存为正数扣减栏,其他调整则采用一个有说明的正负规则:

gross_sales - refunds - fees + signed_adjustments = net_payout

若平台原始文件把手续费显示为负数,可以全程保留原始符号,也可以转换成正数扣减栏,但只能转换一次。先保留负数、计算时又再减一次,会令批次差额刚好变成手续费的两倍。

4. 先证明订单明细等于批次销售总额

把分配至该批次的订单行加总,再与报表的销售总额比较。差异可能来自重复订单、已取消订单、部分退款、币种不同或筛选期间不一致。银行净额不能当作填平差额的倒算数字。

5. 每项扣减都要有报表证据

逐项核对费用、退款、拒付、暂扣、物流相关款项、费用税或其他调整。不是每个平台、每个批次都会出现所有项目;同时,空白栏也不一定代表零,必须确认报表没有被筛选、分页遗漏或截短。

6. 公式平衡后才匹配银行

只有当销售总额转净额的公式完全成立,才把 net_payout 与银行贷记核对。检查金额、币种、银行价值日、交易说明、参考号码和一般到账时差。日期不同可能只是时间差;金额不同则必须有报表支持的解释。

7. 入账并保留双向审计轨迹

分录只记一次,并把批次表和源文件连接至该银行交易。复核者应能从银行贷记追到批次和订单,也能从任何订单反向追到批次与最终银行入账。

GetPay 实际会提出和确认什么?

GetPay 目前的结算匹配器读取银行交易的真实字段:dateamountrefdescriptionbanktxn_type。系统用这些资料比较仍未收清的发票字段:invoice_idinvoice_numbercustomer_nametotaloutstandingstatus

只有明确标记为贷记的银行行才会进入应收匹配。借记、空白 txn_type 或无法识别的方向都会被跳过,系统不会把不确定交易擅自当作客户付款。匹配器按照证据强弱提出三种候选:

匹配层级程序实际检查分数
exact_refrefdescription 出现完整发票号码,并防止号码尾端误碰1.0
amount_party银行金额等于发票未收余额,并与客户名称至少一个有效词相符0.7
amount_only银行金额等于发票未收余额,但没有客户名称佐证0.4

无论分数多高,结果都只是建议。这个纯匹配程序不会自动写入总账,也不会自动把发票标成已付款。

确认时必须提供 candidate_id、正整数 expected_version 和非空白的 adjudicated_by;也可用 bank_account_id 明确指定收款银行。若银行账户无法确认,或该账户被标记为跨实体账户,确认流程会拒绝入账。程序也会检查付款日是否落在开放会计期间。

若候选只有一张发票,记录金额最多只能达到该发票的未收余额,不能制造超额付款。若候选有多张发票,它们的 outstanding 合计必须在半仙误差范围内等于银行贷记,否则系统会把它视为含糊分配并拒绝确认。付款一律通过正式的发票付款路线记录,并使用可重复计算的幂等键,避免重试时有意外的第二笔结算。

这项限制正是净额电商对账的重点。若发票总额是 RM10,000,而平台扣除 RM300 后银行只收到 RM9,700,目前的多发票确认流程不会猜测 RM300 是手续费。财会人员必须先完成总额转净额的拆解,并采用有依据的费用处理;不能修改发票余额,只为了让候选通过。

月底尚未到账的结算批次怎样处理?

必须分开保存四个日期:

日期回答的会计问题
订单日或销售日按企业会计政策,基础交易在什么时候发生?
结算日平台何时把相关活动组成应付商家的批次?
出款日平台何时发起或申报转账?
银行价值日现金何时真正出现在企业银行账户?

例如,符合收入确认政策的 RM10,000 八月份销售已经在 8 月 31 日前发生,平台于 9 月 1 日完成结算,RM9,700 则在 9 月 3 日进入银行。八月份不能因为九月才收款就漏记销售;相关平台应收或清算余额必须跨月保留。

月底应编制滚存表:

期初未结算平台应收
+ 本期已确认销售总额
− 本期已确认退款与费用扣减
− 银行已收到的出款
± 有依据的调整
= 期末未结算平台应收

另外按批次编号列出在途项目、币种、金额、结算状态和预计收款银行。下个月只能根据实际银行贷记和正式结算报表清掉余额。迟到的出款属于时间差;无法解释的金额则是对账异常,两者不能混为一谈。

哪些异常绝对不能强行对平?

银行净额低于出款报表

检查币种转换、分拆出款、银行费用、暂扣,以及所用报表是否已经最终确定。只有可靠证据列明的项目才能入账,不能随意建立一行“MDR”来填平批次。

两个批次金额完全相同

金额不是长期身份。应结合批次编号、银行参考、日期、服务商账号和币种。GetPay 的 amount_only 层级分数较低,而且仍须人工或已确认代理人审核,就是因为相同金额本身不足以证明交易身份。

退款出现在后一个批次

原销售和后续退款应分别保留在各自批次的轨迹。不能因为本月报表出现冲销,就擅自改动上个月已经平衡并已出款的批次。

一笔银行入账涵盖多张发票,却扣除了手续费

多张发票未收余额会高于银行净额,因此 GetPay 目前的一对多分配理应拒绝。正确做法是根据报表记录费用并清掉总额应收,而不是修改银行金额、隐藏部分销售或把手续费当坏账。

收款银行无法确定

GetPay 会采取保守拒绝,因为系统无法确定款项是否跨越不同法律实体。应先选择已登记的收款银行,或修正银行账户设定;绝不能把一个实体收到的款项,当成另一个实体的普通客户付款来结算发票。

月底净额结算检查清单

  • 把订单明细加总至批次销售总额,并抽查真实订单值,不只比较行数。
  • 把退款、手续费和其他每项扣减连接至明确报表行。
  • 先证明总额转净额公式,再匹配银行。
  • 核对净额、币种、批次编号和到账时间是否对应同一笔银行贷记。
  • 确认收入没有在订单层面和出款层面重复记录。
  • 只有企业账目表和证据支持 BANK_FEE 处理时,才采用 6100
  • 月底未收到的出款继续列在应收或正式记录的清算余额。
  • 从期初未结算项目滚存至期末,并调查金额内容,不能只做笔数核对。
  • 保存原始报表、标准化批次表、银行行、分录和审核决定。
  • 在 GetPay 中把候选视为建议;总额与净额的会计差异解决后,才进行结算确认。

常见问题 (FAQ)

为什么 Shopee、TikTok Shop 或 Stripe 的银行入账无法直接对应一张订单?

银行通常收到一个涵盖多笔交易的净额批次。平台或网关可能先扣除报表列明的手续费、退款、拒付或调整,因此单一订单和整批销售总额都不一定等于银行金额。

净额结算中的 MDR 手续费应该怎样入账?

若销售总额已经计入收入和应收账款,应借记银行净收入、借记适当的手续费费用,并贷记被清掉的应收账款总额。GetPay 的预设惯例把 BANK_FEE 映射至 6100 Bank Charges;实际采用的分类仍须符合企业账目表和结算证据。

GetPay 能否自动把净额批次拆给多张总额发票并推算手续费?

目前的结算确认逻辑不能自动推算这项差额。GetPay 只有在多张发票的未收余额合计准确等于银行贷记时,才会确认一对多分配。若手续费令银行净额低于发票总额,应另行完成有依据的总额转净额会计处理,不能强行通过候选匹配。

月底电商对账应该采用销售日、结算日还是银行入账日?

收入采用符合企业会计政策的销售确认日,平台批次采用结算日,现金采用银行价值日。月底仍在途的款项继续列在平台应收或清算余额,直至银行真正收到款项。

净额结算批次需要保留哪些审计证据?

应保留订单明细、结算或出款报表、唯一批次编号、手续费与退款明细、银行交易行、会计分录及人工映射决定。复核者必须能从这些资料重做批次公式和期末未结算余额。

来源与权威依据

Direct LHDN MyInvois Submission Engine

Ready to automate your Malaysian e-invoicing & bookkeeping?

GetPay handles 100% compliant e-invoices, multi-bank reconciliation, and statutory payroll out of the box.

Get Started Free