The transactions resource provides access to historical access of a requesting entity's transactions. Transactions can take many forms, but can simple be described with the following definition:
A transaction documents the movements of cash and or securities on an account.
A movement of cash is a "booking"
A movement of securities is a "trade"
While transactions are primarily documented for previous trade dates, intraday transactions do appear in this endpoint, with the currently available information. After the transaction has been fully netted, booked and settled, all details will be present. Important fields, such as the relevant identifiers, will not be available for intraday transactions.
Types
Transactions consist of a specific grouping of Bookings and Trades. We generalize transactions into four generic types, to facilitate understanding:
| Type | Identifier | Definition | Examples | Additional details | Corrections |
|---|---|---|---|---|---|
| Trade | TradeId | A single movement of securities (trade) MUST occur. There CAN be multiple movements of cash (bookings). | Buying stock of a listed company Buying a CFD of an index Selling call options of an equity | Besides the required movement of securities, a Trade Transaction generally has several bookings detailing the associated costs or payments. The opening of a CFD position, and a securities transfer into Saxo Bank, are examples of a Trade Transaction that does not have bookings. | Corrections applied to a trade transaction exist as separate trade transaction(s) under a new TradeId. |
| Corporate Action | CorporateActionId | Multiple security movements (trades) CAN occur. Likewise, multiple cash movements (bookings) CAN occur. A minimum of a single trade or booking MUST occur. | Cash Dividend payout from existing holdings Share Dividend from your existing holdings | A common Corporate Action Transaction will usually have 0-1 trades, and several bookings. Corporate Action Transactions can however become very complex, as they can span long periods of time and in rare cases consist of multiple trades along with many associated bookings. | Corrections applied to a corporate action transaction are included in the original transaction, under the same CorporateActionId. This can contain either additional booking or trade entries to the transaction's response. |
| Cfd Cash Adjustment | Dividend paid for holding of CfdOnIndex | ||||
| Cash Amount | BookingId | A single booking MUST occur. A trade MUST NOT occur. | Subscription Costs Account Interest | A Cash Amount or Transfer Transaction is always a single booking, and is the most simple form of a transaction | Corrections applied to a cash amount or transfer transaction exist as a separate cash amount transaction under a new BookingId. |
| Cash Transfer | Cash Deposits Cash Withdrawals |
Even though movements of securities (i.e. trades) can be attributed to a Corporate Action Transaction, it is not a Trade Transaction.
If you are in doubt what the transaction type is, check the "TransactionType" attribute in the response returned.
Transaction Schema
To have a consistent structure between all 4 transaction types, the response object describing a transaction consists of:
| Schemas | Description | Example |
|---|---|---|
| Transaction Root | Root of a transaction object, containing generic transaction information and total amounts of bookings, costs, etc. | ...
"AccountId": "12121515615",
"Date": "2022-02-14",
"TradeId": "564455434",
"FrontOfficeTradeId": "45464864864",
"TransactionType": "Trade",
"TransactionTypeDisplay": "Trade",
"Event": "Buy",
"EventDisplay": "Buy",
"Currency": "DKK",
"TotalCost": -21.12,
"CurrencyDecimals": 2,
"BookedAmount": -20.78,
"ConversionRate": 6.897015,
"ConversionCost": -0.11,
"RealizedPnL": 0.0,
"IsIntraDay": false,
"Venue": "Exchange",
"ValueDate": "2020-02-14",
...
|
| Bookings | Array of Booking Objects, each containing Booking specific information, describing the reason for cash movement, and the amounts that are applied. | ...
"Bookings": [
{
"BookingId": "3432656727",
"AmountType": "Client Custody Fee",
"AmountTypeId": "142",
"BookedAmount": -5.38,
"ConversionRate": 1.0,
"CostClass": "AncillaryCosts",
"CostSubClass": "ProductCosts"
}
],
...
|
| Trades | Array of Trade Objects, each containing Trade specific information, describing detailed attributes of the trade, such as the traded quantity of securities. | ...
"Trades": [
{
"TradeId": "5445434545",
"TradedQuantity": -5000.0,
"TradeAdjustedDate": "2020-02-14",
"Price": 1.08427,
"SpreadCost": -0.34,
"TradeType": "Sold",
"TradedValue": 5421.35,
"OpenClose": "To Close"
}
],
...
|
A combined set of the above arrays, objects, and attributes describe a single transaction of all types in a detailed way.
We highly recommend you look into the specific endpoint documentation to get the most detailed explanations of each returned array, object, and attribute. Here we highlight attributes of few general sets of attributes and objects here, to highlight their importance and behavior:
| Noteworthy Attributes | Description |
|---|---|
All Amount and Conversion fields | These values are always in the currency of the entity making the request. |
| Cash | This shows the before and after cash in the requester entity's currency. We distinguish between available cash, blocked cash, and the overall balance of cash to provide a fully detailed understanding of your cash positions at that time. |
Instruments UnderlyingInstruments | If a transaction relates to an instrument (and or has an underlying instrument), these objects will be filled out on the transactions detail level. In the rare event that a transaction based on one instrument, invokes trades of another instrument, the trade object will have an instrument object describing it as well. In most cases, the Instrument and Underlying instruments will only be present on the root level. |
If a transaction endpoint is capable of returning multiple transactions, it will be wrapped in the Saxo Response Envelope.
Example Single Transactions and types
It is best explain this structure further, with some transaction types that you may already be familiar with.
| Type | Description | Underlying Trade(s) | Underlying Booking(s) |
|---|---|---|---|
| Trade | Buy Shares | Buy 101 shares in IBM:xnys | Pay 70000 DKK for the share amount Pay 40 DKK for the commission |
| Corporate Action | Contract for Difference Cash Adjustment | Get Cash Dividend paid to you for holdings of Credit Suisse Group AG Pay Withholding Taxes subtracted from the above amount. | |
| Corporate Action | Stock Dividend | Received 51 shares of IGB, for no cost | |
| Corporate Action | Dividend Options with correction | Share Option exercised to open on 2021-10-21 to grant 9 shares of RDSb:xlon Correction Applied on 2021-10-22 to sell 9 shares of RDSb:xlon Correction Applied on 2021-10-22 to buy 9 shares of RDSb:xlon | Receive 4 DKK for fractional shares paid out |
| Cash Amount | CFD Financing | CFD Financing payment of .2 EUR | |
| Cash Transfer | Deposit of cash to your account | 1000 Euros added to your account. |