---
title: "Create a grid fee reduction"
method: POST
path: "/grid-fee-reductions"
tags: ["Grid Fee Reductions"]
---

# Create a grid fee reduction

`POST /grid-fee-reductions`

Create a new grid fee reduction for §14a EnWG modules. Not applicable for feed-in subscriptions, which do not pay grid fees.

**Grid fee reduction status:**
- If the subscription is active: grid fee reduction is created with `ordered` status. Order is submitted immediately
- If the subscription is pending: grid fee reduction is created with `intended` status. Order will be submitted once the subscription is confirmed

**Re-ordering after rejection:**
Re-ordering is allowed if the previous grid fee reduction was rejected or ended.

## Request body

- InsertGridFeeReduction
  - `subscription` string, required — ID of the subscription
  - `type` 'enwg-14a-module-1' | 'enwg-14a-module-2' | 'enwg-14a-module-3', required — Grid fee reduction module type according to §14a EnWG

## Response `200`

The newly created grid fee reduction.

- GridFeeReduction
  - `object` 'grid_fee_reduction', required — Type of the object, always 'grid_fee_reduction'
  - `id` string, required — Unique identifier for the grid fee reduction
  - `subscription` string, required — ID of the subscription
  - `type` 'enwg-14a-module-1' | 'enwg-14a-module-2' | 'enwg-14a-module-3', required — Grid fee reduction module type according to §14a EnWG
  - `status` 'intended' | 'ordered' | 'rejected' | 'activated' | 'ended', required — Current status of the grid fee reduction order
  - `valid_from` string, date-time, nullable, required — Start date of the grid fee reduction validity period
  - `valid_until` string, date-time, nullable, required — End date of the grid fee reduction validity period
  - `created_at` string, date-time, required — Timestamp when the grid fee reduction was created
  - `updated_at` string, date-time, required — Timestamp when the grid fee reduction was last updated
  - `customer` string, required — ID of the customer the grid fee reduction belongs to

## Other responses

- `400` — The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
- `401` — The client must authenticate itself to get the requested response.
- `402` — A higher pricing plan is required to access the resource.
- `403` — The client does not have the necessary permissions to access the resource.
- `404` — The server can't find the requested resource.
- `405` — The request method is not allowed.
- `409` — The request could not be completed due to a conflict mainly due to unique constraints.
- `422` — The request was well-formed but was unable to be followed due to semantic errors.
- `429` — The client has sent too many requests.
- `500` — The server has encountered a situation it doesn't know how to handle.

---

[API](https://skmtc.dev/nomos/apis/nomos-api.md) · [All operations](https://skmtc.dev/nomos/apis/nomos-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nomos/nomos-api/revisions/da60ad83e92f/schema)
