Being able to offer buying and selling of equities through various apps and FinTech offerings is gaining in popularity and traditional mutual fund brokers is seeing the need for adding single stocks to their universe of investible assets too.

This article builds upon the article called How to get started with Bricknode as a core banking system for current accounts in 30 minutes

Adding the instrument type

The first order of business is to activate the instrument type for stocks, I will navigate to the marketplace and then find the add-on for stocks.

With this add-on enabled I can go on and add stocks to the system, this can be done automatically from a data feed, via API or manually. Bricknode has a feed for reference data (all the basic information about a stock) and end of day pricing data that can be enabled for a system and then all instruments available on subscribed exchanges will be imported into the system and a daily price feed activated.

For demonstration purposes I will add the stock of Apple manually in this article.

There are some pre-requisites that are needed when adding a stock so that things like order routing and TRS reporting can function properly. One of those things are the setting for primary market. Within the “System Data” section there is a selection called Places.

This is the area where I will register the exchanges where the instruments are listed. I will start off by adding Nasdaq US as a market.

Now I can navigate to the instruments section and select Stocks and then simply click the “Create” button to get a new dialogue for creating a new stock instrument.

The first view will look like this.

As can be seen there is a setting called Issuer where I can register the issuer of the stock if I wish, in this case this would be Apple Inc. and if I want to get the full value of the system I can use this granularity but I do not need to work with issuers to simply offer investing in this stock so I will leave it for now.

On the next screen I define some properties for the instrument.

On the last screen I can enter various categorizations like for example risk groups, industry groups etc. Categorizations are highly configurable but outside the scope of this article.

When I click “Create” the instrument will be created and I will be asked if I want to create an Execution Interface.

What in the world is an Execution Interface?

An Execution Interface is a trade route, it defines how orders are going to be executed. If I have activated an integration to a broker or bank I will have that as an available Execution Interface with the relevant settings for that trade route.

In this example I will configure the Manual Execution Interface. Before I do this I will set up a new custody account that will mirror the brokerage account that I am using for safekeeping of the stocks that are bought.

Just as in the previous article the custody account is created from the House View.

Bank 1 will be the Legal Entity that will act as a counterparty to all trades as my broker and thus I need to create a Counterparty Account for this Legal Entity too. I do this by navigating to the Company and then I create the new account of the Counterparty Account Type.

Now I can go back and create the Execution Interface.

Let’s add some data

Finally I will get some historic data for the instrument which I can import via API, files, enter manually or by activating an add-on with end of day data for the instrument, this way I can see a chart and start using historic performance calculations too.

All is now set and as a back-office user I can enter trades on behalf of accounts.

The Financial Advisor with Power Of Attorney for a customer can enter orders too.

And finally the end customer can log on and enter trade orders as well.

Complete order management capabilities are available through our API too for you to build your own customer experiences and automation.

Please get in touch with us to explore your case further!

This is for all you FinTech entrepreneurs who would like to give the likes of Revolut, N26, Lunar and Klarna a run for their money. In this article I will demonstrate how to literally configure a new subscription to Bricknode as a core banking system to start managing current accounts within 30 minutes and at a fraction of the cost that legacy suppliers charge.

We love to empower entrepreneurs so they can bring new solutions to the market at lightning speed.

First I simply signed up for a subscription at and I got the logins for the system the same day.

Now, if I wish I can take care of everything myself or I can ask for help from the customer success team. Starting a current accounts business is extremely easy and this article explains everything that you need to do to get going.

Where will you hold your customers cash?

As a first step you will probably already have established a relationship with a bank, or “Custodian” as we call it, where you have an account for client assets. This account has to be created in the Bricknode system as a custody account so the system knows where the assets are stored in the world outside of Bricknode.

Basically the only concept that you really have to understand before you start is what we call Account worlds and Dimensions, that’s it.

Here is an illustration.

The “Internal accounts” are your individual customers accounts, your partners accounts and could also be your own accounts, we call you the “House”. All the assets that reside in the Internal accounts has to be backed up by assets in the outside world, like cash at a client account at a bank.

In Bricknode Financial Systems (BFS) I have now received access to four interfaces, these are:

In the screenshots that follow I will reference which interface they are coming from with BackOffice, Partner, Customer or API.

