Foreign Exchange

Banking Circle offers a multitude of different options to execute foreign exchange (FX) transactions. These can be grouped into three high-level styles:

  • Multicurrency payments: Where the foreign exchange transaction is a part of a payment between two different currencies
  • Fully automated FX risk management: FX Trades executed via our Banking Circle FX API
  • Active risk and liquidity management: Manual trading scenarios on Banking Circle Connect (BCC) or on our Real Time FX platform (RTFX)

Each scenario further supports a variety of workflows ranging from basic FX trading at live market rates to more advanced risk management and treasury related functions.

This page will give you an overview of these workflows and guide your developers on how to interact with our FX APIs.

Banking Circle FX

Banking Circle FX API enables your business to programmatically execute foreign exchange conversions between your currency accounts at Banking Circle using a simple REST API that supports both two different workflow types: Market Order and Request For Quote (RFQ).

These workflows are primarily intended for FX Risk management purposes. For scenarios relating to payments, please refer to the Multicurrency payments workflow that is better suited for pay-out purposes.

Market Order

For scenarios where simplicity and automation is of key importance, our BCFX Market Order endpoint enables you to execute FX trades using a simple POST request.

The transaction will be done in market order fashion: your deal will be filled at the prevailing FX market rate and you will receive an instant confirmation with the relevant trade details such as the exchange rate and converted amounts.

Each transaction will be settled on your currency accounts immediately following your confirmation, with the exception of bank holidays where the settlement moves to the next available date instead.

Below is an example Market Order POST request where you are buying 10000 EUR against GBP.

{
  "clientOrderId": "YourUniqueReference",
  "buyCurrency": "EUR",
  "sellCurrency": "GBP",
  "amount": 10000,
  "amountCurrency": "EUR"
}

In response, our API will confirm the trade with exhcange rate and your sold GBP amount.

{
  "tradeStatus": "Filled",
  "clientOrderId": "YourUniqueReference",
  "bankingCircleRef": "2110081351166",
  "customerId": "000012356",
  "boughtCurrency": "EUR",
  "boughtAmount": 10000,
  "soldCurrency": "GBP",
  "soldAmount": 8492.99,
  "currencyPair": "EURGBP",
  "exchangeRate": 0.8492993,
  "valueDate": "2021-10-08"
}

Similarly, you can choose to buy X EUR by selling 10000 GBP, in which case the converted amount will be in Euros.

Request For Quote (RFQ)

In some scenarios it is necessary to know the exchange rate ahead of executing a transaction. Our Request For Quote (RFQ) workflow enables you to fetch a firm (tradable) foreign exchange quote that is valid for 30 seconds at a time. In principle, this is exactly the rate that you would have executed on if you had submitted a Market Order at the same time.

The quote contains both an expiration timestamp as well as an id that can be attached as a part of an BCFX order. This will guarantee that your order will be completed at this exchange rate.

Each transaction will be settled on your currency accounts immediately following your confirmation, provided your original request was for today's value date.

Just like with Market Orders, settlement with value date today is not possible during a bank holiday in either currency, in which case only value date tomorrow and SPOT is available.

To request a quote for trading, you only need to supply the two currencies involved, the trade amount, and indicate the currency of the amount.

Below is an example GET request for retrieving a quote to be used for trading 10000 EUR against GBP:

HTTP GET /api/v1/fx/rates/EUR/GBP?amountCurrency=EUR&amount=10000

Our API will then respond with a firm quote featuring a quote ID and the expiry time

{
  "quoteType": "Tradable",
  "currencyPair": "EURGBP",
  "exchangeRateBid": 0.848001,
  "exchangeRateAsk": 0.8491892,
  "expiryTime": "2021-10-08T13:55:17.4276206+00:00",
  "quoteId": "bf56e3bc-269a-4db5-be4d-71ccf789d5ab"
}

You can then use this quote to execute a Banking Circle FX order using a POST request - in this example we are buying 10000 EUR:

{
  "clientOrderId": "YourUniqueReference",
  "buyCurrency": "EUR",
  "sellCurrency": "GBP",
  "amount": 10000,
  "amountCurrency": "EUR",
  "quoteId": "bf56e3bc-269a-4db5-be4d-71ccf789d5ab"
}

Our API will then respond to your trade with a confirmation:

{
  "tradeStatus": "Filled",
  "clientOrderId": "YourUniqueReference",
  "bankingCircleRef": "2110081357029",
  "customerId": "000012356",
  "boughtCurrency": "EUR",
  "boughtAmount": 10000,
  "soldCurrency": "GBP",
  "soldAmount": 8491.89,
  "currencyPair": "EURGBP",
  "exchangeRate": 0.8491892,
  "valueDate": "2021-10-08"
}

