Hi everyone, Iām Catherine.
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.