Let’s have a first look at BackOffice to set up your first Custody account.

When you first log on you will come to the Dashboard, which you can easily customize with regards to the widgets that you see.

Locate the House View in the upper right corner.

To create a new account simply click on the Create button.

In the resulting dialog I will select Custody Account as the Account Type and I will name the account Bank 1 Client Assets, we are going to store the actual IBAN number of the custody account as a property on the account but it is recommended to include parts of the account number in the label so you can easily identify the account going forward.

Within Bricknode an account can hold any asset so we are not limited to having one account per currency, which a lot of traditional banks seems to be limited to because of legacy systems. We do have to set a base currency on the account though because this is used for calculating account returns in percentage terms, we do not have to deep dive into that here though.

If your bank/custodian limits you to one custody account per currency, no problem, just set up more custody accounts within Bricknode to reflect that.

Now the first custody account is created and I can progress to the next step.

What currencies would you like to accept?

Within Bricknode it is possible to manage any financial asset/instrument that I know of, in this article though I will only discuss traditional currencies. Any account can hold any type of asset but for currencies I want to configure a default custody account for ease of use and I also want to activate a certain number of currencies. Let’s navigate to System Data->Currency Management for this.

Within Currency Management I see that there are 33 currencies available by default but I have set a lot of them to Closed. I have the option to open currencies with different permissions to make them available to BackOffice, Partners and/or Customers.

To start with I have enabled four currencies and I use the same default custody account for all of them.

Setting up the partner and the customer

In this article I am working with a partner relationship where a user called Bricknode Partner is bringing in business and the first customer is called Bricknode User. Creating these users manually in Bricknode is very easy, simply navigate to User Management and create the users through the creation buttons.

Repeat the same process as above for creating the customer manually. Through your own customer facing apps or websites you would be doing this using CreatePersons in our API. If you use DotNet you should get our NuGet package where you have everything already implemented.

Working with the customer account

Let’s navigate to the customer within BackOffice and create a simple account. When you use the API you would implement the function called CreateAccounts for this purpose.

Deposit cash

The transactions relating to deposits and withdrawals would probably come automatically from an integration with a payment service or the custodian but here I will illustrate a manual deposit. Click on the action menu for the account and select Deposit Money.

The resulting dialogue will default to the right custody account and set the Trade Date, Settlement Date and Value Date to today. I have entered a deposit of EUR 1,000.

The balance and the transaction will now show up in the Overview within BackOffice.

The partner perspective

On the customer account I have set up a relationship with the Partner user.

And I have also set up a Power Of Attorney with “View” permission which will enable the Partner to see what is going on in the account. When you use the API you would implement the method called CreatePOAs.

On the dashboard, which the partner can arrange and add widgets to, the customer account can be seen and the related transactions.

By clicking on the customer the partner can drill down into the details.

The customer perspective

If you do not have your own app or website ready you can let your customers log on to the standard customer portal where full interaction can take place and the content can be fully configured by the administrator together with branding.


The final step is the reconciliation of accounts that should occur daily. Remember the Internal and External accounts, the first I will check is the total balance of the Custody Account against the account statement that I get from my bank/custodian. To view this I will navigate to Positions->Cash.

Now I will filter on the transaction dimension Settlement and enter the balance date of what I would like to reconcile and also select Custody Account as the Account Type.

Here I see that EUR 1,000 is present in the custody account which should align with the account statement from the bank/custodian. If it does not I can click on the account and drill down into each transaction to see where the difference comes from.

Now when I know that the External account is fine I want to know if these assets are correctly spread out across Internal accounts too and for that I want to activate the Add-on that we call Reconciliation Manager. By navigating to the Marketplace I can request a trial of this Add-on right away.

The Reconciliation Manager is now activated and available in the House menu.


From the reconciliation overview I can drill down into each transaction if I wish by clicking on the House icon in the list.

Now I am all set and can continue doing business!

I love metaphors! They are extremely useful for explaining new concepts before they gain mainstream recognition. Like the Ents in Lord of the Rings I also think that if things are not worth taking a long time to do, they are not worth doing at all.

We have built a real operating system for financial activities, the same way that Microsoft built an operating system for the computer. It took us 10 years to build this thing and for the next 10 years our plan is to become something for everyone.

