Minimal valid DER Passport 4 required fields
{ "derpass_version": "1.0", "jurisdiction": { "primary": "DE" }, "meta": { "system_id": "HOME-001", "name": "Residential PV – Musterstraße 12", "location": { "country": "DE", "latitude": 48.137, "longitude": 11.576 }, "created": "2024-06-01" }, "commissioning": { "commissioning_date": "2024-05-15", "dc_capacity_kwp": 12.48, "ac_capacity_kw": 10.0 } }
01

Required fields

derpass_version
Required

Version of the core specification this file conforms to. Follows MAJOR.MINOR (and optionally PATCH) semver notation.

Type
string
Pattern: ^\d+\.\d+(\.\d+)?$ — e.g. "1.0" or "1.0.2"
jurisdiction
Required

The legal jurisdiction of the asset. Determines which national profiles apply and how national extensions in the national block are interpreted.

Fields
primary *
ISO 3166-1 alpha-2 country code, e.g. "DE", "NL", "GB".
subdivision opt
ISO 3166-2 subdivision code, e.g. "DE-BY" for Bavaria.
applicable_profiles opt
Informational list of profile URIs relevant to this file. The binding declaration is conforms_to.
meta
Required

Identity and ownership record for the asset. Links the passport to a unique system ID, its physical location, and the parties responsible for it.

Fields
system_id *
Unique identifier within the issuer's domain. Stable for the lifetime of the asset.
name *
Human-readable name, e.g. "Rooftop PV – Musterstraße 12".
location *
Physical location. See Location type. Requires country, latitude, longitude.
created *
Date this passport file was first created. ISO 8601 date string (YYYY-MM-DD).
owner opt
Party — legal owner of the asset.
operator opt
Party — entity operating the asset (if different from owner).
installer opt
Party — original installation company.
registry_ids opt
Array of CodedReference — national registry IDs (DE-MaStR, NL-EAN-18, MPAN, EIC, etc.).
last_modified opt
Date of last modification. ISO 8601 date string.
commissioning
Required

Core technical facts recorded at the time of commissioning. Together with meta, this forms the minimum viable passport.

Fields
commissioning_date *
Date the system was first put into operation. ISO 8601 date.
dc_capacity_kwp *
Installed DC nameplate capacity in kWp (sum of module ratings).
ac_capacity_kw *
Installed AC capacity in kW (sum of inverter ratings).
module_count opt
Total number of modules installed at commissioning.
inverter_count opt
Total number of inverters installed at commissioning.
grid_operator_notification_date opt
Date the grid operator was formally notified of the installation.
meter_installation_date opt
Date the generation meter was installed.
acceptance_protocol_url opt
Link to the acceptance/commissioning protocol document.
02

Physical components

arrays
Optional

Physical panel arrays. Each array groups modules sharing the same orientation, tilt, and mounting. Arrays reference modules by ID and are in turn referenced by strings.

Key fields per item
id *
Unique array identifier.
azimuth_deg *
0–359°. 0 = North, 90 = East, 180 = South, 270 = West.
tilt_deg *
0° = horizontal, 90° = vertical.
module_count *
Number of modules in this array.
module_ref *
References modules[].id.
mounting_type
roof_parallelroof_integratedground_mountedfacadeflat_roof_tiltedtrackerother
area_m2
Gross area of the array in m².
lifecycle
Lifecycle — operational status tracking.
modules
Optional

Module type records. Typically one entry per module type, not per individual module. Contains full electrical specifications and warranty information.

Key fields per item
id, manufacturer, model, nominal_power_wp *
Required identifiers and peak power in Wp.
technology
mono_percmono_topconmono_hjtmono_ibcpolycrystallinecdtecigstandem_perovskite_silicon
voc_v, isc_a, vmp_v, imp_a
Standard STC electrical parameters.
efficiency_pct
Module efficiency at STC in percent.
temperature_coefficient_pmax_pct_k
Power temperature coefficient (%/K), typically negative.
warranties
Array of Warranty — product and performance warranties.
strings
Optional

Individual DC strings connecting arrays to inverter MPPT inputs. Enables precise wiring documentation for service and fault isolation.

Key fields per item
id, array_ref, module_ref, module_count, inverter_ref, mppt_input *
All required. Links the string through the component graph.
cable_length_m
String cable length in metres.
cable_cross_section_mm2
Cable cross-section in mm².
inverters
Optional

