Trade model: Allocate

This page describes the FX Integration API’s Allocate trade model, as defined in the file config/TradingAdapter/Blade/DataSource/etc/trademodels.xml in the FX Integration API Kit.

This documentation is for the FX Integration API 3.53.0.

Trade models are XML-defined state machines used by the Java Trading API, the C Trading API, and Caplin Trader’s Trading API to manage trading workflows. For more information on trade model XML definitions, see the Trade model XML schema reference.

State diagram

The state diagram for the Allocate trade model is shown below.

InitialDetailsRequestedDetailsProvidedRejectedClientCloseSentAllocateSentAllocatedErrorClientClosedSubmitDetailsUpdateRejectClientCloseAllocateClientCloseAllocateAckRejectErrorHoldWithdrawClientCloseAckLegendTransitions initiated by the client are inyellow.Transitions initiated by the server are inblue.

Messages: client → server

Trade-channel messages sent by StreamLink clients to the FX API DataSource.

For high-level information on message fields, see Message and record fields. For information about fields in specific messages, see the message specifications below.

Allocate
Allocate
AllocateLeg Ln
Ln_AllocationAmount
The amount to allocate to this leg, specified in the dealt currency. Example value: 50000
Ln_EntityId
string
Example: CUSTONE
The entity the trade is on behalf of. For example, if the logged in user user1@customer.co.za wishes to make a trade on behalf of entity CUSTONE, then the value of this field will be CUSTONE.
Ln_Account
string
Example: Garfields|GARF
The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>
Ln_BuySell
string
The direction of the trade or trade leg. This always refers to the BaseCurrency, NOT the DealtCurrency.
Ln_SettlementDate
string
MsgType
String
Example: Allocate
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model
ClientClose
MsgType
String
Example: ClientClose
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model
Submit
MsgType
String
Example: Submit
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model
TradeID
string
Example: 00001561
A unique identifier for this trade

Messages: server → client

Trade-channel messages sent by the FX API DataSource to StreamLink clients.

For high-level information on message fields, see Message and record fields. For information about fields in specific messages, see the message specifications below.