Only 'Tradable' quote types can be used for trading. Each quote can only be used once, and you may not have multiple requests for the same two currencies ongoing at the same time.

Multicurrency Payments

This is our product for payments between two different currencies either on your own accounts, or for outgoing and incoming payments. We support both a fully automated and a request-for-quote type of a workflow for payments.

The fully automated flow allows you to instruct payments in all of our supported currencies, where the foreign exchange conversion is completed as a part of your payment automatically when the payment is processed. This applies for both incoming and outgoing payments.

Multicurrency Payments RFQ

It is possible to request a foreign exchange quote upfront for a single payment using our Multicurrency Payments RFQ endpoint.

This quote is valid for 30 seconds at a time and can be attached to a payment instruction using the single payment instruction endpoint. The payment will then be processed using exactly this exchange rate.

The prerequisite for using instructing a payment with an exchange rate is that your execution date is today's date, and that you have pre-funded your debit account. Workflows where your debit account is not funded prior to the payment instruction are not supported for Multicurrency Payments RFQ, and will be processed with the prevailing exchange rate at the time of processing when your account has been funded.

In order to request an Multicurrency Payments quote, you only need to supply your intended debit currency, the credit (transfer) currency, the expected payment amount, and indicate whether the payment amount is in the debit or credit currency terms.

Below is an example request for requesting a quote to be used for a multicurrency payment where you are sending 17.500 DKK from your DKK account to a recipient in JPY:

HTTP GET /api/v1/fx/rates/payments/DKK/JPY?amountCurrency=DKK&amount=17500

Our API will then respond with an exchange rate valid for 30 seconds:

{
  "quoteType": "Tradable",
  "currencyPair": "JPYDKK",
  "exchangeRate": 0.057962,
  "quoteId": "416f5058-660f-4b2e-a62f-44d2b0e83fd8",
  "expiryTime": "2021-10-08T14:04:01.2295277+00:00"
}

You can then use the quoteId from the quote to instruct a single payment:

Other unrelated fields omitted for brevity

{ "debtorAccount": { "account": "DK7189000000010504", "country": "DK", "financialInstitution": "SXPYDKKKXXX" }, "currencyOfTransfer": "JPY", "amount": { "amount": "17500", "currency": "DKK" }, "creditorAccount": { "account": "DK0989000000010359", "financialInstitution": "SXPYDKKKXXX", "country": "DK" }, "fxQuoteId": "416f5058-660f-4b2e-a62f-44d2b0e83fd8" }

Notice that the quote id is attached to the fxQuoteId field, and that all amounts and currencies match with the original request.

Request for quote is currently not available for bulk payments. Please contact our client services if such a feature could be useful for your workflow.

Indicative Rates

It is possible to retrieve an indicative foreign exchange quote from Banking Circle using a simple GET request. This will give you a rough approximation of the exchange rate currently available if you were to initiate either a cross-border payment or an Banking Circle FX order at the time of the request.

The Foreign Exchange market moves rapidly - volatile periods can result in thousands of microscopic price movements per second. As such, querying the endpoint multiple times for the same two currencies will not usually produce the same quote. In most payment scenarios, however, these movements are relatively insignificant.

Indicative rates can be retrieved from the Banking Circle FX request-for-quote (RFQ) endpoint as described above.

Real Time FX (RTFX)

Real Time FX is our single dealer platform where you can execute FX trades and monitor market activity in a state-of-the-art graphical user interface.

Real Time FX supports FX SPOT, short-dated FX Forwards (T+0/T+1), and FX Swaps.

In addition to the user interface, it is also possible to integrate to the platform via a FIX API, which will give you access to electronic streaming prices (ESP). This integration is inteded for sophisticated FX market participants only. Please contact us for more information.

Frequently Asked Questions

Q: Which value dates are used in my trades?
A: Value TODAY, unless otherwise indicated in your request

Q: When can I trade?
A: FX trading is supported during our normal opening hours.

Q: Which currencies can I trade?
A: We support 22 currencies for Banking Circle FX workflow and additionally HRK, AED and SAR for Multicurrency Payments.

Q: Do you have any FX cutoffs?
A: Banking Circle FX is not affected by payment cutoffs. Multicurrency payments will not be processed if you are past the payments cutoff.

Q: Are there any limitations for amounts?
A: Yes. We have maximum size for all currencies, after which our rates become indicative. The maximum size varies per currency - please contact client services for an up-to-date list.

Ideas & New Features

Part of our DNA is to develop new features in close cooperation with our customers.

If you have a workflow that is not currently supported, please reach out to us for discussions on whether we may be able to facilitate it in the future.