# Code 32

> Source: https://docs.barcoder.ai/docs/standards/code-32
> research date 2026-06-03 · extracted at 2026-10-03
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [Code 32 (Italian Pharmacode) - BarTender Barcode Guide](https://barcodeguide.seagullscientific.com/Content/Symbologies/Code_32.htm)
- [Italian Pharmacode - BWIPP wiki](https://github.com/bwipp/postscriptbarcode/wiki/Italian-Pharmacode)
- [Encoding of the Farmacode or Code 32](https://free-barcode.com/barcode/barcode-types-d/encoding-farmacode-code-32.asp)

## Overview

Code 32 — also called the **Italian Pharmacode**, **Farmacode**, **Codice Farmaceutico Italiano**, **IMH** or **Radix 32** — is a barcode symbology used to identify pharmaceutical products in Italy <sup>[1][1]</sup> <sup>[6][6]</sup>. It encodes the nine-digit Italian **AIC** drug-authorization number in a compressed form by converting it to base 32 and rendering the result with the standard **Code 39** character set <sup>[1][1]</sup> <sup>[3][3]</sup>. Its human-readable interpretation begins with the ASCII letter **"A"**, which is shown to the reader but is not encoded into the bars <sup>[1][1]</sup>.

## History

Code 32 is the barcode component of Italy's **Bollino** drug-traceability label, which was introduced on **1 February 2002** for prescription and OTC medicines <sup>[7][7]</sup>. The Bollino is an adhesive sticker that manufacturers buy from the Italian government printing office, the **Istituto Poligrafico e Zecca dello Stato (IPZS)**, and apply to drug packaging; it carries the medicine's data in words, two barcodes and a Data Matrix <sup>[7][7]</sup>. The upper barcode holds the **AIC code** — a nine-digit marketing-authorization number issued by the Italian Medicines Agency **AIFA** — which is what Code 32 encodes <sup>[7][7]</sup> <sup>[8][8]</sup>. The BWIPP reference cites an Italian Ministerial Decree of 2003 as the governing standard for the symbology <sup>[2][2]</sup>.

## Technical specification

- **Data field.** The data field contains **eight numeric digits** plus **one modulo-10 check digit** (nine digits total), corresponding to the AIC code <sup>[1][1]</sup> <sup>[6][6]</sup>. BWIPP accepts either eight or nine digits, treating the ninth as the check digit and computing it automatically when omitted <sup>[2][2]</sup>.
- **Base-32 compression.** The decimal value is converted to **base 32** by repeatedly dividing by 32 and taking the remainders; in base 32 the digits 0–9 and the letters A–V represent the 32 values <sup>[3][3]</sup>.
- **Code 39 rendering.** The base-32 result is rendered using the **Code 39 character set**: each character is drawn as 9 elements — 5 bars and 4 spaces, of which 3 are wide and 6 narrow <sup>[1][1]</sup> <sup>[3][3]</sup>. The nine-digit AIC compresses to six Code 39 characters.
- **"A" prefix.** The human-readable interpretation is shown with a leading **"A"** (ASCII 65); this character is not part of the encoded barcode data <sup>[1][1]</sup> <sup>[6][6]</sup>.
- **Check digit.** The check digit is computed with a **modulo-10** algorithm <sup>[1][1]</sup> <sup>[6][6]</sup>. (Note: some encoder documentation instead describes a modulo-32 step over the base-32 representation <sup>[3][3]</sup>.)

## Use cases

Code 32 identifies medicinal-product packs in Italy and is the upper barcode of the Bollino label affixed to prescription and OTC medicines <sup>[1][1]</sup> <sup>[7][7]</sup>. It is read by pharmacy and wholesaler systems to look up the AIC-registered product. The lower barcode of the Bollino carries a unique serial number (UID) requested from IPZS, and a Data Matrix consolidates both <sup>[7][7]</sup>. Italy is the country that mandates Code 32 for this role <sup>[1][1]</sup>.

## Implementations

- **Zint** ([github.com/zint/zint](https://github.com/zint/zint)) — C, 771 stars, active 2026. Supports "Code 32 (Italian Pharmacode)" among 50+ symbologies.
- **bwip-js** ([github.com/metafloor/bwip-js](https://github.com/metafloor/bwip-js)) — JavaScript, 2,381 stars, active 2026. JavaScript port of BWIPP including the `code32` encoder.
- **BWIPP** ([github.com/bwipp/postscriptbarcode](https://github.com/bwipp/postscriptbarcode)) — PostScript, 499 stars, active 2026. Provides the `code32` encoder; data field of eight or nine digits with automatic check-digit calculation <sup>[2][2]</sup>.

## Comparison

Code 32 and Germany's PZN are both **Code 39 derivatives** built for national pharmaceutical identification, but they differ in compression and check digit. Code 32 compresses a nine-digit AIC into six Code 39 characters via base-32 conversion and uses a modulo-10 check digit, surfacing a leading "A" in human-readable form <sup>[1][1]</sup> <sup>[3][3]</sup>. PZN encodes its digits directly in Code 39 (no base-32 step), uses a modulo-11 check digit, and is prefixed with "PZN" and a minus sign <sup>[4][4]</sup> <sup>[5][5]</sup>. Unlike the Laetus Pharmacode family, both are open identifiers backed by a national drug registry (AIFA for AIC, IFA for PZN) rather than closed-loop binary print-control codes.

## Fun facts

- The "32" in the name refers to the **base-32 (radix-32)** compression of the numeric value, not to a number of digits or bars — hence the alternative name "Radix 32" <sup>[6][6]</sup> <sup>[3][3]</sup>.
- The leading "A" that users see in front of a Code 32 number is purely cosmetic: it is printed for human readability but never appears in the encoded bars <sup>[1][1]</sup>.

## Status

Code 32 remains in use as Italy's national pharmaceutical barcode but is being phased out in favour of EU Falsified Medicines Directive (FMD) serialization. A decree published 6 February 2025 opened a two-year stabilization phase beginning **9 February 2025**, during which both the Bollino and EU-FMD serialization are permitted; the deadline for using the Bollino is **8 February 2027**, after which only EU-FMD-compliant Data Matrix serialization (GTIN, batch, expiry, randomized serial) will be allowed <sup>[7][7]</sup> <sup>[8][8]</sup>. Code 32 encoders remain supported in current tooling (Zint, bwip-js, BWIPP) <sup>[1][1]</sup> <sup>[2][2]</sup>.

## Sources

[1]: https://barcodeguide.seagullscientific.com/Content/Symbologies/Code_32.htm
[2]: https://github.com/bwipp/postscriptbarcode/wiki/Italian-Pharmacode
[3]: https://free-barcode.com/barcode/barcode-types-d/encoding-farmacode-code-32.asp
[4]: https://www.ifaffm.de/en/ifa-codingsystem/encoding-pzn-code39.html
[5]: https://www.mobiliodevelopment.com/pzn-german-pharmacy-barcode/
[6]: https://www.neodynamic.com/barcodes/Code-32-Barcode.aspx
[7]: https://www.tracekey.com/en/bollino-italy-eu-fmd/
[8]: https://www.aifa.gov.it/documents/20142/1267542/Traceability2020_WEB.pdf

[1] [Code 32 (Italian Pharmacode) - BarTender Barcode Guide](https://barcodeguide.seagullscientific.com/Content/Symbologies/Code_32.htm) — Seagull Scientific, accessed 2026
[2] [Italian Pharmacode](https://github.com/bwipp/postscriptbarcode/wiki/Italian-Pharmacode) — BWIPP wiki, accessed 2026
[3] [Encoding of the Farmacode or Code 32](https://free-barcode.com/barcode/barcode-types-d/encoding-farmacode-code-32.asp) — free-barcode.com, accessed 2026
[4] [Encoding of PZN in Code 39](https://www.ifaffm.de/en/ifa-codingsystem/encoding-pzn-code39.html) — IFA GmbH, accessed 2026
[5] [PZN - German Pharmacy Barcode](https://www.mobiliodevelopment.com/pzn-german-pharmacy-barcode/) — Mobilio Development, accessed 2026
[6] [Code 32 Barcode (Italian Pharmacode, Radix 32)](https://www.neodynamic.com/barcodes/Code-32-Barcode.aspx) — Neodynamic, accessed 2026
[7] [Italy: From Bollino to EU-FMD](https://www.tracekey.com/en/bollino-italy-eu-fmd/) — tracekey solutions GmbH, accessed 2026
[8] [The Italian Drug Traceability System](https://www.aifa.gov.it/documents/20142/1267542/Traceability2020_WEB.pdf) — AIFA, 2020

## Deployments

_No country reports mention this standard by name._
