Stripe 自动扣款和发送发票对付款方有什么区别

一句话答案: 自动扣款(charge_automatically)是 Stripe 主动从客户的默认支付方式发起扣款来支付账单,要求即时付款;发送发票(send_invoice)是生成并发出账单,由付款方手动完成支付,Stripe 不主动发起扣款。两者是两种不同的收款方式,不是“先发后扣”的同一流程;判断依据是账单上的 collection_method 属性,而不是“有没有收到邮件”。

自动扣款、发送发票、到账
本文涉及的概念与核对环节。

一、机制上的区别

collection_method 是 Stripe 发票和订阅上的一个属性,用来指定这张账单怎么收钱。

charge_automatically:Stripe 自动向客户的默认支付方式发起扣款,用来支付该账单。对订阅来说,每个计费周期生成的账单会按这种方式自动扣款。资料中的表述是自动扣款要求即时付款——这是对付款时点的要求,不等于承诺扣款一定即时成功。

send_invoice:生成一张需要手动付款的账单并发送给付款方。与自动扣款要求即时付款不同,你可以给客户一个可调整的付款窗口,并借助托管发票页面、邮件通知和提醒来推动付款。在 send_invoice 下,Stripe 不主动发起扣款,是否收款取决于付款方是否在窗口内手动完成支付。

关键点:发送不等于收款。 发出账单只表示付款请求已送达,钱是否到账,取决于付款方是否实际支付。

二、订阅场景下要特别注意

如果通过 Subscriptions API 修改订阅的 collection_method,只有之后新生成的订阅账单才会用新的收款方式,已经生成的账单不受影响。也就是说,改设置不等于改历史账单,核对时要看具体那一期账单生成时用的是哪种方式。

另有一个边界情况:不收集支付方式也可以创建免费试用订阅,并把 collection_method 设为 charge_automatically。试用期内客户可通过 Customer portal 添加支付信息,试用结束后 Stripe 扣默认支付方式;也可以配置成客户到期仍未添加支付方式时暂停或取消订阅。这里要注意,试用期结束能否扣到钱,取决于客户有没有补上支付方式。

三、可执行的核对动作

  1. 看账单属性:打开具体那张发票或订阅,确认 collection_method 是 charge_automatically 还是 send_invoice。不要凭“有没有发邮件”判断。
  2. 区分“已发送”和“已支付”:在 send_invoice 下,发票发出后状态仍可能是待支付;只有付款方完成支付,才谈得上收款。
  3. 检查付款窗口与提醒:send_invoice 可配置到期日,也可配置最多三条提醒,提醒窗口从到期前 10 天开始、到到期后 60 天结束。这是提醒可覆盖的时间范围,不是对到期日本身的限制。核对时确认到期日和提醒是否符合你的预期设置。
  4. 改过订阅收款方式的:只核对改动之后新生成的账单,旧账单沿用旧方式。

四、一个可复算的例子

假设某订阅每月 1 日生成账单,金额 100 元,客户已有一个有效的默认支付方式。

  • 若为 charge_automatically:每月 1 日生成账单后,Stripe 向默认支付方式发起 100 元扣款,按即时付款的要求处理。
  • 若为 send_invoice:每月 1 日生成并发送 100 元账单,付款方需在设定的到期日前手动支付;Stripe 不会自动扣这 100 元。若到期未付,账单保持未支付,提醒按配置发出。

同一笔 100 元,两种方式的差别不在金额,而在“谁发起付款动作”:前者由 Stripe 发起扣款,后者由付款方主动支付。

五、适用判断

如果客户有可用的默认支付方式、你希望按周期自动发起扣款,charge_automatically 更直接。如果需要给客户一个可调整的付款窗口、走手动付款流程,或使用只支持 send_invoice 的支付方式(例如银行转账),则应使用 send_invoice。具体选哪种,取决于客户的支付方式和你的收款节奏要求。

原始资料

docs.stripe.com

上一篇 Stripe 账单扣款失败后,怎样区分重试与已付款