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

如何在Stripe中管理多币种转账?关联GBP银行账户的平台多商户USD收款转账报错问题咨询

解决Stripe多币种转账的币种不匹配错误

首先,咱们先拆解你遇到的错误原因:

The currency of source_transaction's balance transaction (gbp) must be the same as the transfer currency (usd)

这是因为你的平台账户默认结算货币是GBP,当你收到USD付款后,Stripe会自动将USD兑换成GBP存入你的账户,导致对应的charge余额交易是GBP币种。而你尝试用这个GBP的源交易发起USD转账,自然会触发币种不匹配的报错。

下面是针对你的需求(买家付USD,平台收手续费到GBP账户,剩余USD分给商户)的两种可行解决方案:


方案一:开启多币种余额,保留USD资金用于转账

先在Stripe后台开启账户的多币种支持(路径:设置 > 付款设置 > 多币种),添加USD作为可用结算货币。这样收到的USD付款会以USD形式保留在账户余额中,不会自动兑换成GBP,就能直接用它发起USD转账了。

修改后的代码示例:

// 1. 创建USD付款意向并完成确认(需确保付款已成功)
const paymentIntent = await stripe.paymentIntents.create({
  amount: 10000, // 100 USD(单位:分)
  currency: 'usd',
  payment_method_types: ["card"],
});

// 获取成功的Charge记录
const charges = await stripe.charges.list({ payment_intent: paymentIntent.id });
const charge = charges.data[0];

// 2. 将平台手续费(2000 USD)兑换成GBP转入你的账户
await stripe.transfers.create({
  amount: 2000, // 20 USD手续费
  currency: 'gbp',
  destination: '你的平台Stripe账户ID',
  source_transaction: charge.id,
  transfer_options: {
    currency_conversion: {
      source_currency: 'usd'
    }
  }
});

// 3. 分别向两个商户发起USD转账
await stripe.transfers.create({
  amount: 4000,
  currency: 'usd',
  destination: "example1", // 商户1的Connect账户ID
  source_transaction: charge.id,
});

await stripe.transfers.create({
  amount: 4000,
  currency: 'usd',
  destination: "example2", // 商户2的Connect账户ID
  source_transaction: charge.id,
});

方案二:用Transfer Group关联付款与转账,自动处理货币转换

如果你不想开启多币种余额,可以通过transfer_group关联付款意向和后续转账,让Stripe自动处理货币转换逻辑,避免币种不匹配问题。

代码示例:

// 1. 创建带转账组的USD付款意向
const transferGroupId = `order_${Date.now()}`;
const paymentIntent = await stripe.paymentIntents.create({
  amount: 10000,
  currency: 'usd',
  payment_method_types: ["card"],
  transfer_group: transferGroupId, // 标记转账组
});

// 完成付款确认后,发起商户转账
await stripe.transfers.create({
  amount: 4000,
  currency: 'usd',
  destination: "example1",
  transfer_group: transferGroupId, // 关联同一转账组
});

await stripe.transfers.create({
  amount: 4000,
  currency: 'usd',
  destination: "example2",
  transfer_group: transferGroupId,
});

// 剩余2000 USD会自动兑换成GBP存入你的平台账户,作为手续费

关键注意事项

  • 确保你的商户Connect账户支持接收USD,否则转账会失败
  • 货币转换会产生一定手续费,具体费率可查看Stripe后台的费率说明
  • 方案一中,若关闭多币种支持,资金会自动转回默认结算货币GBP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 18:57:43