我们整理了这份文档,解答开发者经常提出的问题。如果您的问题未在此处得到解答,请与我们联系。
兑换
在请求汇率时,货币的排列顺序是否重要?
是的。当您通过 Get Basic Rates /v2/rates/find 端点获取汇率信息时,返回的货币对字符串将与 currency_pair 输入参数的值匹配。
然而,当您通过 Get Detailed Rates /v2/rates/detailed 端点获取报价汇率时,将会标准化响应中的 currency_pair 属性值,遵循货币对符号的市场惯例,而不会考虑买/卖顺序。
有关更多信息,请参阅我们的汇率指南。
如何在兑换中应用加价?
第一步是调用 Get Detailed Rates /v2/rates/detailed 端点。
在返回的字段中将获得 client_rate
。您可以使用自己的机制计算客户汇率的额外加价,并显示此加价汇率。在执行兑换请求之前,您还应该向终端客户显示适当的买入或卖出金额以供批准,亦称为“总价”。这可以是 client_buy_amount
或 client_sell_amount
,具体取决于固定金额。
例如,假设您决定对一笔交易应用 0.5% 的加价,以英镑余额购买 1000 美元。在调用 Get Detailed Rates /v2/rates/detailed 时,将传递以下参数:
参数名称 | 参数类型 | 值 |
---|---|---|
buy_currency | 查询字符串 | USD |
sell_currency | 查询字符串 | GBP |
amount | 查询字符串 | 1000.00 |
fixed_side | 查询字符串 | buy |
on_behalf_of | 查询字符串 | 1b0d6b8d-1d61-445d-8cda-a73e4c24265c |
X-Auth-Token | 标头 | ea6d13c7bc50feb46cf978d137bc01a2 |
请注意,固定方设置为 'buy'。
成功的响应有效负载如下所示:
{ "settlement_cut_off_time":"2021-10-05T15:30:00Z", "currency_pair":"GBPUSD", "client_buy_currency":"USD", "client_sell_currency":"GBP", "client_buy_amount":"1000.00", "client_sell_amount":"710.28", "fixed_side": "buy", "client_rate":"1.4079", "partner_rate":"1.4079", "core_rate":"1.4079", "deposit_required": false, "deposit_amount":"0.0", "deposit_currency":"GBP", "mid_market_rate":"1.4080" }
假设 partner_rate
为 1.4079,您想对其应用 0.5% 的加价。在这种情况下,意味着从汇率中减去 0.5%,向客户显示汇率 1.4009 (= 1.4079 x (1 -- 0.005)) 。如果您出售美元换取英镑,则需要在汇率上加 0.5%。
由于买方固定,您需要调整相应的 client_sell_amount
并显示给客户以供确认,这也是最终兑换请求的一部分。在这个示例中,调整后的 client_sell_amount
计算方式如下:
£710.28 × 0.005(加价)= £3.55
£3.55 + £710.28 = £713.84(最终的 client_sell_amount
)。
在预订兑换时,您应传递最终的 client_sell_amount
。
由于 Currencycloud 始终显示实时汇率,我应该如何处理外汇报价?
由于我们提供的是实时汇率,因此建议您在应用程序中加入定时器或倒计时功能,以便终端客户可以在规定的时间内确认显示的汇率(实时/参考汇率)。这有助于降低您的外汇风险。
此外,您可以选择向终端客户提供加价汇率,请参见之前的问题了解实现方法。向汇率应用加价使您能够从交易中获得利润,同时有助于降低您的外汇风险。
如何使用 unique_request_id 参数?
unique_request_id
作为参数可用于 Create Conversion /v2/conversions/create、Create Payment /v2/payments/create 以及 Create Transfer /v2/transfers/create API 中,让您可以为交易分配唯一标识符。其目的有两个:帮助识别交易,使搜索更容易;作为幂等性密钥,确保向我们发送重复请求时,我们不会创建多个记录。
支付
我可以验证收款人的账户详情吗?
是的,Validate Beneficiary /v2/beneficiaries/validate 将提供反馈,确认输入的数据是否符合创建收款人的要求。在创建支付时,我们会验证收款人详情。
默认的 Swift 费用类型是什么?
账户的初始默认费用类型是 Swift Shared(Swift 双方共同承担)。根据您的具体需求,可以将默认费用类型配置为 Shared - SHA(双方共同承担费用)或 Ours - OUR(汇款人承担所有费用)。在支付时,如果未选择费用类型,则适用账户的默认费用类型。
有关更多信息,请参阅我们的帮助中心文章。
如何处理支付用途信息?
请使用我们的 Get Payment Purpose Code /v2/reference/payment_purpose_codes 端点,获取各个货币和实体类型(公司或个人)的支付用途编码列表。请注意,响应中的 entity_type
指的是付款人的实体类型,而不是收款人。
在 Creating a Payment /v2/payments/create 时,请将支付用途编码放在 purpose_code
参数中。
支付用途信息仅适用于某些支付路线/货币/场景。如果不需要,请不要发送用途编码,否则该 API 请求将被拒绝。
有关这些场景和有效支付用途编码的更多信息,可在我们的帮助中心文章中找到。
从 Get Beneficiary Requirements 端点到 Create Beneficiary 端点的参数映射是什么?
这两者之间并没有一一对应的映射关系。在从 Get Beneficiary Requirements /v2/reference/beneficiary_required_details 到 Create Beneficiary /v2/beneficiaries/create 的响应中,需要进行一定的数据转换(例如: acct_number >> account_number)。
管理
有用于开设特定货币钱包的端点吗?
有的。请为选定的货币调用 Get Balance /v2/balances/{currency} 端点。如果该货币尚未创建钱包,则会为其自动创建。
或者,当接收到该货币的付款或完成兑换时,也会自动创建一个钱包。