Messages in FX Professional

FX Professional executes trade and order workflows by exchanging a series of messages over Caplin Platform messaging channels with back end adapters that implement 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 Professional requires a minimum version of the FX Integration API, documented in the release notes.

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 Professional from version 2.19. For the version of FX Integration API supported by your version of FX Professional, please see the FX Sales release notes.

For trade models and message specifications required by versions of FX Professional prior to version 2.19, see the archived FX Professional 2 documentation.

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

Subjects

Assuming a typical back end system has the following integration adapters: Rates, Trading, Orders, Calendar, Historic. The following table denotes what is requested:

Item Data Type Adapters Providing Route Unmapped Subject Mapped Subject

Streaming rates

Record

Rates

Direct

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

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

ESP, RFS and PostAllocation trade channel

Record

Trading

Direct

/PRIVATE/TRADE/FX%1

/PRIVATE/%U/TRADE/FX%1

Post Allocations - Viewing

Record

Historic

Direct

/PRIVATE/FX/ALLOCATIONS/<TradeId>

/PRIVATE/%u/FX/ALLOCATIONS/<TradeId>

Orders trade channel

Record

Orders

Direct

/PRIVATE/ORDERS/FX%1

/PRIVATE/%U/ORDERS/FX%1

Pricing Grids

Container

Rates

via Transformer

/FX/CONTAINER/<ContainerName>

/FX/CONTAINER/<ContainerName>

Activity Blotter

Container

Trading

via Transformer

/PRIVATE/FX/BLOTTER/ACTIVITY

/PRIVATE/%u/FX/BLOTTER/ACTIVITY

Activity blotter items

Record

Trading

via Transformer

/PRIVATE/FX/BLOTTER/ACTIVITY/ITEM/%1

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

Execution Blotter

Container

Trading, Historic

via Transformer

/PRIVATE/FX/BLOTTER/ACTIVITY

/PRIVATE/%u/FX/BLOTTER/ACTIVITY

Execution blotter items

Record

Trading, Historic

via Transformer

/PRIVATE/FX/BLOTTER/ACTIVITY/ITEM/%1

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

Historic blotter

Container

Historic

Direct

/PRIVATE/FX/BLOTTER/HISTORIC

/PRIVATE/%u/FX/BLOTTER/HISTORIC

Historic blotter items

Record

Historic

Direct

/PRIVATE/FX/BLOTTER/HISTORIC-ITEM/%1

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

Order Blotter

Container

Orders

via Transformer

/PRIVATE/FX/BLOTTER/ORDER

/PRIVATE/%u/FX/BLOTTER/ORDER

Tenor Dates

Record

Calendar

Direct

/CALENDAR/TENORDATES/<CurrencyPair>

No mapping

Settlement Dates

Record

Calendar

Direct

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

No mapping

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