I like the idea of showing a QR code (or similar) on my screen for the other person to scan actually, especially if it can generate one with the amount and comment I can put in as part of monzo.me. The alternative, without knowing the other person’s contact details (or sending a link by AirDrop on iOS), is for them to enter their card details on your phone, but some might be uncomfortable with this.
IIRC, QR codes that feature images or are unusual shapes are not within the specification/guidelines of the standard and, as such, are much more error-prone. Places quite often get round this by having a higher percentage of error correction (i.e. redundant additional data) but this makes the barcode much more complicated and a bit ropey in detection still.
Snapchat and Messenger seem to be using their own bespoke barcoding, not your typical two-dimensional barcode like QR, and are only read by their own apps, so they have a lot more leeway in how they work.