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 |
<10K | <10s | Low | No | XML | |
File Transfer | <100K | <5s | Medium | Yes | XML |
SWIFT | <100K | <5s | High | Yes | SWIFT |
FIX | >100k | <1s | High | Yes | FIX |
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 |
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 | 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. |
CallPut | No | CallPut | Identifies if the option is a call option or 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. |
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 | long | Identifies the option this position is associated with. |
PositionEvent | Yes | PositionEvent | Describes the position event. |
PositionId | Yes | long | 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 |
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 | long | Identifies the position that this order/position is related to. |
SourceOrderId | No | long | 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. |
ToOpenClose | No | ToOpenClose | Specifies whether the trade is closing an existing position or 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. |
CallPut | No | CallPut | Identifies if the option is a call option or 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. |
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. |
ExchangeId | No | string | Identifies the exchange where the security is traded. |
ExecutionType | Yes | ExecutionType | Describes the order event. |
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 | long | 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. |
OrderType | No | OrderType | The type of the order. |
OriginalOrderId | No | long | Identifies the original order that was used to create this order. |
OriginatingPositionId | No | long | 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 | long | Identifies the related order for complex order types. |
RelatedPositionId | No | long | Identifies the position that this order/position is related to. |
RelatedSecondOrderId | No | long | 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. |
ToOpenClose | No | ToOpenClose | Specifies whether the trade is closing an existing position or 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. |
MarginCallLevel | Yes | int | The percentage of margin used. |
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. |
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. |
FundingType | Yes | FundingType | Describes the type of the funding. |
PositionId | Yes | long | 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. |
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. |
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. |
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. |
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. |
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. |
ClientID | 109 | Yes | String | Identifies the client involved in the transaction. |
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 | long | Identifies the order. |
Price | 44 | No | Price | Price per unit. |
SaxoCallPut | 20001 | No | Char | Identifies if the option is a call option or 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. |
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 | long | Identifies the option this position is associated with. |
SaxoPositionID | 20023 | Yes | long | Identifies the position. |
SaxoPositionEvent | 20024 | Yes | Char | Describes the position event. |
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 |
SaxoRelatedOrderCount | 20028 | No | Int | The number of related orders (maximum 2). |
SaxoRelatedPositionID | 20030 | No | long | 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. |
SaxoToOpenClose | 20037 | No | Char | Specifies whether the trade is closing an existing position or 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. |
Side | 54 | No | Char | Identifies the side of the transaction. |
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. |
ClientID | 109 | Yes | String | Identifies the client involved in the transaction. |
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 | long | Identifies the order. |
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. |
SaxoContractType | 20003 | No | Char | Identifies the type of the security. |
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. |
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. |
SaxoOrderType | 20019 | No | Char | The type of the order. |
SaxoOriginalOrderID | 20021 | No | long | Identifies the original order that was used to create this order. |
SaxoOriginatingPositionID | 20022 | No | long | Identifies the option this position is associated with. |
SaxoRelatedOrderID | 20029 | No | long | Identifies the related order for complex order types. |
SaxoRelatedPositionID | 20030 | No | long | Identifies the position that this order/position is related to. |
SaxoRelatedSecondOrderID | 20031 | No | long | Identifies the second related order for complex order types. |
SaxoSystemOrigin | 20034 | No | int | Identifies the system where the notification originates from. |
SaxoToOpenClose | 20037 | No | Char | Specifies whether the trade is closing an existing position or 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. |
Side | 54 | No | Char | Identifies the side of the transaction. |
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. |
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. |
ClientID | 109 | Yes | String | Identifies the client involved in the transaction. |
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. |
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. |
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. |
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. |
ClientID | 109 | Yes | String | Identifies the client involved in the transaction. |
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. |
SaxoFundingType | 20013 | No | Char | Describes the type of the funding. |
SaxoPositionID | 20023 | Yes | long | Identifies the position. |
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. |