DPP Automate is the issuance and audit platform for Digital Product Passports. Issue compliant passports for every EU-bound product, capture supplier declarations down the supply chain, and hand notified bodies an audit-ready export — all from a single API.
What is DPP Automate?
Under ESPR, every product placed on the EU market needs a Digital Product Passport — a structured, machine-readable record that carries materials, carbon footprint, supplier provenance, and lifecycle events. The first regulations bite in 2027 (Battery), with textiles, electronics, and consumer goods following on a staggered timeline through 2030.
DPP Automate is the platform that issues those passports at scale, keeps them in sync with your ERP/PIM, and hands notified bodies a time-bounded audit room when they ask. The product is built on four primitives: the Passport object, the Supplier graph, the Lifecycle ledger, and the Audit room. Everything in this documentation is composed out of those four.
Quickstart
Issue your first passport in under five minutes. You'll need a free sandbox API key — grab one from the dashboard, then follow the three steps below.
1. Get an API key
Generate one in the dashboard's API Keys page, then export it as DPP_API_KEY so the snippets below pick it up. Sandbox keys (sk_test_…) and production keys (sk_live_…) hit different data; they're not interchangeable.
# Generate one in the dashboard's API Keys page,
# then export it for the rest of your shell session.
export DPP_API_KEY="sk_live_..."2. Authenticate
Every request carries a bearer token in the Authorization header. Hit /v1/health first to confirm your key is live and your network can reach the API.
curl https://api.dppautomate.com/v1/health \
-H "Authorization: Bearer $DPP_API_KEY"3. Issue your first passport
POST to /v1/passports with the regulation ( EU 2023/1542for batteries), GTIN, manufacturer, materials, and carbon payload. You'll get back a signed passport with a public QR URL — that URL is what consumers scan on the physical product.
curl https://api.dppautomate.com/v1/passports \
-X POST \
-H "Authorization: Bearer $DPP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "battery",
"regulation": "EU 2023/1542",
"gtin": "07612345678901",
"manufacturer": "Lumiform Cells GmbH",
"placedOnMarket": "2026-09-01",
"product": {
"sku": "BAT-18650-A",
"name": "18650 Lithium Cell",
"serialNumber": "LF-2026-00042"
},
"materials": [
{ "name": "Lithium", "mass_g": 2.1, "origin": "AU" },
{ "name": "Cobalt", "mass_g": 1.4, "origin": "CD" },
{ "name": "Graphite", "mass_g": 4.6, "origin": "CN" }
],
"carbon": { "kgCO2e": 8.7, "scope": "cradle_to_gate" }
}'The response carries the canonical identifiers you'll persist on your side:
{
"id": "psp_01HQ7K9ZJX8N4MRB5VS0YQ2F3T",
"status": "issued",
"category": "battery",
"regulation": "EU 2023/1542",
"qrUrl": "https://dpp.automate/p/psp_01HQ7K9ZJX",
"publicUrl": "https://dpp.automate/passport/psp_01HQ7K9ZJX",
"apiUrl": "https://api.dppautomate.com/v1/passports/psp_01HQ7K9ZJX",
"createdAt": "2026-09-01T10:14:22Z"
}Building blocks
DPP Automate composes four primitives. Every API request and every webhook event resolves down to one of these.
Passport object
A structured, signed, versioned record of a product. Carries materials, carbon, suppliers, and lifecycle events.
Supplier graph
Tier-N supplier relationships with signed declarations. Traverse upstream to verify origin claims without spreadsheets.
Lifecycle ledger
Append-only log of every passport state change — issued, repaired, recycled, revoked. Audit-grade history.
Audit room
Time-bounded, scoped access for notified bodies and auditors. Export-ready evidence packs with one click.
Common workflows
Three workflows cover most of what teams build on top of DPP Automate. Each one stitches a few primitives together; the cookbook walks through the full pattern.
Issuance at scale
Issue thousands of passports from a CSV or PIM webhook. Batch endpoint + idempotency keys do the heavy lifting.
Supplier onboarding
Invite tier-N suppliers, collect signed declarations, and wire the responses into your passport schema automatically.
Audit-ready exports
Generate a time-bounded audit room and a downloadable evidence pack the moment a notified body requests one.
Reference
When you're ready to go beyond the quickstart, the reference docs cover every endpoint, every webhook event, and every schema.
Webhooks
Subscribe to passport.issued, supplier.signed, audit.exported, and 20+ more lifecycle events.
Schema Reference
The full ESPR-aligned schema catalogue — Battery 1542, Textiles, Electronics, Toys, and more.