# Electronic Product Code

The Electronic Product Code (EPC) is designed as a universal identifier (using an idiosyncratic numerical code for each different commodity) that provides a unique identity for every physical object anywhere in the world, for all time. The EPC structure is defined in the EPCglobal Tag Data Standard, which is a freely available standard. The canonical representation of an EPC is a URI, namely the 'pure-identity URI' representation that is intended for use when referring to a specific physical object in communications about EPCs among information systems and business application software.
The EPCglobal Tag Data Standard also defines additional representations of an EPC identifier, such as the tag-encoding URI format and a compact binary format suitable for storing an EPC identifier efficiently within RFID tags (for which the low-cost passive RFID tags typically have limited memory capacity available for the EPC/UII memory bank). The EPCglobal Tag Data Standard defines the structure of the URI syntax and binary format, as well as the encoding and decoding rules to allow conversion between these representations. The EPC is designed as a flexible framework that can support many existing coding schemes, including many coding schemes currently in use with barcode technology. EPC identifiers currently support 7 identification keys from the GS1 system of identifiers, as well as a General Identifier and EPC identifiers that can be used for encoding supplies to the US Department of Defense.
EPCs are not designed exclusively for use with RFID data carriers. They can indeed be constructed based on reading of optical data carriers, such as linear bar codes and two-dimensional bar codes, such as Data Matrix symbols. The 'pure identity URI' canonical representation of an EPC is agnostic to the data carrier technology that was used to attach the unique identifier to the individual physical object.
The EPC is designed to meet the needs of various industries, while guaranteeing uniqueness for all EPC-compliant tags. Some of the existing GS1 identification keys (such as the Global Returnable Asset Identifier (GRAI)) already provide for unique identification of individual objects. However, the Global Trade Item Number (GTIN) only identifies the product type or stock-keeping unit rather than an individual instance of a particular product type. To ensure that an EPC always uniquely identifies an individual physical object, in the case of a GTIN, the EPC is constructed as a Serialised Global Trade Item Number (SGTIN) by combining a GTIN product identifier with a unique serial number.
Both the Universal Product Code and EAN-13 identifiers that are still found on many trade items can be mapped into a 14-digit GTIN identifier, by padding to the left with zero digits to reach a total of 14 digits. An SGTIN EPC identifier can therefore be constructed by combining the resulting GTIN with a unique serial number and following the encoding rules in the EPCglobal Tag Data Standard.
The EPC accommodates existing coding schemes and defines new schemes where necessary. Each coding scheme within the EPC identifier framework is distinguished through the use of a separate namespace. In the URI notations, this is indicated using a URI prefix such as urn:epc:id:sgtin or urn:epc:id:sscc In the compact binary encoding of an EPC identifier, the namespace is instead indicated using a compact binary header (typically the first 8 bits of the binary encoding of an EPC identifier). The EPCglobal Tag Data Standard provides details of the URI prefixes and corresponding binary header values.
Low-cost passive RFID tags were designed to uniquely identify each item manufactured. In contrast, bar codes for trade items and consumer products have limited capacity and typically only identify the manufacturer and class of products. Although RFID tags are currently still more expensive than a simple optically readable label, they offer additional capabilities such as the ability to be read by radio waves, without requiring 'line of sight' between the reader or interrogator and the tag; this enables individual items within a large cardboard box (case) to be read without first unpacking each individual item from the box. Some RFID tags offer additional read/write user memory that could be used for storage of additional information, such as an expiry date or date of manufacture.
Plain text and barcoding are still useful in addition to the EPC tag, as liability obligations for the producer require durable and sufficiently fail-safe labels. Currently (2010) there are no applications in which RFID tags have completely replaced conventional labeling.
The EPC was the creation of the MIT Auto-ID Center, a consortium of over 120 global corporations and university labs. EPC identifiers were designed to identify each item manufactured, as opposed to just the manufacturer and class of products, as bar codes do today. The EPC system is currently managed by EPCglobal, Inc., a subsidiary of GS1. The specifications for the EPC identifiers can be found in the EPCglobal, Inc. Tag Data Standard, which is an open standard, freely available for anyone to download.
The Electronic Product Code is one of the industrial standards for global RFID usage, and a core element of the EPCglobal Network, an architecture of open standards developed by the GS1 EPCglobal community. Most currently deployed EPC RFID tags comply with ISO/IEC 18000-6C for the RFID air interface standard.

