Symbologies
EAN-8 barcode generator
An 8-digit GTIN with a valid check digit becomes an EAN-8 image address.

An EAN-8 is the retail barcode for an 8-digit GTIN, used on packs too small for an EAN-13. Beepable draws one only when the check digit matches. Eight digits are an assigned GTIN, not a shortened SKU, so a short internal code will never be drawn as an EAN-8 just because it is short.
How do I generate an EAN-8?
- Use the 8-digit GTIN you were assigned, including the check digit. 96385074 is an EAN-8.
- Try it on the barcode form with auto, which picks EAN-8 for any valid 8-digit GTIN.
- For a column, put the code in A2, your picture key in Z1, and this formula in B2:
=IMAGE("https://beepable.app/i/ean8.png?v="&ENCODEURL(A2)&"&k="&$Z$1) - For the digits under the bars, use:
=IMAGE("https://beepable.app/i/ean8.png?v="&ENCODEURL(A2)&"&hrt=1&k="&$Z$1) - Place the picture with its white margins intact. On a small pack, cropping the margin is the usual reason a barcode fails.
What if the value is not an EAN-8?
| You have | What happens | Use instead |
|---|---|---|
| 13 digits | With ean8 in the formula, a card. With auto, an EAN-13. | The EAN-13 guide |
| 12 digits | With auto, a UPC-A. | The UPC-A guide |
| 14 digits | With auto, an ITF-14 for a case. | The ITF-14 guide |
| A 6-digit code or a SKU | A card that says a retail barcode needs 8, 12, 13, or 14 digits. | The Code 128 guide |
Writing ean8 in the formula is deliberate: a column that must hold EAN-8 codes shows a card for anything else instead of drawing a different barcode.
What if the cell shows a card?
| The cell shows | Why | What to do |
|---|---|---|
| Check digit is invalid for this GTIN. Name code128 to encode it anyway. | The last digit does not match the other digits. | Copy the code again from its source. Beepable never makes up a check digit. |
| EAN-8 needs 8 digits. This has 13. | The formula says ean8, but the code is longer. | Use auto, or the guide for that length. |
| This barcode needs an API key. | Z1 is empty, or the formula does not point at it. | Paste your picture key in Z1, and keep both dollar signs in $Z$1. |
| This API key has been revoked. | The key was revoked on the Account page. | Create a new picture key and paste it in Z1. |
What does the picture contain?
Black bars on white, with the quiet zone already included. With hrt=1, the 8 digits are printed underneath. The same digits always give the same picture, and a barcode drawn once is saved for a year, so a purchase order that repeats the same code costs nothing extra.
In a CSV upload, put 96385074 in the value column and leave symbology empty, or set it to ean8. In a batch request, send the digits as a string, like every other GTIN.
How do I check the file before it ships?
Scan the printed EAN-8, not the screen. Then test the rule: put a 7-digit value in the next row and check that it shows the length card, and put a 13-digit code in a row with ean8 in the formula and check that it does not draw. Leave more margin than you think a small pack can spare.
Frequently asked questions
How many digits does EAN-8 need?
8 digits, including a valid check digit. 96385074 is an EAN-8.
Will a short SKU become an EAN-8?
No. Only a GTIN of 8 digits with a valid check digit is drawn as EAN-8. Other short codes need code128.
Does Beepable fill in the check digit?
No. A wrong check digit shows: Check digit is invalid for this GTIN. Name code128 to encode it anyway.
Can I print the digits under the bars?
Yes. Add &hrt=1 to the address before &k=.
How big is an EAN-8?
The nominal size is 26.73 × 21.31 mm at 100%, and retail allows 80% to 200%. Keep the white margins on both sides.



