Monzo API and AWS


#1

Been trying to think of new ways to use the monzo API and use it as a way to start making your own “micro services”. This is more to get people who are interested in how it all works creating their own ideas.

I am by no means a coder, so this will seem like simple tasks to a lot of people but thinking of sharing how to setup some ideas for yourself to see if they might spark some ideas generating peoples own epic ideas…

First one I’m thinking of trying to write up is how to make your own API endpoint on AWS that can receive Monzo API data from your own web hook, then store it in an S3 bucket. From the bucket you could spin up loads of ideas, ways to update notes or categories of transactions in bulk or make your own similar tasks as IFTTT but include your own calculations first. You might even just want to use the data from their to create your reports on spending or statistics etc

An example of this might be your own spending “tax” (moving money to a pot), once the data is in S3 bucket, you could trigger a function (using lambda) to check it your spends in certain day and times criteria (Friday Saturday night drinking time, or during office hours etc) then “charge” yourself a percentage of value (set in your own variable) and send a HTTP post back your monzo account to move this to a pot or feed item to say “no tax” etc

I guess the ideas and fun would be up to yourself once the data is in your S3 bucket, if there’s much interest in learning how to do this I’ll start to put together a bit of a “how to”

There wouldn’t be any UI to this, unless you make your own it’s more just for the back end side of it.

This is just an idea at the moment, if most of you think it wouldn’t be interesting or you know how to do it already then will just keep the learning/fun to myself ha


(Jack) #2

Great little project if you have the time, always willing to learn!

Could you also use this to send yourself feed items as reminders etc based on your spending :thinking:?


#3

Yep you could just do that with an independent function…

A scheduled check of S3 Bucket, if spent at Google Play 5 times this month pop a feed item to you with total spending info, for example.


(Eve) #4

Could you explain this a little more for those of us who don’t have such in-depth technical knowledge? :sweat_smile: it’s all Greek to me!
What’s S3? Lambda function? Would this give us more control vs IFTTT?

I don’t even know how you would use the API or what the API is really- I was going to ask how it would be done in-app but I realised it probably wouldn’t be done there.


#5

So, Monzo API let’s you “get” data from your monzo account (only to authorised destinations that you give a ‘key’ to for Access) so check your balance, see what pots you have etc. This can also work the opposite way, so let you send a chunk of data inbound toove to a pot, add an image to a transaction, add notes etc. Lastly, it also lets you set “webhooks” so everytime you spend, send a notification to your “API” to say I need attention!

AWS = Amazon Web Service (a set of services you can geek out with to set to do whatever magic you can make, e.g made my own mail server to handle different tasks etc )

AWS Lambda is event-driven, a way to have serverless code in python or nodejs to do actions, processes or tasks without the need for a big setup.

With a tiny bit of code, which you can edit from templates if people share, you can process like, check date, is a Monday, if so grab transaction total, find out 10% of this and then trigger a next step, to cause the 10% value to go onto pot. Literally your own minds ideas or strict end goal is your own barrier…

Whereas IFTTT is simply if this then that, using your own skills, you could have if this was at shop A and over £20 then, email me, SMS my other half, update my spreadsheet then send me a smiley notification to my feed all in one go.

You would be able to think up as complicated as you wanted or specific.

At the end of it, you might of learnt something new (and had fun?) Or managed solve a problem scenario youve always wanted to?


(Jack) #6

I’m very tempted to give this a go when I next have some spare time. Keep us updated how you get on :raised_hands:t3:


(Marcel Ruhf) #7

In addition to what @Dannytc said, you can get a feel for the things the API allows you to do (without any programming knowledge) by using the API Playground.


(Eve) #8

Would something you created be publicly available for others to use with their own accounts too? Like a “marketplace” for such creations users can pick and choose from?

I know people have been sharing creations eg Monzo Web, transaction map view but I don’t understand the code behind it or enough technical know-how to properly come up with radical ideas or change things around :sob: if you could make this accessible in a write-up for clueless folk like me it would be immensely helpful


(Marcel Ruhf) #9

Not by default. The personal API allows you to whitelist up to 20 users by email address only. For public access, only the AISP (account information service provider) API can be used, which is more limited in what it can do. This is the API used by the likes of Emma and Yolt.


#10

So here is some things it will be able to do if anyone still interested - got most of this done:

  • Get notifications with details about how many times youve spent at that merchant in the past x days, or show the total spent in a set time.

  • Generate your own heat map showing details of all the places you’ve spent at.

  • Move x amount to pot based on spend (a percentage of the spend value, a fixed saving amount, or for big savers round up to near £10 or £100 :open_mouth: Ive got this made into its own api, which ill be able to show you how to setup 2 IFTTT applets, so that you can get 1 to send data to the api (and not need to setup/code anything yourself), and second will receive a webhook back to another applet to move that amount to a pot (No code or install needed, you can use the api as a calculator e.g 10p for every 1000 strava steps) Need to write guide for this when get chance.

  • Email your own template/receipt of transactions for things like expenses e.g. set it to auto email you the mail if you spend within a set date/time range or location (if your away on a business trip).

  • An in browser search and select export of transaction: merchant, date, location, value as criteria to filter by.

  • Update transactions and set notes/categories to previous spends in bulk - need to test this one a lot more just an idea at the moment.

All of this isn’t pretty at moment, and is setup with config values.

Any ideas to suggest anyone?


(Alex Sherwood) #11

This sounds great!

I’m keen to use this to add an emoji to transactions that I make with any one of a list of merchants e.g. I want to tag my purchases at coffee shops with :coffee: to use with search to see how much I spend on coffee each month. And do the same thing for takeaways :pizza: nights out :beer: & places I exercise :running_man: etc.

Obviously I wouldn’t want to create a dedicated IFTTT applet for each of those merchants in order to replicate that functionality & adding notes to transactions with IFTTT isn’t an option yet..

I’m looking forward to trying this out instead :grin:


#12

All of that would be possible :)!


(Josh) #13

I don’t think this is available in the api yet. :slightly_frowning_face:

You can add your own annotations to a transactions, but these are stored in metadata and aren’t visible in the app.


(Jack) #14

There’s a lot of possibilities then.


#15

Still hoping for the 2nd version of this…