First of all, download the standard. I think this is the one you need. Take a look at section 126.96.36.199: https://www.gs1.org/sites/default/files/docs/barcodes/GS1_General_Specifications.pdf
Second. These measurements depend on several things, the resolution of the print system, and some standards of how the laser beams operate.
Besides these guidelines, there are some other on how to accommodate the barcode, which depends on the package's shape and size.
Here is one on Spanish, but have some pictures :o) http://www.gs1py.org/docs/ManualUsuario2009.pdf
Try to find some specifics for NZ.
You need to see if there are some local regulations, not only for barcodes, but some other legal information, like nutrition facts, and Net content.
Google this terms and combinations: barcode standard guideline New Zeland.
On this image, (taken from CorelDraw code bar generator), you can see how the barcode is dependant on the print system used to actually print it (first mark)
I must say, you can play a bit with this sizes. Especially with the height of the barcode.
On the first image, you can also see that you can play a bit with the overall scaling.
If your flask is a small one, you can reduce it to some extent. On a closed environment, like barcode used for a local inventory, for example, you can reduce it, let's say yo 60% and make some tests with the actual reader you are going to use. (second mark on prev image)
On point 188.8.131.52 of the linked document, you can see some implied scaling. The table gives you some measurements of 80% scaling of the barcode.
Section 5.9 addresses the printing variables and the scanner's ones.
But you also can play with the height or crop a bit the top of the code bar.
This will not directly affect the "differentiation of the different" widths of the bars. It only will take more effort to the person scanning it.