Windows harnesses the communication with the computer and standardizes how you use the processor, memory, storage and much more. Bricknode standardizes how you perform financial activities of any kind. Trading stocks for us is like storing data in computer memory for Windows. Initially Microsoft had to create their own applications on top of their own operating system as well, like office. We have created “office”-like applications like Bricknode Broker, Bricknode Fund Manager, Bricknode Lending and a few more to perform specialized financial activities and we are just getting started!

Are you a startup FinTech company? Get in touch with us, just as a new software developer would not start off by developing a new operating system we can deliver it to you and you do not have to concern yourself with the nitty gritty details of communicating with the CPU, you can get started right away with building the business logic and customer experience.

Are you an industrial company with 20 shareholders where you are going to manage a shareholder loan with interest calculations and monthly payouts? We have the “office”-application for you!

We deliver the software in the way we think that financial software buyers should be able to receive software in the 21st century. Delivered the same day, no strings attached and completely composable and scalable. You activate the stuff that you need when you need it, just as the App Store, and you pay only for what you use!

Launching a financial service company or managing financial activities have never been easier. If you want to build your own applications for managing financial activities come join our marketplace and we will give you a free setup of Bricknode Financial Systems right away as a developer. Just as with the App Store you can build and market your own business on top of ours.

Let’s start the together!

With release 2.23 of Bricknode Financial Systems we just added a new native field for Legal Entities called KycDate. KYC is short for “Know Your Customer” and if you are operating a regulated financial service company chances are that you have to do a lot of work around this topic.

Now, why is a simple field that could hold a date so great? Well, let me show you just a few things that can be done with this.

To be compliant with most regulations you need to make sure that your customer has updated their personal details and a number of other questions at least annually. In this example we built a nice KYC collection form for one of our customers which we put in as a link within System Settings and activated the function to “Validate know your customer data at login”.

What will happen now is that the customer, when they log on to the customer portal of Bricknode Broker and if the KycDate is outdated, will be presented with the KYC collection form. In that form we are able to automatically check and update their legal address from available registers, like SPAR in Sweden, and validate phone numbers. We can also make checks against sanction lists and registers of politically exposed persons and much more.

In this particular case we took the customer through the process of approving new general terms for the brokerage service and updated their risk profile and monthly savings preferences. Everything was made possible through this simple new function right inside Bricknode Broker!

It is important to understand the basic account structure of Bricknode Broker which include various types of customer accounts, issuer accounts, house accounts and then custody accounts that keeps track of all your assets. We just released a short video to clarify this.

Financial institutions has to perform periodic reporting to their local regulator, like Finansinspektionen in Sweden. With ever changing directives from the local regulator and the European Union the reporting can pose quite a problem with a lot of confusion. In order for the regulated companies to fullfil the reporting requirements it is necessary that the regulator can supply good documentation with details about what should be submitted and how this is done in practice. For example the Swedish Tax Agency offers great documentation with technical specifications with regards to how data should be delivered and how the files should be structured.

During the last couple of days we have worked with our partner and customer Kreditbörsen, which is a payment service provider that uses parts of the Bricknode platform and its partner Lendysoft as its back end in order to deliver its peer to peer lending platform.

The Swedish Financial Inspection (“SFI”) has a page with information regarding Periodic reporting but we deemed it very hard to understand and that is why we created this article as supplementary documentation.

As a payment service provider Kreditbörsen should report every six months where the report should contain the payment volumes together with the capital adequacy for the company.

At the SFI this report is split up into two different reports where the capital adequacy should be reported to the European Banking Authority through the SFI while the report with payment volumes is reported directly to the SFI.

Report with payment volumes

As stated before this report should be submitted directly to the SFI and no website should be used for sending the report. Instead a program should be installed from the SFI which is available for download from the following page where the person with access at the company can log on.

Once logged on the user can view which reports that are available and which ones are pending. For each report an easy form is shown with fields that should be completed with information. The information that should be completed can easily be found in the Lendysoft platform in the Admin section and then reports as the image below shows.

Lendysoft admin GUI

Within the section for reporting the user can select which timespan should be used in the report. For the first half of 2017 the view can look like the example report in the image below.

Periodic volume report in Lendysoft

