Stripe收款教程进阶:订阅、发票、Webhook怎么设,标准费率2.9%+30¢

倪叶明

作者

更新于

Stripe首页把支持的币种和支付方式列成一长串,可它的支持国家/地区清单里没有中国大陆。同一家公司,两个页面,反差就摆在那儿。

它是一家把接受付款、企业银行和自定义收入模式打包成接口的公司,客户的钱进它的系统,你在后台管订阅、发票和提现。费用按交易走,开户不收费,也没有月费。这套东西装在你的站和客户之间,从哪个页面下、钱怎么回来,新手入门那篇讲的是全流程。收款这块容易踩坑的基本都在这几件事上。

  • 手动输入卡加收0.5%,国际卡加收1.5%,需要货币转换时再加1%。
  • collection_method是charge_automatically的订阅,首张发票open之后客户有23小时付款,超时订阅转incomplete_expired、发票变void。
  • Webhook端点必须是公开可访问的HTTPS URL,一个账户最多注册16个事件目的地。
  • 一张发票最多250个发票项目。
  • 每笔争议收$15;Instant Payouts收1.5%,最低50¢。
项目 结论
谁家的 Stripe官方直营,订阅、发票、Webhook、提现都在同一个Dashboard里管
支持多少币种和支付方式 官方口径135+币种和支付方式;支付方式单列是125+,自定义支付方式也能接
标准费率 2.9%+30¢,收的是每笔成功的境内卡交易
有没有月费 没有setup fees、monthly fees、hidden fees,按用量付费
大陆在不在支持清单 官方支持国家/地区清单里没有中国大陆,以官方为准
提现方式 Instant Payouts几分钟内到符合条件的借记卡或银行账户,按标准时间表提现免费

这六行里最容易看漏的是最后两行。清单里有没有中国大陆,提现走哪条路,两件都不在2.9%那个标价里。

Stripe是什么:135+币种和支付方式支持的收款基础设施

Stripe对自己的定性是帮企业把收入做大的金融基础设施,落到功能上是三件事:接受付款、处理企业银行、实现自定义收入模式。官方的说法是从第一笔交易一直管到第十亿笔,这个跨度说明它不是只做一个结账按钮。

接受付款这一层,它把卡、各地流行的本地支付方式和自定义支付方式放在同一套接口下面。支付方式多,你要设的地方就多,货币、支付方式、发票、事件通知各自有开关。账户开好只是把门打开,后面每一项都得自己配。

企业银行那块跟收款放在同一个账户体系里,余额、提现记录、交易明细都在一个后台看。自定义收入模式说的是订阅、按量计费这类不走单次收款的卖法,用Billing这套东西实现,收的还是同一笔钱,只是收的节奏不一样。

发票在官方定义里是逐项列出商品和服务的一份清单,带成本、数量和税费。这句话听着平淡,做B2B的人都懂,客户要报销、要入账、要走审批,靠的就是这张清单上的行项目和金额。所以发票这块的设置比收款本身更容易出问题。

把这三件事分开看,你就知道账户开好之后真正花时间的地方在哪:选哪几种支付方式、发票什么时候finalize、订阅状态怎么同步到自己站上。这些跟能不能开户是两回事,开户只是第一道门。

Stripe订阅怎么设:从incomplete到active的状态链

在Dashboard或用Subscriptions API建订阅

建订阅有两个入口,Dashboard和Subscriptions API,建出来的Subscription对象带着三样东西:订阅的客户、产品、价格。另外还有一个status,表示这笔订阅现在处在生命周期的哪一段。

要客户马上付款的订阅,Stripe会同时建一张Invoice和一个PaymentIntent。订阅刚建出来是incomplete,客户把首张发票付掉,状态才变成active。没付款之前,别在自己系统里把权限开出去。

首张发票的23小时窗口

collection_method设成charge_automatically的订阅,创建时Stripe会生成一张open状态的发票,客户有23小时付款。过了这个点还没付,订阅更新成incomplete_expired,发票变成void。

这个窗口对做会员站的人最要命。客户点了订阅、跳到支付页、把页面关了,这笔订阅就停在incomplete,23小时之后自动作废。你要做的是把付款入口留在客户能找回来的地方,订阅页、邮件、账户中心都行,别只在结账那一屏出现一次。

七个状态,代码认状态不认时间

订阅状态一共七种:trialing、active、incomplete、incomplete_expired、past_due、canceled、unpaid。能对一笔订阅做什么操作,取决于它当时的状态,这一点在写代码的时候要当成硬规则。

官方写清楚行为的是三个。incomplete是刚建出来还没付首款;incomplete_expired是23小时窗口关掉之后的样子,对应的发票已经是void;active是付款完成之后的状态,这时Stripe会给订阅产品关联的每个功能建一条active entitlement。

entitlement这条最容易被漏掉。自己另存一个到期时间,容易出现Stripe那边订阅已经取消、自己站上还在放行的情况。把功能权限挂在entitlement上,状态一变权限跟着变,少维护一层逻辑。

你的客服话术、邮件模板、后台筛选,都按这七个词来分,不要用「有效」「失效」两个词去套,套不上。

取消和计费周期怎么排

订阅可以在任何时间取消,官方给了两种排法:到计费周期结束时停,或者跑完设定的几个计费周期之后停。前者对应客户把这一期用完,后者对应按月付到某个节点的促销或者合约。

取消在接口里是一个参数的事,客户侧的体验差别却很大。做之前把两种排法定下来,写进服务条款,比等客户来问「我这个月还能不能用」再临时处理省事。

Stripe发票怎么开:draft到paid的状态与信用余额规则

五个状态,finalize是分界线

发票状态有五种:draft、open、paid、void、uncollectible。新建的发票是draft,Stripe在准备让它能被付款的时候把它finalize成open,能被付款是从open开始的。

Stripe收款教程进阶:发票finalize前后draft变open的状态
实操截图:发票finalize之后从draft变open,客户才能付款。

finalize这个动作值得单独拿出来说,因为它决定了客户什么时候看到账单。批量开票的时候,先把开票时间和finalize的时间对齐再点,不然账单会在你还没准备好的时候变成可付款状态。

客户发票余额:负数是credit,正数是debit

发票余额是一本发票调整的账,记的是你跟这个客户之间谁欠谁。负值是credit,意思是你欠客户钱,可以抵下一张发票;正值是debit,意思是客户欠你钱,会加到下一张发票上。默认情况下,余额自动应用到客户下一张finalize的发票。

三条规则要记住。余额和发票的货币必须一致,美元余额抵不了欧元发票;有现金余额的客户必须保持零或负余额,发票余额只能减少下一张发票的应付金额;通过开启了invoice_creation的Checkout Sessions建出来的发票,不吃这套余额。

记错了只能补一笔反的

所有对发票余额的改动都会记成Transactions。交易一旦创建,能改的只有描述和元数据,其他属性改不了,也删不掉。所以每一笔调整在点之前都要把金额和币种想清楚。

要撤销一笔credit或者debit,办法是建一笔相反的调整。官方给的例子是:给客户credit 10 USD,就在新交易里debit客户10 USD。对账的时候这两笔都要留,别只留后面那笔,不然账面上会多出一笔来路不明的余额。

credit note用在open和paid上,结果不一样

对着open状态的发票开credit note,作用是减少应付金额,减到零,这张发票就转到paid。

对着已经paid的发票开credit note,credited的那笔钱有三种去处:退回客户原来用的支付方式、转到客户的信用余额留着抵以后的发票、或者记为在Stripe之外已经处理过的credit。三种选一种,对应三种对账方式。退钱最干净,转余额要盯币种,记站外要自己留凭证。

Stripe手续费怎么算:2.9%+30¢之外还有哪些加项

先把官方价格表摊开。标准定价是2.9%加30¢,收的是每笔成功的境内卡交易,没成功的不收。

