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.