如何延迟向Stripe Express connected accounts收集个人信息至提现阶段?
Stripe Express 账户延迟KYC收集方案解答
核心问题拆解与可行方案
针对你提出的三个问题,结合Stripe规则与实操经验,给出明确解答:
1. 注册时用最少信息创建Stripe Express connected accounts
完全可以。Stripe支持创建未完成入驻流程的Express个人账户,仅需提供教师的姓名(名+姓)和邮箱即可完成基础账户创建,无需立即提交SSN、银行账户等敏感信息。
示例API调用(以Ruby为例):
Stripe::Account.create({ type: 'express', email: 'teacher@example.com', individual: { first_name: 'Jane', last_name: 'Smith' }, country: 'US' # 根据教师所在地区调整 })
创建后的账户处于"未完成入驻"状态,暂时无法发起提现,但可用于后续绑定完整KYC信息。
2. 允许教师先通过destination charge或transfer赚钱
这里需要明确资金流向的区别:
- 直接向未完成KYC的Express账户发起
destination charge或transfer会触发报错,因为Stripe要求接收资金的账户必须满足基础KYC要求才能启用资金流动。 - 可行方案是采用平台代收+待结算模式:
- 课程收费时,直接用你的平台Stripe账户发起charge,资金先存入平台账户余额。
- 在你的数据库中单独记录每位教师的应得收益(比如扣除平台佣金后的金额),而非直接转账到教师的Express账户。
- 待教师完成KYC后,再从平台账户一次性将待结算资金
transfer到其Express账户。
3. 延迟收集SSN等个人信息至payout阶段
这是Stripe官方推荐的渐进式KYC方案,完全可行,具体操作流程如下:
- 注册阶段:仅创建基础Express账户,记录账户ID与教师关联信息。
- 运营阶段:正常开展课程订阅收费,教师收益暂存于平台账户,在你的系统中记录待结算金额。
- 提现触发:当教师发起提现申请时,检查其Express账户的入驻状态:
- 若未完成KYC,调用Stripe的
account_links.create生成Express入驻链接,引导教师补充SSN、地址、银行账户等必要信息。 - 示例生成链接代码:
Stripe::AccountLink.create({ account: 'acct_XXXXXX', # 教师的Express账户ID refresh_url: 'https://your-platform.com/teacher/onboarding/refresh', return_url: 'https://your-platform.com/teacher/dashboard', type: 'account_onboarding' })
- 若未完成KYC,调用Stripe的
- 完成KYC后:从平台账户发起
transfer将待结算资金转入教师的Express账户,教师即可正常提现至个人银行账户。
注意事项
- 不同地区的KYC要求存在差异(如欧盟地区需提供税号而非SSN),需根据教师所在国家/地区调整信息收集项。
- Stripe对未完成入驻的账户有时间限制,部分地区要求在账户创建后的一定期限内完成KYC,否则账户可能被限制操作,需留意Stripe的官方通知。
- 需确保你的系统中待结算资金的记录准确无误,避免出现资金对账纠纷。
内容的提问来源于stack exchange,提问作者new_reactjs
相关产品推荐
相关产品推荐

