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

Stripe API:如何指定多币种账户特定余额创建Charge

Stripe多币种账户指定对应币种余额创建Charge的配置方案

问题根因

创建USD Charge时自动兑换为JPY扣款,核心是两类配置/参数缺失:

  1. 账户未开启对应币种的余额留存开关,默认所有非默认结算币种(你的账户默认结算币种为JPY)的交易都会自动换汇为JPY结算
  2. API请求未显式指定结算币种,Stripe默认使用账户默认结算币种完成资金划转,触发自动换汇逻辑

前置账户配置(不完成则API参数不生效)

  • 登录Stripe后台,进入「余额」-「多币种管理」页面,找到USD币种选项,将兑换规则从自动兑换为JPY修改为保留USD余额
  • 确认USD币种的余额状态为「可持有可支付」,而非仅支持收款自动结汇状态
  • 若你使用Stripe Connect关联了子账户,需要同步在对应子账户下开启USD余额留存开关

API参数配置

推荐方案:使用官方迭代的PaymentIntents API(已停止功能更新的老版Charges API不推荐继续使用)

创建PaymentIntent时,除了传入currency: 'usd'指定交易币种,还要显式声明结算币种为USD,禁止自动换汇,核心请求示例如下:

curl https://api.stripe.com/v1/payment_intents \
  -u sk_你的API密钥: \
  -d amount=1000 \ # 金额单位为对应币种最小分度值,此处1000对应10USD
  -d currency=usd \
  -d payment_method_types[]=card \
  # 核心参数:指定直接用USD余额结算,不触发自动换汇
  -d payment_method_options[card][settlement_currency]=usd \
  -d confirm=true

请求时需要将Stripe-Version请求头设置为2022-11-15及以上版本,低版本API不支持settlement_currency参数。

老版Charges API兼容配置

如果你仍在使用独立Charges API,需要做两个配置:

  1. 将Stripe-Version请求头升级到2022-11-15及以上
  2. 创建Charge时传入currency: 'usd',同时将exchange_rate参数显式设置为null——如果传入具体汇率值,Stripe会强制按指定汇率换汇为默认结算币种扣款

扣款前校验

发起扣款前可以调用余额查询接口确认USD可用余额充足,避免因余额不足触发自动换汇:

curl https://api.stripe.com/v1/balance \
  -u sk_你的API密钥:

在返回结果的available数组中,找到currency: 'usd'的条目,确认其amount值大于等于你要扣款的金额即可。如果USD余额不足,Stripe会自动按优先级从其他币种余额换汇凑款,优先扣除默认结算币种JPY的余额。


内容的提问来源于stack exchange,提问作者O.Vykhor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:18:49