## Structure

The canonical representation of an EPC is a URI - the 'pure-identity URI' that is intended for use when referring to a specific physical object in communications about EPCs among information systems and business application software.
Each coding scheme within the EPC identifier framework is distinguished through the use of a separate namespace. In the URI notations, this is indicated using a URI prefix such as urn:epc:id:sgtin or urn:epc:id:sscc In the compact binary encoding of an EPC identifier, the namespace is instead indicated using a compact binary header (typically the first 8 bits of the binary encoding of an EPC identifier). The EPCglobal Tag Data Standard provides details of the URI prefixes and corresponding binary header values.
This namespace indicator (URI prefix or compact binary header value) in turn dictates the length, type and structure of the EPC. EPC encoding schemes are used to uniquely identify one object. Most EPCs include an element within their structure that corresponds to a serial number.
EPC Version 1.3 supports the following alternative coding schemes:
* General Identifier (GID) GID-96
* a serialized version of the GS1 Global Trade Item Number (GTIN) SGTIN-96 SGTIN-198
* GS1 Serial Shipping Container Code (SSCC) SSCC-96
* GS1 Global Location Number (GLN), SGLN-96 SGLN-195
* GS1 Global Returnable Asset Identifier (GRAI) GRAI-96 GRAI-170
* GS1 Global Individual Asset Identifier (GIAI) GIAI-96 GIAI-202 and
* DOD Construct DoD-96
From Version 1.4 these new coding schemas are also additionally supported:
* Global Service Relation Number (GSRN) GSRN-96
* Global Document Type Identifier (GDTI) GDTI-96

## All GS1 Identification Keys

GS1 identification keys includes detailed information about 12 GS1 ID keys, their purpose, use, allocation and maintenance rules, etc.
GS1 Application Identifiers defines the prefixes (AIs) used in barcodes and EPC/RFID-tags to define the meaning and format of identifiers, and currently lists 516 kinds of identifiers.
The EPC Tag Data Standard (TDS) defines the possible kinds of EPC identifiers, including:
* Correspondence to GS1 keys and other existing codes.
* Specification of data that is carried on Gen 2 RFID tags, including the EPC, User Memory data, control information, and tag manufacture information.
* The formatting of the Tag Identifier (TID) memory bank and how to use Packed Objects for the formatting of additional data within the user memory bank.
* A mapping of GS1 identifiers to URNs to be used in EPCIS (see EPCIS 1.2 section 6.4 Identifier representation).
The latest TDS version defines the following GS1 Identification Keys:
* Global Trade Item Number (GTIN), including RCN-8, GTIN-8, GTIN-12, GTIN-13, ISBN, ISMN, ISSN for a class of products, goods or services
* GTIN + Batch/Lot (LGTIN)
* Serialised Global Trade Item Number (SGTIN) for an individual product with a serial number
* Serial Shipping Container Code (SSCC) for logistics assets
* Global Location Number (GLN) or GLN with extension (SGLN) for parties and locations
* Global Location Number of Party (PGLN)
* Global Returnable Asset Identifier (GRAI) for logistics assets
* Global Individual Asset Identifier (GIAI) for fixed assets
* Global Service Relation Number – Recipient (GSRN)
* Global Service Relation Number – Provider (GSRNP)
* Global Document Type Identifier (GDTI) of a document instance
* Component / Part Identifier (CPI) for part numbers in technical industries, including automotive
* Serialised Global Coupon Number (SGCN)
* Global Identification Number for Consignment (GINC)
* Global Shipment Identification Number (GSIN) for shipping
* Individual Trade Item Piece (ITIP)
* Unit Pack Identifier (UPUI)
* General Identifier (GID)
* US Department of Defense Identifier (DOD)
* Aerospace and Defense Identifier (ADI)
* BIC Container Code (BIC) for intermodal containers used in rail and shipping, as per ISO 6346
* IMO Vessel Number (IMOVN) of marine vessels