Trade Event Notification System

Delivery methods

TENS can deliver notifications using a variety of delivery methods. The notifications delivered using a particular delivery method will use a suitable format. E.g. if the deliver method is FIX the FIX format will be used.

Delivery aspects

There are four different delivery methods. According to the estimated number of notifications per day (volume), each of these mechanisms may be more or less suitable. It is also worth to consider whether security, latency, format and reliability have importance.

  • Volume: calculated in notifications pr. day
  • Latency: time from trade event to the notification has arrived at the client
  • Reliability: the general conception of reliability, or resistance to failure
  • Security: is notification data encrypted between sender and receiver
  • Format: notification format used with the corresponding transport type

Delivery

Volume

Latency

Reliability

Secure

Format

E-mail

<10K

<10s

Low

No

XML

File Transfer

<100K

<5s

Medium

Yes

XML

SWIFT

<100K

<5s

High

Yes

SWIFT

FIX

>100k

<1s

High

Yes

FIX

E-mail

Each notification is delivered as a single mail message, which makes this delivery method most suitable for low volumes. When delivered by e-mail the content may either be attached as a file, or in the body text. This is not recommended if guaranteed delivery is required. Each configuration can specify several distinct e-mail addresses. E-mail delivery is through common SMTP mail servers at both the ends of the party, which may be burdened by other business tasks. This may increase the latency in some periods.

File Transfer

The file based transports requires that the client has a server that fully supports the selected transfer protocol. Saxo Group will either initiate the connection, and login with a client supplied user account and password. Notifications are hereafter delivered as individual files in the root directory of the supplied user account. Or the client can login to the Saxo Group EFT server and download new notifications at scheduled intervals. Each notification is delivered as a separate file, named after the type of event, including a unique ID.
Messages stored on Saxo Group's EFT server will be purged after 30 days. If any additional clean-up is required by the client, the client will be given access to remove messages according to their need.

SWIFT

SWIFT may be suitable where the infrastructure is already in place. The SWIFT delivery method is however restricted to position events and a subset of contract types. There may also apply a charge pr. notification sent in the SWIFT net, which may make it less attractive for medium and high volume.

Fix

The FIX protocol is the best choice for high volume and low latency transfers. The clients are permanently connected to Saxo Group, and receive the events with a minimum of latency. The FIX protocol is based on version 4.4, and appended with a custom set of Saxo Group fields and messages. The communication is not encrypted by the FIX standards, which therefore requires a VPN connection to be secure.

Connection hours:

Log on can start 00:00:00 UTC Sunday
Log off can be done at 23:50 UTC Friday
NOTE: Saxo Group is using two VPN solutions, based on either SSL or IPSEC. Currently only the SSL based solution is working with FIX delivery.

Notification formats

Each delivery method uses a specific format:

Delivery Method

Format

E-mail

XML

File Transfer

XML

SWIFT

SWIFT

FIX Session

FIX 4.4

The following sections describe each format in detail.

XML

The XML format used for notifications is defined by an XSD (see section 0 on page ).

SWIFT

Only position notifications can be delivered using SWIFT. Furthermore only notifications about a subset of contracts can be delivered. Different contract types use different SWIFT message types as outlined below.

Contract type

SWIFT message type

FX Spot

MT 300

CFD, Future

MT 515

Bond, Stock

MT 541 / MT 542

Note: The amount of information contained in SWIFT notifications is considerable less compared to the other transports.

Fix Session

The FIX protocol used by TENS is FIX 4.4. Four different user defined messages have defined for each notification type and where appropriate user defined fields are being used in these messages. All user defined fields and messages are prefixed with "Saxo".

Notification triggers

When a notification is triggered, it is triggered by an action in the Saxo Group systems. Notifications are triggered whenever a change is detected. Changes happen when for instance positions are created and netted and when orders are created and filled or cancelled.
However, other changes may lead to updates. E.g. when the order price of a trailing stop order is changed because the market has moved a notification is generated. And when positions are rolled over each day a notification is generated with the updated value of the position.
These updates may happen frequently and it is not possible to suppress them based on a criteria. Subscribing to notifications is an all or nothing proposition where you either get all updates or none at all.

Products

The Trade Event Notification Service generates notifications for all available products. Below table lists all available products, maps them to the TENS contract type and lists the corresponding Saxo system abbreviation.

Product

TENS Contract type

System Abbreviation

Forex Spot & Forwards

FXSpot

VT

Forex Options

FxVanillaOption
FxBinaryOption
FxKnockInOption
FxKnockOutOption
FxNoTouchOption
FxOneTouchOption

VO

Commodities

CfdOnFuture

FF

CFDs

Cfd

SF

Contract Options

ContractOption

CO

Share Options

ShareOption

SO

Contract Futures

ContractFuture

CF

Shares

Share

SH

Managed Funds

ManagedFund

MF

Bonds

Bond

BO

Actions

A notification can be triggered by several different actions. Below table describes the actions, which can be performed within the Saxo Group systems and the actions where the Saxo Group systems are affected.

Actions

Description

Option Exercise

When an Option is exercised

Option Expire

When an Option expires

Allocation

When a trade is allocated to a customer account via an allocation key

Position netting

When a position is netted by Saxo Group's Back Office

Cash Settlement

When a Cash Settlement is performed

Corporate Action

When a corporate action occurs

Saxo Initiates trade

When an employee of Saxo Group initiates a trade on a customer account

Customer trade

When a customer or a White Label Client Employee initiates a trade on a customer account

Margin Calls

When a margin call is triggered by the Margin Service

Customer Order

When a customer or White Label Client Employee places orders on a customer account

Trade Correction

The correction of a trade parameter that has not been settled or netted

Position Correction

The correction of a trade that is settled or has become a part of netting

Change ISIN code

ISIN code changed

Partial fill

When an order is partially filled

Actions and products

Not all actions are applicable to all products and some actions are applicable to more than one product. The table below outlines the actions that can be performed for the various products.

Action type

VT

VO

FF

SF

CO

SO

CF

SH

MF

BO

Option Exercise

-

X

-

-

-

-

-

-

-

-

Option Expire

-

X

-

-

X

X

-

-

