跳转到主要内容

SaaS 公司如何对账 Stripe 账单、订阅和发票,而不重复计算收入

发布日期 阅读需 2 分钟Mike ThriftMike Thrift
SaaS 公司如何对账 Stripe 账单、订阅和发票,而不重复计算收入
本页总览

你的 Stripe 后台显示上个月收了 48,000 美元。你的损益表显示 52,000 美元。你的银行账户显示存款总额 41,000 美元。这三个数字都来自同一批客户支付同一批发票——那么哪个才是你真正的收入?

如果你经营一家基于 Stripe Billing 的 SaaS 公司,这个三数不匹配并不是你工具的 bug。它是一起经济事件——客户为订阅付费——出现在四个不同位置的可预见结果:订阅、发票、付款和提现。把其中不止一个当作收入记账,你就会重复计算。记错那一个,你的税务、你的指标,以及未来任何尽职调查,全都建立在虚高的数字之上。

本指南会确切告诉你每个 Stripe 对象在你的账本中应归何处,会绊倒大多数 SaaS 创始人的三个重复计算陷阱,以及一套能让你的月度结账精确到分的清算账户工作流。

为什么 Stripe 让重复计算如此容易​

传统开票每笔销售只给你一份文件:一张发票。Stripe Billing 却为同一笔钱给你一串相互关联的对象:

  1. 订阅 — 循环协议(你的 99 美元/月套餐)。
  2. 发票 — Stripe 每个周期生成的账单,包含按比例计费、信用额度和税费。
  3. 付款(扣款) — 针对该发票发生的实际资金流动。
  4. 提现 — Stripe 发给你的批量银行存入,已扣除手续费、退款和调整项。

每个对象都有自己的后台、自己的报表、自己的总额。一个创始人如果把"发票总额"当作收入汇总,又把"提现存款"记为收入,就把同一笔钱记了两次。再加上年度预付款——今天一张 12,000 美元发票对应十二个月服务——收付实现制思维就会在一月记入整整一年的收入。

能防止这一切的核心原则是:每一美元客户资金在赚取时作为总收入恰好记录一次,其余一切都是手续费、退款、时间差异或资产负债表变动。 本文余下部分讲的就是如何应用这一原则。

陷阱一:把发票和提现都记为收入​

这是 SaaS 记账中最常见的重复计算。症状非常明显:你损益表上的收入大致等于发票加上银行存款,而且你的账本显示出的增长永远得不到银行余额的印证。

当客户支付一张 1,000 美元的月发票时,实际发生的是:

  • Stripe 创建一张 1,000 美元发票并收取 1,000 美元付款。
  • Stripe 扣除其处理费(比如 30.30 美元)以及任何退款。
  • 几天后,Stripe 把你可用余额批量打包成一笔提现存款。

发票和提现是同一笔 1,000 美元的两种视角——不是 1,000 美元收入再加另外 970 美元收入。正确的处理是:

  • 在发票被支付时(或按权责发生制在赚取时)记录一次 1,000 美元总收入。
  • 把 30.30 美元手续费记为处理费用,而不是收入的抵减。
  • 把 提现记为一笔转账,从你的 Stripe 清算余额转到银行账户——绝不算收入。

把手续费与收入对冲(只把 969.70 美元存款记为销售)是镜像中的错误:它低估总收入,并隐藏了可抵扣的处理成本。在七位数的收入线上,这些被隐藏的手续费每年轻松达到数万美元的抵扣损失和误导性指标。

清算账户的解决方案​

在你的会计科目表中,把 Stripe 当作它自己的迷你银行账户——一个清算账户。每一笔 Stripe 事件都先落到那里:

  1. 客户付款成功:借 Stripe 清算 1,000 美元,贷收入(或递延收入,见下文)1,000 美元。
  2. Stripe 收取手续费:借处理费用 30.30 美元,贷 Stripe 清算 30.30 美元。
  3. 发出退款:借退款(收入抵减)并贷 Stripe 清算。
  4. 提现到达银行:借银行账户,按提现金额贷 Stripe 清算。

提现入账后,清算账户里应该只剩你未结清的 Stripe 余额。如果它月复一月地留着一笔不断增长的余数,那说明有东西在渗漏——通常是未记录的退款或被遗漏的手续费。那笔余数就是你的早期预警信号,也是清算账户存在的理由。

陷阱二:把年度预付款一次性确认​

客户为年度套餐预付 12,000 美元。在收付实现制下,你可能把这一月收入称作 12,000 美元。在权责发生制下——投资者、贷款人和 GAAP 都期望如此——你只赚取了一个月服务,还欠十一个月。

正确处理是把确认分摊到服务期内:

  • 收款时:借 Stripe 清算 12,000 美元,贷递延收入(一项负债)12,000 美元。此时还没有收入。
  • 每个月:借递延收入 1,000 美元,贷订阅收入 1,000 美元。