Inverter unit records with electrical specs, lifecycle tracking, and warranty information. Each physical unit is a separate entry.

Key fields per item
id, manufacturer, model, ac_capacity_kw *
Required identifiers and AC nameplate power.
serial_number
Manufacturer serial number for the physical unit.
max_dc_capacity_kw
Maximum accepted DC input power.
mppt_count
Number of MPPT inputs.
euro_efficiency_pct
European weighted efficiency (%).
lifecycle
Lifecycle — tracks replacements and current status.
warranties
Array of Warranty.
storage
Optional

Battery storage units. Each physical unit is a separate entry with capacity, chemistry, power ratings, and coupling type.

Key fields per item
id, manufacturer, model, usable_capacity_kwh *
Required identifiers and usable capacity.
chemistry
lfpnmcncaltolead_acidredox_flowsodium_ion
gross_capacity_kwh
Gross (nominal) capacity before depth-of-discharge limits.
max_charge_kw, max_discharge_kw
Maximum charge / discharge power in kW.
coupling
dc_coupledac_coupledhybrid
connected_inverter_ref
References inverters[].id for DC-coupled or hybrid systems.
construction
Optional

Construction-phase documentation: build dates, protection measures, cable routes, and diagram references.

Key fields
construction_start, construction_end
Build period dates.
lightning_protection, equipotential_bonding
Boolean flags for safety installations.
string_layout_url, single_line_diagram_url
Links to engineering drawings.
cable_routes
Array of cable route records: from/to IDs, length, type, cross-section, installation method.
03

Grid & metering

metering_concept
Optional

Metering scheme and meter list. The type field describes the generic measurement topology; national profiles (e.g. DE) may specify a concrete Messkonzept number.

Fields
type *
full_feed_inself_consumption_with_surpluscascadeislandtenant_supplycommunity
meters *
Array of meter records. Each has: id, role (bidirectional, generation, consumption_household, …), meter_number, obis_codes (IEC 62056), smgw_id, location.
schematic_url
Link to metering schematic diagram.
grid_connection_point
Optional

The point where the asset connects to the public grid. Contains electrical parameters, protection device details, and grid operator identity.

Required sub-fields
id, voltage_level, connection_phases, nominal_voltage_v, nominal_frequency_hz, max_export_kw, protection *
All required when the section is present.
Notable optional fields
voltage_level
low_voltagemedium_voltagehigh_voltageextra_high_voltage
protection
type (integrated_in_inverter | central_external | not_required) + norm as CodedReference (e.g. DE-VDE-AR-N 4105, EU-EN-50549).
grid_operator
DSO name, role, and coded identifiers.
short_circuit_capacity_sk_kva
Grid short-circuit capacity at the connection point.
service_entrance
Physical entry location, coordinates, and main fuse rating.
consumption
Optional

Site consumption details and controllable devices. The controllable devices sub-array is particularly important for §14a EnWG (DE) and equivalent grid-congestion frameworks.

Fields
annual_consumption_kwh
Total annual site consumption in kWh.
load_profile_reference_type
Reference profile family, e.g. BDEW-H0, VDI-4655-WP.
controllable_devices
Array of devices subject to grid-operator curtailment. Each has: type (heat_pump, ev_charger, battery_storage, …), rated_power_kw, controllable_per_grid_directive (boolean), framework (CodedReference, e.g. DE-EnWG-14a), min_uncurtailed_power_kw.
load_profiles
Optional

Time-series load and generation profiles stored as CSV or Parquet files. Metadata in the passport; data in referenced files.

Key fields per item
id, type, reference_point, source, period, resolution_minutes, unit, sign_convention, file, timezone *
All required when present.
type
consumptiongenerationexportimportstorage_socstorage_power
source
measuredsyntheticsimulatedforecast
key_figures
Pre-computed aggregates for quick access without parsing the full file.
04

Commercial & contracts

compensation
Optional

Feed-in compensation arrangement. Covers the scheme type, applicable tariff rate, and supply contract details for prosumers drawing from the grid.

Fields
scheme *
feed_in_tariffmarket_premiumpower_purchase_agreementnet_meteringnet_billingself_consumption_onlycommunity_energyauction_award
tariff
rate_value + rate_currency + rate_unit (per_kwh | per_mwh | per_month | per_year) + validity dates.
direct_marketer
Name of the direct marketing entity (for market_premium scheme).
supply_contract
Electricity supply contract: supplier, tariff name, energy price, base fee, contract end, dynamic pricing flag.
external_control
Optional

