v0.5.2 (2020-09-04)

  • Bugfix: Add zero in front of GTIN-12 before extracting GS1 Prefix. GTIN-12s start with U.P.C. Company Prefixes, which have to be padded with a zero in front to convert them to valid GS1 Company Prefixes.

  • Change the error message in the top level parser’s ParseError to include the name of data type we failed to parse.

v0.5.1 (2020-09-03)

v0.5.0 (2020-09-03)

  • Breaking change: Change argument separator_char to separator_chars in plural, accepting an iterable of multiple characters.

v0.4.0 (2020-08-31)


  • Breaking change: Change return value of parse() from Union[Gtin, GS1Message] to ParseResult.

  • If a Symbology Identifier is present, select parser based on it.

  • Improved parsing error messages.


  • Add Sscc class to parse, validate, and format Serial Shipping Container Codes (SSCC).


  • Add support for parsing and stripping Symbology Identifiers.

v0.3.1 (2020-08-21)


  • Strip surrounding whitespace before selecting parser.

v0.3.0 (2020-08-21)


  • Add filter() to find all parsed Element Strings that match the criteria.

  • Add get() to find first parsed Element String that matches the criteria.

  • Add decimal field which is set for AIs with weight, volume, dimensions, dicount percentages, and amounts payable.

  • Add money field which is set for AIs with both amounts payable and currency. This field is only set if the optional dependency py-moneyed is installed.

  • Strip surrounding whitespace before parsing.


  • Detect Restricted Circulation Numbers (RCN) and return a subclass of Gtin, Rcn, with additional fields and helpers for working with RCNs.

  • Classify an RCN as being restricted to either a geographical region or to a company.

  • Support interpreting RCNs according to varying rules depending on the geographical region specified by the user.

  • Support for zeroing out the variable measure part, to help with looking up trade items in a database or similar.

  • Add RCN rules for the Baltics, Great Britain, Norway, and Sweden.

  • Strip surrounding whitespace before parsing.

  • Bugfix: Keep all leading zeros in GTIN-8.

  • Bugfix: Convert GTIN-8 to GTIN-12 before extracting GS1 Prefix.

v0.2.1 (2020-08-19)


  • Raise ParseError if there is less than 8 or more than 14 significant digits in the barcode.

v0.2.0 (2020-08-19)


  • parse() can parse GTIN and GS1-128 data.



  • Support for validating, parsing, and converting between GTIN-8, GTIN-12, GTIN-13, and GTIN-14.

v0.1.0 (2020-05-20)

Initial release to reserve the name on PyPI.