You can now undo payments šŸŽ‰

Hi everyone, I’m Catherine. :waving_hand:

I’m a Product Manager on Payments Experience.

Did you see the blog post we published today? We’ve shipped a brand new feature called ā€˜undo payment’.

If the blog post has the important information, this post has the not-important-but-interesting-all-the-same information.

From uh-oh to undo
You’re all humans (as far as we know), which means you make mistakes.

Trouble is, when you make a mistake with a bank transfer it could cost you a lot of money and cause you a great deal of anxiety. We built this feature to prevent innocent mistakes from turning into financial and emotional stress.

Undo payments started out as a hackathon idea
Each summer, we run a company-wide hackathon to dedicate designers, engineers, writers, product managers and beyond to cool ideas we would struggle to prioritise during the year. Monzonauts submit their ideas and everyone votes on the ones they want to work on.

Undo payments was one of the winning submissions!

Funding secured (there’s no funding, only pizza), the initial team of 8 took it upon themselves to adopt new titles for the project…

  • Oli – Chief Undoer
  • Alberto – Master of Undoing
  • Sonia – Undoer Straordinarie
  • Sean – Grand Undoer Wizard
  • Carla – Under Strategist
  • Giselle – Supreme Undoer
  • Priyesh – Ultimate Undoer Architect

Undoing actually works by delaying payments
This will probably come as a surprise to no one in this group but we don’t send the money and then claw it back. Instead, we keep the payment on the starting line for a while. Once the undo payment timer has run out, we fire the starting gun and off it goes.

We achieve this using what’s called the ā€˜money transfer gateway’.

We’ve gone from a sync payment sending model to an async one
Before, we would take your payment request and instantly attempt to move the money. We’d do checks along the way, and if any of these failed we’d let you know that the payment had failed. This could be for lots of different reasons, even partial failures. This is what’s called a sync payment sending model.

Now, we ā€˜validate’ your payment requests to the best of our ability upfront and then instantly respond to you saying that we’ve got the payment and that we’re sending it. This is an async payment sending model.

With your payment request received, we can ā€˜hold’ the request for a period of time (this is where the 15-second timer comes in). Undo payments isn’t the first to use this holding period, our ā€˜Trusted contact’ security tool holds payments back until your friend or family member approves it.

There are lots more things we could do with payments that are in this in-flight state. For example, building in greater scrutiny of bigger value transactions to make sure they go out correctly.

Got ideas for other things we could do? We’d love to hear them.

How we chose the default timer length
Once you’ve made a bank transfer via the ā€˜Pay someone’ button in your Payments tab, a 15-second timer starts. You’ve got until the timer ends to undo your payment. After that the payment will go through as normal.

But how did we land on the right default length of time for the timer?

Honestly?

We guessed.

Sort of.

Gmail’s undo send feature was a good reference for us when we were building this. Both in terms of making it feel quick and easy to reverse, but also in the amount of time you get to undo sending something. Gmail actually defaults to 5 seconds but you can set it to up to 30 seconds.

When we put the feature into staff testing the timer was set to 10 seconds but we quickly got feedback that it felt too fast. 10 seconds was our best guess at what felt right. Clearly we were a bit off.

So, we increased the timer to 15 seconds to give you just a smidge more time to correct any mistakes without making the experience too disruptive. It’s about finding that sweet spot that’s long enough to catch any immediately obvious mistakes while not delaying the payment for too long.

If 15 seconds feels too quick, or too long, you can set it to 10 seconds, 30 seconds or 60 seconds, depending on what feels right for you.

One day you might be able to redo a payment you undid
This was technically difficult to do so we’re saving it for future improvements but we think it’d be cool if you could correct a mistake and then re-send the payment. It’d save you needing to input the payment information all over again.

Why we put it where we did
It’s important you can undo a payment the second you make it if you realise you made a mistake. For this reason, we included the undo payment action on the payment confirmation screen, along with the pick a payment category action.

We didn’t want one action to get in the way of the other, so we included both on the same screen. You should be able to make a payment, choose a category and then realise you made a mistake and undo it. Which is why the undo payment button appears in Activity on the Home screen too.

We explored having it stick to the top of your app screen even while you visited other places in the app but that felt a bit much for the first release. It was also technically quite difficult to pull off. We might test this out later though, to see if it’s something people would find helpful.

Let us know what you think!
We’re pretty excited about this one, hopefully you are too. Some of the team are around to answer your questions if you have them, so fire away.

To undo payments, you’ll need a Monzo current account. UK residents only, Ts&Cs apply.

33 Likes

It’s great to see Monzo launch an innovative feature like this. I’m sure all the other banks will copy it in a few years, but it shows Monzo is still way ahead of the curve

9 Likes

A great feature… shame am always one of last for new features to roll out too! wish there was an option in labs to enable it till your happy its working as expected.

Now just need a tablet app or at least access on the web

1 Like

There’s a way to see possible features in advance… a reference to this new undo-payment-send feature first appeared in a February app update

1 Like

It sounds good. Im not sure I’ll need it personally as there is a confimation screen before you have to hit send where I can double check everything.

If I remember correctly iOS still dont have this?

I’m sure it will save a lot of headache for customer services nonetheless and its always good to have an added safety net :+1:

The redo feature sounds a bit excessive though.

Great idea! I currently have this on for emails, and am quite happy with it.
Helps a lot for small mistakes.

Thank you for detailing exactly how you achieved this. With treasure map in hand, the legacy banks will be able to roll this out in a year rather than 5 years so will be an improvement for everyone rather than just these 11m users.

1 Like

I mean it’s basically just Gmail’s undo send feature, unless I’m missing something?

That’s where they took inspiration from. It’s detailed in the post :see_no_evil_monkey:

3 Likes

It helps user to correct human errors immediately after initiating a payment. But what If a user fails to notice the error within that narrow time ??? there’s no fallback !!

There’s a process by which you can ask the bank to recall the transaction, but the person you sent the money to would have to agree.

It’s really a lot better not to make mistakes in the first place with bank transfers.

3 Likes

But surely it’s better to add a shorty delay for those ā€œOh crapā€ moments that sometimes happen the second you press the button, rather than not add it?

There’s ā€œno fall backā€ without the feature. At least this gives you a chance of stopping it if you realise you’ve made an error.

Just wanted to say great functionality, I never noticed it before (or perhaps it’s new) but today I sent a payment with a birthday greeting by accident and I could undo it and re-send it!

I hope it sticks around :slight_smile:

5 Likes

Just wondering how long the phased rollout is @catherine_berda, I don’t yet have this.

Was this because it’s not their birthday or do you just not like the person?

1 Like

Yes, and Monzo helped me exercise my hate! Love it! Haha no, it wasn’t their birthday and my default message for the contact was happy birthday on Monzo (I learnt how to change that yesterday too!)

3 Likes