Used by 700,000+ people
Free PPN barcode generator.
The Pharmacy Product Number (PPN) makes the German PZN unique worldwide and carries it in the Data Matrix on medicine packs. Type the fields and download the PPN code.
How to create a PPN code
-
01
Turn the PZN into a PPN
Put
11before the 8-digit PZN and append the two check digits: PZN 03752864 becomes 110375286414. The generator checks them but calculates none. -
02
Type 9N first, then the other fields
Start with
9N110375286414. Add1Tbatch,Dexpiry (YYMMDD) andSserial number, each after\x1D, and tick Escape sequences. -
03
Set the module size and quiet zone
Choose a module of 0.25–0.99 mm in whole printer dots, such as 0.339 mm (4 dots) at 300 dpi. Leave at least three modules blank around it in your layout: the image ends at the symbol edge.
What is a PPN code?
A PPN code is a Data Matrix that carries the Pharmacy Product Number (PPN) under data identifier 9N, with batch, expiry date and serial number. The PPN embeds the German Pharmazentralnummer (PZN) in a form unique worldwide: agency code 11, the 8-digit PZN and two check digits. On German medicine packs it is one of two permitted product codes; the other is the NTIN.
Which packs carry a PPN code, and who checks it
On packs of medicines subject to mandatory verification, the code holds the PPN, serial number, batch and expiry date. The marketing authorisation holder uploads these pack data to the ACS MAH system, Germany's part of securPharm. Points of verification check each scanned pack against it.
Medicines not subject to verification may carry the code with PPN, batch and expiry date, but never a serial number. Clinic components may carry it for logistics, also without a serial number. For multi-market packs, IFA's format provides 8P for other countries' GTINs or NTINs.
One licence-free code for the PZN and pack data
The PZN sits unchanged inside the PPN, so merchandise systems derive one from the other by calculation. One scan hands pharmacy software the PZN with serial number, batch and expiry date. Use of the PPN is licence-free for all users.
The drawing shows the example at IFA's typical module of 0.35 mm: 5.6 mm square, 7.7 mm with a three-module quiet zone. Smaller modules tend to print worse. ISO/IEC 15415 grade 1.5 or better is presumed to meet the print-quality rule of Delegated Regulation (EU) 2016/161.
Single PPN codes online, serialised packs in TEC-IT software
The online generator draws the PPN code as GIF, PNG or JPG at no cost; SVG and higher print resolution come with a plan. Without an account it makes one code at a time. For a list of serial numbers, sign in for free and link a data sheet.
TEC-IT's Barcode Reference lists the PPN Code as symbology 124, envelope included, for TBarCode SDK, TFORMer and TBarCode/SAPwin. TBarCode/SAPwin prints it from SAPscript and Smart Forms; TFORMer Designer fills its fields from imported records and serial numbers.
PPN code at a glance
- Type
- Data Matrix ECC 200, format 06 envelope
- Specification
- IFA PPN-Code Specification for Retail Packaging 3.06 (2023)
- Product code
- 9N + 11 + PZN + 2 check digits (modulo 97)
- Further fields
- 1T batch, D expiry, S serial number
- Matrix size
- Normally up to 26 × 26 or 26 × 48
- Module size
- 0.25–0.99 mm, typically 0.35 mm
- Quiet zone
- 3 modules or more
- Number issuer
- IFA GmbH, Frankfurt am Main
How the PPN check digits are calculated
The check digits are the remainder of a weighted sum divided by 97. For PZN 03752864:
- ASCII values of 1103752864: 49 49 48 51 55 53 50 56 54 52.
- Weights 2 to 11 from the left give 98 147 192 255 330 371 400 504 540 572.
- Sum 3,409 = 35 × 97 + 14: check digits 14, PPN 110375286414.
A remainder below 10 is written with a 0 in front. As ASCII values enter the sum, the rule also covers alphanumeric PPNs.
Data identifiers and agency codes
| Identifier | Element | IFA format | GS1 AI |
|---|---|---|---|
| 9N | Product code (PPN) | 11–28 characters, 0–9, A–Z | (01) NTIN |
| 1T | Batch number | 1–20 characters | (10) |
| D | Expiry date | YYMMDD, day 00 allowed | (17) |
| S | Serial number | 1–20 characters | (21) |
The decoded data begins with [)>, RS, 06, GS and ends with RS, EOT; GS also separates the fields. The PPN's first two digits name the agency: 11 the German PZN, 16 the Austrian PZN, 15 Italy's AIC code.
Before you print: plain text and checks
- Plain text:
PC:+ PPN andSN:+ serial number beside the code, unless the two longest pack sides total 10 cm or less. The PZN is always printed. - Checks: with digital printing, scan every pack; grade samples on an ISO/IEC 15415 verifier at 660 nm, aperture 80% of the module.
Common PPN code input mistakes
- 9N missing or not first.
110375286414alone is refused, and so is a batch before the product code. IFA leaves the order open; this generator does not. \Fbetween fields. Refused: this code separates with GS, not FNC1. Type\x1D.- Escape sequences not ticked.
\x1Dis then not turned into GS, and the code is refused. Tick the box.
PPN code compared with related codes
The bare 8-digit number in Code 39 with a mod 11 check digit, optional since 9 February 2019 on packs with this Data Matrix.
Germany's other product code, 4150 + PZN + check digit under (01): a full GTIN under GS1 Germany's licence terms.
Same symbol with FNC1 and Application Identifiers; IFA accepts both structures.
The plain ECC 200 symbol without envelope or field rules.
Frequently asked questions
Learn more about PPN.
What is the difference between PZN and PPN?
How do the PPN check digits differ from the PZN check digit?
Is the PPN emblem mandatory next to the code?
Can a PPN serve as a UDI-DI for medical devices?
More resources
Healthcare & Pharma Labeling FAQ
The unique identifier must be a GS1 DataMatrix with a minimum print quality grade of 1.5 measured per ISO/IEC 15415. Below that, packs risk failing…
ProductTBarCode SDK
The developer package for Windows: .NET, OCX and DLL components generate and print 100+ barcode symbologies from your applications.
ProductTFORMer Designer
Compliant barcode labels and forms with data fields and logic – for every printer.
ProductTBarCode/SAPwin
The Barcode DLL for SAP: print barcodes from SAPscript, Smart Forms and ABAP on almost every printer – via SAPSprint, SAPGUI or WWI.