Grid-operator remote control and curtailment capabilities, interface protocols, power setpoints, and energy management system details.

Fields
remote_control_active
Boolean — whether remote control is currently enabled.
curtailment_type
nonefixed_capdynamicredispatchdirect_marketernational_specific
interface_protocol
modbus_tcpsunspeciec_61850eebusripple_control_receiver
reactive_power_control
nonefixed_cos_phicos_phi_pq_ufixed_q
energy_management_system
EMS manufacturer, version, and role (local_ems | cloud_ems | none).
insurance
Optional

Insurance policies covering the asset. Multiple policies may be listed (e.g. all-risk + liability).

Key fields per item
id, type, insurer *
Required per entry. Insurer is a Party.
type
property_all_riskproperty_named_perilsliabilitybusiness_interruptionextended_warrantyperformance_guarantee
coverage_amount, premium, deductible
Money objects.
covered_components
Array of entity IDs covered. Omit or leave empty for whole-asset coverage.
maintenance_contracts
Optional

Active and historical O&M contracts. Useful for tracking next scheduled service and handover to new operators.

Key fields per item
id, provider *
Required. Provider is a Party.
contract_type
full_serviceinspection_onlyon_callmonitoring_onlyperformance_guarantee
interval
monthlyquarterlybiannualannualbiennialad_hoc
next_due
Date of the next scheduled service visit.
cost
Money — contract cost (use unit: "per_year" for annual contracts).
05

Operations & safety

generation_data
Optional

Expected and recorded generation performance. The monthly summary provides a quick overview without needing the full load profile files.

Fields
expected_annual_yield_kwh
Design-basis annual yield estimate.
specific_yield_kwh_per_kwp
Specific yield: kWh per kWp of installed capacity.
performance_ratio
System performance ratio (0–1.5). Typical values 0.75–0.85.
monthly_summary
Array of monthly records: month (YYYY-MM), yield_kwh, self_consumption_kwh, export_kwh, import_kwh.
alerts
Optional

Operational alerts and notices displayed prominently by the viewer. Can flag safety hazards, regulatory issues, outstanding maintenance, or historical trivia.

Key fields per item
id, severity, title *
Required per alert.
severity
dangerwarninginfotrivia
affects
Array of entity IDs this alert pertains to.
created_at, expires_at
ISO 8601 timestamps for alert lifecycle.
site_access
Optional

Physical site access instructions for service technicians. Includes contact information, PPE requirements, known hazards, and gate credentials. Credentials should reference external secret stores, not be stored in plain text.

Fields
access_instructions
Free-form text describing how to reach the equipment.
entry_contact
Party — person to contact for site access.
required_ppe
hard_hatsafety_shoesinsulating_glovesfall_protectionfire_resistant_clothinghigh_visibility_vest
hazards
Array of hazard records: type (high_voltage, battery_chemical, fall_height, moving_machinery, livestock, …), description, location.
gate_credentials
type (keypad_code, physical_key, rfid_card, key_box, …) + credential_reference pointing to an external secret store.
remote_access
Optional

Network-level remote access endpoints. Credentials must never be stored as plaintext; use encrypted_credentials (JWE) or a credential_reference to an external secret store.

Key fields per item
id, purpose, protocol *
Required per entry.
purpose
monitoringcontroldirect_marketingmaintenancebilling_dataregulatory_reportingowner_dashboard
protocol
vpn_wireguardvpn_openvpnhttps_apihttps_dashboardsshmqttmodbus_tcpocpp
encrypted_credentials
JWE (RFC 7516) encrypted credentials blob, decryptable only by the intended recipient's private key.
credential_reference
Pointer to an external secret store entry (preferred).
06

Provenance & records

events
Optional

The service book of the asset — an append-only, chronological log of significant events. Each entry is a Event object and may carry cryptographic signatures.

Event types (enum)
commissioningrecommissioningcomponent_installcomponent_replacementcomponent_decommissionmaintenancerepairinspectiondamageinsurance_claimfirmware_updateconfiguration_changeowner_changeoperator_changecontract_changeregulatory_changeregistry_updateperformance_testoutagecurtailment_eventdecommissioningdismantlingrepoweringother
revisions
Optional

History of the passport file itself — not the asset. Each revision links to its predecessor via a content hash, creating an integrity chain across handovers. Entries can carry co-signatures from multiple parties.

Key fields per item
revision, issued_at, issued_by *
Monotonically increasing integer, timestamp, and issuing Party.
previous_hash
SHA-256 or SHA-512 content hash of the previous revision file. null for revision 1. Format: sha256:<hex>.
archive_url
URL where the previous revision is archived (HTTPS, IPFS, etc.).
signatures
Array of Signature — multiple parties may co-sign a revision.
documents
Optional

Linked documents by type. The type field is a free-form string; common values are standardised by convention.

Common type values
module_datasheetinverter_datasheetunit_certificateplant_certificatestring_layoutsingle_line_diagrammetering_conceptconnection_agreementregistry_filingcommissioning_reportcontrollable_device_agreementdirect_marketing_agreementinsurance_policyownership_proof
type, url *
Required per document entry.
ref
Optional reference to the entity the document concerns (e.g. an inverter ID).
national
Optional

Country-specific extension data, keyed by ISO 3166-1 alpha-2 code. The internal structure of each country block is governed by the corresponding national profile schema.

Structure
DE
German extensions: MaStR confirmations, EEG data, Messkonzept details, §14a EnWG flags.
NL
Dutch extensions: SDE++ reference, EAN codes, congestiebeheer details.
XX
Any two-letter ISO country code. additionalProperties: true within each block.
$defs

Shared types

CodedReference
A reference to an external coding system. Used for national registry IDs, compliance standards, and frameworks.
scheme *
Identifier of the coding system, e.g. DE-MaStR, NL-EAN-18, EU-EN-50549, DE-EnWG-14a.
value
The actual ID or code under the scheme. Optional for conformance-only references.
version
Optional scheme version, e.g. "4105:2018-11" for VDE-AR-N.
Party
A person, company, or organisation playing a role in the asset's lifecycle.
name *
Display name of the person or company.
company
Company name if name is a person.
contact
Free-form contact info: email, phone, or address.
role
Free-form role description, e.g. "DSO", "certifier".
identifiers
Array of CodedReference, e.g. installer registry numbers.
Location
Physical location of the asset. Requires country and coordinates; address fields are optional.
country, latitude, longitude *
ISO alpha-2 country code and WGS84 coordinates.
address, postal_code, city, subdivision
Human-readable address components.
elevation_m
Elevation above sea level (useful for yield simulation).
timezone
IANA timezone identifier, e.g. Europe/Berlin.
cadastral_reference
Free-form land registry reference.
Money
A monetary amount with currency. Optionally qualified by a billing unit for recurring costs.
value, currency *
Numeric amount and ISO 4217 currency code (EUR, GBP, USD).
unit
per_kwh | per_mwh | per_month | per_year | per_event | total. Omit for one-off amounts.
Lifecycle
Tracks the operational status of a component and links it to its predecessor and successor through replacements.
current_status
planned | operational | fault | decommissioned | removed | in_storage.
installed_at, decommissioned_at
Lifecycle dates (ISO 8601 date strings).
replaces, replaced_by
IDs of predecessor / successor component.
decommissioning_reason
end_of_life | defect | upgrade | damage | regulatory | other.
Warranty
A warranty covering a component. Multiple warranties may apply to one unit (e.g. product + linear performance for modules).
type *
product | performance | linear_performance | labor | system | other.
duration_years, start_date, end_date
Warranty period.
performance_threshold_pct
For performance warranties: minimum guaranteed output (%) at end of warranty period.
annual_degradation_pct
For linear_performance: maximum guaranteed annual degradation rate.
Event
One entry in the asset's service log. Events are append-only and may carry cryptographic signatures attesting to their authenticity.
id, timestamp, type *
Required. Timestamp may be date-only (YYYY-MM-DD) or full ISO 8601 with timezone.
actor
Party — who performed or reported the event.
summary
Short human-readable description.
affects
Array of entity IDs affected (inverter IDs, array IDs, etc.).
data
Free-form object for event-type-specific payload.
signatures
Array of Signature attesting to the event.
Signature
A JWS (RFC 7515) detached signature over the canonical form (RFC 8785) of the enclosing object, minus the signatures field itself.
algorithm *
JWS algorithm: RS256, RS512, ES256, ES512, EdDSA, PS256.
signer *
Party — the signing entity.
signed_at *
ISO 8601 timestamp of the signing event.
signature *
Base64url-encoded detached JWS signature value.
public_key
JWK (RFC 7517) of the signing key, or a URL / X.509 chain reference.
signer_role
Role under which the signer attests: installer, certifier, owner, notary, dso.