Building a chemical hazard label by hand is slow and error-prone: pick the right pictograms, work out which signal word wins, get every hazard and precautionary statement translated correctly, and then size the whole thing to the package. LabelInn's GHS / CLP label engine does the heavy lifting from structured data.
You give it the inputs — H-codes, P-codes, container size and target languages — and it resolves a draft, compliant hazard label: the correct GHS pictograms, CLP Article 26 signal-word precedence, Annex I sizing, the signal word, standardised statement text in 25+ EU languages, and the Annex VIII UFI when you need one.
LabelInn applies the CLP rules it knows to the data you enter and produces a draft hazard label. It is not a substitute for your legal or regulatory sign-off. The classification, the chosen statements, the translations and the final artwork must be reviewed and approved by your organisation's competent person before any label is printed and placed on the market. We are deliberately honest about this — the tool accelerates the work; it does not replace the responsible expert.
🧪 From hazard data to draft label. H-codes + P-codes + container size + languages → a CLP-structured hazard label for your competent person to verify. Start free →
From Hazard Data to a Drafted Label
Instead of dragging boxes around a canvas, you describe the chemical's hazard profile and let the engine assemble it. Here is what each input drives:
H-codes (hazard statements) — drive which GHS hazard pictograms are shown and which standardised hazard text appears, in every selected language.
P-codes (precautionary statements) — pull in the standardised prevention, response, storage and disposal text. You choose the set; the engine lays out the wording.
Container / package size — maps to the CLP Annex I minimum label and pictogram dimensions for that capacity band.
Target languages — render the H- and P-statement text in 25+ EU / EEA languages for products sold across multiple markets.
What the Engine Resolves For You
| Step | What LabelInn does | What stays with you |
|---|---|---|
| GHS pictograms | Places the correct red-bordered diamond pictograms triggered by your H-codes | Confirm the classification that produced those H-codes |
| Signal word | Applies CLP Article 26 precedence — when "Danger" applies, "Warning" is suppressed | Verify the underlying hazard classification |
| Label & pictogram size | Sizes to the Annex I minimum for the container capacity | Confirm dimensions against the current regulation |
| Hazard & precautionary text | Inserts standardised H/P statement text in 25+ EU languages | Approve translations & any supplier-specific wording |
| UFI (Annex VIII) | Generates the Unique Formula Identifier and places it on the label | File the poison-centre notification; verify inputs |
| Supplier block & layout | Assembles the label artwork ready to print on your label printer | Final review & sign-off by a competent person |
CLP Article 26: One Signal Word, Not Two
A common manual mistake is printing both "Danger" and "Warning". CLP Article 26 is explicit: where the signal word "Danger" applies on the label, the signal word "Warning" is not included. When you supply the hazard classification, LabelInn resolves a single signal word using that precedence rule instead of stacking both. As with everything here, your competent person verifies the classification and the resulting signal word before use.
Annex I Sizing, Tied to Your Container
CLP Annex I sets minimum label dimensions and minimum pictogram dimensions by package capacity. Enter the container size and LabelInn maps it to the right band, so the hazard pictograms and label area meet the regulatory minimum for that package. You can scale up beyond the minimum for readability — and you should always confirm the final dimensions against the current regulation.
25+ EU Languages, Standardised Statements
If you sell across the EU/EEA, the same product often needs hazard text in several languages on one label. LabelInn carries the standardised H-statement and P-statement wording in 25+ EU / EEA languages, so you can lay out a clean multi-language hazard panel from a single set of H- and P-codes. Supplier-specific and custom text still needs human translation and review.
Annex VIII UFI for Poison-Centre Notification
CLP Annex VIII requires a Unique Formula Identifier (UFI) on hazardous mixtures destined for the EU market. LabelInn computes the UFI from your company/VAT number and formulation number to the published algorithm and places it on the label. The generation is automatic; the poison-centre notification itself, and verifying the inputs, remain your responsibility.
Built In, Not a Separate Upsell
The GHS/CLP engine is part of the LabelInn platform — the same one you use for shipping, product and inventory labels. That means a chemical hazard label drafted here prints through the same native printer-language path as the rest of your labels:
Native printer languages — ZPL (Zebra), TSPL/TSPL2 (TSC), Toshiba TPCL, and Epson ESC/Label for colour (e.g. ColorWorks) — generated through one command facade.
Driverless or our self-installing Windows v4 driver — your choice. Raw USB, TCP/IP 9100, and Bluetooth, with bidirectional status readback (cover / paper / head / ribbon).
Browser-based label designer in the web dashboard to fine-tune the drafted layout before printing.
Cross-platform — Windows, macOS, Linux, iOS, Android and Web.
The GHS API: Draft Hazard Labels Programmatically
If you maintain product or SDS data in your own systems, you don't need to touch the UI. LabelInn exposes the GHS engine over its REST API, so an SDS-authoring tool, an ERP, or an AI agent can request a drafted hazard label directly.
Render a GHS label — POST /v1/labels/preview with a ghs_row payload (the payload_type for chemical-hazard rows): H-codes, P-codes, container size and languages in, a drafted hazard label out.
Generate a UFI — POST /v1/ufi/generate returns the Annex VIII Unique Formula Identifier for your company and formulation numbers.
Print it — send the result to the canonical POST /v1/print/jobs with idempotency keys, batch and webhooks. See the developer docs →
Authenticated & auditable — scoped API keys (sk_live_ / sk_test_) plus an immutable, hash-chained print history for traceability.
🔌 GHS over the API. ghs_row → /v1/labels/preview, /v1/ufi/generate, then /v1/print/jobs. SDKs + OpenAPI available. Explore the developer platform →
Compliance & Traceability Around the Label
For regulated chemical work, the label is only half the story — you also need to prove what was printed. LabelInn pairs the GHS engine with:
Immutable print history — database-rule enforced, SHA-256 hash-chained and per-company HMAC-signed, self-verifying.
E-signature approval requiring fresh re-authentication (FDA 21 CFR Part 11 / EU Annex 11 style) — a natural fit for a competent-person sign-off step.
Per-element saved-vs-printed capture and label-provenance reconstruction, so you can show exactly what hit the printer.
Role-based access (owner / admin / editor / operator / viewer) so only the right people approve hazard labels.
Frequently Asked Questions
What is GHS / CLP label software?
It turns a chemical's hazard data — H-codes, P-codes, signal word and pictograms — into a printable hazard label. LabelInn takes your H-codes, P-codes, container size and target languages and drafts a CLP-structured label with the correct pictograms, Article 26 signal-word precedence, Annex I sizing and 25+ EU languages. The output is a draft for your competent person to verify.
Does LabelInn apply CLP Article 26 signal-word precedence?
Yes. Where "Danger" applies, "Warning" is suppressed. The engine resolves a single signal word from the classification you supply, rather than printing both — and your competent person confirms it.
How does it size the label and pictograms?
You enter the container size; LabelInn maps it to the CLP Annex I minimum label and pictogram dimensions for that capacity band. You can scale up beyond the minimum, and you should confirm the final dimensions against the current regulation.
Can it generate the Annex VIII UFI?
Yes — via /v1/ufi/generate, from your company/VAT number and formulation number, computed to the published algorithm and placed on the label. The poison-centre notification itself remains your responsibility.
Is the output legally compliant out of the box?
No software can be your legal sign-off. LabelInn produces a draft from the data you provide and applies the CLP rules it knows. The classification, statements, translations and final artwork must be approved by a competent person before printing.
Draft a Compliant Hazard Label From Your Data
H-codes, P-codes, container size and languages in — a CLP-structured hazard label out, ready for your competent person to verify. Full GHS engine, API and audit trail on the Pro plan.
Get Started Free →