Stripe收款教程进阶:官网价格表标准定价2.9%+30¢与加项
官网说明截图:标准定价2.9%+30¢,手动输卡、国际卡、货币转换是另外的加项。
项目 金额 条件
标准定价 2.9%+30¢ 每笔成功的境内卡交易
手动输入卡 0.5% 手动输入卡
国际卡 1.5% 国际卡
货币转换 1% 需要货币转换时
Klarna 5.99%+30¢ 每笔成功的Klarna交易
ACH Direct Debit 0.8%,上限$5.00 ACH Direct Debit
稳定币 1.5% 交易金额的USD部分
争议收到费 $15.00 每收到一个争议
争议回应费 $15.00 每手动回应一个争议,胜诉退还,败诉不退
争议上诉费 $15.00 每上诉一个争议,即使胜诉也不退
Smart Disputes 30% 每个胜诉争议的争议金额,败诉不收
Instant Payouts 1.5%,最低50¢ Instant Payouts的金额
货币转换(多币种结算) 起价0.5% 转换金额
多币种价格锁定 1%,锁定起价0.07% 每笔成功交易
自定义域名 $10.00/月 在Stripe托管支付页或客户门户用自有域名
一次性购买后自动生成发票 0.4%,每张发票上限$2.00 交易总额
Managed Payments 3.5% 每笔成功交易,另加Payments费用

这张表里真正会咬人的是几行加项。手动输入卡多0.5%,国际卡多1.5%,需要货币转换再加1%,做跨境生意这三项经常叠在同一笔订单上。争议那三行更狠:收到一个争议$15,手动回应再$15,胜诉退还、败诉不退,上诉$15即使胜诉也不退。Smart Disputes按胜诉争议金额的30%收,败诉不收。

标准定价之外没有setup fees、monthly fees或者hidden fees,官方定价页上就是这么写的。也就是说没有月租,做一单收一单的钱,账户放着不动不产生费用。

Managed Payments是另一条线:在标准处理费之上,每笔成功交易再加3.5%。这3.5%里包含全球间接税,也就是销售税、VAT、GST,还包含欺诈预防、争议响应和Link的交易级支持。Billing和本地支付方式这类可选产品另外算。没有setup fees,也没有月最低,用多少付多少。

要不要上Managed Payments,看两件事:你卖的是不是数字产品和软件订阅,你的客户是不是分散在多个税区。它是给卖数字产品和软件订阅的企业设计的,把税务、欺诈、争议和客户支持这几块接过去。

Stripe Webhook怎么配:HTTPS端点、签名密钥与三条验收标准

Workbench里五步建一个端点

入口在Workbench的Webhooks标签。点Create an event destination,选Your account表示只听自己账户的事件,然后挑payload格式,Thin是官方推荐的,另一个是Snapshot,接着选要收的事件类型,目的地类型选Webhook endpoint,把Endpoint URL填进去。

Stripe收款教程进阶:Workbench里建Webhook事件目的地的设置画面
实操截图:Workbench的Webhooks标签里建事件目的地,端点必须是公开可访问的HTTPS URL。

端点必须是公开可访问的HTTPS URL,这是硬条件。建之前先把地址准备好,本地调通了再回来点保存。

whsec_开头的密钥,只在设置页那一下

端点建好,设置页会出现一个以whsec_开头的签名密钥,点Reveal secret复制下来,填进你的handler。这个值只放在服务端处理请求的那段代码里。

Stripe要求用原始请求体做签名验证,框架不能动它。不少框架默认会把请求体解析再序列化一遍,这一步要关掉,否则验签永远不过。验签不过的请求直接拒掉,别往下走业务逻辑。

三条验收标准

  • 先快速返回2xx,再跑后面的复杂逻辑。顺序反了容易超时,超时一次就白处理一次。
  • 签名验证必须拿原始请求体,中间件不能改写它。
  • 事件目的地有数量上限,一个账户16个。事件类型多的,先按业务分几组,再决定开几个端点。

事件没开是这块最容易漏的一步。新加一个业务动作,回到Workbench的Webhooks看这条目的地订了哪些事件类型,比在日志里翻半天快。

Stripe多币种与本地支付方式怎么开:换币的硬限制

同一个客户,可以用不同币种开票

多币种客户这个功能,允许你用跟客户默认货币不一样的货币,给同一个Customer开票。给日本客户开日元、给欧洲客户开欧元,走的是同一个客户档案,对账的时候不用为每个币种单独建一个客户。

