Saxo Bank’s Benny Johansen talks the ‘one platform’ ethos
Today, here at Saxo Bank’s equally technologically advanced global headquarters in Hellerup, Denmark, the senior executive behind the development of the OpenAPI technology took FinanceFeeds CEO Andrew Saks-McLeod through a history of how this remarkable technology came to fruition.
Benny Boye Johansen, Senior Director and Head of OpenAPI is very much an enterprise technology enthusiast. His 11 year tenure at Saxo Bank has encompassed several senior level technological development positions, commencing in 2004 when Mr. Johansen joined the firm as developer for the company’s Front Office Systems.
From there he quickly worked his way up to team lead, department head, and section head before refocusing on technology and becoming an Enterprise Architect working for the CTO.
Finally in November 2015 he became Head of OpenAPI and is now responsible for commercializing the OpenAPI which he spent his Enterprise Architect years envisioning and designing.
“The other strategic decision was to build this new platform on a modern well documented REST based WebAPI, our Saxo Bank OpenAPI.”
“We should also share this API with our partners and third party application developers. I believe the very best solutions are made in collaboration where each contributor does what they do best, and API’s are an excellent way to make this possible.” Benny Boye Johansen, Senior Director & Head of OpenAPI, Saxo Bank
A keen developer and enterprise architect, Mr. Johansen enthusiastically explained how the OpenAPI solution came to fruition, and how it stands out among ‘also-ran’ API’s.
“We are all about facilitation” – Benny Boye Johansen, Senior Director & Head of OpenAPI, Saxo Bank
“A good way of explaining the main idea behind the OpenAPI solution is perhaps to view Saxo Bank as an engine in the middle of the trading environment” said Mr. Johansen. “You probably know that we are connected to a lot of exchanges, liquidity providers and we package our solution so that it can be used very flexibly to suit the purpose of various end clients and institutions which operate differently to each other such as white label partners, banks, fund managers and specialist trading firms.”
“And so, we have always had an open infrastructure. For many years we offered liquidity through a FIX API, we have used our Trade Event Notification Service (TENS) for execution drop copy and essentially keeping our system in sync with those of our close collaborators, we have more than 300 “End of Day files” for reporting and reconciliation, and we provide a variety of administrative tools and web services to allow shallow or deep integration with our partner companies” – Benny Boye Johansen, Senior Director & Head of OpenAPI, Saxo Bank
“What is new with OpenAPI is that it allows a third party client, client company or application developer to not only integrate into our infrastructure, but to essentially completely rewrite the front end trading application. So if you take a step back, I would say that OpenAPI is a complement, and additional piece in the puzzle in the ways you may work with Saxo Bank” said Mr. Johansen.
“OpenAPI is one part of the larger Open Bank Vision”: A quick screenshot of what Mr. Johansen explains as the Saxo Open Bank Vision. On the left screen you may discern the hub in the middle illustrating the Saxo Bank trading engine, and the boxes around it illustrating the various types of integration technologies available.
How does it work?
The diagram below shows how it works:
Mr. Johansen elaborated on functionality. “Every application is identified by an Application Key. When the user starts the application, she is redirected to our security system, where the user must log in. Through this process we know who the user is, and which application she is using. If the login is successful, the application now has a token. It can use this token to access any of the publicly available OpenAPI end points. The Saxo Bank OpenAPI is a modern WebAPI based on REST principles. All endpoints support traditional Request-Response, but we have also implemented streaming to ensure better performance and lower latency for things like quotes, position updates and trade confirmations. For the streaming we part we use SignalR technology to ensure that it works, also over bad network connections.”
“Everything you see in the new SaxoTraderGO trading platform is accessed and executed via the OpenAPI but not everything is yet available to third party developers” said Mr. Johansen. Currently we are focusing on the endpoints necessary to support a good trading experience. As we get comfortable with the reliability and scalability of this section of the API, we will gradually extend the functionality on offer.”
“It is important to understand that this is our own API and there is one API only. We do not use an internal API for our own systems and provide a different one for clients. The functionality of the entire SaxoTraderGO trading platform goes through this API.” With OpenAPI we really are “eating our own dog food”.
“If you want to work with the OpenAPI as a developer, you can get a developer login and then access the portal which contains over 100 pages of documentation as well as samples and a tutorial” – Benny Boye Johansen, Head of OpenAPI, Saxo Bank. The developer portal can be found by clicking here.
“The reference documentation contains everything that a developer needs to work with the API, including the various security models, a comprehensive list of the available API’s, samples, how-tos and other important parameters. ” continued Mr. Johansen.
“To make this tangible I will walk through the tutorial, which is also available on the developer portal” he enthused. “Here I am already logged in, and I use the developer portal to call the API endpoint ‘/openapi/port/v1/clients/me’. The system knows it’s me, and it returns a lot of information about me as a user, and the client that user is related to.”
Continuing the step-by-step tutorial Mr. Johansen shows how to use the API to get a list of available accounts with account balances, to search for tradable instruments, to get a list of quotes and to place an order, all through vary simple interaction with the API.
“It is intuitive and easy for a developer to understand. The Saxo OpenAPI is a fully comprehensive API and it has to be this way so that people can build their own completely bespoke applications” said Mr. Johansen.
“This means that the entire structure of the trading environment is available to developers, for example a developer can look up prices on all instruments from within the development console, because the full code for that is displayed.”
“As far as the front end platform is concerned, SaxoTraderGO is connected to the OpenAPI but that’s not the only thing that can connect. As you can see here, I have the development portal connected also. Since it is connected to the same servers via the same OpenAPI and directly to Saxo Bank as soon as I place the order via the OpenAPI, it is immediately replicated to the platform.”
“A different way to show this could be my prototype of a spreadsheet based ‘Excel Trader’. I’ve made this as an example of the kind of trading application that a company may develop on its own, but mostly to show what the API can do. Again it does not talk to the SaxoTraderGO also running on my desktop. It talks to Saxo Bank’s main system as Saxo Bank is the central component, and from there the information is replicated back to the SaxoTraderGO platform” he said.
Engineering prototype with multi-asset distribution for 30,000 instruments
“The ‘Excel Trader’ that I am displaying here is an engineering prototype, partly because it’s not yet complete, but also because the licenses with data vendors and distributors are not yet in place. We can distribute data on all assets to our own platform, but currently we only stream FX prices to third party applications. The API does however support placing orders on the entire 30.000 plus instrument universe” said Mr. Johansen.
“Since SaxoTraderGO is completely multi-asset, and because we find that our most profitable traders are in fact trading multiple asset classes, we want to make true multi-asset trading capability available in the API as well. I think the exchanges should make the data licensing available for a reasonable fee, in order that people can not only execute orders but also have access to relevant data in their self developed apps, which would further follow Saxo Bank’s ethos of democratizing the entire trading ecosystem” opined Mr. Johansen.
OpenAPI enables deep integration and a seamless user experience
“Now I am going to show you a demo which allows you to see a completely different way of operating with OpenAPI” said Mr. Johansen.
“Let’s say that you are a Saxo Bank white label client. You may be a local retail bank and want to combine your retail banking system with all of the power of Saxo Bank.”
How can this be done?
Well, let’s say that the local bank has an online system that allows customers to view their account balance, credit card balance, and transactions, just as most banks offer for online banking. This is usually their own system and if a customer of that bank uses it, the great thing is that now they can also view their trading account from within the online banking system.”
“The local bank, which is a white label partner of Saxo Bank, can get streaming quotes from us via the OpenAPI and can integrate the whole thing into their own system, so that it looks like the bank’s offering and is therefore not branded as Saxo Bank’s system at all, but leverages the entire technology funnel from us.”
“As you can see, the log in is clearly not a Saxo Bank log in. It’s the local bank’s. All of these customer accounts including pension, savings, insurance and credit card transactions are displayed here, and next to them, in the same style and design of the local bank, is the customer’s trading account” Mr. Johansen demonstrated.
“If I am a customer of that particular local bank, I can click here to check all of my accounts including my trading account, and I do not see that it is Saxo Bank’s system because it is fully integrated into local bank’s site and online banking portal.”
In conclusion, Mr. Johansen explained that “With OpenAPI, observing appropriate licenses, you can get as much data and trading capability as you want exposed into another firm’s integrated system. Using the power of OpenAPI and federated Single Sign a netportal can easily talk to the server of the client bank and to Saxo Bank at the same time so that all of the data is immediately reflected and there doesn’t even have to be direct server to server connection for this to work.”
“The OpenAPI is now technically complete. We have used it ourselves for real client trading since the launch of SaxoTraderGO, which you yourself reported on back in May. Now we “just” need to “spread the word”, and take it from amazing engineering achievement to successful commercial product.”
Photography at Saxo Bank, Hellerup, Denmark. Copyright Andrew Saks-McLeod