The information from the report in Lendysoft is entered into the application from the SFI and is then submitted through the application.

Report for capital adequacy

Historically this section has been reported directly to the SFI as well through the same application but recently this changed and now consists of a file of the type XBLR that should be uploaded to the SFI. There is scarce information available from the SFI with regards to this and the companies that are required to report are directed to the homepage of the European Banking Authority (EBA) where the documentation is extremely hard to understand. A lot of links are not working and the downloadable files does not offer any clear guidance either. The SFI has an example file on its homepage but it does not contain any details about the data that should be submitted for the capital adequacy. If the user has some knowledge about XML-files it is possible to understand where the registration number of the institution and the date for the report should be entered in the XML-elements.

After continued research with Google we found an Excel add-on from Altova which actually solves most of the problem. By installing the add-on there is a new menu in Excel titled EBA.

The user can now navigate to the menu and click on the button titled Insert New Report. A number of choices are shown but after trying a few options and looking in the example file from the SFI where the schema reference, shown in the image below, contains the word COREP it is possible to understand that the first option in Excel should be selected.

The image above was captured after opening the example file with Notepad++ where the user can see highlighting of the XML-code. This application works like Notepad but with a few more tools to help the user.

The Altova add-on view is illustrated by the image below.

By expanding the COREP alternative there are two new options shown.

In the example file from the SFI it says corep_ind.xsd which we assume means COREP IND in the Excel report.

When the user then clicks on OK the add-on creates number of tabs in the Excel file, one for each section of the report that can be included in COREP IND. These sections are called C 01.00, C02.00 etc. and by studying the section in the example file from the SFI which is called fIndicators it is possible to understand that only the sections C 00.01 and C 01.00 should be submitted.

In the Excel file there is not a section to the right called Tables where the user can un-check the sections of the report that is not needed and only leave C 01.00 and C 00.01 checked as the image below shows.

The user can now complete section C 00.01 which looks like the image blow.

By clicking the first cell for Accounting framework a dropdown is shown with two alternatives.

Since there is no clear and easy documentation to be found it is impossible to understand if the alternative x1 or x2 should be selected. By doing some research the user can understand that the Accounting framework options should reflect either GAAP or IFRS. Looking at the example file från the SFI it is possible to see that it contains the x2 selection and that is what we should use for IFRS.

For Reporting Level we have the same issue but since the selection with x6 is present in the example file we assume that it should be used.

In the section to the right of the Excel view there is a number of properties called EBA Filing Pane which looks like this:

We have changed Reference Date to the date of the report and the currency, language and Scheme. At the property called Identifier the user should enter the registration number for the company at the SFI.

Next up is the section C 01.00 where the information regarding capital adequacy should be entered. This section is illustrated by the image below.

The numbers that are situated to the right of the field texts are the field id numbers with WBA. When uploading the report to the SFI it is possible that the user might receive error messages if the amounts of the various fields does not add up. The user will then get the field codes with a simple illustration of which calculations that does not add up.

To explain how this validation, calculation, is conducted we can look at the top section of the report.

The texts are indented below their respective headers which means that the amount entered for OWN FUNDS should reflect the sum of all the sub-headers at the first level of indentation. If the user would enter an amount for OWN CET1 instruments and then go on to enter a value for the sub-headers that sum should be the same as the total for 080+090+091.

When the user has entered the values the next action should be to click on the button named Validate in order to test if the values add up.

In the example blow the user has filled out the report where the company has own capital of 1,600,000 of which 1,500,000 is comprised of Paid up share capital and 100,000 from the last years profit.

By clicking on Validate the following report is displayed to the user.

The report displays a few errors which are linked to the report section C 04.00 which is a bug in the add-on since the C 04.00 section was removed from the report earlier in this guide. If any errors are displayed for section C 01.00 it would have to be fixed. The user can now progress by clicking on Export to XBRL in order to get the following file.


If the company does not have to enter any more date it should never have to do anything else than just modifying this file with Notepad++ for each periodic report and then upload it to the SFI. Alternatively the add-on can be purchased from Altova for €399 which is a good investment in order to secure that future validations are performed when the XML-schemas are upgraded.

If the company itself does not want to work with the report it is possible to outsource this to consultants like for example Parseport .