现有订阅换不了币种,只能先取消再建

不能靠改价格给现有订阅换币种,必须先取消旧订阅,再建一个用新币种的订阅。原因是不能同时存在两个不同币种的active订阅。这条限制影响的是老客户:客户要求改成美元结算,你要做的是一次取消加一次新建,不是改一个字段。

客户信用余额也按币种走,只会从下一张同币种的发票里扣。换了币种,旧余额不会自动跟过去。换币之前先把余额用掉或者清零,省得后面留一笔抵不掉的账。

本地支付方式在Invoice default payment methods里激活

Stripe直接支持的支付方式有125+,另外还能加自定义支付方式。发票这边支持ACH、Alipay、WeChat Pay、Klarna这些,做B2B的用ACH省手续费,做亚洲客户的把Alipay和WeChat Pay打开,做欧洲的加上Klarna。

支持是一回事,开不开是另一回事。在Dashboard的Invoice default payment methods配置里,把你要收的那几种激活,客户在付款页才看得到。做订阅的顺手把续费那一步用的支付方式一起对一遍。

Stripe的钱怎么进出:Instant Payouts与标准提现怎么选

几分钟到账要付1.5%

Instant Payouts能把钱在几分钟内打到符合条件的借记卡或者银行账户,代价是1.5%,最低50¢。不急的话按标准时间表提现,免费。

选哪条,看这笔钱在你手上多放几天的价值。做订阅的每月固定日子提一次,用标准时间表就够;碰上退款、争议、要给供应商结款,Instant那1.5%买的是时间。

余额不是钱包

后台能看到两种余额,一个是发票余额,一个是信用余额。它们只能抵下一张发票的应付金额,不能当钱包提走。发票余额还要求货币跟发票一致,有现金余额的客户必须保持零或负余额。

把这两块跟提现分开看:提现提的是收款之后扣完费剩下的钱,余额抵的是下一张发票该收多少。两本账,别混在一起对。

钱从Stripe出来之后

钱到Stripe余额之后,落地到国内银行卡还有一段路,Payoneer提现到国内银行卡的流程站内这篇写过。渠道也不止一条,Wise、Payoneer、PayPal费率对比这篇把几家的差别列过。

Stripe的坑和限制:受限业务、地区清单与更新截止日

账户只能拿来做生意,不能用于个人、家庭或者household用途。也不能替被Stripe暂停或者终止过的用户开新账户,除非Stripe另外批准。这两条写在服务协议里,违反的后果比费率算错严重得多。

受限和禁止业务清单列得很细:非法产品和服务、成人内容和服务、债务减免公司、赌博、政府服务、身份服务、非法武器和爆炸物、侵犯知识产权的产品和服务、大麻、加密货币挖矿和质押、ICO、二级NFT销售,旅游里还包括商业航空和邮轮、国际包机和私人航空、分时度假。官方说这份清单是代表性列举,不是全部。

地区上也有红线:古巴、伊朗、朝鲜、叙利亚,以及克里米亚、顿涅茨克、卢甘斯克地区,这些地方的个人、居民、公民,还有原产地在那边的产品和服务,都不能碰。

另外两件跟时间有关的事。Stripe可以修改或者停止服务的任何方面,包括在某个国家或者地区停掉某项服务;官方发更新,你必须在通知写的截止日之前实施,通知没写截止日,就是通知日期之后30天内。

动作只有两个。上架之前把品类对着官方受限业务页过一遍,尤其是成人、赌博、加密相关的边角业务,别等收到争议才回头查。结账报支付失败,按结账报支付失败排查这篇的顺序走。

收款这条链路上不止Stripe一家。数字产品这类业务,Lemon Squeezy这种平台的费率和结算方式跟Stripe不一样,站内这篇讲它怎么回事。

Stripe账户与合规边界:支持地区清单与年龄门槛

支持国家/地区清单里,澳大利亚、奥地利、比利时、巴西、加拿大、香港、日本、新加坡、英国、美国这些都在,印度和印度尼西亚标的是Preview。开号之前按官方的支持国家/地区页核对主体所在地,网址是stripe.com/global,纯文字就能打开。