-

-

Allocation

X

Position netting

X

Cash Settlement

X

-

-

-

-

-

-

-

-

-

Corporate Action

-

-

-

X

-

-

-

-

-

Saxo Initiated trade

X

Customer trade

X

-

Margin Calls

X

Customer Order* (Order actions)

X

-

Trade Correction

X

Position Correction

X

Change ISIN code

X

Partial fill

X







The following key is used:

-

This type of action cannot be performed for this instrument

x

x

This type of action must be regarded individually for all instruments selected

x

This type of action can be shared across all instruments selected

Please see Appendix 2-15 for examples of the actions listed above.

Order behaviour

When subscribing to order notifications the notifications sent may not accurately reflect all changes made to the order. For instance if an order is partially filled three times in quick succession before it is completely filled and deleted, only some or even none of the partial fills may lead to a notification being generated. This only happens when an order changes very quickly within tenths of a second.
When an order notification is being generated it still accurately reflects that state of the order at the point in time it was generated and a notification for the final deletion of the order when it is completely filled is always generated. Furthermore, when an order is either filled or partially filled a notification for the resulting position is always generated.
Orders can be deleted for three reasons:

  • The order is cancelled
  • The order is filled
  • The order expires

The exact information why an order is deleted is not included in the notification. However by applying a few rules the reason can be deducted:

  • If a position is created having a SourceOrderId that is the same as the OrderId of the order then the order has been filled. Note that the position is also created or updated for a partial fill.
  • If the order has a duration (i.e. has a Duration different from GoodTilCancel) and the order is deleted when the point in time defined by the duration of the order is reached then the order has expired.
  • Otherwise the order was cancelled.

XML Description

Positions

The position notification is created when an event related to a position occurs. Cash deposit and withdrawal events are not included in the position notifications but are instead reported using the funding notification.
Below is a sample message for a new position.

<?xml version="1.0" encoding="utf-8"?>
<Position>
<AccountId>77820</AccountId>
<Amount>10</Amount>
<BuySell>Buy</BuySell>
<ClientId>3179470</ClientId>
<ContractType>Cfd</ContractType>
<Created>2011-09-26T08:28:51.477</Created>
<CurrencyCode>USD</CurrencyCode>
<ExchangeId>NASDAQ</ExchangeId>
<ExecutionTime>2011-09-26T08:28:51.333</ExecutionTime>
<Instrument>NAS100.I</Instrument>
<IsinCode>US6311011026</IsinCode>
<OpenPrice>2211.91</OpenPrice>
<PositionEvent>New</PositionEvent>
<PositionId>59846081</PositionId>
<RegistrationTime>2011-09-26T08:28:51.437</RegistrationTime>
<SourceOrderId>44085966</SourceOrderId>
<Symbol>NAS100.I</Symbol>
<SystemOrigin>Other</SystemOrigin>
<ValueDate>2011-09-26</ValueDate>
</Position> 

Position fields

Name

Required

Type

Description

AccountId

Yes

string

Identifies the account involved in the transaction.

Amount

No

decimal

Amount (e.g. number of securities) ordered.

BuySell

No

BuySell

Identifies the side of the transaction.
Buy: Buy the security.
Sell: Sell the security.

CallPut

No

CallPut

Identifies if the option is a call option or a put option.
Call: The option is a call option.
Put: The option is a put option.

ClientId

Yes

int

Identifies the client involved in the transaction.

Commission

No

decimal

The commission on the position (if there is any).

ContractType

No

ContractType

Identifies the type of the security.
Bond: Bond.
Cfd: Contract for difference.
CfdOnFuture: Contract for difference on future.
ContractOption: Option.
FutureContract: Future.
FxBinaryOption: Forex binary option.
FxKnockInOption: Forex knock in option.
FxKnockOutOption: Forex knock out option.
FxNoTouchOption: Forex no touch option.
FxOneTouchOption: Forex one touch option.
FxSpot: Forex spot.
FxVanillaOption: Forex vanilla option.
ManagedFund: Managed fund.
Share: Stock.
ShareOption: Stock option.

ConversionRate

No

decimal

The conversion rate used at the time of the transaction.

Created

Yes

dateTime

The time when this notification was created.

CurrencyCode

No

string

The currency of the transaction.

Delta

No

decimal

The delta value of the option.

ExchangeFee

No

decimal

Exchange fee charged for the trade. The currency is the currency of the contract.

ExchangeId

No

string

Identifies the exchange where the security is traded.

ExecutionTime

No

dateTime

Timestamp when the business transaction represented by the notification occurred.

ExpiryCut

No

string

The scheme used to determine the time of day the option expires. NY (New York) is 10 AM New York time. TY (Tokyo) is 3 PM Tokyo time.

ExpiryDate

No

date

Expiry date of the contract.

Instrument

No

string

The Saxo Group instrument.

IsinCode

No

string

The ISIN code for the instrument traded.

LowerBarrier

No

decimal

Exotic option lower barrier limit price.

OpenPrice

No

decimal

Price per security.

OpenSpot

No

decimal

Forex spot rate.

OpenSwap

No

decimal

Forex forward points added to OpenSpot. May be a negative value.

OptionExpiryDate

No

Date

Expiry date associated to a Contract Option or a Contract Future

OriginalAccountId

No

string

Account that the position originally belonged to (if it has been moved).

OriginatingPositionId

No

int

Identifies the option this position is associated with.

PositionEvent

Yes

PositionEvent

Describes the position event.
Deleted: The position is deleted.
MarginStopOut: The position is created as a result of a margin stop out.
New: The position is created.
OptionExercised: The position has been deleted when an option was exercised.
OptionExpired: The position has been deleted when an option expired.
Updated: The position has been updated.

PositionId

Yes

int

Identifies the position.

PremiumAmount

No

decimal

The premium of an FX option.

PremiumAmountCcy2

No

decimal

TBD

PriceType

No

PriceType

Amount: The quoted price is an amount
Ccy1Percentage: The quoted price is a percentage of the first currency of the pair
Ccy1Pips: The quoted price is in pips of the first currency of the currency pair
Ccy2Percentage: The quoted price is a percentage of the second currency of the pair
Ccy2Pips: The quoted price is in pips of the second currency of the currency pair
ThirdCurrency: The quoted price is in the third currency