把整张发票在第一个月记为收入,会高估一月利润 11,000 美元,并低估接下来十一个月。它还会破坏收购方真正承保的指标:月度经常性收入、净收入留存率和递延收入余额全都来自已赚取收入,而非已收现金。

按比例计费、升级和周期中变更​

Stripe 用按比例计费发票处理套餐变更——对旧套餐未使用时间的抵扣,加上对新套餐的收费。这些净额通常很小,但每一腿仍需正确处理:抵扣减少收入(或增加递延收入),新收费遵循同样的随时间赚取规则。只记净按比例计费金额的捷径对月度套餐通常可行,但对年度套餐升级必须重建递延收入计划,否则你的负债余额会偏离现实。

优惠券和客户信用额度也需要同样的谨慎。一张标价 1,000 美元发票上的 20% 优惠券意味着总收入 800 美元——而不是 1,000 美元收入再加 200 美元营销费用。记录你真正赚到的部分。

陷阱三:把退款、争议和信用额度算作新费用——或干脆忽略​

退款减少收入;它不是单独的经营费用,更不是隐形的。当你退款一张 500 美元发票:

  • 借退款(一个与总收入对冲的收入抵减账户)500 美元。
  • 贷 Stripe 清算 500 美元。

为什么用收入抵减而不是费用?因为总收入减退款等于净收入——你的纳税申报表、董事会材料和单位经济学都想要的那个数字。把退款埋进一般费用,既虚增你的顶线又虚增成本结构,还让退款率分析变得不可能。

拒付和争议需要过渡处理:争议开启时,把金额转到争议应收或拒付损失账户,而不是让已确认收入纹丝不动。如果你赢了,就冲回;如果你输了,它就成为最终收入抵减,再加上任何争议费作为费用。而付款失败和催款重试,在钱真正流动之前什么都不触碰——一张未付发票是应收账款,不是重复收取的收入。

你的 Stripe 月度对账清单​

月底后留出一个小时,按顺序处理这张清单。每一步都能抓住不同类别的错误:

  1. 拉出提现对账报告。 对当月存入的每一笔提现,确认总扣款减去手续费、退款和调整项后,精确到分等于银行存入。
  2. 对账清算账户。 其期末余额必须等于你未结清的 Stripe 余额(待处理提现加上任何预留冻结)。结账前调查任何其他余数。
  3. 结转递延收入。 期初余额加上新增预付款减去已确认收入,必须等于期末余额,且期末余额必须与 Stripe 中未实现订阅价值之和相符。
  4. 把发票与已确认收入匹配。 当月已确认订阅收入总额应与已赚取发票行项目对账——在优惠券、信用额度和按比例计费之后——而不是与已收现金对账。
  5. 结清退款和争议。 Stripe 中的每笔退款都必须出现在收入抵减中;每个未决争议都必须留在其过渡账户中,而不是已确认收入里。
  6. 检查多币种和税费。 如果你以多种货币开票,确认汇兑损益与收入分开入账。确认代收的销售税和增值税留在应交税费负债中,绝不在收入里。

当六步全部对上时,你的三个数字终于彼此一致:Stripe 总额活动、损益表上的已赚取收入,以及银行存款,由一条干净的手续费、时间差异和资产负债表变动轨迹连接起来。

承担繁重工作的报表和自动化​

你不必从电子表格搭建这套工作流。Stripe 自带的报表栈直接映射到清单:

  • 提现对账报告逐项列示每笔银行存入中的每笔扣款、退款、手续费和调整——这才是你的会计师真正想要的文件。
  • 余额交易是流过 Stripe 每一分钱不可变的账本。由于 Stripe 创建后从不改动余额交易,它们是结账的事实来源,而非扣款或发票。
  • 收入确认报告按 ASC 606 和 IFRS 15 自动化递延收入结转,把订阅和发票转化为可供审计的日记账分录。

对于持续自动化,会计集成可以每晚把总销售、手续费和退款过账到清算账户,而提现事件的 webhook 可以触发当日匹配。即使有自动化,也要保留月度清单:软件只过账被告知的内容,而被跳过的映射会一直静默失败,直到有人去对账。

从第一天起保持订阅收入干净​

Stripe Billing 对马虎的账本尤其不宽容,因为每一美元都出现在这么多地方——订阅、发票、付款、提现——每一处都是重新把它算一遍的新机会。设置清算账户、随时间确认预付收入并按月对账的创始人,能在问题还是一行修复时抓到它们,而不是在融资或收购尽职调查中变成重述级别的清理项目。

准确的订阅会计始于第一次就把每笔事件记入正确的账户。Beancount.io 提供纯文本会计,让你对财务数据拥有完全的透明度和控制——没有黑箱,没有供应商锁定。免费开始使用,看看为什么开发者和财务专业人士正在转向纯文本会计。

来源:https://beancount.io/zh/blog/2026/10/11/reconcile-stripe-billing-subscriptions-invoicing-double-counting-saas-guide

发布日期: 2026年10月11日