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

使用Stripe受限密钥为Express关联账户添加银行账户遇权限错误

问题描述

尝试将通过stripe.tokens.create()创建的银行账户Token作为外部账户,添加到指定的Express关联账户中。已生成包含对应权限的受限密钥,执行以下代码:

await stripe.accounts.createExternalAccount(
 acctId,
 {
   external_account: bTokId,
 }
);

在Postman中收到权限错误:

{
    "status": 0,
    "message": "This application does not have the required permissions for this endpoint on account 'acct_12345'."
}

日志中同时出现oauth_not_supported错误:

rawType: 'invalid_request_error',
code: 'oauth_not_supported',

已在创建测试Express账户时开启OAuth,需要解决该问题。

排查与解决方案

  • 确认受限密钥权限:受限密钥必须包含account_external_accounts_write权限,且是针对目标Express账户(acct_12345)单独生成的,不能使用平台主账户的通用受限密钥。
  • 补全OAuth授权流程:若Express账户是手动在平台后台创建的,即使开启OAuth也无法绑定权限,必须通过完整的OAuth授权流程让用户关联账户,才能正常使用OAuth相关API。
  • 验证银行账户Token有效性:确保bTokId是通过stripe.tokens.create()生成的银行账户类型Token(生成时需传入bank_account参数),而非信用卡Token,且Token未过期。
  • 切换API调用凭证:OAuth授权的Express账户需使用OAuth流程返回的access_token作为API密钥,而非平台的受限密钥。示例代码如下:
    const stripe = require('stripe')('USER_OAUTH_ACCESS_TOKEN'); // 替换为用户授权返回的access_token
    await stripe.accounts.createExternalAccount(
      acctId,
      {
        external_account: bTokId,
      }
    );
    
  • 检查账户状态:确认目标Express账户已完成必要的KYC验证,未完成验证的账户会限制外部账户添加操作;同时检查账户settings.payouts配置是否允许添加银行账户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:27:07