RegistrationTime

No

dateTime

The time when the transaction was registered by the bank.

RelatedOrderCount

No

int

The number of related orders (maximum 2).

RelatedPositionId

No

int

Identifies the position that this order/position is related to.

SourceOrderId

No

int

Identifies the order that was the source for this position.

SpotDate

No

date

The date when the initial transfer of the product of the transaction takes place.

StampDuty

No

decimal

Tax applied by an exchange.

StrikePrice

No

decimal

Option strike price.

Symbol

No

string

Symbol identifying the security using a common "human understood" representation.

SystemOrigin

No

SystemOrigin

Identifies the system where the notification originates from.
B2B: The notification is created as a result of an action in the B2B service.
ClientStation: The notification is created as a result of an action in DesktopTrader.
MobileTrader: The notification is created as a result of an action in MobileTrader.
Other: The notification is created as a result of an action in another system, e.g. internally in Saxo Group.
WebTrader: The notification is created as a result of an action in WebTrader.

ToOpenClose

No

ToOpenClose

Specifies whether the trade is closing an existing position or opening a new position.
ToClose: The trade is closing an existing position.
ToOpen: The trade is opening a new position.

UpperBarrier

No

decimal

Exotic option upper barrier limit price.

ValueDate

No

date

The date when the final transfer of the product of the transaction takes place.

Volatility

No

decimal

The volatility value of the option.

Orders

The order notification is created when an event related to an order occurs.
Below is a sample message for a changed order.

<?xml version="1.0" encoding="utf-8"?>
<Order>
<AccountId>77820</AccountId>
<Amount>30000</Amount>
<BuySell>Buy</BuySell>
<ClientId>3179470</ClientId>
<ContractType>FxSpot</ContractType>
<Created>2011-09-19T17:48:24.747</Created>
<CurrencyCode>JPY</CurrencyCode>
<Duration>DayOrder</Duration>
<ExchangeId>SBFX</ExchangeId>
<ExecutionType>Changed</ExecutionType>
<FilledAmount>20</FilledAmount>
<Instrument>USDJPY</Instrument>
<OrderId>130790572</OrderId>
<OrderRelation>Oco</OrderRelation>
<OrderType>StopIfOffered</OrderType>
<Price>75.78</Price>
<RegistrationTime>2011-09-19T17:48:24.747</RegistrationTime>
<Symbol>USD/JPY</Symbol>
<SystemOrigin>Other</SystemOrigin>
<UserId>4662393</UserId>
</Order>

Order fields

Name

Required

Type

Description

AccountId

Yes

string

Identifies the account involved in the transaction.

Amount

No

decimal

Amount (e.g. number of securities) ordered.

BuySell

No

BuySell

Identifies the side of the transaction.
Buy: Buy the security.
Sell: Sell the security.

CallPut

No

CallPut

Identifies if the option is a call option or a put option.
Call: The option is a call option.
Put: The option is a put option.

ClientId

Yes

int

Identifies the client involved in the transaction.

ClientOrderId

No

string

Client assigned order identification.

ContractType

No

ContractType

Identifies the type of the security.
Bond: Bond.
Cfd: Contract for difference.
CfdOnFuture: Contract for difference on future.
ContractOption: Option.
FutureContract: Future.
FxBinaryOption: Forex binary option.
FxKnockInOption: Forex knock in option.
FxKnockOutOption: Forex knock out option.
FxNoTouchOption: Forex no touch option.
FxOneTouchOption: Forex one touch option.
FxSpot: Forex spot.
FxVanillaOption: Fores vanilla option.
ManagedFund: Managed fund.
Share: Stock.
ShareOption: Stock option.

Created

Yes

dateTime

The time when this notification was created.

CurrencyCode

No

string

The currency of the transaction.

Duration

No

Duration

Specifies how long the order remains in effect.
AtTheClose: The order is either filled at the close of the market or, if that is not possible, canceled.
AtTheOpening: The order is either filled at the opening of the market or, if that is not possible, canceled.
DayOrder: The order is automatically canceled at the end of the trading day.
FillOrKill: The order is either immediately filled for the entire amount or, if that is not possible, canceled.
GoodTillCancel: The order is in effect until canceled by the client.
GoodTillDate: The order is in effect until the specified expiry date.
ImmediateOrCancel: The order is either immediately filled or, if that is not possible, canceled. If only a partial fill is possible the order is still filled.

ExchangeId

No

string

Identifies the exchange where the security is traded.

ExecutionType

Yes

ExecutionType

Describes the order event.
Changed: Order has been changed.
Deleted: Order has been deleted either as a result of being filled or canceled or it has expired.
New: New order.

ExpiryDate

No

date

Expiry date of the contract.

FilledAmount

No

decimal

Amount (e.g. number of securities) filled.

Instrument

Yes

string

The Saxo Group instrument.

IsinCode

No

string

The ISIN code for the instrument traded.

OptionExpiryDate

No

Date

Expiry date associated to a Contract Option or a Contract Future.

OrderId

Yes

int

Identifies the order.

OrderRelation

No

OrderRelation

IfDoneMaster: The order is a stop order with a related order that comes into effect if this order is executed.
IfDoneSlave: The order is a related order that only comes into effect when the related order is executed.
IfDoneSlaveOco: The order is a related order that only comes into effect when the related order is executed. Furthermore, another related order exists that if executed will cancel this order.
Oco: One-Cancels-the-Other. The order is canceled if the related order is executed.
StandAlone: The order is a stand-alone order and execution does not depend on other orders.

OrderType

No

OrderType

