本指南解释了如何以不同货币支付,以及如何确保账户中有足够的余额完成付款。
在本指南中,我们将:
- 查看您 Currencycloud 账户中持有的各种外币金额。
- 通过交易一些英镑来为您的欧元余额充值。
- 使用欧元向德国的收款人支付。请注意,此功能仅通过真实 API 提供,不支持演示 API。
第 1 步:登录
请参阅验证指南,获取开始新 API 会话的说明。
第 2 步:查看可用余额
要查看您拥有多少欧元,请调用 Get Balance /v2/balances/{currency} 端点,传入 EUR
作为第三个 URL 路径参数。
GET /v2/balances/EUR
参数名称 | 参数类型 | 示例值 |
---|---|---|
X-Auth-Token |
标头 | ea6d13c7bc50feb46cf978d137bc01a2 |
以下响应显示您的 Currencycloud 主账户中持有 €15,458.12。
HTTP/1.1 200 OK Content-Type: application/json { "id": "ad6411db-1e00-44fd-b4e8-194c74cf2f83", "account_id": "d22073a6-4c56-4980-8699-504b0c70003f", "currency":"EUR", "amount":"15458.12", "created_at":"2021-12-10T16:05:20+00:00", "updated_at":"2021-12-10T16:05:20+00:00" }
或者,您可以调用 Find Balances /v2/balances/find 端点,查看您在 Currencycloud 账户中持有的所有外币余额。
GET /v2/balances/find
参数名称 | 参数类型 | 示例值 |
---|---|---|
X-Auth-Token |
标头 | ea6d13c7bc50feb46cf978d137bc01a2 |
以下响应显示您在 Currencycloud 主账户中持有 £10,750.00、US$1,500.24 和 €15,458.12。
{ "balances": [ { "id": "c52128a4-3918-40dc-a92a-7225cef3a4a6", "account_id": "d22073a6-4c56-4980-8699-504b0c70003f", "currency":"GBP", "amount":"10750.00", "created_at":"2021-12-10T16:05:19+00:00", "updated_at":"2021-12-10T16:05:19+00:00" }, { "id":"349a2b87-9455-4808-9e68-515daf1f7298", "account_id": "d22073a6-4c56-4980-8699-504b0c70003f", "currency":"USD", "amount":"1550.24", "created_at":"2021-12-10T16:05:19+00:00", "updated_at":"2021-12-10T16:05:19+00:00" }, { "id": "ad6411db-1e00-44fd-b4e8-194c74cf2f83", "account_id": "d22073a6-4c56-4980-8699-504b0c70003f", "currency":"EUR", "amount":"15458.12", "created_at":"2021-12-10T16:05:20+00:00", "updated_at":"2021-12-10T16:05:20+00:00" } ], "pagination": { "total_entries":3, "total_pages":1, "current_page":1, "per_page":25, "previous_page": -1, "next_page": -1, "order": "created_at", "order_asc_desc": "asc" } }
在这种情况下,您的欧元余额不足以向德国支付 10,000 欧元款项。您可以向我们发送额外的欧元,或从可用的英镑余额中兑换资金。
第 3 步:充值
通过调用 Get Detailed Rates /v2/rates/detailed 端点,查看使用您的英镑余额购买 10,000 欧元需要花费多少。
GET /v2/rates/detailed
参数名称 | 参数类型 | 示例值 |
---|---|---|
buy_currency |
查询字符串 | EUR |
sell_currency |
查询字符串 | GBP |
amount |
查询字符串 | 10000.00 |
fixed_side |
查询字符串 | buy |
X-Auth-Token |
标头 | ea6d13c7bc50feb46cf978d137bc01a2 |
成功时,响应负载将包含 Currencycloud 报价的详细信息以进行兑换。以下示例告诉您,您可以出售 £8,059 以购买 $10,000。报价汇率有效期至 2021 年 2 月 6 日下午 2 点(UTC 时间)。
HTTP/1.1 200 OK Content-Type: application/json { "settlement_cut_off_time":"2021-02-06T14:00:00Z", "currency_pair":"EURGBP", "client_buy_currency":"EUR", "client_sell_currency":"GBP", "client_buy_amount":"10000.00", "client_sell_amount":"8059.00", "fixed_side": "buy", "client_rate":"0.8059", "partner_rate": null, "core_rate":"0.8059", "deposit_required": false, "deposit_amount":"0.0", "deposit_currency":"GBP", "mid_market_rate":"0.8056" }
如果您对报价汇率感到满意,可以调用 Create Conversion /v2/conversions/create 端点来授权兑换。
POST /v2/conversions/create Content-Type: multipart/form-data
参数名称 | 参数类型 | 示例值 |
---|---|---|
buy_currency |
表单数据 | EUR |
sell_currency |
表单数据 | GBP |
amount |
表单数据 | 10000.00 |
fixed_side |
表单数据 | buy |
reason |
表单数据 | Top up Euros balance |
term_agreement |
表单数据 | true |
X-Auth-Token |
标头 | ea6d13c7bc50feb46cf978d137bc01a2 |
成功时,响应消息的负载将包含在您 Currencycloud 账户中记录的完整兑换详情。请记录唯一的兑换 ID(id
字段),如果您想要将兑换与付款关联,则需要此信息。这意味着在兑换结算之前,支付将不会被处理。如果您取消了兑换,支付状态将会变为 suspended
。您需要重新创建支付,才能将状态更改为 ready_to_send
。
HTTP/1.1 200 OK Content-Type: application/json { "id":"4c52215f-ca4b-4dcb-a7ae-36edc4f5db16", "settlement_date":"2021-02-06T14:00:00+00:00", "conversion_date":"2021-02-06T00:00:00+00:00", "short_reference":"20210202-FYYXFH", "creator_contact_id":"1993263d-be07-42d4-b75b-ae4ea18bcb6c", "account_id": "d22073a6-4c56-4980-8699-504b0c70003f", "currency_pair":"EURGBP", "status": "awaiting_funds", "buy_currency":"EUR", "sell_currency":"GBP", "client_buy_amount":"10000.00", "client_sell_amount":"8059.00", "fixed_side": "buy", "core_rate":"0.8059", "partner_rate": "", "partner_status": "funds_arrived", "partner_buy_amount":"0.00", "partner_sell_amount":"0.00", "client_rate":"0.8059", "deposit_required": false, "deposit_amount":"0.00", "deposit_currency": "", "deposit_status": "not_required", "deposit_required_at": "", "payment_ids": [], "unallocated_funds":"0.00", "unique_request_id": null, "created_at":"2021-02-02T11:41:29+00:00", "updated_at":"2021-02-02T11:41:29+00:00", "mid_market_rate":"0.8056" }
请注意上述兑换对象中的 status
字段。兑换可能具有以下五种状态:
- 等待资金 (
awaiting_funds
) - 资金已发送 (
funds_sent
) - 资金已到账 (
funds_arrived
) - 交易已结算 (
trade_settled
) - 已关闭 (
closed
)
此兑换当前处于等待资金状态。
第 4 步:查看支付要求
查看以欧元向在德国拥有银行账户的收款人进行常规(本地)支付需要哪些详细信息。为此,您可以调用 Get Beneficiary Requirements /v2/reference/beneficiary_required_details 端点。
GET /v2/reference/beneficiary_required_details
参数名称 | 参数类型 | 示例值 |
---|---|---|
currency | 查询字符串 | EUR |
bank_account_country | 查询字符串 | DE |
X-Auth-Token | 标头 | ea6d13c7bc50feb46cf978d137bc01a2 |
以下响应告诉我们,要向德国银行账户进行常规欧元支付,我们需要以下两项信息:收款人的 IBAN 和 BIC/Swift 号码。收款人可以是公司或个人。无论是哪种,都需要相同的信息。
HTTP/1.1 200 OK Content-Type: application/json { "details": [ { "payment_type": "priority", "beneficiary_entity_type": "individual", "beneficiary_address": "^.{1,255}", "beneficiary_city": "^.{1,255}", "beneficiary_country": "^[A-z]{2}$", "beneficiary_first_name": "^.{1,255}", "beneficiary_last_name": "^.{1,255}", "iban": "([A-Z0-9]\\s*){15,34}", "bic_swift": "^[0-9A-Z]{8}$|^[0-9A-Z]{11}$" }, { "payment_type": "priority", "beneficiary_entity_type": "company", "beneficiary_address": "^.{1,255}", "beneficiary_city": "^.{1,255}", "beneficiary_country": "^[A-z]{2}$", "beneficiary_company_name": "^.{1,255}", "iban": "([A-Z0-9]\\s*){15,34}", "bic_swift": "^[0-9A-Z]{8}$|^[0-9A-Z]{11}$" }, { "payment_type": "regular", "iban": "([A-Z0-9]\\s*){15,34}", "bic_swift": "^[0-9A-Z]{8}$|^[0-9A-Z]{11}$", "beneficiary_entity_type": "individual" }, { "payment_type": "regular", "iban": "([A-Z0-9]\\s*){15,34}", "bic_swift": "^[0-9A-Z]{8}$|^[0-9A-Z]{11}$", "beneficiary_entity_type": "company" } ] }
第 5 步:添加收款人
如果您是赞助或财政服务模型的客户,并与 The Currency Cloud Limited 签订合同,那么您必须先验证收款人的账户详细信息,才能创建收款人。
如果您已了解所需信息,可以通过 Create Beneficiary /v2/beneficiaries/create 端点创建收款人记录。
POST /v2/beneficiaries/create Content-Type: multipart/form-data
如果收款人成功创建,则响应消息将包含在您的 Currencycloud 账户中记录的收款人完整详细信息。请注意收款人的唯一 ID (id
)。在下一步中,您将需要此 ID 来向收款人支付。
HTTP/1.1 200 OK Content-Type: application/json { "id": "aea097c2-39e4-49b5-aaa6-c860ca55ca0b", "bank_account_holder_name":"Acme GmbH", "name":"Acme GmbH", "email": null, "payment_types": [ "regular" ], "beneficiary_address": [], "beneficiary_country":"DE", "beneficiary_entity_type": null, "beneficiary_company_name": null, "beneficiary_first_name": null, "beneficiary_last_name": null, "beneficiary_city": null, "beneficiary_postcode": null, "beneficiary_state_or_province": null, "beneficiary_date_of_birth": null, "beneficiary_identification_type": null, "beneficiary_identification_value": null, "bank_country":"DE", "bank_name":"Test Bank Plc", "bank_account_type": null, "currency":"EUR", "account_number": null, "routing_code_type_1": null, "routing_code_value_1": null, "routing_code_type_2": null, "routing_code_value_2": null, "bic_swift":"COBADEFF", "iban":"DE89370400440532013000", "default_beneficiary": "false", "creator_contact_id":"1993263d-be07-42d4-b75b-ae4ea18bcb6c", "bank_address": [], "created_at":"2021-02-02T11:52:23+00:00", "updated_at":"2021-02-02T11:52:23+00:00", "beneficiary_external_reference": null }
第 6 步:进行支付
通过调用 Create Payment /v2/payments/create 端点授权支付。或者,您可以提供幂等键(通过 unique_request_id
参数)。这有助于防止意外重复付款。
POST /v2/payments/create Content-Type: multipart/form-data
参数名称 | 参数类型 | 示例值 |
---|---|---|
currency | 表单数据 | EUR |
beneficiary_id | 表单数据 | aea097c2-39e4-49b5-aaa6-c860ca55ca0b |
amount | 表单数据 | 10000 |
reason | 表单数据 | Invoice Payment |
payment_type | 表单数据 | regular |
reference | 表单数据 | 2021-014 |
unique_request_id | 表单数据 | 4abd730f-bb50-4b4a-8890-f46addff222b |
X-Auth-Token | 标头 | ea6d13c7bc50feb46cf978d137bc01a2 |
您可以传递 conversion_id
作为参数,将付款与该兑换关联。在这种情况下,付款将在兑换结算后才会被处理/执行。如果您取消了兑换,支付状态将会变为 "suspended"。您需要重新创建支付,才能将状态更改为 "ready_to_send"。
如果支付成功排入队列,则响应负载将包含在您的 Currencycloud 账户中记录的支付完整详细信息。这并不意味着付款已完成,而仅表示已准备好进行处理。
付款是异步处理的。Currencycloud 会在指定的 payment_date
处理付款,前提是您以相关货币持有足够的资金。即使您的相关货币余额不足,您仍然可以指示付款。付款会按照正常方式排队,但在您的账户余额补足之前,付款不会被处理。
HTTP/1.1 200 OK Content-Type: application/json { "id": "bea05ec4-8c6b-4ec9-80e5-65c0cd257473", "amount":"10000.00", "beneficiary_id": "aea097c2-39e4-49b5-aaa6-c860ca55ca0b", "currency":"EUR", "reference":"2021-014", "reason":"Invoice Payment", "status": "ready_to_send", "creator_contact_id":"1993263d-be07-42d4-b75b-ae4ea18bcb6c", "payment_type": "regular", "payment_date":"2021-02-02", "transferred_at": "", "authorisation_steps_required":"0", "last_updater_contact_id":"1993263d-be07-42d4-b75b-ae4ea18bcb6c", "short_reference":"180202-RDRWGQ001", "conversion_id": null, "failure_reason": "", "payer_id":"49d44eff-af91-45b0-a32e-84c7c1750ca0", "payer_details_source": "account", "created_at":"2021-02-02T11:56:05+00:00", "updated_at":"2021-02-02T11:56:05+00:00", "payment_group_id": null, "unique_request_id":"4abd730f-bb50-4b4a-8890-f46addff222b", "failure_returned_amount":"0.00", "ultimate_beneficiary_name": null }