I’ve written some code that outputs the minimum numbers of pixels required to accommodate a standards compliant QR code given the characters to be encoded, the required margin, and EC Level. However, I’m getting blank image responses from Google instead of valid QR Codes.
The smallest QR Code possible is a 29×29 pixel Version 1 QR Code (21 coded modules + 4 module margin on each side). example

According to the Google Charts QR code documentation the maximum number of 0-9 digits you can have in the Version 1 QR Code at EC Level H is 17. However, specifying the parameters as such results in a blank image; no matter what the choe parameter is set to; because there is more data being encoded than can fit.

Reducing the number of characters to 14 results in a valid QR code.

So, does anyone have any idea how much data can be encoded by the Google Charts API at each given Version and EC Level? Is it character byte dependant? My code is written in Java, but a solution in any programming language, if required, would suffice.
Hopefully I’ve done something wrong, or there is some logic that can be followed, instead of it being a “good enough” implementation of QR Codes.
There is no official answer to this. As the API is now deprecated, it’s unlikely that an answer will ever surface or the bug will ever be fixed. You’re better off using zxing instead as it’s still developed and doesn’t suffer from the mentioned issue.