RM4SCC Barcodes on Online Statements


TL;DR is here, but that topic has been locked. As I’ve not received my first statement yet there is also no way for me to determine if this idea is already implemented.

I’d rather not order paper statements if online PDF statements would be acceptable if only they had an (extra) embedded font and some text in that font positioned below my postal address.

Looking at my online statements from Virgin Media, Natwest, Halifax, Metro Bank, Andrews & Arnold, and Nominet, the one thing they are all missing that would likely be on a postal statement is a Royal Mail address barcode. As they aren’t being posted, that makes some sense.

Looking at my shredding backlog, Virgin Media junk mail, Natwest postal statements, Metro Bank postal statements, Halifax postal statements, and letters from TV Licensing all have RM4SCC barcodes on them, although Halifax seem to have switched to the more complex CMDM 2D barcodes at some point since 2013.

While the RM4SCC font is available, I can’t seem to find the licensing terms. If the licensing terms are strict it might be possible to embed an SVG or other graphical representation of the barcode in the PDF statements, although it would require a fair bit more programming. I have no idea if a font that only contains different combinations of vertical lines is copyrightable.

Assuming Starling already use the PAF for address verification on customer sign-up and address change, all that would be needed (depending on licensing of the font) is storing the DPS (or a generic one) in the database table for each customer along with the check digit, and dynamically adding the barcode during PDF creation.

As I don’t have access to the Royal Mail PAF, I’ll use a generic DPS of 9Z. Using an online calculator for the check digit (that’d be the letter Y for Starling’s postcode + a DPS of 9Z), that would make the text needed (using the barcode font) to create a postal barcode for Starling Bank’s address thus:


Or, visually:

Screenshot from 2017-10-17 18-25-23

A generic 9Z DPS probably won’t be acceptable by systems that compare the barcodes on documents to the PAF (if any exist), nor for posted statements if Starling need to hit the 90% DPS accuracy rate required by Royal Mail, and embedding a 13 kilobyte font (if licence permits) in every PDF could have some bandwidth costs, and calculating the check digit (if not using Royal Mail’s C/C++ library) would require a little math and a dictionary/lookup table.

If the reason some places refuse printed online statements (or uploaded PDFs) is purely because they are using something like this, it is possible to make the statements as valid as postal statements.

A further possibility (not that it’ll work for companies looking for barcodes, or at paper) is digitally signing the statement PDFs with Starling Bank’s X.509 certificate(s) (assuming Starling has client certificates, such as for signing e-mails with S/MIME). This page says that digitally signing PDFs can be automated under Linux using PortableSigner.

If statements sent out are likely to have some form of barcode on them, it’d make logical sense for online statements to have barcodes too, to avoid system duplication and streamline the process of postal statement generation (i.e. postal statements are just printed PDFs).

If I were to request a postal statement from Starling and it didn’t have a postal barcode on it, the FinTech company I am having issues with would tell me it is just as invalid as the numerous online statements I have uploaded to them. After all, they are a FinTech company and the only apparent way to send documents to them is digitally.


I can say that the current online statement doesn’t carry a bar code, @WatfordJC.

Have you asked Customer Services if they have the features you’re looking for?


Is this something from outer space?


Wow! That’s detailed, and I didn’t know about those barcodes. You learn something new every day!

As @Graham says, first point of call for this is probably CS, but as I think we could probably class it as a feature request rather than an error or bug, maybe @JamesPratley can ensure it is escalated to the correct Dev Team?


Thanks for sharing your thoughts @WatfordJC. Our downloadable statements should be accepted by most providers, but if you require a printed copy you can always request this from our CS team. Can you tell me who you’re having an acceptance issue with and what they are requesting in particular? Thanks!