The type of the order.
Algorithmic: Is an order to optimize execution by minimizing the combination of price impact and the risk of potential price movements. Supported Algorithmic Order Types: Reload, VWAP, IS, Iceberg, With Volume, Smart Dark, Pre-Market.
CallLimit: TBD
CallStop: TBD
GuaranteedStop: TBD
Limit: The order is a limit order.
Market: The order is a market order.
MarketExpiry: The order is a market order.  Gets triggered on expiry for instruments that have an expiration date. (CFDs on Commodities + Futures)
MarketStopOut: The order is a market order.  The order gets triggered automatically if margin requirement is exceeded.
StopIfBid: The order is a stop order. The order execution criterion is evaluated by comparing the bid price to the limit price.
StopIfOffered: The order is a stop order. The order execution criterion is evaluated by comparing the offer price to the limit price.
StopIfTraded: The order is a stop order. The order execution criterion is evaluated by comparing the trade price to the limit price.
StopLimit: An order placed with a broker that combines the features of stop order with those of a limit order. A stop-limit order will be executed at a specified price (or better) after a given stop price has been reached. Once the stop price is reached, the stop-limit order becomes a limit order to buy (or sell) at the limit price or better.

OriginalOrderId

No

int

Identifies the original order that was used to create this order.

OriginatingPositionId

No

int

Identifies the option this position is associated with.

Price

No

decimal

Price per unit.

RegistrationTime

No

dateTime

The time when the transaction was registered by the bank.

RelatedOrderId

No

int

Identifies the related order for complex order types.

RelatedPositionId

No

int

Identifies the position that this order/position is related to.

RelatedSecondOrderId

No

int

Identifies the second related order for complex order types.

StrikePrice

No

decimal

Option strike price.

Symbol

No

string

Symbol identifying the security using a common "human understood" representation.

SystemOrigin

No

SystemOrigin

Identifies the system where the notification originates from.
B2B: The notification is created as a result of an action in the B2B service.
ClientStation: The notification is created as a result of an action in SaxoTrader.
MobileTrader: The notification is created as a result of an action in MobileTrader.
Other: The notification is created as a result of an action in another system, e.g. internally in Saxo Group.
WebTrader: The notification is created as a result of an action in WebTrader.

ToOpenClose

No

ToOpenClose

Specifies whether the trade is closing an existing position or opening a new position.
ToClose: The trade is closing an existing position.
ToOpen: The trade is opening a new position.

TrailingStopPriceChangeThreshold

No

decimal

The trailing step size for a trailing stop order. When the market price moves in the direction of the trade and the distance from the order price exceeds the sum of the distance to market and the trailing step size the order price is adjusted in the direction of the trade to trail the market.

TrailingStopPriceDifference

No

decimal

The distance to market for a trailing stop order. When the market price moves in the direction of the trade and the distance from the order price exceeds the sum of the distance to market and the trailing step size the order price is adjusted in the direction of the trade to trail the market.

UserId

No

int

Identifies the user that created the order.

Margin Calls

The margin call notification is created when an event related to a margin call occurs.
Below is a sample message for a margin call.

<?xml version="1.0" encoding="utf-8"?>
<MarginCall>
<BaseCurrency>USD</BaseCurrency>
<ClientId>1973785</ClientId>
<Created>2013-11-11T09:55:46.817</Created>
<DefaultAccountId>19373785</DefaultAccountId>
<MarginCallAction>MarginCall</MarginCallAction>
<MarginCallLevel>110</MarginCallLevel>
<MarginDeficit>28295.91</MarginDeficit>
<MarginRequired>298506.73</MarginRequired>
<NetEquityForMargin>270210.82</NetEquityForMargin>
<NetFreeBalance>-28295.91</NetFreeBalance>
<UseOfEquityForMargin>1.10</UseOfEquityForMargin>
</MarginCall> 

Margin call fields

Name

Required

Type

Description

BaseCurrency

Yes

string

The default currency for the client.

ClientId

Yes

int

Identifies the client involved in the transaction.

Created

Yes

dateTime

The time when this notification was created.

DefaultAccountId

Yes

string

The default account ID for the client.

MarginCallAction

Yes

MarginCallAction

Describes the action associated with this margin call.
MarginCall: The client is requested to restore the necessary margin required.
Reinstate: The system has restored the necessary margin required.
StopOut: The client has been forcefully stopped out to restore the necessary margin required.
LevelDropped: Margin level drooped, The client has restored the necessary margin level required, according to the margin call profile defined. This margin call action will appear if the client margin level dropped under the defined margin levels percentage as set in the margin call profile.

MarginCallLevel

Yes

int

The percentage of margin used.
Please Note, in a LevelDropped margin call scenario, where the margin level is 0, this filed will not be included in the XML message.
Margin call level equal to 0 can accrue in 2 different scenarios.
Scenario 1: If the margin level has drooped under the last percentage defined in the margin call profile, then the margin call level will be equal to 0, in this case the MarginCallLevel field will not be included in the Margin Call notification.
Scenario 2: In case of account funding where the account balance was negative, margin call level call level will be equal to 0, in this case the MarginCallLevel field will not be included in the Margin Call notification.

MarginDeficit

Yes

String

The value in this field represents the available amount that the client has for trading on margin, the value displayed in this field reflecting Saxo group point of view, hence the value will always be positive during a margin call.

MarginRequired

Yes

String

The value in this field represents the total margin amount required to support the various exposures, created by the client's prevailing holdings in any margin tradable product.

NetEquityForMargin

Yes

String

Total net equity available for margin trading.

NetFreeBalance

Yes

String

The value in this field represents the available amount that the client has for trading on margin, the value displayed in this field is reflecting the client point of view.
Pending on the margin call level, this field could have a negative representation during a margin call.

UseOfEquityForMargin

Yes

String

The value in this field represents the percentage of the net exposure in relation to the account value.

Funding

The funding notification is created when money is added or deducted from an account.
Below is a sample message for a funding deposit.

<?xml version="1.0" encoding="utf-8"?>
<Funding>
<AccountId>77820</AccountId>
<Amount>14000</Amount>
<ClientId>3179470</ClientId>
<Created>2010-08-18T08:14:14.58</Created>
<CurrencyCode>NOK</CurrencyCode>
<FundingEvent>New</FundingEvent>
<FundingType>Deposit</FundingType>
<PositionId>276302329</PositionId>
<RegistrationTime>2010-08-18T08:14:14.573</RegistrationTime>
<ValueDate>2010-08-19</ValueDate>
</Funding>

Funding fields

Name

Required

Type

Description

AccountId

Yes

string

Identifies the account involved in the transaction.

Amount

