> ## Documentation Index
> Fetch the complete documentation index at: https://docs.heychocolate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Digital Product Passport (DPP)

> Generate EU-compliant Digital Product Passports with unique URLs and QR codes per product.

The DPP module automatically generates Digital Product Passports that comply with EU regulations. Each passport provides a unique, publicly accessible URL containing comprehensive sustainability data for a product.

## What is a DPP?

A Digital Product Passport is a structured dataset linked to a product via a unique identifier. It contains information about the product's composition, origin, environmental impact, and end-of-life options. The EU is mandating DPPs for an increasing number of product categories.

## Generating a DPP

```graphql theme={null}
mutation {
  generateDpp(input: {
    productId: "prod_abc123"
    locale: "en"
    includeQrCode: true
  }) {
    id
    productId
    publicUrl
    qrCodeUrl
    status
    createdAt
    expiresAt
    sections {
      name
      fields {
        key
        value
        unit
      }
    }
  }
}
```

**Response:**

```json theme={null}
{
  "data": {
    "generateDpp": {
      "id": "dpp_xyz789",
      "productId": "prod_abc123",
      "publicUrl": "https://dpp.heychocolate.com/dpp_xyz789",
      "qrCodeUrl": "https://dpp.heychocolate.com/qr/dpp_xyz789.svg",
      "status": "ACTIVE",
      "createdAt": "2025-09-01T12:00:00Z",
      "expiresAt": null,
      "sections": [
        {
          "name": "Environmental Impact",
          "fields": [
            { "key": "CO2 Equivalent", "value": "12.4", "unit": "kg CO2e" },
            { "key": "MKI Score", "value": "0.87", "unit": "EUR" },
            { "key": "Water Footprint", "value": "280", "unit": "liters" }
          ]
        },
        {
          "name": "Material Composition",
          "fields": [
            { "key": "Bio-based content", "value": "65", "unit": "%" },
            { "key": "Recycled content", "value": "20", "unit": "%" }
          ]
        },
        {
          "name": "Supply Chain",
          "fields": [
            { "key": "Origin", "value": "Netherlands", "unit": null },
            { "key": "Supply chain tiers", "value": "3", "unit": null },
            { "key": "Certifications", "value": "ISO14001, BREEAM", "unit": null }
          ]
        }
      ]
    }
  }
}
```

## DPP sections

| Section                  | Content                                           |
| ------------------------ | ------------------------------------------------- |
| **Product Identity**     | Name, ID, manufacturer, category                  |
| **Environmental Impact** | CO2, MKI, water, energy scores                    |
| **Material Composition** | Materials, recycled content, hazardous substances |
| **Supply Chain**         | Origin, tiers, certifications                     |
| **Circularity**          | Recyclability, repair instructions, end-of-life   |
| **Compliance**           | Regulatory references, standards met              |

## Querying existing DPPs

```graphql theme={null}
query {
  dpp(id: "dpp_xyz789") {
    id
    publicUrl
    status
    product { id name }
    sections { name fields { key value unit } }
    auditTrail {
      timestamp
      action
      actor
    }
  }
}
```

## Batch generation

```graphql theme={null}
mutation {
  batchGenerateDpp(input: {
    productIds: ["prod_abc123", "prod_def456"]
    locale: "en"
    includeQrCode: true
  }) {
    results {
      productId
      dppId
      publicUrl
      status
    }
    failedProducts {
      productId
      reason
    }
  }
}
```

## QR code integration

The QR code links directly to the public DPP page. Use it on:

* Physical product packaging
* Print labels (see [Print Export](/core-concepts/print-export))
* Digital marketing materials
* Point-of-sale displays

## Audit trail

Every DPP action is logged in an immutable audit trail for compliance:

```json theme={null}
{
  "auditTrail": [
    { "timestamp": "2025-09-01T12:00:00Z", "action": "CREATED", "actor": "api_key_sk_live_abc" },
    { "timestamp": "2025-09-15T08:30:00Z", "action": "UPDATED", "actor": "api_key_sk_live_abc" },
    { "timestamp": "2025-09-15T08:30:00Z", "action": "QR_REGENERATED", "actor": "api_key_sk_live_abc" }
  ]
}
```
