Skip to main content

FX Quotes

Bilaterally agree rates for OTC FX trading with other participants on the network.

Overview​

FX Quotes enables you to agree a rate for an FX trade. Trades agreed using V2 are then settled using the Link and Settle service. V3 trades are executed with the Funds Controller and do not use Link and Settle.

RTGS.global provides the communication mechanism only, aligned to the FIX Standard specification. RTGS.global does not provide rates or take any margin on agreed trades.

Two API versions are available:

  • V3 (current) — FIX 4.4 compatible. The Funds Controller acts as the FX provider, returning indicative quotes derived from their rates at the time of the request.
  • V2 — FIX 4.2 compatible. Full bilateral negotiation where each message is explicitly exchanged between participants.

V3​

Indicative quotes

V3 quotes are estimates derived from rates provided by the Funds Controller at the time of the request. The final executed amount is determined at the point of settlement and may differ from the quote. All quotes are non-binding and subject to expiry.

  1. Quote request — Submit via POST /v3/fx/quote/request, specifying the currency pair (Symbol), side (Buy/Sell), and either the base (OrderQty) or quote (OrderQty2) quantity
  2. Quote response — The Funds Controller responds with a quote including the offered rate, amounts in both currencies, and an expiry time (quoteNotificationV3 event)
    • If a Funds Controller cannot provide a quote, you receive a quoteRequestRejectedNotificationV3 event from it instead, with the reason in ErrorText. No quote follows from that Funds Controller
    • A quote request that is not addressed to a Funds Controller goes to every Funds Controller that holds both currencies for you, so you may receive quotes and rejections for the same request
  3. Exchange — Accept the quote via POST /v3/fx/exchange, providing the QuoteId, your base and quote currency account details, and the ClOrdId you intend to use for settlement. Set the rtgs-global-signed-for HTTP header to the Funds Controller's RTGS.global ID
  4. Execution report — The Funds Controller confirms or cancels the order (executionReportNotificationV3 event)

If the execution report confirms the trade, the exchange is complete. V3 does not use Link and Settle: the trade is executed with the Funds Controller.

Quoting for a client​

To request a quote on behalf of one of your clients, set Body.ClientId on the quote request to the client's RTGS.global ID, as returned in RtgsGlobalId by GET /v1/clients. Only that client's accounts are used to find Funds Controllers that can quote, and the client is carried through the quote and any exchange against it. Omit ClientId for a request that is not made for a client.

The client is returned to you in two places:

  • Header.DeliverToCompId on the quoteNotificationV3, quoteRequestRejectedNotificationV3 and executionReportNotificationV3 events is the ClientId of the quote request, so you can route each notification to the right client. This holds when the Funds Controller is in another jurisdiction, when the quote request is rejected, and when the exchange settles or is rejected. DeliverToCompId is omitted when the quote request had no client.
  • The camt.054 TransactionNotificationV1 sent when the exchange settles identifies the client as the account owner: the client's RTGS.global ID is in Acct.Ownr.Id.OrgId.Othr[].Id of each notified account. Ownr is omitted when the account has no client.

A quote request for a client, and the quote it produces:

{
"Header": { "SenderCompId": "RTGS:B:US13221932" },
"Body": {
"QuoteReqId": "39054EA89BD9",
"Symbol": "GBP/USD",
"Side": "Buy",
"OrderQty2": "10000.00",
"PaymentMode": "Immediate",
"ClientId": "RTGS:C:GB48261531"
}
}
{
"Header": {
"SenderCompId": "RTGS:B:US13221932",
"TargetCompId": "RTGS:B:US20781688",
"DeliverToCompId": "RTGS:C:GB48261531"
},
"Body": { "QuoteId": "567GHL", "QuoteReqId": "39054EA89BD9", "Symbol": "GBP/USD", "Side": "Buy" }
}

The API reference has full examples of each message.

V2​

  1. Request for Quote — Initiate a Request for Quote via POST /v2/quote/request, specifying the currency pair, amount to buy/sell, and intended recipient(s)
  2. Quote response — Counterparty participants respond with a Quote Message detailing the offered rate and resulting amounts in both currencies
  3. New Order Single — Examine responses and send a New Order Single via POST /v2/quote/new-order-single to the counterparty whose quote suits you best
  4. Execution Report — The counterparty responds via POST /v2/quote/execution-report confirming whether the order is accepted and can be settled, or cancelled

If the Execution Report confirms the trade, proceed to Link and Settle to complete settlement.