Yes

decimal

Amount (e.g. number of securities) ordered.

ClientId

Yes

int

Identifies the client involved in the transaction.

ConversionRate

No

decimal

The conversion rate used at the time of the transaction.

Created

Yes

dateTime

The time when this notification was created.

CurrencyCode

Yes

string

The currency of the transaction.

FundingEvent

Yes

FundingEvent

Describes the funding event.
Deleted: The funding position is deleted.
New: The funding position is created.
Updated: The funding position has been updated.

FundingType

Yes

FundingType

Describes the type of the funding.
Deposit: Money is added to the account.
Withdrawal: Money is deducted from the account.

PositionId

Yes

int

Identifies the position.

RegistrationTime

Yes

dateTime

The time when the transaction was registered by the bank.

ValueDate

Yes

date

The date when the final transfer of the product of the transaction takes place.



SWIFT Description

Positions

The position notification is created when an event related to a position occurs.

FX positions

Notifications about FX positions are sent using the SWIFT MT 300 foreign exchange confirmation message type.

Name

Required

Type

Description

New Sequence

15A

Yes

(Empty field.)

Sender's Reference

20

Yes

Identifies the position.

Related Reference

21

No

When the type of operation is AMND or CANC the same value as sender's reference (the position ID).

Type of Operation

22A

Yes

AMND: The position is updated.
CANC: The position is deleted.
NEWT: The position is created.

Common Reference

22C

Yes

A common reference created from sender BIC, counterparty BIC and the price.

Party A

82A

Yes

Sender BIC (Saxo Group).

Party B

87A

Yes

Counterparty BIC (the receiver of the SWIFT message).

New Sequence

15B

Yes

(Empty field.)

Trade Date

30T

Yes

Timestamp when the business transaction represented by the notification occurred.

Value Date

30V

Yes

The date when the final transfer of the product of the transaction takes place.

Exchange Rate

36

Yes

Price per unit.

Amount Bought: Currency, Amount

32B

Yes

When buying an FX pair this is the counter currency amount sold. When selling an FX pair this is the base currency amount bought.

Amount Bought: Receiving Agent

57A

Yes

BIC of the financial institution buying the counter currency when an FX pair is bought and buying the base currency when an FX pair is sold (Saxo Group).

Amount Sold: Currency, Amount

33B

Yes

When buying an FX pair this is the base currency amount bought. When selling an FX pair this is the counter currency amount sold.

Amount Sold: Receiving Agent

57A

Yes

BIC of the financial institution selling the counter currency when an FX pair is bought and buying the counter currency when an FX pair is sold (the receiver of the SWIFT message).

CFD and future positions

Notifications about CFD and future positions are sent using the SWIFT MT 515 client confirmation of purchase or sale message type.

Name

Required

Type

Description

Start of Block

16R

Yes

GENL

Sender's Message Reference

20C

Yes

Identifies the position.

Function of the Message

23G

Yes

CANC/DUPL: The position is deleted.
NEWM/DUPL: The position is created or updated.

Trade Transaction Type

22F

Yes

TRTR//TRAD

Start of Block

16R

No

LINK

Previous Message Reference

20C

No

When the function of the message is CANC the same value as sender's message reference (the position ID).

End of Block

16S

No

LINK

Start of Block

16R

Yes

LINK

Deal Reference

20C

Yes

TRRF//ABCDEFGHIJKLMNOP

End of Block

16S

Yes

LINK

End of Block

16S

Yes

GENL

Start of Block

16R

Yes

CONFDET

Settlement Date/Time

98A

Yes

The date when the final transfer of the product of the transaction takes place.

Trade Date/Time

98C

Yes

Timestamp when the business transaction represented by the notification occurred.

Deal Price

90B

Yes

The total price (amount × price per unit).

Buy/Sell Indicator

22H

Yes

Identifies the side of the transaction.
BUYI: Buy the security.
SELL: Sell the security.

Payment Indicator

22H

Yes

APMT

Start of Block

16R

Yes

CONFPRTY

ETC Service Provider 1

95P

Yes

Sender BIC (Saxo Group)

Cash Account

97A

Yes

Identifies the account involved in the transaction.

Declaration Details Narrative

70E

Yes

Identifies the type of the security.
CFD: Contract for difference.
FUT: Future.

End of Block

16S

Yes

CONFPRTY

Quantity of Financial Instrument Confirmed

36B

Yes

Amount (e.g. number of securities) ordered.

Identification of the Financial Instrument

35B

Yes

ISIN identifier if it is defined for the instrument. Otherwise the ticker symbol.

Bond and stock positions

Notifications about bond and stock positions are sent using the SWIFT MT 541 receive against payment message type when securities are bought and the SWIFT MT 543 deliver against payment message type when securities are sold.

Name

Required

Type

Description

Start of Block

16R

Yes

GENL

Sender's Message Reference

20C

Yes

Identifies the account involved in the transaction.

Function of the Message

23G

Yes

CANC: The position is deleted.
NEWM: The position is created or updated.

Start of Block

16R

No

LINK

Previous Message Reference

20C

No

When the function of the message is CANC the same value as sender's message reference (the account ID).

End of Block

16S

No

LINK

End of Block

16S

Yes

GENL

Start of Block

16R

Yes

TRADDET

Settlement Date/Time

98A

Yes

Timestamp when the business transaction represented by the notification occurred.

Identification of the Financial Instrument

35B

Yes

The ISIN code for the instrument traded.

End of Block

16S

Yes

TRADDET

Start of Block

16R

Yes

FIAC

Quantity of Financial Instrument

36B

Yes

Amount (e.g. number of securities) ordered.

Safekeeping Account

97A

Yes

Identifies the account involved in the transaction.

End of Block

16S

Yes

FIAC

Start of Block

16R

Yes

SETDET

Type of Settlement Transaction Indicator

22F

Yes

SETR//TRAD

Start of Block

16R

Yes

SETPRTY

Delivering Agent or Receiving Agent

95P

Yes

When buying (MT 541) DEAG or selling (MT 543) REAG and the sender BIC (Saxo Group)

End of Block

16S

Yes

SETPRTY

Start of Block

16R

Yes