年龄门槛是13岁,13岁以上才能开Stripe账户并使用服务。如果用户或者代表没满18岁,或者没到居住地的法定成年年龄,必须往账户里加一个成年代表,可以是父母或者法定监护人。

技术边界也写进了协议:不得规避服务的技术限制,不得启用被禁用或者被禁止的功能,不得访问或者尝试访问非公开的Stripe系统或数据。这三条没有解释空间,接口怎么给的就怎么用。

AI能帮Stripe设置做哪几步:3个提示词与3件必须人做的事

AI在这件事上能干的是把文档变成你要的东西,不是替你去后台点。能帮的几步:按官方文档生成webhook handler的代码骨架;按订阅状态表生成状态流转说明;按发票状态表生成发票生命周期检查清单;按多币种客户文档生成开票参数说明。

下面三个提示词是本文给的示例,不是官方模板,可以照着改。

  1. 请根据Stripe官方文档中webhook端点的要求,列出创建handler时必须满足的3个条件,并说明签名验证使用哪些参数。
  2. 请根据Stripe订阅状态表,用表格列出trialing、active、incomplete、incomplete_expired、past_due、canceled、unpaid各自的含义和可执行操作。
  3. 请根据Stripe发票状态表,说明draft、open、paid、void、uncollectible各自可以执行的操作,并指出哪些状态是终态。

第二个和第三个提示词里都有「可执行操作」,模型答出来的这一栏要拿回官方文档对一遍,答案得能对上你代码里真正的判断条件。状态名好抄,动作不好抄,这是这一步的价值。

必须人做的三件:在Dashboard的Webhooks标签建事件目的地,复制以whsec_开头的签名密钥;在Dashboard或者API建一笔订阅,确认它建出来是什么状态;在Dashboard的Invoice default payment methods配置中激活支付方式。

整理资料、对照官方条款这类活,猎者出海的AI Agent能省掉来回翻文档的时间,判断还是自己做。

常见问题

Managed Payments适合什么业务?

它是给销售数字产品和软件订阅的企业设计的。官方列的适用场景包括SaaS订阅、数字内容和虚拟商品、从第一天就面向全球卖、把应用商店里的购买搬到web上的开发者,还有希望把税务责任、欺诈、争议和客户支持转给Stripe的企业。

Managed Payments怎么收费,有没有月最低?

在标准Stripe处理费之上,每笔成功交易再加3.5%。这笔费用覆盖全球间接税、欺诈预防、争议响应和Link的交易级支持,Billing、本地支付方式这类可选产品另外算。没有setup fees,也没有monthly minimums,用多少付多少。

Managed Payments和Checkout、payment links、Billing能一起用吗?

能。它跟Checkout页面、payment links和Billing是原生配合的,一次性购买和订阅购买都走这套。要做高级分析还可以接Stripe Sigma。

Stripe Tax和Managed Payments差在哪?

用Tax的时候,企业仍然是merchant of record,税务责任还在自己身上。Managed Payments是把税务、欺诈、争议这几块一起接过去,收的费率也更高。

没有自己的网站,能用Stripe收款吗?

能。payment links就是干这个的,几次点击建出一个完整的支付页面,把链接分享出去就能收钱,不需要写代码。卖产品、卖服务、开订阅、收捐赠都能用。

Webhook端点收不到请求,先从哪儿查?

查三处。端点地址是不是公开可访问的HTTPS URL;这条事件目的地在Workbench里订了哪些事件类型,业务动作对应的事件有没有勾上;handler里的签名密钥是不是当前这个端点设置页上的值。

Stripe这套东西,账户开好只算把门推开。真正花时间的是状态、币种和事件通知对不上,而这三样出问题的时候,客户不会来告诉你。把费率表、七个订阅状态、五个发票状态和通知截止日整理成一张属于自己的对照表,出问题的时候照着查,比每次重翻文档快。这张表可以让猎者出海的AI Agent按官方条款先排一版,哪些状态要拦、哪些加项要算进定价,还是你自己定。

发表评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注