Open Standard
JSON Schema 2020-12

Norruva Regulatory Passport Format

NRPF is an open JSON Schema specification for interoperable EU Digital Product Passports. Use these schemas to validate DPP data, generate typed clients, or build integrations with the Norruva platform.

Available Schemas

NRPF Digital Product Passport v1

The main DPP schema covering product identification (GTIN, manufacturer, category), compliance data, supply chain structure, sustainability metrics, evidence references, and temporal metadata.
ESPR
EU Battery Regulation
EUDR
REACH / RoHS
/api/v2/public/schema/nrpf-v1

Compliance Result

Per-regulation evaluation result produced by the compliance orchestration engine. Captures status, numeric score, and individual rule violations with severity levels.
Regulation status
Violation details
Remediation hints
/api/v2/public/schema/nrpf-compliance-result

Supply Chain Node

A single Bill of Materials node, such as a product, sub-assembly, component, raw material, or packaging element, with material composition, recycled content, and carbon footprint data.
BOM hierarchy
Material composition
Carbon footprint
/api/v2/public/schema/nrpf-supply-chain-node

Evidence Reference

Reference to a compliance evidence artefact (certificate, test report, audit document, or image) with SHA-256 content hashing for tamper detection.
Certificate references
SHA-256 integrity
Content hash
/api/v2/public/schema/nrpf-evidence

Using the Schemas

Fetch via API

# Schema catalogue
curl https://www.norruva.com/api/v2/public/schema

# Individual schema
curl https://www.norruva.com/api/v2/public/schema/nrpf-v1

Validate with AJV (JavaScript)

import Ajv from 'ajv/dist/2020';
import addFormats from 'ajv-formats';

const ajv = new Ajv();
addFormats(ajv);

const schema = await fetch(
  'https://www.norruva.com/api/v2/public/schema/nrpf-v1'
).then(r => r.json());

const validate = ajv.compile(schema);
const valid = validate(myPassportDocument);

Generate TypeScript types

npx json-schema-to-typescript \
  https://www.norruva.com/api/v2/public/schema/nrpf-v1 \
  --out nrpf.d.ts

Example Document

A conforming NRPF v1 document for a battery product. All required fields are populated; optional fields are omitted or shown where illustrative.

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "schemaVersion": "nrpf-v1",
  "name": "EcoBattery Pro 100Ah",
  "gtin": "5901234123457",
  "category": "battery",
  "status": "active",
  "companyId": "a3bb189e-8bf9-3888-9912-ace4e6543002",
  "manufacturer": {
    "name": "GreenCell GmbH",
    "countryCode": "DE",
    "eoriNumber": "DE123456789"
  },
  "compliance": {
    "overallStatus": "compliant",
    "passportReady": true,
    "lastAssessmentDate": "2026-04-01",
    "targetZone": "EU"
  },
  "complianceResults": [
    {
      "regulation": "BATTERY_REG",
      "status": "passed",
      "reason": "All mandatory battery passport fields are present and valid.",
      "score": 94,
      "evaluatedAt": "2026-04-01T10:00:00Z"
    }
  ],
  "sustainability": {
    "carbonFootprintKgCO2": 85.4,
    "recyclabilityPercentage": 92,
    "recycledContentPercentage": 18,
    "sustainabilityScore": 88,
    "circularityScore": 76
  },
  "supplyChain": {
    "bomNodes": [
      {
        "id": "b1c2d3e4-0000-0000-0000-000000000001",
        "parentId": null,
        "name": "Battery Cell Assembly",
        "nodeType": "ASSEMBLY",
        "quantity": 1,
        "unitOfMeasure": "pcs",
        "totalWeightKg": 28.5,
        "recycledContentPercent": 18,
        "carbonFootprintKg": 62.1,
        "countryOfOrigin": "DE",
        "level": 0,
        "sortOrder": 0,
        "childCount": 3,
        "materials": [
          {
            "materialName": "Lithium Iron Phosphate",
            "materialClass": "metal",
            "weightKg": 12.3,
            "weightPercent": 43.2,
            "recycledContentPercent": 0,
            "hazardClass": "none"
          }
        ]
      }
    ]
  },
  "evidence": [
    {
      "id": "e1f2a3b4-0000-0000-0000-000000000001",
      "category": "certificate",
      "fileName": "IEC62619-certificate.pdf",
      "fileSize": 204800,
      "mimeType": "application/pdf",
      "publicUrl": "https://www.norruva.com/evidence/cert-iec62619.pdf",
      "validationStatus": "verified",
      "uploadedBy": "user-uuid-here",
      "contentHash": "a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4",
      "hashAlgorithm": "SHA-256",
      "createdAt": "2026-03-15T08:30:00Z",
      "updatedAt": "2026-03-15T08:30:00Z"
    }
  ],
  "version": "1.0.0",
  "versionNumber": 1,
  "isLatestVersion": true,
  "granularityType": "model",
  "applicableRegulationCodes": ["BATTERY_REG", "REACH"],
  "effectiveFrom": "2026-04-01T00:00:00Z",
  "effectiveTo": null,
  "evaluatedAt": "2026-04-01T10:00:00Z",
  "createdAt": "2026-03-01T09:00:00Z",
  "updatedAt": "2026-04-01T10:05:00Z"
}