Code 32 (Italian Pharmacode)

Code 32, commonly called the Italian Pharmacode, is a national pharmaceutical coding standard mandated by the Italian Ministry of Health that encodes a medicine's AIC (Autorizzazione all'Immissione in Commercio) registration number as a Code 39 derivative, letting pharmacies and wholesalers scan and reconcile Italy's domestic drug-tracking identifier.

A National Numbering Scheme Riding on Code 39

Code 32 is not a physically distinct symbology from Code 39, which is covered elsewhere on this site as one of the most widely used general-purpose alphanumeric barcodes. Instead, Code 32 is a specific, constrained encoding rule layered on top of standard Code 39: it takes a 9-digit Italian AIC number, re-encodes those digits using a base-32 numbering system that maps to a restricted alphabet of letters and digits, and embeds a check character calculated from the AIC value. The resulting string is then printed as an ordinary Code 39 barcode. A generic Code 39 scanner reads the printed characters just like any other Code 39 label; only software aware of the Code 32/AIC conversion rule can turn that scanned text back into the original 9-digit national drug registration number.

Why Italy Needed Its Own Scheme

Before pan-European GS1 serialization requirements matured, Italy already operated a mandatory national pharmaceutical tracking and pricing system built around the AIC number, used by the Ministry of Health, pharmacies, wholesalers, and the national health service for reimbursement, price monitoring, and anti-counterfeiting purposes. Code 32 was defined so that this purely numeric AIC identifier could be printed as a compact, easily scanned barcode using widely available Code 39 printing and scanning equipment, without requiring specialized symbology support. It predates and operates alongside, rather than replaces, GS1 DataMatrix serialization now also required on Italian pharmaceutical packaging for EU Falsified Medicines Directive compliance.

Structure and Encoding Details
  • Source data: a 9-digit Italian AIC (product authorization) number.
  • Transformation: digits are grouped and mathematically converted into base-32 values, each mapped to one of 32 allowed characters (a restricted subset avoiding easily confused letters).
  • Check character: a single character calculated from the converted value, providing basic error detection beyond what Code 39's own structure offers.
  • Physical symbol: standard Code 39 bars and spaces, including its usual start/stop asterisk characters, printed directly on the medicine carton.
Code 32 — AIC number re-encoded as Code 39 AIC 9-digit → base-32 mapping → check char → Code 39 print
Comparison to Other Pharma Codes

Code 32 should not be confused with Pharmacode (covered separately on this site), which is a two-width binary code used purely for production-line packaging verification and carries no product registration meaning at all. Code 32 also differs from GS1 DataMatrix, which is a 2D symbol carrying full GTIN, batch, and expiry data for pan-European traceability; Code 32 remains a national, Italy-specific, linear symbol tied specifically to the AIC registry. In practice, current Italian pharmaceutical packaging often carries both a Code 32 barcode for domestic AIC-based systems and a GS1 DataMatrix for EU-wide serialization compliance.

Practical Considerations

Because Code 32 uses ordinary Code 39 hardware, any standard linear barcode scanner can physically read the symbol; the complexity lies entirely in the software layer that must correctly apply the AIC-to-base-32 conversion (and its inverse) rather than in specialized scanning hardware. Systems built for the Italian pharmaceutical distribution chain — wholesaler ERP systems, pharmacy point-of-sale software, and the national health service's own systems — implement this conversion logic explicitly, and any barcode software targeting the Italian pharma market needs to support it as a distinct decoding profile from generic Code 39.