Documentation Index
Fetch the complete documentation index at: https://docs.nomos.energy/llms.txt
Use this file to discover all available pages before exploring further.
What §14a EnWG is
§14a EnWG governs the relationship between a household and its grid operator (Verteilnetzbetreiber, VNB) when that household runs a “controllable consumption device” (steuerbare Verbrauchseinrichtung) over 4.2 kW. Heat pumps, wallboxes, home batteries, and AC units all qualify. Under the BNetzA ruling BK6-22-300, every VNB is obliged to throttle these devices to maintain grid stability when needed and, in exchange, has to grant the customer a reduction on their grid fees.The two paths
The customer chooses one of two paths:- Modul 1, optionally combined with Modul 3. Modul 1 is a flat annual deduction on the base grid fee, available to anyone with a registered §14a-eligible device. For a heat pump customer consuming 5,000 kWh/year, it is worth around 120–155 EUR/year net by the BNetzA formula
80 EUR + (Standard-AP × 3,750 kWh × 0.2). Modul 3 stacks on top of Modul 1 and adds a time-variable grid fee with three windows (low, standard, peak). It can be worth another 100–200 EUR/year if the customer plans high-demand hours around the cheap windows. Modul 3 requires an intelligent metering system (iMSys). - Modul 2, on its own. A 60% reduction on the variable (kWh) grid fee, applied through a separate sub-meter behind the controllable device. Savings scale with how much the device consumes: a wallbox doing 4,000 kWh/year typically saves 150–250 EUR/year. Modul 2 cannot be combined with Modul 1 or Modul 3.
Modul 2 requires a dedicated sub-meter behind the controllable device (a
separate “Wärmepumpenzähler” or wallbox sub-meter). For most setups we
recommend Modul 1 + Modul 3 as the default path: it stacks reliably, needs no
extra metering hardware beyond the iMSys, and works for any §14a-eligible
device.
How time-variable grid fees work (Modul 3)
A Modul 3 schedule splits the day into three windows:- NT (Niedrigtarif): the cheap window, typically a few ct/kWh below the standard rate
- ST (Standardtarif): the regular grid fee, applied outside NT and HT hours
- HT (Hochtarif): the expensive window, typically a few ct/kWh above the standard rate
| NT | ST | HT | |
|---|---|---|---|
| Time | 10:00–14:00 | rest of the day | 17:00–22:00 |
| Price | -7 ct/kWh | baseline | +7 ct/kWh |
Integration
Prerequisites
The plan you’re quoting against needs §14a enabled, with the modules you want to sell. Plans expose this via theenwg14aOptions configuration; ask Nomos support to enable the modules on a given plan before you start quoting.
Modul 3 additionally requires that the customer’s meter is a smart meter (iMSys). The API enforces this and rejects Modul 3 orders against analog meters.
1. Quote with §14a included
The quote endpoint reflects Modul 1 in the price breakdown. Pass14a_module_1=true to see the pauschale Netzentgeltreduktion as a negative line item alongside the regular grid fee.
base component’s subcomponents array contains an entry like:
The quote endpoint only models Modul 1. Modul 3 doesn’t surface as a quote
line item because its savings depend on a lot of underlying assumptions about
the customer’s load-shifting behaviour against their VNB’s specific schedule.
2. Order §14a during checkout
When you create the subscription, include aproduct_orders entry with type: "14a_enwg" and flag the modules the customer is signing up for. The API will validate that the plan supports each requested module.
grid_fee_reduction per requested module and sends an EDIFACT order to the VNB once the subscription is confirmed.
Customers checking out via the Nomos hosted checkout components can opt into the available §14a modules directly in the same flow; the components handle the product_orders payload for you.
See Create a subscription for the full body schema.
3. Order §14a after the subscription exists
Customers often install a heat pump or wallbox months after switching supplier. Use thePOST /grid-fee-reductions endpoint to add a module to an existing subscription. The endpoint takes the subscription ID in the body, not the path.
subscription and type. The valid_from and valid_until fields appear in the response and are populated once the VNB confirms the activation date.
Customers can also add a §14a module from the Nomos hosted customer portal or, if you use it, the Nomos dashboard. Both call this same endpoint under the hood.
See Create a grid fee reduction.
4. Read state and the status lifecycle
List all grid fee reductions for the organization (or, for customer-scoped tokens, just that customer’s):status field walks through this lifecycle:
| Status | Meaning |
|---|---|
intended | Order has been recorded but the subscription isn’t confirmed yet. No EDIFACT message has been sent. |
ordered | EDIFACT order has been sent to the VNB. Awaiting their reply. |
activated | The VNB confirmed activation; a valid_from date is set and the reduction is being applied to billing. |
ended | The reduction has stopped (subscription ended, or the customer switched modules). |
rejected | The VNB declined the order. Inspect the reason, fix the underlying cause, then re-order. |
Dedicated webhook events for grid fee reduction state changes are coming soon.
Until then, poll the list endpoint with
filter[status] or react to
subscription.activated to know when an order is eligible
to ship.Clearing
Rejections are part of normal operation, not an exception. For Modul 1, the most common cause is that the controllable consumption device (steuerbare Verbrauchseinrichtung) hasn’t been registered with the VNB yet. The customer (or their installer) registers the device through the VNB’s portal; once that’s done, you can retrigger the order.Resolving a stuck or rejected order
You can drive clearing yourself, both via the API and via the Nomos dashboard. API.GET /grid-fee-reductions/{id} returns the current status. Once the underlying cause is fixed, re-send with a fresh POST /grid-fee-reductions; the previous rejected record stays in the list for audit.
Dashboard. The grid fee reduction detail view shows the current status and the rejection reason returned by the VNB, lets you initiate a clearing conversation with the grid operator directly from the order, and re-sends the order in one click once the issue is resolved.