BIOSECURE SEC
Single European Code generation, labeling and end-to-end traceability. BIOSECURE builds the 40-character code from the ISBT 128 record rather than storing it as free text, carries it onto the label and the accompanying document, and preserves it through the product lifecycle.
AvailableThe Single European Code is what makes a tissue or cell product identifiable across the European Union. It is a 40-character string in two halves: a donation identification sequence that names the establishment and the donation, and a product identification sequence that names what the product is, which split of the donation this container holds, and when it expires. Introduced by Commission Directive 2015/565 and carried forward under Regulation (EU) 2024/1938 on substances of human origin, it is a condition of distributing within the EU — and a condition of importing into it.
Who this is for
- Tissue establishments and tissue banks distributing within or into the EU.
- Transplant and apheresis programmes that ship products across borders.
- Cord blood banks listing units for international search.
- GMP cell and tissue manufacturing facilities whose output leaves the site.
- Any organization preparing a licence application where coded traceability is examined.
The structure of the code, and where each field comes from
The reason to generate rather than type the code is that every one of its fields already exists somewhere in the record. Typing it again creates a second source of truth that will eventually disagree with the first.
| Part | Field | Length | Source in BIOSECURE |
|---|---|---|---|
| Donation | EU tissue establishment code | 2 + 6 | Establishment register entry |
| Donation | Unique donation number | 13 | ISBT 128 Donation Identification Number |
| Product | Product coding system | 1 | Coding scheme in use (ISBT 128 / EUROCODE) |
| Product | Product number | 7 | ISBT 128 product description code |
| Product | Split number | 3 | Division recorded at aliquoting |
| Product | Expiry date | 8 | Computed from processing and storage rules |
The split number is the field most often got wrong. A division created physically without a corresponding record — or a label printed for a division that was never made — breaks the code for that container and for every downstream reference to it.
What changes across the product lifecycle
The donation half of the code is fixed at donation and never changes. The product half moves: a processing step that changes the product class changes the product number; aliquoting assigns split numbers; a change in storage condition can change the expiry. A system that treats the code as a single immutable string cannot represent any of this.

- Donation — establishment code and donation number are allocated and fixed.
- Processing — product number is set from the resulting product class.
- Aliquoting — each container receives its own split number.
- Cryopreservation or release — expiry is computed from the applicable rule, not entered by hand.
- Distribution — the complete code travels on the label and on the accompanying document.
On the label and on the accompanying document
The code appears in eye-readable form and as a barcode, positioned to the applicable labeling standard, alongside the ISBT 128 data structures the product already carries. Where the container is too small for the full label, the standard's reduced-label rules apply and the full code travels on the accompanying document. BIOSECURE prints both from the same record, so they cannot diverge.
What an inspection asks, and how the system answers
| Question at inspection | Where the answer comes from |
|---|---|
| Show me the code for this container | Product record, generated fields with their sources |
| Prove this code was not edited by hand | Audit trail; the field is derived, not typed |
| Which products came from this donation? | Query on the donation identification sequence |
| This split number — where did it come from? | The aliquoting step that created it |
| Show the accompanying document that shipped with it | Generated document, retained with the dispatch record |
| A donor issue was found — what is the recall scope? | Look-back across the donation sequence, both directions |
Deployment
- Register the establishment code and confirm the coding scheme in use.
- Map existing product classes to product description codes.
- Define expiry rules per product class and storage condition.
- Configure label templates, including the reduced-label case.
- Run a parallel period: generate codes alongside the existing process and reconcile.
- Qualify the printing chain — the label is only as good as the printer and the ribbon.
Retrofitting the code onto an existing inventory is a project of its own. Historic products may lack the data the code requires; the migration plan has to say what happens to those, before distribution not after.
Talk to our team
Tell us which coding scheme you use and we will map your products to it.
