Names on the Current Account

Related Reading

Disclaimer

The entire Monzo team is working incredibly hard on the current account so we can roll it out to all of our prepaid users before the end of the year. With finite engineering resources we have to make decisions about what we want to build before migrating users to the current account and what we’ll build after. Some of the ideas I present here are about the long term vision. Making Monzo as inclusive as possible is something that is very important to me personally but please don’t be disheartened when not everything I’ve described here is ready on day one. We are at the beginning of a journey and I’d like your help to shape the future of Monzo.

Legal Name and Preferred Name

As a bank we are legally required to record a customer’s full legal name to comply with money laundering regulations. There are many circumstances in which someone would prefer to use a name other than their legal name, for example:
  • Short versions of names (Alexander → Alex)
  • A person in the process of transitioning gender
  • Someone who has got married but not yet got updated photo ID

To support these use cases we will record two names against each user, their legal name and a preferred name (common name). Someone’s preferred name should be what they are referred to by their friends and will usually (but not always) be a derivation of the legal name. We’d like to use the preferred name in as many places as possible and only use the legal name when we have to. 

What will legal name be used for?

Bank statements
You will be able to obtain PDF bank statements from within the app. As bank statements are typically used to prove identity they will contain both the preferred name and legal name.

Outbound bank transfers
It is a legal requirement under money laundering regulations to include the legal name on outbound bank transfers. This is unlikely to be obvious to a user and thus at some point I’d like to include a splash screen that explains that the legal name will be sent with the bank transfer. This screen would then be automatically shown to anyone with a preferred name that differed substantially from the legal name.

Credit checks
Credit records are stored against legal names.

Immigration status checks
We are legally required to check everyone who signs up against the Home Office’s database.

PEP (politically exposed person) and sanction checks
We are legally required to check everyone who signs up against sanctions lists.

What will preferred name be used for?

Communication from us
Embossed on the card
For monzo.me
This one is slightly tricky as we have already seen some cases of fraud where users have manipulated people into sending them money. If this fraud increases we may have to consider adding something onto the page that indicates that the name is a preferred name and may be different to the legal name. I would welcome feedback on this.

Transliteration

Pretty much any assumption you make about people’s names will be incorrect. I’ve put a lot of effort into making our name model as flexible as possible with as few assumptions/restrictions as possible. This is especially challenging when we have to integrate with many third parties all of which have lots of silly requirements and restrictions.

Character Set

Almost every place where we use the customer’s legal name we require the name to be in ASCII (some third parties support A-Z with some punctuation e.g. apostrophes whilst others are A-Z only). To support this I’ve written an extensive transliteration library that strips diacritics (accents, umlauts and other character modifiers) and transliterates characters that have a well defined ascii equivalent (e.g. eth, ash and many more).

The transliteration function always returns a string in the desired character set. The transliteration may be clean or dirty. A clean transliteration is defined as one that doesn’t require dropping characters. For example Friðrik JónssonFridrik Jonsson would be a clean transliteration where as Daniel 😀Daniel would be dirty.

I ran the transliteration function on the 100,000 most recent names that have been submitted as part of signup. Of these it couldn’t cleanly transliterate the following:
  • 1 person that entered their date of birth as their name
  • 5 people that added quotation marks around their name
  • 8 people that entered an email address
  • 3 people that entered names that included brackets e.g. Daniel Chatfield (Jnr) 
  • 1 person that entered their name in Hebrew

I’ve made the conscious decision not to support names with brackets in them for now as I’ve yet to see a case where it was written on the identity document with brackets.

If someone enters a name that we can cleanly transliterate we’ll accept it, we’ll then use the most permissive character set that we can in each place it is used. For example on Fred’s bank statement it would say Friðrik Jónsson but on an outbound payment it would say Fridrik Jonsson.