Helpdesk
  • Overview
    • Welcome to Finery Markets
    • About Our Products
      • FM Liquidity Match
        • Master Account
        • Sub-Account
      • FM Pulse
      • White Label solution
  • Product Features
    • Onboarding
    • Risk Management
    • Trading
      • Aggregated Order Book
      • Firm Order Book
      • Pending Limit Orders (GTC)
      • Quote streams
      • RFQ
      • Toxic Flow Protection
      • Markups
      • Authorized trading
      • Non-Deliverable Trading
      • Voice Trading
      • Interdealer Trading
    • Position Management
    • Settlements
      • Automated Settlements
      • Addresses
    • Control Center
      • Multi-Roles
      • Notifications
      • Reporting
      • Bulk Edit
    • Referral program
  • API Reference
    • Quick Start with API
      • For Market Makers
      • For Takers
    • Data Types
    • REST API
      • Client management
        • connectCounterparty
        • cancelConnectionInvite
        • getCounterpartyInfo
        • getSubaccounts
      • Trading
        • Order Book & QS
          • add
          • add (authorized)
          • Pending limit orders
            • add (pending limit order)
            • add (pending limit order) (authorized)
            • del
            • del (authorized)
            • delAll
            • delAll (authorized)
            • orders
            • orders (authorized)
          • mod
          • del
          • delAll
          • book
          • voiceTrade
          • liquidationTrade
          • dealHistory
          • dealHistory (authorized)
          • instruments
          • positions
          • instrumentMarkups
          • addInstrumentMarkups
          • delInstrumentMarkups
          • qs/getAvailableQsProviders
        • RFQ
          • getSettings
          • getSettings (authorized)
          • getUserSettings (authorized)
          • setUserSettings (authorized)
          • getProviders
          • getSessions
      • Settlements
        • settlementRequests
        • settlementOrders
        • settlementTransactions
        • settlementHistory
        • settlementTransactionHistory
        • addIncomingSettlementRequest
        • delIncomingSettlementRequest
        • delIncomingSettlementCPRequest
        • addOutgoingSettlementTransaction
        • addIncomingSettlementTransaction
        • sendSettlementTransaction
        • commitIncomingSettlementTransaction
        • delSettlementTransaction
      • Risk Management
        • climits
        • setCLimit
        • delCLimit
        • enableTrading
        • disableTrading
        • cAssetLimits
        • setCAssetLimit
        • delCAssetLimit
        • cShortSalesBan
        • setShortSalesBan
        • delShortSalesBan
        • enableInstrumentsWhitelist
        • setInstrumentsWhitelist
        • disableInstrumentsWhitelist
        • instrumentsWhitelist
      • Non-deliverable Trading
        • settings/getOvernightRates
        • settings/setOvernightRates
      • QS Stream Management
        • qs/addStream
        • qs/removeStream
        • qs/getStreams
        • qs/addTakerToStream
        • qs/delTakerFromStream
    • Websocket API
      • Feed 'A' - Assets
      • Feed 'P' - Positions
      • Feed 'L' - Counterparty limits
      • Feed 'B' - Global order books
      • Feed 'F' - Tradable order books
      • Feed 'R' - Settlement requests
      • Feed 'N' - Settlement transactions
      • Feed 'K' - Positions
      • Feed 'O' - Orders
      • Feed 'S' - Settlement orders
      • RFQ
      • QS for Liquidity Providers
        • Market Data
        • Trading
      • QS for Takers
        • Market Data
    • FIX API
      • Admin messages
      • Market Data
      • Trade
        • Trading for Takers
        • Trading for LPs and Masters
      • QS for Liquidity Providers
        • Market Data
        • Trading
      • QS for Takers
        • Market Data
    • Troubleshooting Errors
      • List of Error Codes
      • Error 3
      • Error 6
      • Error 7
      • Error 14
Powered by GitBook
On this page
  • Connection and authorization flow:
  • Trading flow:
  1. API Reference
  2. Websocket API

RFQ

RFQ trading API

PreviousFeed 'S' - Settlement ordersNextQS for Liquidity Providers

Last updated 11 days ago

Connection and authorization flow:

Read the Websocket API description first

Use the auth headers EFX-Key and EFX-Sign when connecting to the WebSocket. If you sign without them, you will need to authorize afterward

  1. Connecting to the WS endpoint wss://trade.finerymarkets.com/ws/rfq

{ "event": "CONNECTED" }
  1. Authorize (if authorization headers were not provided in step 1).

{
"event": "AUTH",
"key": string,
"signature": string,
"content": string
} 

For "content": string refer to Websocket API description

{ "event": "AUTHORIZED" }

Trading flow:

Endpoint for trading: wss://trade.finerymarkets.com/ws/rfq

  1. Send the RFQ session request event to create an RFQ session. The server responds with Successful RFQ session response, indicating that the RFQ session has been created. The service sends requests to external providers (from the list specified by the client in the request). Upon receiving an answer from any provider, the server sends a Quote response.

{
"event": "CREATE",
"reqId": int,
"instrument": string,
"providers": int[],
"side": string ("BUY"/"SELL"),
"size": int,
"clientId": int (optional, required only if request is authorized)
}

For getting providers use:

{ "event": "CREATED", "reqId": int }
{
"event": "QUOTE",
"reqId": int,
"status": string, ("SUCCESS", "REJECT", "ERROR")
"expiresAt": datetime,
"providerId": int,
"quotes": [
   {
     "side": string ("BUY"/"SELL"),
     "price": int 
   } 
 ],
"error": string
}
  1. Send an Order confirmation request to approve the deal with the provider specified in the request. The server sends another request to the specified provider, and depending on its response, the server can respond with an Order confirmation response with different statuses:

    • SUCCESS if the provider approved the deal.

    • REJECT if the provider rejected the deal.

    • ERROR if there was an error during the request.

{
"event": "COMMIT",
"reqId": int,
"providerId": int,
"side": string ("BUY"/"SELL")
}
{
"event": "COMMITTED",
"reqId": int,
"status": string, ("SUCCESS", "REJECT", "ERROR"),
"error": string
}

RFQ session statuses include:

  • CREATED – The session has been initialized.

  • COMMITTED – The session has been successfully finished with the committed order.

  • CANCELED – The session was canceled.

  • EXPIRED – The session expired without commitment.

  • REJECTED – Commitment to the LP was rejected due to insufficient trading limits or other risk management checks.

  • FAILED – The commitment to the LP failed due to technical errors or issues during processing.

  1. Send a Cancel request to cancel the RFQ completely. After you will receive Cancel response from the server. Then the RFQ session may be restarted.

{
"event": "CANCEL",
"reqId": int
}
{
"event": "CANCELED",
"reqId": int
}
  1. If an internal error occurs, you will receive an Error response event.

{
"event": "ERROR",
"reqId": int,
"error": int,
"errors": string
}
getProviders