SETPRTY

Seller or Buyer

95P

Yes

When buying (MT 541) SELL or selling (MT 543) BUYR and the sender BIC (Saxo Group).

End of Block

16S

Yes

SETPRTY

Start of Block

16R

Yes

AMT

Settlement Amount

19A

Yes

The total price (amount × price per unit).

End of Block

16S

Yes

AMT

End of Block

16S

Yes

SETDET

FIX Description

Positions

FIX MsgType for a position message is U4.
The position notification is created when an event related to a position occurs. Cash deposit and withdrawal events are not included in the position notifications but are instead reported using the funding notification.
Below is a sample message for a new position. The SOH field delimiter character is displayed as '•'.

8=FIX.4.4•9=250•35=U4•1=77820•14=10•22=4•37=44085966•44=2211.91•48=US6311011026•54=1•55=NAS100.I•60=20110926-08:28:51•100=NASDAQ•109=3179470•769=20110926-08:28:51•20003=C•20005=20110926-08:28:51•20006=USD•20014=NAS100.I•20023=59846081•20024=0•20034=0•20039=20110926•10=190• 

Position fields

Name

Tag

Required

Type

Description

Account

1

Yes

String

Identifies the account involved in the transaction.
The default account ID for the client.

ClientID

109

Yes

String

Identifies the client involved in the transaction.
The client identifier is a non-negative integer (31 bits).

CumQty

14

No

Qty

Amount (e.g. number of securities) filled.

ExDestination

100

No

Exchange

Identifies the exchange where the security is traded.

LastForwardPoints

195

No

PriceOffset

Forex forward points added to LastSpotRate (194). May be a negative value.

LastSpotRate

194

No

Price

Forex spot rate.

OrderID

37

No

String

Identifies the order.
The order identifier is a non-negative integer (31 bits).

Price

44

No

Price

Price per unit.

SaxoCallPut

20001

No

Char

Identifies if the option is a call option or a put option.
Call (C): The option is a call option.
Put (P): The option is a put option.

SaxoCommission

20002

No

Amt

The commission on the position (if there is any).

SaxoContractType

20003

No

Char

Identifies the type of the security.
FxSpot (0): Forex.
FxVanillaOption (1): Forex vanilla option.
FxKnockInOption (2): Forex knock in option.
FxKnockOutOption (3): Forex knock out option.
FxBinaryOption (4): Forex binary option.
FxOneTouchOption (5): Forex one touch option.
FxNoTouchOption (6): Forex no touch option.
FutureContract (7): Future.
ContractOption (8): Option.
Share (9): Share.
ShareOption (A): Share option.
Bond (B): Bond.
Cfd (C): Contract for difference.
ManagedFund (D): Managed fund.
CfdOnFuture (G): Contract for difference on future.

SaxoConversionRate

20004

No

Float

The conversion rate used at the time of the transaction.

SaxoCreated

20005

Yes

UTCTimeStamp

The time when this notification was created.

SaxoCurrencyCode

20006

No

Currency

The currency of the transaction.

SaxoDelta

20007

No

Float

The delta value of the option.

SaxoExchangeFee

20008

No

Amt

Exchange fee charged for the trade. The currency is the currency of the contract.

SaxoExpiryCut

20010

No

String

The scheme used to determine the time of day the option expires. NY (New York) is 10 AM New York time. TY (Tokyo) is 3 PM Tokyo time.

SaxoExpiryDate

20011

No

UTCDateOnly

Expiry date of the contract.

SaxoInstrument

20014

No

String

The Saxo Group instrument.

SaxoLowerBarrier

20015

No

Price

Exotic option lower barrier limit price.

SaxoOptionExpiryDate

20077

No

UTCDateOnly

Expiry Date associated to Contract Options or Contract Futures.

SaxoOriginalAccountID

20020

No

String

Account that the position originally belonged to (if it has been moved).

SaxoOriginatingPositionID

20022

No

Int

Identifies the option this position is associated with.

SaxoPositionID

20023

Yes

Int

Identifies the position.
The position identifier is a non-negative integer (31 bits).

SaxoPositionEvent

20024

Yes

Char

Describes the position event.
New (0): The position is created.
Updated (1): The position has been updated.
Deleted (2): The position is deleted.
MarginStopOut (3): The position is created as a result of a margin stop out.
OptionExercised (4): The position has been deleted when an option was exercised.
OptionExpired (5): The position has been deleted when an option expired.

SaxoPremiumAmount

20025

No

Price

The premium of an FX option.

SaxoPremiumAmountCcy2

20026

No

Price

TBD

SaxoPriceType

20027

No

Char

Amount: The quoted price is an amount
Ccy1Percentage: The quoted price is a percentage of the first currency of the pair
Ccy1Pips: The quoted price is in pips of the first currency of the currency pair
Ccy2Percentage: The quoted price is a percentage of the second currency of the pair
Ccy2Pips: The quoted price is in pips of the second currency of the currency pair
ThirdCurrency: The quoted price is in the third currency

SaxoRelatedOrderCount

20028

No

Int

The number of related orders (maximum 2).

SaxoRelatedPositionID

20030

No

Int

Identifies the position that this order/position is related to.

SaxoSpotDate

20032

No

UTCDateOnly

The date when the initial transfer of the product of the transaction takes place.

SaxoStampDuty

20033

No

Amt

Tax applied by an exchange.

SaxoSystemOrigin

20034

No

int

Identifies the system where the notification originates from.
Please refer to Appendix 20 for a list of all Origins

SaxoToOpenClose

20037

No

Char

Specifies whether the trade is closing an existing position or opening a new position.
ToClose (C): The trade is closing an existing position.
ToOpen (O): The trade is opening a new position.

SaxoUpperBarrier

20038

No

Price

Exotic option upper barrier limit price.

SaxoValueDate

20039

No

UTCDateOnly

The date when the final transfer of the product of the transaction takes place.

SaxoVolatility

20040

No

Float

The volatility value of the option.

SecurityID

48

No

String

The ISIN code for the instrument traded.

SecurityIDSource

22

No

String

The type of the SecurityID field.
ISIN (4): The SecurityID is an ISIN code.

Side

54

