What is the FNC1 character used for in a GS1 compliant barcode?

Written by James McDonald

March 7, 2015

At work we ship pallets to supermarkets. Each pallet needs two bar codes

  1. A Serial Shipper Container Code (SSCC) and
  2. An item information bar code with GTIN-14 (Trade unit), Best before date,  batch and quantity per pallet.

On both the SSCC and item information bar code each piece of information is proceeded with a two digit Application Identifier (AI) so the scanning software can tell what numbers mean what.

So (02) precedes GTIN-14, (15) precedes the best-before, (10) precedes the batch /serial and (37) precedes the quantity per pallet.

Some of the fields have a predefined length a GTIN-14 is always 14 digits long, and best before is always 6 digits long (15)YYMMDD but batch, lot, serial numbers and quantity can vary in length. So to tell your scanning software “this is the end of the variable length bar code field” you either put the variable length field at the end of the bar code so the stop character tells the scanner the field has ended or you insert a function 1 character (FNC1)

A function 1 appears as 4 dark bars, 1 light bar,  1 dark bar, 1 light bar, then 3 dark bars:


A GS1-128 bar code has start character then a FNC1 then the  (AI) with the data and a FNC1 to mark the end of each variable length field (unless at right end of the barcode)


So with the above barcode the variable length batch (10) needs a FNC1 to terminate it. The variable length quantity (37) doesn’t because its ‘end’ is the end of the barcode.

If you encode your bar codes without the necessary FNC1. Your barcodes will be unusable by the recipient trade partner. So it’s good to send samples to GS1 for barcode verification.

To learn more download the GS1 General Specifications PDF from GS1 in your country.


Submit a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.

You May Also Like…

List local disks

GET-CimInstance -query "SELECT * from Win32_DiskDrive" DeviceID Caption Partitions Size Model -------- -------...

Create ISO using Powershell

Usage New-IsoFile -NewIsoFilePath C:\tmp\Hyper-V.iso-sources -ImageName Hyper-V -SourceFilePath 'C:\tmp\Hyper-V'...