Stripe API:您如何找到跨境转账到 Connect 账户的汇率和外币金额?

Posted

技术标签:

【中文标题】Stripe API:您如何找到跨境转账到 Connect 账户的汇率和外币金额?【英文标题】:Stripe API: How do you find the exchange rate and amount in foreign currency of a cross border transfer to a Connect Account? 【发布时间】:2021-04-24 06:54:24 【问题描述】:

我正在使用 Stripe 处理付款。我有一个平台,国际 Connect 帐户可以通过我的平台向其他人出售商品。

我的平台是美元。在此特定示例中,Connect 帐户使用 CAD(加元)。当有人从这个 CAD Connect 账户购买商品时,Stripe 会将钱存入我的平台账户,将我的应用费留在那里,然后将正确的金额转入 CAD Connect 账户。它将这个金额转换为加元。在条纹 GUI 中,我可以找到 汇率CAD 中的转账金额,如下面的屏幕截图所示。 但是我在 API 中找不到这些属性。

我见过的唯一具有exchange_rate 属性的对象是balance transaction。但是,当我在屏幕截图中获取交易的余额交易时,我得到了这个响应对象:

请求: https://api.stripe.com/v1/balance_transactions/txn_1IBNiNLLBOhef2QNqIeaNg9o

回应:

 
"id": "txn_1IBNiNLLBOhef2QNqIeaNg9o", 
"object": "balance_transaction", 
"amount": -7777, 
"available_on": 1611619200, 
"created": 1611076199, 
"currency": "usd", 
"description": null, 
"exchange_rate": null, 
"fee": 0, 
"fee_details": [], 
"net": -7777, 
"reporting_category": "transfer", 
"source": "tr_1IBNiNLLBOhef2QNcNqv3IlS", 
"status": "pending", 
"type": "transfer" 

这里的问题是上面的余额交易对象只以美元显示了这笔交易:77.77美元从我的平台账户中流出。

但它不显示转换率或加元金额。当这 77.00 美元进入 CAD Connect 账户时,正如我们在 GUI 屏幕截图中所见,这 77.77 美元转换为 98.02 加元,汇率为 1.26039(美元->加元)。

如何通过 API 找到此加元金额和汇率?

【问题讨论】:

【参考方案1】:

在此屏幕截图中向关联账户进行的转账以美元为单位。转换发生在传输之后。资金以美元发送,然后在关联账户中转换为该账户的默认货币。

您想查看 Transfer 的 destination_payment property,它的 ID 为 py_123,用于关联帐户上的 Charge。该 Charge 有一个 BalanceTransaction 对象(类似于您共享的 Transfer 对象)。在这种情况下,BalanceTransaction 将反映从美元到加元的转换,并显示exchange_rate 属性中使用的汇率。

【讨论】:

这很有意义。但是我试了一下,报错:我去这个端点https://api.stripe.com/v1/transfers/tr_1IBNiNLLBOhef2QNcNqv3IlS?expand[]=destination_payment找余额交易id。我得到了:"destination_payment": "balance_transaction": "txn_1IBNiOLKojKNEaYINS8SFq4t"。然后我使用了端点https://api.stripe.com/v1/balance_transactions/txn_1IBNiOLKojKNEaYINS8SFq4t,但我得到了一个错误:"No such balance transaction: 'txn_1IBNiOLKojKNEaYINS8SFq4t'"。知道为什么吗? 我想通了。我需要在请求中添加带有连接帐户 ID 的 Stripe-Account 标头。谢谢。【参考方案2】:

如果您需要在实际交易发生之前知道汇率,他们会提供汇率here

但是,它只是一个前端页面,需要授权。最重要的是,它每 12 小时更新一次。没有返回货币汇率的官方 API。

有一个小型 SaaS 产品以 REST API 的形式提供条带货币汇率。 https://striperates.com/

【讨论】:

谢谢!现在我正在使用免费的汇率 API,虽然它并不理想。那个SaaS产品在未来可能会很好。我希望 Stripe 在 API 中有更新的费率。【参考方案3】:

在 Java 中你可以做到

Stripe.apiKey = "sk_live_...";
Transfer transfer = Transfer.retrieve("tr_...");
RequestOptions requestOptions = RequestOptions.builder().setStripeAccount("acct_...").build();
Charge charge = Charge.retrieve(transfer.getDestinationPayment(), requestOptions);
BalanceTransaction balanceTransaction = BalanceTransaction.retrieve(charge.getBalanceTransaction(), requestOptions);
balanceTransaction.getExchangeRate();
balanceTransaction.getNet();
balanceTransaction.getCurrency();

【讨论】:

以上是关于Stripe API:您如何找到跨境转账到 Connect 账户的汇率和外币金额?的主要内容,如果未能解决你的问题,请参考以下文章

Stripe 允许给客户钱吗?

iOS 中的 Stripe 集成 - 您没有提供 API 密钥?

订阅取消后 Stripe API 退款

Stripe 可以同时向客户对象收费和转账吗?

Omnipay:将钱从 PayPal 账户转移到 Stripe 账户

Paypal : 使用 API 凭证转账