No

Char

Identifies the side of the transaction.
Buy (1): Buy the security.
Sell (2): Sell the security.

StrikePrice

202

No

Price

Option strike price.

Symbol

55

No

String

Symbol identifying the security using a common "human understood" representation.

TransactTime

60

No

UTCTimeStamp

Timestamp when the business transaction represented by the notification occurred.

TrdRegTimestamp

769

No

UTCTimeStamp

The time when the transaction was registered by the bank.

Orders

FIXMsgType for an order message is U3.
The order notification is created when an event related to an order occurs.
Below is a sample message for a changed order. The SOH field delimiter character is displayed as '•'.

8=FIX.4.4•9=214•35=U3•115=4662393•1=77820•14=20•37=130790572•38=30000•44=75.78•54=1•55=USD/JPY•59=0•100=SBFX•109=3179470•769=20110919-17:48:24•20003=0•20005=20110919-17:48:24•20006=JPY•20009=1•20014=USDJPY•20018=1•20019=4•20034=0•10=221•

Order fields

Name

Tag

Required

Type

Description

Account

1

Yes

String

Identifies the account involved in the transaction.
The default account ID for the client.

ClientID

109

Yes

String

Identifies the client involved in the transaction.
The client identifier is a non-negative integer (31 bits).

ClOrdID

11

No

String

Client assigned order identification.

CumQty

14

No

Qty

Amount (e.g. number of securities) filled.

ExDestination

100

No

Exchange

Identifies the exchange where the security is traded.

OrderID

37

Yes

String

Identifies the order.
The order identifier is a non-negative integer (31 bits).

OrderQty

38

No

Qty

Amount (e.g. number of securities) ordered.

Price

44

No

Price

Price per unit.

SaxoCallPut

20001

No

Char

Identifies if the option is a call option or a put option.
Call (C): The option is a call option.
Put (P): The option is a put option.

SaxoContractType

20003

No

Char

Identifies the type of the security.
FxSpot (0): Forex.
FxVanillaOption (1): Forex vanilla option.
FxKnockInOption (2): Forex knock in option.
FxKnockOutOption (3): Forex knock out option.
FxBinaryOption (4): Forex binary option.
FxOneTouchOption (5): Forex one touch option.
FxNoTouchOption (6): Forex no touch option.
FutureContract (7): Future.
ContractOption (8): Option.
Share (9): Stock.
ShareOption (A): Stock option.
Bond (B): Bond.
Cfd (C): Contract for difference.
ManagedFund (D): Managed fund.
CfdOnFuture (G): Contract for difference on future.

SaxoCreated

20005

Yes

UTCTimeStamp

The time when this notification was created.

SaxoCurrencyCode

20006

No

Currency

The currency of the transaction.

SaxoExecType

20009

Yes

Char

Describes the order event.
New (0): New order.
Changed (1): Order has been changed.
Deleted (2): Order has been deleted either as a result of being filled or canceled or it has expired.

SaxoExpiryDate

20011

No

UTCDateOnly

Expiry date of the contract.

SaxoInstrument

20014

No

String

The Saxo Group instrument.

SaxoOptionExpiryDate

20077

No

UTCDateOnly

Expiry Date associated to Contract Options or Contract Futures.

SaxoOrderRelation

20018

No

Char

Describes the relationship between this order and any related orders identified by SaxoRelatedOrderID and SaxoRelatedSecondOrderID.
Oco (1): One-Cancels-the-Other. The order is canceled if the related order is executed.
IfDoneMaster (2): The order is a stop order with a related order that comes into effect if this order is executed.
IfDoneSlave (3): The order is a related order that only comes into effect when the related order is executed.
IfDoneSlaveOco (4): The order is a related order that only comes into effect when the related order is executed. Furthermore, another related order exists that if executed will cancel this order.

SaxoOrderType

20019

No

Char

The type of the order.
Market (1): The order is a market order.
Limit (2): The order is a limit order.
StopIfBid (3): The order is a stop order. The order execution criterion is evaluated by comparing the bid price to the limit price.
StopIfOffered (4): The order is a stop order. The order execution criterion is evaluated by comparing the offer price to the limit price.
StopIfTraded (5): The order is a stop order. The order execution criterion is evaluated by comparing the trade price to the limit price.
GuaranteedStop (6): TBD
StopLimit (7): An order placed with a broker that combines the features of stop order with those of a limit order. A stop-limit order will be executed at a specified price (or better) after a given stop price has been reached. Once the stop price is reached, the stop-limit order becomes a limit order to buy (or sell) at the limit price or better.
MarketStopOut (8): The order is a market order.  The order gets triggered automatically if margin requirement is exceeded.
StopIfBid: The order is a stop order. The order execution criterion is evaluated by comparing the bid price to the limit price.
CallLimit (9): TBD
CallStop (A): TBD
MarketExpiry (B): The order is a market order.  Gets triggered on expiry for instruments that have an expiration date. (CFDs on Commodities + Futures)
Algorithmic (C): Is an order to optimize execution by minimizing the combination of price impact and the risk of potential price movements. Supported Algorithmic Order Types: Reload, VWAP, IS, Iceberg, With Volume, Smart Dark, Pre-Market.

SaxoOriginalOrderID

20021

No

Int

Identifies the original order that was used to create this order.

SaxoOriginatingPositionID

20022

No

Int

Identifies the option this position is associated with.

SaxoRelatedOrderID

20029

No

Int

Identifies the related order for complex order types.

SaxoRelatedPositionID

20030

No

Int

Identifies the position that this order/position is related to.

SaxoRelatedSecondOrderID

20031

No

Int

Identifies the second related order for complex order types.

SaxoSystemOrigin

20034

No

int

Identifies the system where the notification originates from.
Please refer to Appendix 20 for a list of all Origins

SaxoToOpenClose

20037

No

Char

Specifies whether the trade is closing an existing position or opening a new position.
ToClose (C): The trade is closing an existing position.
ToOpen (O): The trade is opening a new position.

SaxoTrailingStopPriceChangeThreshold

20035

No

PriceOffset

