如何在Stripe中实现C2C平台向卖家的款项支付?
基于Stripe API实现C2C平台的卖家分账支付方案
针对你要搭建的C2C平台(交易后95%款项给卖家、5%留作平台收益),结合已存储卖家银行卡信息的情况,采用Stripe Connect+实时分账是最合规高效的方案,具体实现步骤如下:
1. 为卖家创建Stripe Connect账户
要实现资金拆分,必须先将卖家纳入Stripe Connect体系:
- 若卖家无需独立管理支付账户,选择Express Connect账户(平台可代操作,仅需卖家完成身份验证);若卖家需要自主管理资金,选择Standard账户。
- 通过Stripe Accounts API创建账户,同时关联你已存储的银行卡信息(注意:直接传入卡信息需满足PCI合规要求,若没有PCI认证,建议引导卖家通过Stripe官方页面提交卡信息):
import stripe stripe.api_key = "你的平台Stripe密钥" # 创建Express账户并绑定卖家银行卡 stripe.Account.create( type="express", country="US", # 按卖家所在国家调整 email="seller@example.com", external_account={ "object": "bank_account", "country": "US", "currency": "usd", "account_holder_name": "张三", "account_holder_type": "individual", "routing_number": "110000000", # 对应国家的银行路由/清算号 "account_number": "000123456789" }, capabilities={"transfers": {"requested": True}} )
2. 买家支付时自动拆分资金
当买家发起支付请求,使用Destination Charge模式,一次性完成收款+资金拆分,无需后续手动转账:
# 创建Payment Intent,自动分配95%给卖家,5%留平台 payment_intent = stripe.PaymentIntent.create( amount=1000, # 订单金额,单位为分(示例:$10.00) currency="usd", payment_method_types=["card"], transfer_data={ "destination": "acct_XXXXXX", # 卖家的Connect账户ID "amount": 950 # 卖家应得的95%金额 }, application_fee_amount=50 # 平台收取的5%费用 )
支付完成后,资金会自动分配:95%进入卖家的Connect账户,5%直接进入你的平台Stripe账户,无需额外操作。
3. 卖家资金提现到绑定银行卡
卖家Connect账户中的资金,默认会按Stripe的周期自动提现到绑定的银行卡;如果需要手动触发提现,可调用Transfer API:
# 手动触发提现到卖家绑定的银行卡 stripe.Transfer.create( amount=950, currency="usd", destination="acct_XXXXXX", # 卖家Connect账户ID transfer_group="order_12345" # 关联订单ID,方便后续对账 )
关键注意事项
- 合规要求:必须完成卖家的KYC身份验证,Stripe Connect会提供内置验证工具,避免合规风险。
- PCI合规:若你直接存储了卖家银行卡信息,需确保通过PCI DSS认证,否则建议用Stripe的托管页面收集卡信息,避免触碰敏感数据。
- 地区适配:不同国家的银行卡字段、转账费率、到账时间不同,需根据卖家所在地区调整API参数。
- 异常处理:需处理支付失败、退款等场景,退款时平台费用和卖家资金会按比例原路退回。
内容的提问来源于stack exchange,提问作者Masaki93
相关产品推荐
相关产品推荐

