Featured image of post Online account opening for a bank

Online account opening for a bank

Help a bank to offer a simple, fast, secure and fully online bank account opening process, contract included!

Having already known the banking world for 2 years when I was an intern, I immediately jumped on the opportunity when a new project came up concerning the opening of a bank account, entirely online.

The vision was innovative as the objective was to do absolutely everything online, in a single workflow, including contract signature!

It was therefore necessary to offer future customers a pleasant experience allowing them to fill in all the information required to open an account. While this procedure normally requires several round trips with different documents to be brought in, the process here was simplified to the extreme since users could stop and resume their journey, with the possibility to upload documents at any time.

The project was built with Symfony. Its form system being extremely simple to set up, the realization of the path and the few differences displayed according to the answers given in the previous steps was childishly simple and was quickly dispatched.

However, there was one very interesting step that required more thought. In order for the account opening to be valid, legally speaking, it was necessary for the end customer to see and sign a contract, and for this contract to be then also signed by the bank. However, since the process was entirely online, it was impossible to have handwritten steps, not to mention the fact that if the customer had to print the contract to sign it before scanning and uploading it, this would be a big obstacle to the account opening. So we needed a fully online and automatable solution.

This was clearly the most interesting part of the project!

Everything was done with temporary and permanent digital signatures. At the contract stage, we generated a PDF contract that complied with legal archiving standards, which we first sent to Swisscom for a temporary digital signature (timestamp) and then displayed to the end customer. If the customer agreed with the content of the contract, then the same contract was sent to Swisscom already temporarily signed and the customer’s phone number, so that Swisscom could send him an SMS with a unique code. Then the customer enters this code on the Symfony website, we transmit this code to Swisscom, and we receive in exchange this same contract, digitally signed in a permanent way, both by the customer and the bank.

From then on, both the customer and the bank have a copy of this contract, validated and signed by both parties, and legally admissible by both.

I loved working on this project and it only confirmed the love I have for Symfony and its childlike simplicity to create complex, powerful, yet secure solutions.