---
title: "EUDR Implementation Guide | OpenEPCIS Docs | OpenEPCIS - an open-core, GS1-compliant EPCIS implementation."
canonical_url: "https://openepcis.io/de/docs/digital-product-passport/eudr/implementation-guide"
last_updated: "2026-06-28T23:26:10.966Z"
meta:
  author: "benelog GmbH & Co. KG"
  description: "Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards"
  "og:description": "Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards"
  "og:title": "EUDR Implementation Guide"
  "twitter:description": "Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards"
  "twitter:title": "EUDR Implementation Guide"
---

</h2>Home

``

# **EUDR Implementation Guide** Step-by-step guide for implementing EU Deforestation Regulation compliance using GS1 standards3 min read**Masterdata and events** — `**masterDataAvailableFor**` is GS1 Web Vocabulary (no `**gs1:**` prefix needed). It is used to carry **lot- or serial-level masterdata** alongside an event: production batch, declaration references, incident records, regulatory citations. It must **not** carry **GTIN-level masterdata** (product name, generic specifications) — those live on the resolver, POSTed once via `**POST /products/{gtin}**`. Extension vocabularies (`**battery:**`, `**eudr:**`, `**textile:**`, `**electronics:**`) keep their prefix; they are declared in the document's `**@context**`. # **EUDR Implementation Guide** This guide provides step-by-step instructions for implementing EU Deforestation Regulation (EUDR) 2023/1115 compliance using GS1 standards. ## Prerequisites Before implementing EUDR compliance: 1. **GS1 Company Prefix** - Required for GTIN/GLN generation 2. **GS1 Digital Link Resolver** - For content negotiation 3. **EPCIS Repository** - For event storage and querying ## Implementation Steps ### Step 1: Set Up Identifiers Use GS1 Digital Link identifiers for all entities:```
Product:      https://id.gs1.org/01/{GTIN}/21/{Serial}
Location:     https://id.gs1.org/414/{GLN}
Organization: https://id.gs1.org/417/{GLN}
```**Example Timber Product:**```
https://id.gs1.org/01/09521234000020/21/LOG-2025-001
```### Step 2: Create Location Master Data (Plot of Land) Every EUDR-regulated commodity must be traceable to its production plot:```
{
  "@context": [
    { "gs1": "https://ref.gs1.org/voc/" },
    { "eudr": "https://ref.openepcis.io/extensions/eu/eudr/" }
  ],
  "@id": "https://id.gs1.org/414/9521234000099",
  "@type": "gs1:Place",

  "name": "Sustainable Oak Forest - Plot 47",

  "gs1:geo.polygon": "POLYGON((13.40 52.51, 13.41 52.51, 13.41 52.52, 13.40 52.52, 13.40 52.51))",
  "eudr:areaHectares": 2.5,
  "gs1:countryOfOrigin": "DE",
  "gs1:provinceOfOrigin": "Brandenburg",
  "eudr:forestManagementUnit": "FMU-DE-2024-00123",
  "eudr:landUseHistory": "Managed sustainable forest since 1920"
}
```**Geolocation Requirements:**- Plots > 4 hectares: Full polygon coordinates (WKT or GeoJSON) - Plots ≤ 4 hectares: Center point ( `**gs1:geo**`: "lat,lon") ### Step 3: Create Product Master Data```
{
  "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-001",
  "@type": ["gs1:Product", "gs1:Product"],

  "gtin": "09521234000020",
  "serialNumber": "LOG-2025-001",

  "eudr:commodityType": { "@id": "eudr:Wood" },
  "eudr:timberProductType": { "@id": "eudr:RoundWood" },
  "eudr:speciesScientificName": "Quercus robur",
  "eudr:speciesCommonName": "European Oak",
  "gs1:harvestDate": "2025-01-15",

  "eudr:originDetails": {
    "@id": "https://id.gs1.org/414/9521234000099",
    "masterDataAvailableFor": {
      "@id": "https://id.gs1.org/414/9521234000099"
    }
  },

  "gs1:countryOfOrigin": "DE"
}
```### Step 4: Record Harvesting Event When a commodity is harvested/produced:```
{
  "@context": [
    "https://ref.gs1.org/standards/epcis/epcis-context.jsonld",
    { "eudr": "https://ref.openepcis.io/extensions/eu/eudr/" }
  ],
  "type": "EPCISDocument",
  "epcisBody": {
    "eventList": [{
      "type": "ObjectEvent",
      "eventTime": "2025-01-15T08:30:00.000Z",
      "action": "ADD",
      "bizStep": "commissioning",

      "epcList": [{
        "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-001",
        "masterDataAvailableFor": {
          "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-001"
        }
      }],

      "readPoint": {
        "id": "https://id.gs1.org/414/9521234000099",
        "masterDataAvailableFor": {
          "@id": "https://id.gs1.org/414/9521234000099"
        }
      },

      "ilmd": {
        "gs1:harvestDate": "2025-01-15",
        "eudr:speciesScientificName": "Quercus robur",
        "gs1:countryOfOrigin": "DE"
      }
    }]
  }
}
```### Step 5: Complete Due Diligence Process 1. **Gather Information**   - Product identification   - Geolocation of production plot   - Supplier documentation   - Species identification 2. **Assess Risk**   - Check country risk category   - Verify documentation   - Consider satellite imagery if needed 3. **Mitigate Risk** (if not negligible)   - Additional verification   - Third-party audits   - Certification verification 4. **Submit to EUIS**   - File due diligence statement   - Receive EUIS reference number ### Step 6: Record Due Diligence Statement Event```
{
  "@context": [
    "https://ref.openepcis.io/extensions/eu/eudr/eudr-context.jsonld",
    "https://ref.gs1.org/standards/epcis/epcis-context.jsonld"
  ],
  "type": "ObjectEvent",
  "eventTime": "2025-01-20T10:00:00.000Z",
  "action": "OBSERVE",
  "bizStep": "inspecting",
  "epcList": [
    {
      "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-001"
    }
  ],
  "regulatoryInformation": [
    {
      "@type": "gs1:RegulatoryInformation",
      "regulationType": {
        "@id": "gs1:RegulationTypeCode-DEFORESTATION_REGULATION"
      },
      "regulatoryAct": "EU 2023/1115",
      "regulatoryIdentifier": [
        {
          "regulatoryReferenceNumber": "EUIS-2025-DE-00012345",
          "regulatoryIdentifierType": "DUE_DILIGENCE_STATEMENT"
        }
      ],
      "isRegulationCompliant": true,
      "eudr:legallyHarvested": true,
      "eudr:riskLevel": {
        "@id": "eudr:Low"
      },
      "eudr:riskAssessmentDate": "2025-01-18"
    }
  ]
}
```### Step 7: Record Transformations (Derived Products) When commodities are processed into derived products:```
{
  "@context": [
    "https://ref.openepcis.io/extensions/eu/eudr/eudr-context.jsonld",
    "https://ref.gs1.org/standards/epcis/epcis-context.jsonld"
  ],
  "type": "TransformationEvent",
  "eventTime": "2025-02-15T14:00:00.000Z",
  "bizStep": "commissioning",
  "inputEPCList": [
    {
      "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-001"
    },
    {
      "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-002"
    }
  ],
  "outputEPCList": [
    {
      "@id": "https://id.gs1.org/01/09521234000037/21/TABLE-2025-001"
    }
  ],
  "ilmd": {
    "eudr:transformationDate": "2025-02-15",
    "eudr:timberProductType": {
      "@id": "eudr:Furniture"
    }
  }
}
```## Validation Use the OpenEPCIS Event Sentry validation profile:```
# Validate harvesting event
openepcis-sentry validate --profile eudr-harvesting event.json

