Hacker News new | past | comments | ask | show | jobs | submit login
UsingQR – “Electronic” paper invoices using JSON and QR codes (skolelinux.org)
51 points by r0muald on Mar 19, 2016 | hide | past | web | favorite | 27 comments

I'm in this space in Germany, where such ideas are always taken to their logical extremes.

The current push towards creating some kind of standard for electronic invoices (which would allow for a standardized data package to be transformed into QR) is called ZUGFeRD.

http://www.ferd-net.de/front_content.php?idcat=231 The Zip(?!?) Containing the specification can be found here:


This is a push towards adding data to the PDF Metadata that would allow for digitally reading of that electronic invoice by financial systems.

The current problem, from my reading, is that there is not enough players that see a positive ROI for implementing this standard on a wide scale on systems where it would make sense.

In Czech republic, QR codes that encode payment details for invoices are pretty common. It uses format called SPAYD for encoding of data which is variation of vCard formatting (as proposed in the begining of this article). Idea is that the same data in this format could also be transfered directly, but that is not so common, probably because there also is widely supported national standard for XML representation of entire invoices.

As for paperlessness: I routinely pay my cellphone bills by scanning said QR code from computer screen.

I routinely pay my cellphone bills by doing absolutely nothing (apart from having a skim of my bank statement now and again). In the UK almost all regular payments are done using Direct Debit, where you grant the company billing you permission to transfer the money automatically. Sadly it lacks the ability to specify an upper bound on that, but I've yet to have any issues in practice so I'm not massively worried.

Do not do this!!!

If you end up in a dispute with your phone company, you are putting yourself at their mercy. It's waaay easier to fight a charge you haven't paid yet, then to recover money you've already paid.

I've gone through hell because of this.

The bank doesn't allow you to roll back the automatic transfer of money ? Over here (NL) all banks allow you to retrieve your money without any hassle within about 2 months.

In Germany, for each direct debit entry in my ledger (in the web interface of the bank) I have a small button to revert the debit. I suppose this is standard because I have this button with the 3 banks I am banking with (business and personal).

Depends on the country. In the UK the Direct Debit Guarantee states that "If an error is made in the payment of your Direct Debit, by the organisation or your bank or building society, you are entitled to a full and immediate refund of the amount paid from your bank or building society". The system is used by millions; it's so common for bill payments that paying by another payment method often attaches an additional charge.

[edit] Oh, I guess you mean in the case of a regular payment of an uncertain amount, like a mobile phone bill. I use a pay-as-you-go plan where a direct debit takes a fixed amount out of my account each month, and if I overrun it then my phone stops working until I pay more. I'd definitely think twice before setting up a DD for a mobile phone contract.

You can always get a direct debit refunded by your bank in the UK. It's then the company's responsibility to pursue the debt if they believe that you owe them the money.

In .cz you can also do that and even specify an upper bound (which is apparently mandatory as direct debit authorization for my credit card that got created automatically has upper bound of 999999CZK)

On the other hand I know many people who like me do not use direct debit for "unpredictable" things like cellphone bills. Most other payments can be automated by standing orders, what sucks that even when your monthly phone bill is essentially constant you cannot do that as our cell operators generally assign distinct payment reference for each monthly bill.

I would love it if my bank would start to use this, would save a lot of manual entry for inter person payments.

Standard description : https://en.wikipedia.org/wiki/Short_Payment_Descriptor

There is slight problem with the fact that while it looks like pretty much country neutral system that is built on SEPA it in reality builds upon czech/slovak ABO system (Automated Banking Operations, which probably holds world record for government project with longest deadline overrun, as it was in development for almost exactly 20 years) and it's data fields for automatic identification of payments (X-VS, X-SS and X-KS in SPAYD IIRC). While SEPA has even more powerful mechanisms for this it seems that they are not much used, maybe exactly because they are too powerful.

One thing that fascinates me is contrast between european giro banking systems and ABO in particular (where account number is just an ID/address and has no security implications) and checking account based system used in US where everithing seems to be somewhat backwards from what would make sense.

Maybe the first usage of QR codes that actually makes sense to me. People don't want to scan codes to go to urls, but they do want reliable ways take messy human-reable data and put it into software. I hope more uses like this come up.

QR codes were originally invented for inventory tracking. This is just an extension of that.

Only problem with this is it discourages shifting to paper-less business. Remember when that was a goal of business and government. It's been so successful via the fact that it's simply easier than shuffling papers about. That being said, it is clever, sort-of a 255byte or so flash-rom storage on a piece of paper.

I think that things like migrating away from a paper-less society is best done in small steps. Who knows, things like these might actually speed up the process!

Some countries have already done it. It's not impossible or even that difficult if you get behind it.

I love the way in which LibreOffice can export a PDF with the original document still embedded. If a scannable code on a paper document could contain all the data needed to recreate it without any loss, you'd get effectively the same thing in a tangible form.

"This PDF is a Webserver, which will serve this PDF."

(See Chapter 9).


Is "going paper-less" a moral imperative?


QR can store binary data. Something like BSON would make a lot more sense, given the tiny amount of storage in a QR code. Even ASN.1 seems more appropriate than the silly data->ASCII->ASCII-structured-format->binary encoding that's going on here, and admittedly in a lot of other transport formats too.

Not wanting to start flame wars, but consider CBOR instead of BSON (which only really makes sense if you want to integrate with MongoDB).


I hadn't heard of this one before. I like that it has an RFC attached (RFC7049) which contains in the appendices comparisons to other similar systems such as MessagePack and BSON.

A german banking app already tried to do something similar [0], but used the QR code to encode an URL containing all data instead. It seems a bit more efficient.

But FWIW, it never got popular. I guess you can tell by the design of the website.

[0] http://www.bezahlcode.de (In German only)

Edit: It is actually not encoding all data of the invoice, but only the bank details needed for the transfer.

It seems like a big step in the wrong direction. Sending invoices on paper should become a thing of the past. But even if you are sending invoices digitally, then choosing a common format would be the first problem. There are already several existing formats, from Edifact to XML based Oagis, with no winner in sight.

Rest assured that these petty JSON, vCard or the like ideas have little chance to work in real life, specifically if you need to compress invoices into the space limitations of QR codes... Real life B2B invoices are much more demanding.

When it comes to payment information, that is much simpler to solve. You don't even need to QR encode that, relatively simple forms with human readable numbers can be read by modern smartphone banking apps. I have two different installed (two different Swedish banks), works with most of the invoices I get home. The few that still come on paper, that is.

I wish there was some sort of financial/billing organization that could lay the law down and establish one of these as standards, but since billing is such a broad topic we may be lost on that front.

This is really cool. However adoption will be a really challenging issue. When you end up having to upgrade your pos to print these qr codes (with little incentive) you could just end up switching to a square-esque system instead.

I think the Json format is cool. Qr codes as a representation should be one way of sharing it.

In Bolivia, starting this year, all the electronically printed invoices have to include an QR code that contains the necessary information for tax filling.

Having one of the worst tax system in the world I'm surprised that somebody had the idea to implement this mechanism.

I throught I read this is this discouraged. The QR code amount can differ from what is printed as text. It can yhen be used to scam a customer that does not pay attention as well as make it legally unclear what the balance due really is.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact