Skip to main content
    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.

    Schema API endpoint·JSON Schema 2020-12 spec

    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 — 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://app.norruva.com/api/v2/public/schema
    
    # Individual schema
    curl https://app.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://app.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://app.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://app.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"
    }

    NRPF schemas are published under the Apache 2.0 License. Schema identifiers and $id URIs are stable for a given major version. Breaking changes will increment the major version (e.g. nrpf-v2).

    Questions? Visit the Developer Portal or contact developer support.