DetailsUpdate Spot Trade Details
CommonTradeDetailsFields
Account
string
Example: Garfields|GARF
The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>
TOBOUser
string
Example: client@customer.co.za
The user the trade is on behalf of. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be client@customer.co.za.
OneWayDirection
string
LastActionDateTime
datetime
The time and date of the last action on an order.
RequestedDateTime
datetime
TraderUsername
string
Example: sales_trader@novobank.co.za
The user who entered the trade. This may be on behalf of themselves, or on behalf of someone else. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be dealer1@novobank.co.za. If the user client@customer.co.za makes a trade on behalf of themselves it will be client@customer.co.za.
TradeDetailsFields
CurrencyPair
string
The currency pair for the trade. For example, EURUSD
DealtCurrency
string
The currency of the Amount of a trade or order.
TradingType
string
Caplin supported values are [SPOT, FWD, NDF, NDF_FIXING, TIME_OPTION, DRAWDOWN, SWAP, BLOCK]. See the constants defined within com.caplin.motif.fx.trading.FXTradingType for further details.
InterventionTradeDetailsFields
InterventionStatus
string
Use the TradeStatus field instead
TradeStatus
string
Example: AWAITING-PRICE
The current status of the trade. Supported types are [AWAITING-TRADER, AWAITING-PRICE, PRICED, EXECUTING, CLOSED, REJECTED, ERRORED, COMPLETED]. CLOSED means the client cancelled the trade request, REJECTED indicates it was rejected by the dealer.
Dealable
boolean
Whether a trade request can be picked up by a sales trader
PricingMode
string
Example: AUTO
Whether the trade is being automatically or manually priced. Supported types are [AUTO, MANUAL]
Competition
boolean
Whether a quote request is in competition. For example, true for quotes from an ECN and false for quotes from an SDP
PrimaryReason
string
Example: This trade exceeds the GFA
The headline reason that a trade requires intervention.
Reasons
string
A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.
TradeRequestID
string
Source
string
The source of a quote request. The name or ID of an ECN, SDP or other channel
IntervenerUsername
string
Example: head_trader@novobank.co.za
The user who is currently intervening on and potentially pricing a trade.
LegTradeDetailsFields L1
L1_Amount
decimal
The amount of a trade or order in the DealtCurrency.
L1_SettlementDate
string
L1_Tenor
string
Example: 1M
Supported types are [ON, [TODAY, TOD, TD], TN, [TOM, ND], SPOT, SN, 1D, 1W, 2W, 3W, 4W, 1M, 2M, 4M, 5M, 6M, 7M, 8M, 9M, 10M, 11M, [1Y, 12M], 15M, 18M, 21M, [2Y, 24M], [3Y, 36M], [4Y, 48M], [5Y, 60M], broken]. broken indicates that a SettlementDate must be sent
L1_BuySell
string
The direction of the trade or trade leg. This always refers to the BaseCurrency, NOT the DealtCurrency.
L1_Account
string
Example: Garfields|GARF
The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>
DetailsUpdate Forward Trade Details
CommonTradeDetailsFields
Account
string
Example: Garfields|GARF
The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>
TOBOUser
string
Example: client@customer.co.za
The user the trade is on behalf of. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be client@customer.co.za.
OneWayDirection
string
LastActionDateTime
datetime
The time and date of the last action on an order.
RequestedDateTime
datetime
TraderUsername
string
Example: sales_trader@novobank.co.za
The user who entered the trade. This may be on behalf of themselves, or on behalf of someone else. For example, if the logged in user dealer1@novobank.co.za wishes to make a trade on behalf of user client@customer.co.za, then the value of this field will be dealer1@novobank.co.za. If the user client@customer.co.za makes a trade on behalf of themselves it will be client@customer.co.za.
TradeDetailsFields
CurrencyPair
string
The currency pair for the trade. For example, EURUSD
DealtCurrency
string
The currency of the Amount of a trade or order.
TradingType
string
Caplin supported values are [SPOT, FWD, NDF, NDF_FIXING, TIME_OPTION, DRAWDOWN, SWAP, BLOCK]. See the constants defined within com.caplin.motif.fx.trading.FXTradingType for further details.
InterventionTradeDetailsFields
InterventionStatus
string
Use the TradeStatus field instead
TradeStatus
string
Example: AWAITING-PRICE
The current status of the trade. Supported types are [AWAITING-TRADER, AWAITING-PRICE, PRICED, EXECUTING, CLOSED, REJECTED, ERRORED, COMPLETED]. CLOSED means the client cancelled the trade request, REJECTED indicates it was rejected by the dealer.
Dealable
boolean
Whether a trade request can be picked up by a sales trader
PricingMode
string
Example: AUTO
Whether the trade is being automatically or manually priced. Supported types are [AUTO, MANUAL]
Competition
boolean
Whether a quote request is in competition. For example, true for quotes from an ECN and false for quotes from an SDP
PrimaryReason
string
Example: This trade exceeds the GFA
The headline reason that a trade requires intervention.
Reasons
string
A JSON structure containing all the reasons and information about why the trade requires intervention. Please see the Sales Intervention Reasons documentation on the website for more information.
TradeRequestID
string
Source
string
The source of a quote request. The name or ID of an ECN, SDP or other channel
IntervenerUsername
string
Example: head_trader@novobank.co.za
The user who is currently intervening on and potentially pricing a trade.
LegTradeDetailsFields L1
L1_Amount
decimal
The amount of a trade or order in the DealtCurrency.
L1_SettlementDate
string
L1_Tenor
string
Example: 1M
Supported types are [ON, [TODAY, TOD, TD], TN, [TOM, ND], SPOT, SN, 1D, 1W, 2W, 3W, 4W, 1M, 2M, 4M, 5M, 6M, 7M, 8M, 9M, 10M, 11M, [1Y, 12M], 15M, 18M, 21M, [2Y, 24M], [3Y, 36M], [4Y, 48M], [5Y, 60M], broken]. broken indicates that a SettlementDate must be sent
L1_BuySell
string
The direction of the trade or trade leg. This always refers to the BaseCurrency, NOT the DealtCurrency.
L1_Account
string
Example: Garfields|GARF
The account a trade or order has been submitted against. The format is <description>|<name> or <name>|<name>
NDFLegTradeDetailsFields L1
L1_FixingDate
string
Example: 20150620
This is the day and time whereby the comparison between the NDF rate and the prevailing spot rate is made.
TimeOptionLegTradeDetailsFields L1
L1_StartDate
string
Example: 20150620
L1_StartTenor
string
Example: 1W
AllocateAck
MsgType
String
Example: AllocateAck
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model
Error
MsgType
String
Example: Error
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model
Hold
MsgType
String
Example: Hold
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model
Reject
MsgType
String
Example: Reject
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model
ClientCloseAck
MsgType
String
Example: ClientCloseAck
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model
Withdraw
MsgType
String
Example: Withdraw
Name of the transition
RequestID
String
The RequestID. A Unique identifier, must remain the same for each event in the trade model