The trailing step size for a trailing stop order. When the market price moves in the direction of the trade and the distance from the order price exceeds the sum of the distance to market and the trailing step size the order price is adjusted in the direction of the trade to trail the market.

SaxoTrailingStopPriceDifference

20036

No

PriceOffset

The distance to market for a trailing stop order. When the market price moves in the direction of the trade and the distance from the order price exceeds the sum of the distance to market and the trailing step size the order price is adjusted in the direction of the trade to trail the market.

SecurityID

48

No

String

The ISIN code for the instrument traded.

SecurityIDSource

22

No

String

The type of the SecurityID field.
ISIN (4): The SecurityID is an ISIN code.

Side

54

No

Char

Identifies the side of the transaction.
Buy (1): Buy the security.
Sell (2): Sell the security.

StrikePrice

202

No

Price

Option strike price.

Symbol

55

No

String

Symbol identifying the security using a common "human understood" representation.

TimeInForce

59

No

Char

Specifies how long the order remains in effect.
Day (0): The order is automatically canceled at the end of the trading day.
GoodTillCancel (1): The order is in effect until canceled by the client.
AtTheOpening (2): The order is either filled at the opening of the market or, if that is not possible, canceled.
ImmediateOrCancel (3): The order is either immediately filled or, if that is not possible, canceled. If only a partial fill is possible the order is still filled.
FillOrKill (4): The order is either immediately filled for the entire amount or, if that is not possible, canceled.
GoodTillDate (6): The order is in effect until the specified expiry date.
AtTheClose (7): The order is either filled at the close of the market or, if that is not possible, canceled.

TrdRegTimestamp

769

No

UTCTimeStamp

The time when the transaction was registered by the bank.

Margin Calls

FIX MsgType for a margin call message is U2.
The margin call notification is created when an event related to a margin call occurs.
Below is a sample message for a margin call. The SOH field delimiter character is displayed as '•'.

8=FIX.4.4 •9=214 •35=U2 •34=580 •49=SAXOBANK •52=20131021-11:29:20.944 •56=XXXX •1=S1429USD •109=258142 •20000=USD •20005=20131021-11:29:20 •20016=4 •20017=0 •20071=-3071311.50 •20072=1770658.50 •20073=4841970.00 •20074=3071311.50 •20075=0.37 •10=143

Margin call fields

Name

Tag

Required

Type

Description

Account

1

Yes

String

Identifies the account involved in the transaction.
The default account ID for the client.

ClientID

109

Yes

String

Identifies the client involved in the transaction.
The client identifier is a non-negative integer (31 bits).

SaxoBaseCurrency

20000

Yes

Currency

The default currency for the client.

SaxoCreated

20005

Yes

UTCTimeStamp

The time when this notification was created.

SaxoMarginCallAction

20016

Yes

Char

Describes the action associated with this margin call.
MarginCall (1): The client is requested to restore the necessary margin required.
StopOut (2): The client has been forcefully stopped out to restore the necessary margin required.
Reinstate (3): The system has restored the necessary margin required.
LevelDrop (4): Margin level drooped, The client has restored the necessary margin level required, according to the margin call profile defined. This margin call action will appear if the client margin level dropped under the defined margin levels percentage as set in the margin call profile.

SaxoMarginCallLevel

20017

Yes

Int

The percentage of margin used. Please Note, in a LevelDropped margin call scenario, where the margin level is 0, this filed will be included in the FIX message.
Margin call level equal to 0 can accrue in 2 different scenarios.
Scenario 1: If the margin level has drooped under the last percentage defined in the margin call profile, then the margin call level will be equal to 0, in this case the MarginCallLevel field will not be included in the Margin Call notification.
Scenario 2: In case of account funding where the account balance was negative, margin call level call level will be equal to 0, in this case the MarginCallLevel field will not be included in the Margin Call notification.

MarginDeficit

20071

Yes

Float

The value in this field represents the available amount that the client has for trading on margin, the value displayed in this field reflecting Saxo group point of view, hence the value will always be positive during a margin call.

MarginRequired

20072

Yes

Float

The value in this field represents the total margin amount required to support the various exposures, created by the client's prevailing holdings in any margin tradable product.

NetEquityForMargin

20073

Yes

Float

Total net equity available for margin trading.

NetFreeBalance

20074

Yes

Float

The value in this field represents the available amount that the client has for trading on margin, the value displayed in this field is reflecting the client point of view.
Pending on the margin call level, this field could have a

UseOfEquityForMargin

20075

Yes

Float

The value in this field represents the percentage of the net exposure in relation to the account value.

Funding

FIX MsgType for a funding message is U1.
The funding notification is created when money is added or deducted from an account.
Below is a sample message for a funding deposit. The SOH field delimiter character is displayed as '•'.

8=FIX.4.4•9=138•35=U1•1=77820•14=14000•109=3179470•769=20100818-08:14:14•20005=20100818-08:14:14•20006=NOK•20012=0•20013=D•20023=276302329•20039=20100819•10=110• 

Funding fields

Name

Tag

Required

Type

Description

Account

1

Yes

String

Identifies the account involved in the transaction.
The default account ID for the client.

ClientID

109

Yes

String

Identifies the client involved in the transaction.
The client identifier is a non-negative integer (31 bits).

CumQty

14

No

Qty

Amount (e.g. number of securities) filled.

SaxoConversionRate

20004

No

Float

The conversion rate used at the time of the transaction.

SaxoCreated

20005

Yes

UTCTimeStamp

The time when this notification was created.

SaxoCurrencyCode

20006

No

Currency

The currency of the transaction.

SaxoFundingEvent

20012

Yes

Char

Describes the funding event.
New (0): The funding position is created.
Updated (1): The funding position has been updated.
Deleted (2): The funding position is deleted.

SaxoFundingType

20013

No

Char

Describes the type of the funding.
Deposit (D): Money is added to the account.
Withdrawal (W): Money is deducted from the account.

SaxoPositionID

20023

Yes

Int

Identifies the position.
The position identifier is a non-negative integer (31 bits).

SaxoValueDate

20039

No

UTCDateOnly

The date when the final transfer of the product of the transaction takes place.

TrdRegTimestamp

769

No

UTCTimeStamp

The time when the transaction was registered by the bank.