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
  1. API Reference
  2. Websocket API

Feed 'R' - Settlement requests

Settlement request feed

PreviousFeed 'F' - Tradable order booksNextFeed 'N' - Settlement transactions

Last updated 1 year ago

Requests

{"event": "bind", "feed": "R"}
{"event": "unbind", "feed": "R"}

Feed handling

settlementRequest = [
  0: counterpartyId (Efx::ClientId)
  1: currencyName (string)
  2: flags (unsigned int16)
  3: amount (Efx::Size)
  4: comment (string)
  5: expirationTimestamp(Efx::Timestamp)
  6: network (string)
  7: requestId (unsigned int64)
  8: creationTimestamp(Efx::Timestamp)
]

For detailed settlement requests description

// snapshot
['R', 0, 'S', [
  array of incoming settlementRequest,
  array of outgoing settlementRequest
]]

// add new settlement requests
['R', 0, '+', [
  array of new incoming settlementRequest,
  array of new outgoing settlementRequest
]]

// remove settlement requests
['R', 0, '-', [
  array of removed incoming settlementRequest,
  array of removed outgoing settlementRequest
]]

// failed to subscribe
['R', 0, 'Z', 2]

// unsubscribed
['R', 0, 'U', 0]
applyToSnapshot(prevSnapshot, feed, action, data) {
    switch (feed) {
        case 'R': {
            switch (action) {
                case 'S' : {
                    return [[...data[0]], [...data[1]]]
                }
                case '+' : {
                    for (let incoming of data[0]) {
                        prevSnapshot[0].push(incoming)
                    }
                    for (let outgoing of data[1]) {
                        prevSnapshot[1].push(outgoing)
                    }
                    break
                }
                case '-' : {
                    for (let incoming of data[0]) {
                        for (var i in prevSnapshot[0]) {
                            if (prevSnapshot[0][i][0] == incoming[0] &&
                                prevSnapshot[0][i][1] == incoming[1]) {
                                prevSnapshot[0].splice(i, 1)
                                break
                            }
                        }
                    }
                    for (let outgoing of data[1]) {
                        for (var i in prevSnapshot[1]) {
                            if (prevSnapshot[1][i][0] == outgoing[0] &&
                                prevSnapshot[1][i][1] == outgoing[1]) {
                                prevSnapshot[1].splice(i, 1)
                                break
                            }
                        }
                    }
                    break
                }
            }
            break
        }
    }
    return prevSnapshot
}
settlementRequests