How Stephan Built His Facebook Banker Chatbot

29 January 2018

We’re building a programmable bank for software developers here at Root. We want to enable makers to easily create real value-adding products in the world of financial services. A select group of people have been given access to Root accounts in our private beta program so far, and they have been actively creating some exciting products. Here’s the first story we’d like to share with you.


Meet Stephan Steynfaardt. He is a Co-Founder at We are Monsters, a venture studio in Cape Town using technology to create real-time solutions, especially in the financial budgeting space. Stephan wanted to know how much he can spend at any given moment and whether he can afford that pair of sneakers he's been eyeing.

Before becoming a Root user, he encountered many barriers to solving this problem. Stephan noted, “I had to ‘hack’ together multiple scripts to get basic data from my own bank account. The problem with this is that the moment the bank’s website changed, my scripts would stop working.”

Why a chatbot?

After Stephan joined the Root private beta, he dived right into building his first Root project: Momo, a personal banker chatbot using Facebook Messenger.

“I needed an easy and secure way to keep an eye on my finances, get notified when I spent my allocated budget, and make payments a little more fun. A chatbot was the clear route to take. It doesn’t suffer from ‘banking hours’ so when I’m out at 2 AM,
it’s my turn to pay for a round of drinks, and my card stops working, I’m able to see right there and then what’s going on.”

Root - Momo Facebook Chatbot Intro

Momo was born to be a human-like, natural interaction with your bank account. A personal banker available 24/7, executing commands immediately. By the time of writing, Stephan has also trained Momo for the following functions:

Root - Momo Facebook Chatbot EFT

How did he build it?

Stephan built a Node.js backend to power Momo and hosted it on DigitalOcean. Momo uses the Facebook Messenger API combined with the following NPM libraries:

Root - Momo Facebook Chatbot Architecture

Momo takes a command like “Pay Nick R100 for Coffee” and turns it into a simple request to the Root API:

curl https://api.root.co.za/v1/transact/eft/81915352-a971-4406-a64c-013509cf11fa \
  -u test_key_tYILz1640w9q5n5kNQUZ: \
  --request POST \
  -d amount=10000 \
  -d description="Nick Coffee" \
  -d their_reference="Coffee"

What's next for Stephan

Momo is currently only available on Stephan’s Root bank account. He regularly makes improvements to Momo’s user experience and is planning to package it for others to use on their Root accounts. The next major feature he’s working on allows your friends to request a payment from you through Momo.

Let us know what you would want to build on your bank account by tweeting @RootWealth.

We’re actively looking for great people to join our team, please take a look at our careers page and get in touch! :)

Stay posted on the Root mission

Subscribe to receive updates as soon as they are published