# Validate due diligence statement
openepcis-sentry validate --profile eudr-due-diligence statement.json
```## Common Patterns ### Aggregating Geolocation for Derived Products When a derived product comes from multiple plots:```
"eudr:originList": [
  { "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-001" },
  { "@id": "https://id.gs1.org/01/09521234000020/21/LOG-2025-002" }
]
``` The derived product inherits traceability to all source plots. ### Handling High-Risk Countries For products from high-risk countries: 1. Enhanced verification required 2. Third-party audits recommended 3. Satellite monitoring may be necessary 4. Document all mitigation measures```
"eudr:riskAssessment": {
  "@type": "eudr:RiskAssessment",
  "eudr:riskLevel": { "@id": "eudr:High" },
  "eudr:mitigationMeasures": "Third-party audit conducted. Satellite monitoring in place.",
  "eudr:verificationMethod": "On-site inspection + satellite imagery"
}
```## Next Steps - Review [Event Types](https://openepcis.io/docs/digital-product-passport/eudr/event-types) for all EPCIS events - See [URL Patterns](https://openepcis.io/docs/digital-product-passport/eudr/url-patterns) for identifier structures - Check the [GitHub repository](https://github.com/openepcis/openepcis-dpp-ready/tree/main/extensions/eu/eudr) for complete examples