A hands-on, step-by-step guide to building and printing a compliant GS1-128 carton label for Indonesian vegetable exporters in 2025. We cover exactly which AIs to use (01, 10, 15), formatting, printer specs, SSCC pallets, label placement, and what Singapore/UAE buyers actually expect.
If you’ve struggled with unreadable carton barcodes, mismatched lot codes, or returns at Singapore inbound checks, you’re not alone. We went from sporadic scan failures to a 100% first-scan pass rate in under 90 days by tightening our GS1-128 setup across cucumbers, lettuce, tomatoes, and more. Here’s exactly how we do GS1-128 for Indonesian vegetable cartons in 2025.
We’re focusing on carton-level GS1-128 and pallet SSCC. We’re not covering consumer unit barcodes, QR/Digital Link, EDI/ASN, or food safety certifications in this guide.
The 3 pillars of fast traceability that actually work
-
The right data model. Assign a GTIN-14 for each carton configuration. Encode Lot/Batch and Best Before using GS1 Application Identifiers. Keep formats consistent across all SKUs. We use the same approach whether it’s Japanese Cucumber (Kyuri), Tomatoes, or Baby Romaine (Baby Romaine Lettuce).
-
Print quality that survives the cold room. Choose a label size and x-dimension that scans at 1–1.5 meters. Use thermal transfer with wax-resin ribbon on semi-gloss for cartons that sweat when moving into chillers.
-
Process discipline. Don’t reuse lot numbers across harvests. Generate SSCCs consistently for pallets. And place labels in the GS1-specified zones so receivers don’t have to hunt for them.
What’s interesting is how much of this is about repeatable routines. Once you lock these in, your rejection risk drops dramatically.
Week 1–2: Set the foundation (GS1 IDs, data formats, label template)
- Get your GS1 Indonesia company prefix. This is the root for your GTINs and SSCCs. New buyers increasingly check for valid GS1 identifiers upstream.
- Allocate GTIN-14 for each carton pack. Example: a 5 kg Kyuri export carton and a 10 kg Tomatoes carton should each have their own GTIN-14.
- Decide your Lot/Batch (AI 10) scheme. We like harvest-date based lots plus a line code. Example: 250430-A for a 30 April 2025 harvest, Line A. Avoid special characters except hyphen/period if you must.
- Fix your Best Before policy. For short-shelf-life leafy items shipped to Singapore/UAE, we set Best Before (AI 15) in YYMMDD, e.g., 250506 for 6 May 2025. Don’t use slashes or text.
- Build a single 100×150 mm label template for all cartons. One template reduces errors.
Which GS1 Application Identifiers go on vegetable export cartons?
For most fresh vegetable cartons going to Singapore, UAE, or regional markets in 2025, we recommend:
- GTIN-14 (AI 01) – 14 digits, fixed length.
- Best Before (AI 15) – YYMMDD, fixed length.
- Lot/Batch (AI 10) – up to 20 characters, variable length.
Order them so fixed-length fields come first. That reduces FNC1 separators. We typically encode: (01)(15)(10). If AI (10) is last, you don’t need a trailing FNC1.
Do I need ITF-14 or GS1-128 for fresh vegetable cartons?
Short answer: GS1-128. ITF-14 encodes only the GTIN-14 and is sometimes accepted for dry groceries. But fresh produce buyers increasingly want traceability at carton level. In the last six months, we’ve seen more Singapore receivers ask for GS1-128 because it includes Lot (AI 10) and Best Before (AI 15). If a buyer explicitly asks for ITF-14, use it. Otherwise, default to GS1-128.
Practical takeaway: Create GS1-128 with AIs 01, 15, 10 for cartons. Save ITF-14 for legacy requests.
Week 3–6: MVP label, print tests, and scan validation
- Label size: 100×150 mm (4×6 in). It fits long human-readable text and tall bars.
- X-dimension: 0.56–0.64 mm for 1–1.5 m scanning in chillers. If your scanners are weaker, go up to 0.76 mm.
- Bar height: ≥ 32 mm for primary GS1-128 symbol.
- Quiet zones: ≥ 10× the X-dimension on left and right.
- Symbology: GS1-128 with FNC1.
- Media: Thermal transfer, wax-resin ribbon on semi-gloss. Direct thermal fades and smudges with condensation.
Example data string (human-readable):
- GTIN-14: (01) 08812345001234
- Best Before: (15) 250506
- Lot: (10) 250430-A
Encoded GS1-128 data (no spaces):
- (01)08812345001234(15)250506(10)250430-A
ZPL example snippet for a 100×150 mm carton label: ^XA ^CI28 ^PW812 ^LH20,20 ^BY4,2,120 ^FO50,60^BCN,120,Y,N,N^FD>8(01)08812345001234(15)250506(10)250430-A^FS ^FO50,200^A0N,28,28^FDGTIN-14: 08812345001234^FS ^FO50,230^A0N,28,28^FDBest Before (YYMMDD): 250506^FS ^FO50,260^A0N,28,28^FDLot: 250430-A^FS ^XZ
Tips we’ve learned the hard way:
- Lock your printer darkness and speed. We run 300 dpi at speed 3–4, darkness around 18–22 on Zebra units to avoid bleeding bars.
- Print two identical labels per carton and apply to two adjacent sides. When one is scuffed, the other still scans.
What label size and x-dimension work at 1–1.5 meters in cold rooms?
A 100×150 mm label with a 0.56–0.64 mm X-dimension and ≥32 mm bar height is a reliable baseline. If you’re using 203 dpi printers, set narrow bar width to around 15–20 dots. For 300 dpi printers, you’ve got more flexibility to fine-tune module width.
Week 7–12: Scale, add pallets, and integrate
Now add pallet traceability with SSCC.
How do I create an SSCC from my GS1 Indonesia company prefix?
- SSCC uses AI (00) and is 18 digits long.
- Structure: Extension digit (1) + GS1 company prefix + Serial reference (to reach 17 digits) + Check digit.
- Make sure the combination of company prefix and serial reference is unique. Increment serials per pallet.
Excel check digit for SSCC (A1 contains the first 17 digits as text): =MOD(10-MOD(SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),IF(MOD(ROW(INDIRECT("1:"&LEN(A1)))+LEN(A1),2)=0,3,1)),10),10)
Example SSCC data: (00) 108812345000000019
Pallet label: Use GS1-128 with AI (00). Keep the same print rules for x-dimension, height, and quiet zones.
Where exactly should I place the GS1-128 label on a vegetable carton?
Follow GS1 logistics placement:
- Two adjacent sides, in the lower half, ideally the bottom-right quadrant of the long side and the adjacent short side.
- Bottom edge of the symbol 32–76 mm from the base.
- Keep at least 19 mm from vertical edges and away from carton seams or straps.
Receivers in Singapore will thank you. Forklift operators shouldn’t need to rotate cartons to find a scannable symbol.
Quick answers to the questions we get most
What’s the correct date format for Best Before in GS1-128?
Use AI (15) with YYMMDD. For example, 6 May 2025 becomes 250506. Don’t add hyphens or slashes. Don’t invert the order.
Can I reuse lot numbers across different harvests or buyers?
Don’t reuse across different harvests. You can ship the same lot to multiple buyers if it’s truly the same physical batch, but once you create a new harvest or processing run, generate a new lot. It keeps recalls clean and prevents cross-contamination of traceability.
Export traceability to Singapore: do they expect pallet SSCC?
Many Singapore retailers and DCs increasingly want SSCC (AI 00) on pallets and GS1-128 with AIs 01, 15, 10 on cartons. Inbound teams have tightened scan checks this year. If your buyer hasn’t specified, propose SSCC anyway. It’s becoming the norm.
Common mistakes that quietly kill projects
- Using ITF-14 on fresh produce when buyers need lot/date. You’ll pass GTIN checks but fail traceability.
- Wrong date format. 2025/05/06 or 06-05-25 will be rejected by automated systems. Use YYMMDD.
- Variable-length AI placement errors. If AI (10) isn’t last, you must insert FNC1 after it. Avoid this risk by ordering (01)(15)(10).
- Too-small labels and fonts. 58×40 mm is not a carton label. Use 100×150 mm so your team can read human-readable text in the cold room.
- Poor media for chillers. Direct thermal on wet corrugate smears. Use thermal transfer and a decent adhesive that grabs cold, slightly damp cardboard.
We also see people forget to carry the same master data across SKUs. If you defined the GTIN-14 for Red Radish, don’t accidentally reuse it for Carrots (Fresh Export Grade). Keep a central GTIN list.
Practical examples you can copy this week
- GTIN-14 and AIs for a Kyuri export carton: (01)08812345001234(15)250506(10)250430-A.
- For a chilled tomato carton: (01)08812345004567(15)250508(10)HAR-250501-B. We align Best Before to the product’s real shelf-life and buyer SLA.
- Pallet SSCC: (00)108812345000000019. Print a dedicated SSCC pallet label and stick it on two adjacent pallet sides.
If you want us to look at your draft label or ZPL before you print thousands of them, just ask. Need help with your specific situation? Contact us on whatsapp.
Resources and next steps
- Baseline carton AIs: GTIN-14 (01), Best Before (15), Lot/Batch (10). Put fixed-length AIs first.
- Label spec we trust in cold rooms: 100×150 mm, X-dimension 0.56–0.64 mm, bar height ≥32 mm, thermal transfer with wax-resin.
- Placement: two adjacent sides, 32–76 mm from base, away from seams.
- Pallets: SSCC (AI 00) with unique serials. Calculate check digit with the Excel formula above.
- Integrate your label data with packing lists. Many buyers in Singapore/UAE reconcile ASN or packing data with what they scan at the dock. Even if you’re not on full EDI, consistency matters.
What’s the outcome? Cleaner inbound scans, fewer relabel requests, and faster release at the DC. We’ve seen this shave hours off receiving for mixed-load shipments of Purple Eggplant, Onion, and leafy lines like Loloroso (Red Lettuce). If you apply just the three pillars above, you’ll be 90% of the way there.