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.
/api/v2/public/schema/nrpf-v1/api/v2/public/schema/nrpf-compliance-result/api/v2/public/schema/nrpf-supply-chain-node/api/v2/public/schema/nrpf-evidence# Schema catalogue curl https://app.norruva.com/api/v2/public/schema # Individual schema curl https://app.norruva.com/api/v2/public/schema/nrpf-v1
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);
npx json-schema-to-typescript \ https://app.norruva.com/api/v2/public/schema/nrpf-v1 \ --out nrpf.d.ts
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"
}