Skip to main content
    Skip to content
    NorruvaDeveloper Docs
    Sandbox · verified 2026-07-29
    This page
    Whole docs
    Machine formats

    PlaygroundGet API keys
    IntroductionQuickstartAuthenticationErrors & conventionsSandbox & environments
    Entity modelProducts & categoriesPassports & versionsDigital Link & resolutionCompliance & regulationsWebhooks & eventsAutoID print loopImport jobsObservability & audit
    OverviewAuth & API keysProductsCompliance & regulationsPassportsResolver & publicWebhooksPrint jobs & devicesImport / bulkObservabilityBeyond happy path
    Integration playbookWebhook receiver guideRun a print deviceDeviations & gotchas
    EN 18222 API methodsAnnex ZA — ESPR correspondence
    Docs/Get started/Introduction

    Norruva · Developer platform

    Build on the Digital Product Passport API

    A REST API for building, publishing, and resolving Digital Product Passports — the versioned, publicly-resolvable disclosure records mandated by EU regulations such as ESPR and the Battery Regulation. Everything here runs through the public /api/v2/* surface, exactly as a third-party integrator would — sandbox-first, nothing anchors or bills.

    Start the quickstart Explore the API reference
    60+
    Endpoints
    v2
    Stable major
    11
    Calls to resolve
    0
    Sandbox side effects
    Base path
    /api/v2 · single stable major version
    Transport
    HTTPS · JSON request/response · Idempotency-Key on mutations
    Auth
    API key or OAuth 2.0 client-credentials — Authorization: Bearer <token>
    Environment
    Sandbox-first — nothing you do in sandbox anchors, emails, submits to registries, or bills

    The one model to internalise: Product ≠ Passport

    The single most important concept for integrators is that a Product and a Passport are different things, created in different steps.

    • A Product is your tenant-owned commercial item — a GTIN, a serial, a category, and category-specific extensions. Creating a product does not make it public and does not register a resolvable identifier.
    • A Passport (DPP) is the versioned disclosure artifact generated from a product, then published. Publishing mints an immutable version; registering the GS1 Digital Link is a separate, deliberate step.
    ◆
    Why it matters. Two common integration bugs come from collapsing these: expecting a freshly-created product to resolve publicly, and expecting publish to also register the resolver identifier. They are distinct calls — see Quickstart steps 7a and 7b.

    The integration journey

    End to end, an integrator moves through this sequence. Each stage maps to concrete endpoints in the API Reference.

    flow
    authenticate → discover → create product → validate → generate passport →
    compliance-check → publish + register → resolve publicly → webhooks → bulk jobs → observe

    Naming note: these are integration steps (0–12, the software/API journey). The TSC roadmap separately numbers cycle steps 1–6 (the physical Auto-ID journey: mint/allocate serial → carrier issue → print job → label verify → EPCIS confirm → stage-scan custody), which begins where this journey ends — always qualify which sequence when saying "step N".

    How these docs are organised

    Quickstart →
    Zero to a publicly-resolvable passport, with copy-paste requests.
    Concepts →
    The entities you work with — products, passports, compliance, webhooks — and how they relate.
    API Reference →
    Every /api/v2/* endpoint, grouped by resource, with auth.
    Playbook →
    What actually matters: idempotency, webhook receivers, sandbox safety, and known gotchas.
    Source references (2)
    • ↳ docs/testing/E2E-DEVELOPER-EXPERIENCE-PLAN.md
    • ↳ docs/testing/ATLAS-CANONICAL-GLOSSARY.md
    Was this page helpful?
    Thanks — noted.Feedback goes to the docs team by email.
    Next →Quickstart
    On this page
    The one model to internalise: Product ≠ PassportThe integration journeyHow these docs are organised
    Norruva DPP API · sandbox developer docsGenerated 2026-07-29 · PRD-aligned (TSC roadmap rev 2) · statuses reflect E2E-verified sandbox behaviour — not marketing