Facility to block select type of transactions/merchants


Hello There,

Just a suggestion to make, not sure if this piratical or even worth considering for the much later Pipeline.

This is an idea come about from living close to people in this category, who I feel have really struggled to get in a good position when it comes to money/banking.

Take for example, gambling addiction, currently all the support they go through advises them to close all bank accounts, open a building society cash account, to help avoid the temptations / access to money.

The idea to try and be the first bank to help people in these groups would be to offer a service to block transactions to known gambling merchants (bank cards can often block them via visa verification if its an under 18 card) so not sure if the logic would be there to allow an opt in function to not allow any transaction online, or in store merchants listed under a certain category?

If this is completely daft, not the direction you think you’d want to look at, then please ignore. Just thinking for how to be THE bank that can help everyone, and even those other banks really don’t have the time to help.

(Jonathon) #2

It’s an interesting idea. I like the basis of it, though I don’t know how complicated it would be from Monzo’s side!

(Jolin) #3

I don’t have any experience with gambling addiction, so this might be a silly question. But wouldn’t the loophole in your suggestion above be that someone would just withdraw cash and walk into a casino or bookies? Would this need to be accompanied by a limit on daily withdrawals, too?


To extrapolate on the idea even further; context sensitive blocking would be a godsend. Probably not remotely practical or worth putting development time into, but the following scenario would save me lots of money:

if account_balance =< £50 :
    can_buy_lunch = False
elif account_balance =< £10 :
    can_buy_apps = False
    print("Are you sure you NEED to buy that?")


The daily withdrawal limit is a small drop compared to the amounts I’ve seen them deposit in one session online or via card top up at the branch counter of the venues.

The ultimate responsibility is on the addict to self exclude or try to stop but only having £250 cash would better than a whole month’s salary in an hour (for worst scenario example)


I really like this idea! It would be great if they let you host your own “server” via the API, where you could write you own budget script, and set all your plans! With motivation messages!

You’re onto a winner with that idea!


A webhook for card payments would be nice - your server gets the raw data sent by the merchant’s terminal and you can decide whether to approve the transaction (up to the amount of funds available in your Monzo account). :heart_eyes:

(Tommy Long) #8

Rather than it going to your own server, they just need to the ability to insert middleware code applying to certain categories of transactions

(Jolin) #9

While it sounds “fun”, I imagine this would be a nightmare for support. Transaction not going through? Whose fault is it?

Not saying something like this should never happen, just that I think there are big implications beyond the technical ones.

(Keri) #10

I think this would be a good idea. I know people who this could help. Not sure if it’s something easy to implement though. And people are right about cash, but better £250 gone than everything in the account I guess!


Of course this should be a advanced user feature - I don’t expect many people will use it, but it will be cool to have (if not only for the marketing to demonstrate the power of the API). Support can have a status field that tells whether the transaction was rejected by the web hook (in which case it’s the user’s problem) or if the rejection was on Monzo’s side.

(Hugh) #12

This is actually a very good idea.
Just moving toward the current account, if I have DD for my electric bill and my salary hasn’t come in, I’d like the DD to go out of overdraft and I’d like to be able to use the tube to get home, but beyond that I don’t want to go further into overdraft so I’d like the rest of my transactions to be declined.

MonzoScript anyone? :sunglasses::ok_hand:

(Not Theresa May) #13

Wasn’t there something similar a while back?

Wonder what happened to this stuff

(Tommy Long) #14

This is something I’ve given a lot of thought to before, although what I discussed at the time was more of a simple rule builder: Rule Builder

I don’t think you’d want a whole new language, you’d probably want to be able to add JS/Node rules in Monzo (or maybe Go, since that’s what the backend is written in) with a simple API.

Essentially Monzo would build a rule builder UI which would write this script under the hood and there’d be an advanced view for scripting itself.

(Naji Esiri) #15

@zancler may have an update for you on that! We’re still very keen to develop these ideas into something tangible, but work on the current account has dominated the last few months!

There is a lot of debate around how ‘involved’ a bank should be in their customers’ personal spending habits and choices. Monzo is all about giving full control and visibility to customer and if we want to do this successfully we need to acknowledge a responsibility to support those who are facing financial difficulties as a result of an addiction or mental health condition. Whilst it’s not our place to say where our customer should or shouldn’t be spending their money, opt in features like this could be a great way to add another layer of control without things feeling too intrusive or pushy from our side.

(Hugh) #16

I’m not sure it’s a good idea to have people writing in “actual” languages - particulaly if they are the ones the backend is written in! You’re just opening a whole can of worms in regard to sandboxing and injection attacks.

It would be much simpler (and safer) to have a “Monzo Language” that was essentially a very basic programming language with Monzo-specific commands. It isn’t really necassary to have a fully fledged language. Then, you have an interpreter which will carry out those actions but not “execute” the code you have written persay. You can then control the attack vector with much greater precision and you have a lot more control over that users can/can’t do. Think of it like programming for dummies type language.


Well they could outsource the problem to Amazon Lambda or something similar. Twilio did that for their Functions feature and it’s essentially the same thing we want to be doing, except instead of reacting to phone calls we’ll be reacting to payments.

(Hugh) #18

I’m not sure whether that would meet regulatory approval that’s all?


This is a great idea, and would help with general spending too.

For instance - after having a couple of post-work drinks I often get McDonalds, and always hate having done it the next morning.

Being able to block payments to McDonald’s to prevent ordering would be awesome!!