You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel对接Stripe报错:无法创建Payout,账户需补充必填信息

Stripe转账报错:Cannot create payouts: this account has requirements that need to be collected 解决方法

问题描述

在Laravel中调用Stripe API将钱包余额转账至客户银行卡时,出现错误提示:Cannot create payouts: this account has requirements that need to be collected

代码实现如下:

$card_obj = $stripe->tokens->create([
    'card' => [
        'number' => '4000051240000005',
        'exp_month' => 8,
        'exp_year' => 2023,
        'cvc' => '314',
        'currency' => 'cad',
    ],
]);
$account = $stripe->accounts->create([
    'type' => 'express',
    'country' => 'CA',
    'capabilities' => [
        'card_payments' => ['requested' => true],
        'transfers' => ['requested' => true],
    ],
    'external_account' => $card_obj->id,
]);
$payout = $stripe->payouts->create([
    'amount' => 1,
    'currency' => 'cad',
], [
    'stripe_account' => $account->id,
]);

错误原因与解决步骤

1. 核心原因:Express账户未完成合规验证

你创建的是Stripe Express类型账户,这类账户必须完成身份信息收集与验证才能发起转账(Payout)。仅创建账户并添加收款卡不满足Stripe的合规要求,平台需要确认账户持有者的真实身份信息。

2. 解决步骤:引导用户完成账户激活

  • 生成账户开通链接:创建Express账户后,调用accountLinks接口生成激活页面链接,让用户填写身份信息(姓名、地址、证件等)。示例代码:
$accountLink = $stripe->accountLinks->create([
    'account' => $account->id,
    'refresh_url' => 'https://你的域名.com/reauth', // 用户中断流程后的返回页
    'return_url' => 'https://你的域名.com/account-done', // 完成后的跳转页
    'type' => 'account_onboarding',
]);
// 将$accountLink->url返回给前端,引导用户访问完成信息提交
  • 等待审核完成:用户提交信息后,Stripe会自动完成审核(测试环境下模拟审核即时通过),账户状态更新后即可发起转账。

3. 提前检查账户状态

发起转账前,可先查询账户的合规要求完成情况,避免报错:

$account = $stripe->accounts->retrieve($account->id);
// 查看未完成的必填项
var_dump($account->requirements->currently_due);

若currently_due不为空,说明还有未完成的必填信息,需先处理。

4. 测试环境提示

即使在测试环境,Express账户也需要完成模拟的身份验证流程才能发起转账,你使用的测试卡号4000051240000005是有效的测试收款卡,但仍需走完验证流程。

内容的提问来源于stack exchange,提问作者Ashkan Karimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 23:36:17