Trade models and message specifications

FX Sales executes trade and order workflows by exchanging a series of messages over Caplin Platform messaging channels with a backend adapter that implements Caplin’s FX Integration API.

The choreography of messages in each workflow is managed by a trade model. The trade model determines the states in the workflow and the permitted transitions between them. Transitions between states are triggered by messages, and the message specification for the trade model documents the expected fields in each message.

Trade models and message specifications are published with each release of the FX Integration API. Each release of FX Sales documents a minimum version of the FX Integration API that it expects your integration adapters to implement.

Trade models and message specifications

The trade models and message specifications listed below are published with the FX Integration API 3, which has been a back-end requirement for FX Sales from version 1.17. For the version of FX Integration API supported by your version of FX Sales, please see the FX Sales release notes.

For trade models and message specifications required by versions of FX Sales prior to 1.17, see the archived FX Sales 1 documentation.

For more information on the FX Integration API trade models and message specifications, see the links below:

Subjects requested by FX Sales

FX Sales subscribes to the following subjects provided by your backend integration adapters:

Item Data Type Adapters Providing Route Unmapped Subject Mapped Subject

Global streaming rates

Record

Rates

Direct

/FX/USDJPY/<Tenor>/<DealtCurrency>/<Amount>

/FX/USDJPY/<Tenor>/<DealtCurrency>/<Amount>/<MarginBand>

RFS trade channel

Record

Trading

Direct

/PRIVATE/TRADE/FX%1

/PRIVATE/%U/TRADE/FX%1

Execution Blotter

Container

Trading, Historic

via Transformer

/PRIVATE/FX/SALES/BLOTTER/EXECUTION

/PRIVATE/%u/FX/SALES/BLOTTER/EXECUTION

Execution blotter items

Record

Trading, Historic

via Transformer

/PRIVATE/FX/SALES/BLOTTER/EXECUTION/%u

/PRIVATE/%u/FX/BLOTTER/ITEM/%1

Tenor Dates

Record

Calendar

Direct

/CALENDAR/TENORDATES/<CurrencyPair>

No mapping

Settlement Dates

Record

Calendar

Direct

/CALENDAR/SETTLEMENTDATE/<CurrencyPair>/<Year>/<Month>

No mapping

Client search

Record

Client search

Direct

/PRIVATE/CLIENTSEARCH/QUERY/<clientQueryString>

/PRIVATE/%u/CLIENTSEARCH/QUERY/<clientQueryString>

Querying

Container

Client search

Direct

/PRIVATE/USERSEARCH/QUERY/user=<userQueryString>&client=<clientQueryString>

/PRIVATE/<USERNAME>/USERSEARCH/QUERY/user=<userQueryString>&client=<clientQueryString>

User search

Record

Client search

Direct

/PRIVATE/<SALES_USERNAME>/USERSEARCH/USERS/<USERNAME>

No mapping

Config

Record

Config

Direct

/PRIVATE/FX/CONFIG

/PRIVATE/%u/FX/CONFIG

Historic Search

Container

Historic Search

via Transformer

/PRIVATE/FX/SALES/BLOTTER/SEARCH/EXECUTION/searchFilter=<queryString>

/PRIVATE/%u/FX/SALES/BLOTTER/SEARCH/EXECUTION/searchFilter=<queryString>

For explanations on data types (records and containers) see here.

A Direct route implies a request for data sent directly through a Liberator and not via a Transformer

For information on Historic Search query syntax, see Historic Search.


See also: