# Contract termination — LFN view

<Kopf rolle="LF" beteiligter="LFN" festlegung="GPKE" dokument="GPKE Teil 2" kapitel="1.2.2" sparte="Strom" schritte={2} suchtitel="Contract termination — View LFN (market role LF) · GPKE Part 2 · Format version 202604" stichworte="supplier switch" abschnitte={[{"id": "abschnitt-ablauf", "label": "Process flow"}, {"id": "abschnitt-schritte", "label": "Process steps"}, {"id": "abschnitt-informationen", "label": "Process information"}, {"id": "abschnitt-sichten", "label": "Other views of the process"}]} />

<Kurzfassung>

The LFN sends a contract termination to the LFA. The LFA checks the contract termination and informs the LFN of the result.

</Kurzfassung>

<a id="abschnitt-ablauf"></a>

## Process flow from the perspective of the LF (LFN)

<Systembild svg={"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1004 590\" width=\"1004\" height=\"590\" role=\"img\" aria-labelledby=\"sb-title\" class=\"maco-systembild\">\n<title id=\"sb-title\">System diagram: Kündigung — view of LF</title>\n<defs><marker id=\"sb-arrow\" viewBox=\"0 0 14 14\" refX=\"13\" refY=\"7\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0 L14 7 L0 14 z\" fill=\"var(--prn-label-2, #424245)\"/></marker></defs>\n<rect class=\"sb-lane-kopf\" x=\"16\" y=\"12\" width=\"232\" height=\"46\" rx=\"10\" fill=\"var(--prn-bg-elevated, #f5f5f7)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"132\" y=\"40\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"500\" fill=\"var(--prn-label, #1d1d1f)\">Customer backend system</text>\n<rect class=\"sb-lane-kopf\" x=\"398\" y=\"12\" width=\"264\" height=\"46\" rx=\"10\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"530\" y=\"40\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"600\" fill=\"var(--prn-label, #1d1d1f)\">MACO APP · LFN</text>\n<rect class=\"sb-lane-kopf\" x=\"812\" y=\"12\" width=\"176\" height=\"46\" rx=\"10\" fill=\"var(--prn-bg-elevated, #f5f5f7)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"900\" y=\"40\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"500\" fill=\"var(--prn-label, #1d1d1f)\">Market partner</text>\n<line x1=\"323\" y1=\"58\" x2=\"323\" y2=\"578\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1\" stroke-dasharray=\"4 4\"/>\n<line x1=\"737\" y1=\"58\" x2=\"737\" y2=\"578\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1\" stroke-dasharray=\"4 4\"/>\n<rect class=\"sb-kasten sb-trigger\" x=\"432\" y=\"80\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"530\" y=\"100\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">Process trigger received</text>\n<rect class=\"sb-kasten sb-backend sb-trigger\" x=\"34\" y=\"80\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-bg-elevated, #f5f5f7)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"132\" y=\"100\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">START_KUENDIGUNG</text>\n<line x1=\"230\" y1=\"96\" x2=\"432\" y2=\"96\" stroke=\"var(--prn-blue, #0071e3)\" stroke-width=\"1.6\" stroke-dasharray=\"6 3\" marker-end=\"url(#sb-arrow)\"/>\n<text x=\"331\" y=\"88\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"var(--prn-label, #1d1d1f)\">API</text>\n<rect class=\"sb-kasten sb-ausgehend\" x=\"432\" y=\"144\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"530\" y=\"164\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">1. Kündigung</text>\n<line class=\"sb-fluss\" x1=\"530\" y1=\"113\" x2=\"530\" y2=\"144\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1.4\" marker-end=\"url(#sb-arrow)\"/>\n<g class=\"sb-akteur\" stroke=\"var(--prn-label-2, #424245)\" stroke-width=\"1.4\" fill=\"none\"><circle cx=\"900\" cy=\"142\" r=\"5\"/><line x1=\"900\" y1=\"147\" x2=\"900\" y2=\"159\"/><line x1=\"893\" y1=\"151\" x2=\"907\" y2=\"151\"/><line x1=\"900\" y1=\"159\" x2=\"894\" y2=\"169\"/><line x1=\"900\" y1=\"159\" x2=\"906\" y2=\"169\"/></g>\n<text x=\"900\" y=\"191\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"var(--prn-label, #1d1d1f)\">LFA</text>\n<line x1=\"628\" y1=\"160\" x2=\"878\" y2=\"160\" stroke=\"var(--prn-accent, #2f7d5c)\" stroke-width=\"1.6\" stroke-dasharray=\"6 3\" marker-end=\"url(#sb-arrow)\"/>\n<text x=\"753\" y=\"152\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"var(--prn-label, #1d1d1f)\">AS4</text>\n<text x=\"753\" y=\"176\" text-anchor=\"middle\" font-size=\"10.5\" fill=\"var(--prn-label-2, #424245)\">55016</text>\n<rect class=\"sb-kasten sb-fortschreiben\" x=\"432\" y=\"227\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"530\" y=\"247\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">Update transaction</text>\n<line class=\"sb-fluss\" x1=\"530\" y1=\"177\" x2=\"530\" y2=\"227\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1.4\" marker-end=\"url(#sb-arrow)\"/>\n<rect class=\"sb-kasten sb-backend sb-fortschreiben\" x=\"34\" y=\"227\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-bg-elevated, #f5f5f7)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"132\" y=\"247\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">Update process data</text>\n<line x1=\"432\" y1=\"243\" x2=\"230\" y2=\"243\" stroke=\"var(--prn-blue, #0071e3)\" stroke-width=\"1.6\" stroke-dasharray=\"6 3\" marker-end=\"url(#sb-arrow)\"/>\n<text x=\"331\" y=\"235\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"var(--prn-label, #1d1d1f)\">API</text>\n<rect class=\"sb-kasten sb-eingehend\" x=\"432\" y=\"291\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"530\" y=\"311\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">2. Antwort auf Kündigung</text>\n<line class=\"sb-fluss\" x1=\"530\" y1=\"260\" x2=\"530\" y2=\"291\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1.4\" marker-end=\"url(#sb-arrow)\"/>\n<g class=\"sb-akteur\" stroke=\"var(--prn-label-2, #424245)\" stroke-width=\"1.4\" fill=\"none\"><circle cx=\"900\" cy=\"289\" r=\"5\"/><line x1=\"900\" y1=\"294\" x2=\"900\" y2=\"306\"/><line x1=\"893\" y1=\"298\" x2=\"907\" y2=\"298\"/><line x1=\"900\" y1=\"306\" x2=\"894\" y2=\"316\"/><line x1=\"900\" y1=\"306\" x2=\"906\" y2=\"316\"/></g>\n<text x=\"900\" y=\"338\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"var(--prn-label, #1d1d1f)\">LFA</text>\n<line x1=\"878\" y1=\"307\" x2=\"628\" y2=\"307\" stroke=\"var(--prn-label-2, #424245)\" stroke-width=\"1.6\" stroke-dasharray=\"6 3\" marker-end=\"url(#sb-arrow)\"/>\n<text x=\"753\" y=\"299\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"var(--prn-label, #1d1d1f)\">AS4</text>\n<text x=\"753\" y=\"323\" text-anchor=\"middle\" font-size=\"10.5\" fill=\"var(--prn-label-2, #424245)\">55017, 55018</text>\n<rect class=\"sb-kasten sb-aperak\" x=\"432\" y=\"374\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"530\" y=\"394\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">APERAK check: Z33</text>\n<line class=\"sb-fluss\" x1=\"530\" y1=\"324\" x2=\"530\" y2=\"374\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1.4\" marker-end=\"url(#sb-arrow)\"/>\n<rect class=\"sb-kasten sb-fortschreiben\" x=\"432\" y=\"438\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"530\" y=\"458\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">Update transaction</text>\n<line class=\"sb-fluss\" x1=\"530\" y1=\"407\" x2=\"530\" y2=\"438\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1.4\" marker-end=\"url(#sb-arrow)\"/>\n<rect class=\"sb-kasten sb-backend sb-fortschreiben\" x=\"34\" y=\"438\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-bg-elevated, #f5f5f7)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"132\" y=\"458\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">Update process data</text>\n<line x1=\"432\" y1=\"454\" x2=\"230\" y2=\"454\" stroke=\"var(--prn-blue, #0071e3)\" stroke-width=\"1.6\" stroke-dasharray=\"6 3\" marker-end=\"url(#sb-arrow)\"/>\n<text x=\"331\" y=\"446\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"var(--prn-label, #1d1d1f)\">API</text>\n<rect class=\"sb-kasten sb-lesen_verarbeitung\" x=\"432\" y=\"502\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"530\" y=\"522\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">Load data for processing</text>\n<line class=\"sb-fluss\" x1=\"530\" y1=\"471\" x2=\"530\" y2=\"502\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1.4\" marker-end=\"url(#sb-arrow)\"/>\n<rect class=\"sb-kasten sb-backend sb-lesen_verarbeitung\" x=\"34\" y=\"502\" width=\"196\" height=\"33\" rx=\"8\" fill=\"var(--prn-bg-elevated, #f5f5f7)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"132\" y=\"522\" text-anchor=\"middle\" font-size=\"12\" fill=\"var(--prn-label, #1d1d1f)\">3 read APIs called</text>\n<line x1=\"432\" y1=\"518\" x2=\"230\" y2=\"518\" stroke=\"var(--prn-blue, #0071e3)\" stroke-width=\"1.6\" stroke-dasharray=\"6 3\" marker-end=\"url(#sb-arrow)\"/>\n<text x=\"331\" y=\"510\" text-anchor=\"middle\" font-size=\"11.5\" fill=\"var(--prn-label, #1d1d1f)\">API</text>\n<text x=\"331\" y=\"534\" text-anchor=\"middle\" font-size=\"10.5\" fill=\"var(--prn-label-2, #424245)\">listed at the step</text>\n</svg>"} gesamt={"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 730 424\" width=\"730\" height=\"424\" role=\"img\" aria-labelledby=\"sd-title\" class=\"maco-sequence\">\n<title id=\"sd-title\">Sequence diagram: Kündigung — view of LF</title>\n<defs><marker id=\"sd-arrow\" viewBox=\"0 0 14 14\" refX=\"13\" refY=\"7\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0 L14 7 L0 14 z\" fill=\"var(--prn-label-2, #424245)\"/></marker></defs>\n<rect x=\"16\" y=\"12\" width=\"210\" height=\"52\" rx=\"10\" fill=\"var(--prn-bg-elevated, #f5f5f7)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"121\" y=\"43\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"500\" fill=\"var(--prn-label, #1d1d1f)\">Backend (customer)</text>\n<line x1=\"121\" y1=\"64\" x2=\"121\" y2=\"412\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1\" stroke-dasharray=\"4 4\"/>\n<rect x=\"260\" y=\"12\" width=\"210\" height=\"52\" rx=\"10\" fill=\"var(--prn-accent-soft, #e4f2eb)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"365\" y=\"43\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"600\" fill=\"var(--prn-label, #1d1d1f)\">MACO APP · LFN</text>\n<line x1=\"365\" y1=\"64\" x2=\"365\" y2=\"412\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1\" stroke-dasharray=\"4 4\"/>\n<rect x=\"504\" y=\"12\" width=\"210\" height=\"52\" rx=\"10\" fill=\"var(--prn-bg-elevated, #f5f5f7)\" stroke=\"var(--prn-separator, #d2d2d7)\"/>\n<text x=\"609\" y=\"43\" text-anchor=\"middle\" font-size=\"13\" font-weight=\"500\" fill=\"var(--prn-label, #1d1d1f)\">LFA</text>\n<line x1=\"609\" y1=\"64\" x2=\"609\" y2=\"412\" stroke=\"var(--prn-label-3, #6e6e73)\" stroke-width=\"1\" stroke-dasharray=\"4 4\"/>\n<line x1=\"121\" y1=\"90\" x2=\"365\" y2=\"90\" stroke=\"var(--prn-blue, #0071e3)\" stroke-width=\"1.6\" marker-end=\"url(#sd-arrow)\" stroke-dasharray=\"6 3\"/>\n<text x=\"243\" y=\"81\" text-anchor=\"middle\" font-size=\"12.5\" fill=\"var(--prn-label, #1d1d1f)\">START_KUENDIGUNG</text>\n<text x=\"243\" y=\"105\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--prn-label-2, #424245)\">Trigger event</text>\n<line x1=\"365\" y1=\"152\" x2=\"609\" y2=\"152\" stroke=\"var(--prn-accent, #2f7d5c)\" stroke-width=\"1.6\" marker-end=\"url(#sd-arrow)\"/>\n<text x=\"487\" y=\"143\" text-anchor=\"middle\" font-size=\"12.5\" fill=\"var(--prn-label, #1d1d1f)\">1. Kündigung</text>\n<text x=\"487\" y=\"167\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--prn-label-2, #424245)\">AS4 · PI 55016</text>\n<line x1=\"365\" y1=\"214\" x2=\"121\" y2=\"214\" stroke=\"var(--prn-blue, #0071e3)\" stroke-width=\"1.6\" marker-end=\"url(#sd-arrow)\" stroke-dasharray=\"6 3\"/>\n<text x=\"243\" y=\"205\" text-anchor=\"middle\" font-size=\"12.5\" fill=\"var(--prn-label, #1d1d1f)\">Update transaction</text>\n<text x=\"243\" y=\"229\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--prn-label-2, #424245)\">Update process data</text>\n<line x1=\"609\" y1=\"276\" x2=\"365\" y2=\"276\" stroke=\"var(--prn-label-2, #424245)\" stroke-width=\"1.6\" marker-end=\"url(#sd-arrow)\"/>\n<text x=\"487\" y=\"267\" text-anchor=\"middle\" font-size=\"12.5\" fill=\"var(--prn-label, #1d1d1f)\">2. Antwort auf Kündigung</text>\n<text x=\"487\" y=\"291\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--prn-label-2, #424245)\">AS4 · PI 55017, 55018 · E_0614</text>\n<text x=\"487\" y=\"304\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--prn-label-2, #424245)\">E_0614 — Kündigung Vertrag prüfen</text>\n<line x1=\"365\" y1=\"338\" x2=\"121\" y2=\"338\" stroke=\"var(--prn-blue, #0071e3)\" stroke-width=\"1.6\" marker-end=\"url(#sd-arrow)\" stroke-dasharray=\"6 3\"/>\n<text x=\"243\" y=\"329\" text-anchor=\"middle\" font-size=\"12.5\" fill=\"var(--prn-label, #1d1d1f)\">Update transaction</text>\n<text x=\"243\" y=\"353\" text-anchor=\"middle\" font-size=\"11\" fill=\"var(--prn-label-2, #424245)\">Update process data</text>\n</svg>"} titel="LFN" />

<a id="abschnitt-schritte"></a>

## Process steps

<Schritt nr="1" anker="schritt-1" richtung="ausgehend" kopf={{"links": {"label": "LFN", "eigen": true}, "rechts": {"label": "LFA"}}}>

### Contract termination

<Schrittskizze sicht={{"label": "LFN"}} zeilen={[{"art": "ausloeser", "werte": ["START_KUENDIGUNG"]}, {"art": "senden", "label": "LFA", "weg": "AS4", "nachrichten": [{"nr": "55016", "titel": "Contract termination"}]}, {"art": "fortschreiben"}]} />

<div data-teil="pruefis">

**Check identifiers**
- [55016](/en/schnittstellen/202604/pruefi/UTILMD/PI_55016) — Contract termination · AS4

</div>

**Flow**

<div data-ablauf>

<Stepper>
<ol>

<li data-teil="ausloeser">

**Prozessauslöser** [`START_KUENDIGUNG`](/en/api/202604/ausloeser-lf/start-kuendigung) <OpenPlaygroundButton server={"https://api.macoapp.de"} url={"/inbound"} method={"post"} defaultBody={"{\n  \"stammdaten\": {\n    \"MARKTLOKATION\": [\n      {\n        \"boTyp\": \"MARKTLOKATION\",\n        \"marktlokationsId\": \"50754496000\",\n        \"sparte\": \"STROM\",\n        \"versionStruktur\": \"1\"\n      }\n    ]\n  },\n  \"transaktionsdaten\": {\n    \"absender\": {\n      \"boTyp\": \"MARKTTEILNEHMER\",\n      \"rollencodenummer\": \"9903526000002\",\n      \"rollencodetyp\": \"BDEW\",\n      \"versionStruktur\": \"1\"\n    },\n    \"empfaenger\": {\n      \"boTyp\": \"MARKTTEILNEHMER\",\n      \"rollencodenummer\": \"9979052000006\",\n      \"rollencodetyp\": \"BDEW\",\n      \"versionStruktur\": \"1\"\n    },\n    \"kategorie\": \"E35\",\n    \"sparte\": \"STROM\",\n    \"transaktionsgrund\": \"E03\",\n    \"transaktionsgrundergaenzung\": \"ZW4\",\n    \"vertragsende\": \"2025-10-31T23:00:00Z\"\n  },\n  \"zusatzdaten\": {\n    \"eventname\": \"START_KUENDIGUNG\",\n    \"prozessId\": \"00505688-E4A2-1EDF-A0C2-C81842E2515E\"\n  }\n}"} security={[{"bearer": []}]}>Ausprobieren</OpenPlaygroundButton>

The backend triggers this step with this event.

</li>

<li data-teil="nachricht">

Message to **LFA** · AS4

</li>

<li data-teil="schnittstelle" data-art="fortschreiben">

**Write endpoint**
- Transaction updated — [Update process data](/en/api/202604/backend-schreiben-lf/updateprocessdata#prozessdaten-aktualiseren) `POST /updateProcessData` <OpenPlaygroundButton server={"https://mock.macoapp.de"} url={"/updateProcessData"} method={"post"} queryParams={[{"name": "command", "isRequired": false, "defaultValue": "AKTUALISIEREN_PROZESSDATEN", "type": "string"}]} defaultBody={"{\n  \"stammdaten\": {\n    \"MARKTLOKATION\": [\n      {\n        \"boTyp\": \"MARKTLOKATION\",\n        \"marktlokationsId\": \"50359445704\",\n        \"sparte\": \"STROM\",\n        \"versionStruktur\": \"1\"\n      }\n    ],\n    \"NETZNUTZUNGSVERTRAG\": [\n      {\n        \"boTyp\": \"VERTRAG\",\n        \"sparte\": \"STROM\",\n        \"versionStruktur\": \"1\",\n        \"vertragsart\": \"NETZNUTZUNGSVERTRAG\",\n        \"vertragsende\": \"2025-10-27T23:00:00Z\"\n      }\n    ]\n  },\n  \"transaktionsdaten\": {\n    \"absender\": {\n      \"boTyp\": \"MARKTTEILNEHMER\",\n      \"rollencodenummer\": \"9904383000003\",\n      \"rollencodetyp\": \"BDEW\",\n      \"versionStruktur\": \"1\"\n    },\n    \"datenaustauschreferenz\": \"401309049419\",\n    \"dokumentennummer\": \"000276528014\",\n    \"empfaenger\": {\n      \"boTyp\": \"MARKTTEILNEHMER\",\n      \"rollencodenummer\": \"9905079000000\",\n      \"rollencodetyp\": \"BDEW\",\n      \"versionStruktur\": \"1\"\n    },\n    \"kategorie\": \"E35\",\n    \"nachrichtendatum\": \"2024-04-01T22:42:00Z\",\n    \"nachrichtenreferenznummer\": \"000276528014\",\n    \"pruefidentifikator\": \"55016\",\n    \"sparte\": \"STROM\",\n    \"transaktionsgrund\": \"E03\",\n    \"transaktionsgrundergaenzung\": \"ZW4\",\n    \"vertragsende\": \"2025-10-27T23:00:00Z\",\n    \"vorgangsnummer\": \"2P_00000000000319961872\"\n  }\n}"} security={[{"bearer": []}]}>Try it out</OpenPlaygroundButton>

Updates the existing transaction in the backend once the message has been created.

</li>

</ol>
</Stepper>

</div>

</Schritt>

<Schritt nr="2" anker="schritt-2" richtung="eingehend" kopf={{"links": {"label": "LFN", "eigen": true}, "rechts": {"label": "LFA"}}}>

### Response to contract termination

<Schrittskizze sicht={{"label": "LFN"}} zeilen={[{"art": "empfangen", "label": "LFA", "weg": "AS4", "nachrichten": [{"nr": "55017", "titel": "Confirmation of contract termination"}, {"nr": "55018", "titel": "Rejection of contract termination"}]}, {"art": "aperak", "werte": ["Z33"]}, {"art": "fortschreiben"}, {"art": "lesen_verarbeitung", "schnittstellen": [{"label": "Read balancing"}, {"label": "Read grid usage contract"}, {"label": "Read energy supply contract"}]}]} />

<div data-teil="pruefis">

**Check identifiers**
- [55017](/en/schnittstellen/202604/pruefi/UTILMD/PI_55017) — Confirmation contract termination · AS4
- [55018](/en/schnittstellen/202604/pruefi/UTILMD/PI_55018) — Rejection contract termination · AS4

</div>

**Flow**

<div data-ablauf>

<Stepper>
<ol>

<li data-teil="nachricht">

Message from **LFA** · AS4

<div data-teil="antwortbaum">

**Response per decision tree**
- `55017`, `55018` → [E_0614](/en/referenz/202604/ebd/E_0614) · LF · Check contract termination

</div>

</li>

<li data-teil="aperak">

**APERAK checks**
- `55017`, `55018` → `Z33` — APERAK check: Is referenced message known ?

</li>

<li data-teil="schnittstelle" data-art="fortschreiben">

**Write endpoint**
- Transaction updated — [Update process data](/en/api/202604/backend-schreiben-lf/updateprocessdata#prozessdaten-aktualiseren) `POST /updateProcessData` <OpenPlaygroundButton server={"https://mock.macoapp.de"} url={"/updateProcessData"} method={"post"} queryParams={[{"name": "command", "isRequired": false, "defaultValue": "AKTUALISIEREN_PROZESSDATEN", "type": "string"}]} defaultBody={"{\n  \"stammdaten\": {\n    \"BILANZIERUNG\": [\n      {\n        \"boTyp\": \"BILANZIERUNG\",\n        \"versionStruktur\": \"1\",\n        \"vorjahresverbrauch\": {\n          \"einheit\": \"KWH\",\n          \"wert\": 6460\n        }\n      }\n    ]\n  },\n  \"transaktionsdaten\": {\n    \"absender\": {\n      \"boTyp\": \"MARKTTEILNEHMER\",\n      \"rollencodenummer\": \"9903448000007\",\n      \"rollencodetyp\": \"BDEW\",\n      \"versionStruktur\": \"1\"\n    },\n    \"anfragereferenznummer\": \"PCL09023100613515599116940000022246\",\n    \"antwortstatus\": \"A09\",\n    \"antwortstatusCodeliste\": \"E_0614\",\n    \"datenaustauschreferenz\": \"P102845739A\",\n    \"dokumentennummer\": \"P102845739A-1\",\n    \"empfaenger\": {\n      \"boTyp\": \"MARKTTEILNEHMER\",\n      \"rollencodenummer\": \"9911694000002\",\n      \"rollencodetyp\": \"BDEW\",\n      \"versionStruktur\": \"1\"\n    },\n    \"endezumtermin\": \"2025-11-30T23:00:00Z\",\n    \"kategorie\": \"E35\",\n    \"nachrichtendatum\": \"2024-04-01T15:47:00Z\",\n    \"nachrichtenreferenznummer\": \"1\",\n    \"pruefidentifikator\": \"55017\",\n    \"sparte\": \"STROM\",\n    \"transaktionsgrund\": \"E03\",\n    \"transaktionsgrundergaenzung\": \"ZW4\",\n    \"vorgangsnummer\": \"ECOUNT_207917572\"\n  }\n}"} examples={[{"mediaType": "application/json", "examples": [{"name": "55017", "summary": "55017 — Bestätigung Kündigung", "value": {"stammdaten": {"BILANZIERUNG": [{"boTyp": "BILANZIERUNG", "versionStruktur": "1", "vorjahresverbrauch": {"wert": 6460, "einheit": "KWH"}}]}, "transaktionsdaten": {"datenaustauschreferenz": "P102845739A", "sparte": "STROM", "transaktionsgrund": "E03", "transaktionsgrundergaenzung": "ZW4", "vorgangsnummer": "ECOUNT_207917572", "pruefidentifikator": "55017", "absender": {"boTyp": "MARKTTEILNEHMER", "versionStruktur": "1", "rollencodenummer": "9903448000007", "rollencodetyp": "BDEW"}, "empfaenger": {"boTyp": "MARKTTEILNEHMER", "versionStruktur": "1", "rollencodenummer": "9911694000002", "rollencodetyp": "BDEW"}, "dokumentennummer": "P102845739A-1", "kategorie": "E35", "nachrichtendatum": "2024-04-01T15:47:00Z", "nachrichtenreferenznummer": "1", "anfragereferenznummer": "PCL09023100613515599116940000022246", "antwortstatus": "A09", "antwortstatusCodeliste": "E_0614", "endezumtermin": "2025-11-30T23:00:00Z"}}}, {"name": "55018", "summary": "55018 — Ablehnung Kündigung", "value": {"stammdaten": {"ENERGIELIEFERVERTRAG": [{"boTyp": "VERTRAG", "versionStruktur": "1", "vertragsart": "ENERGIELIEFERVERTRAG", "sparte": "STROM", "vertragskonditionen": {"kuendigungsfrist": {"zeitraumText": "03MQ"}}}]}, "transaktionsdaten": {"datenaustauschreferenz": "DAFCWAEUJDPLAJ", "sparte": "STROM", "transaktionsgrund": "E03", "vorgangsnummer": "24062416225400000000000102159662022", "pruefidentifikator": "55018", "absender": {"boTyp": "MARKTTEILNEHMER", "versionStruktur": "1", "gewerbekennzeichnung": true, "rollencodenummer": "9903729000007", "rollencodetyp": "BDEW", "ansprechpartner": {"boTyp": "ANSPRECHPARTNER", "versionStruktur": "1", "nachname": "P GETTY", "rufnummern": [{"nummerntyp": "RUF_DURCHWAHL", "rufnummer": "+3222271020"}]}}, "empfaenger": {"boTyp": "MARKTTEILNEHMER", "versionStruktur": "1", "gewerbekennzeichnung": true, "rollencodenummer": "9977842000004", "rollencodetyp": "BDEW"}, "dokumentennummer": "DA342411041308449903323000007541014", "kategorie": "E35", "nachrichtendatum": "2025-06-05T12:31:00Z", "nachrichtenreferenznummer": "DAKLKYLSHQPTDN", "anfragereferenznummer": "KDG123456", "gueltigAb": "2025-09-30T22:00:00Z", "antwortstatus": "A14", "antwortstatusCodeliste": "E_0614", "datumKuendigungLf": "2025-10-31T23:00:00Z"}, "zusatzdaten": {}}}]}]} security={[{"bearer": []}]}>Try it out</OpenPlaygroundButton>

Updates the existing transaction in the backend with the data of the incoming message.

</li>

<li data-teil="lesen" data-stufe="verarbeitung">

**Load data for processing**
- [Read balancing](/en/api/202604/backend-lesen/getaccountingbasic#bilanzierung-lesen) `GET /getAccountingBasic` <OpenPlaygroundButton server={"https://mock.macoapp.de"} url={"/getAccountingBasic"} method={"get"} queryParams={[{"name": "parameter1", "isRequired": true, "defaultValue": "74018657187", "defaultActive": true, "type": "string"}, {"name": "parameter2", "isRequired": true, "defaultValue": "MALO", "defaultActive": true, "enum": ["MALO", "MELO", "NELO", "TECHNISCHE_RESSOURCE", "STEUERBARE_RESOURCE", "TRANCHE"], "type": "string"}, {"name": "parameter3", "isRequired": true, "defaultValue": "2024-06-28T12:18:00Z", "defaultActive": true, "type": "string"}, {"name": "parameter4", "isRequired": true, "defaultValue": "2024-06-28T12:18:00Z", "defaultActive": true, "type": "string"}, {"name": "command", "isRequired": false, "defaultValue": "SAP_LESEN_BILANZIERUNG_BASIS", "type": "string"}]} security={[{"bearer": []}]}>Try it</OpenPlaygroundButton>
- [Read grid usage contract](/en/api/202604/backend-lesen/getgridusagecontractbasic#netznutzungsvertrag-lesen) `GET /getGridUsageContractBasic` <OpenPlaygroundButton server={"https://mock.macoapp.de"} url={"/getGridUsageContractBasic"} method={"get"} queryParams={[{"name": "parameter1", "isRequired": true, "defaultValue": "74018657187", "defaultActive": true, "type": "string"}, {"name": "parameter2", "isRequired": false, "defaultValue": "MALO", "enum": ["MALO", "MELO", "NELO", "TECHNISCHE_RESSOURCE", "STEUERBARE_RESOURCE", "TRANCHE"], "type": "string"}, {"name": "parameter3", "isRequired": true, "defaultValue": "2024-06-28T12:18:00Z", "defaultActive": true, "type": "string"}, {"name": "parameter4", "isRequired": false, "defaultValue": "2024-06-28T12:18:00Z", "type": "string"}]} security={[{"bearer": []}]}>Try it</OpenPlaygroundButton>
- [Read energy supply contract](/en/api/202604/backend-lesen/getenergysupplycontractbasic#energieliefervertrag-lesen) `GET /getEnergySupplyContractBasic` <OpenPlaygroundButton server={"https://mock.macoapp.de"} url={"/getEnergySupplyContractBasic"} method={"get"} queryParams={[{"name": "parameter1", "isRequired": true, "defaultValue": "74018657187", "defaultActive": true, "type": "string"}, {"name": "parameter2", "isRequired": true, "defaultValue": "MALO", "defaultActive": true, "enum": ["MALO", "MELO", "NELO", "TECHNISCHE_RESSOURCE", "STEUERBARE_RESOURCE", "TRANCHE"], "type": "string"}, {"name": "parameter3", "isRequired": true, "defaultValue": "2024-06-28T12:18:00Z", "defaultActive": true, "type": "string"}, {"name": "parameter4", "isRequired": true, "defaultValue": "2024-06-28T12:18:00Z", "defaultActive": true, "type": "string"}, {"name": "command", "isRequired": false, "defaultValue": "SAP_LESEN_ENERGIELIEFERVERTRAG_BASIS", "type": "string"}]} security={[{"bearer": []}]}>Try it</OpenPlaygroundButton>

</li>

</ol>
</Stepper>

</div>

</Schritt>

<details>
<summary>Decision trees of this process</summary>

| EBD | Name |
|---|---|
| [E_0614](/referenz/202604/ebd/E_0614) | Check contract termination |

</details>

<a id="abschnitt-informationen"></a>

## Process information

Wording of the consolidated version, profile ch. 1.2.1, pp. 7–8.

<Stepper>
<ol>

<li data-blatt="vorbedingungen">

### Preconditions

- In the case of a consuming market location: LFN holds the power of attorney of the final customer to issue the contract termination on their behalf.
- In the case of a generating market location or a tranche: LFN holds the power of attorney of the EZ to issue the contract termination on its behalf.
- The MaLo-ID of the market location is known or, in the case of a tranched market location, the MaLo-ID of the tranche is known.

</li>

<li data-blatt="ergebnisse">

### Results

Immediately upon confirming the contract termination to the LFN, the LFA is also obliged to trigger the use case “[End of supply from LF to NB](/en/prozessdoku/202604/LF/GPKE-Teil2-lieferende-von-lf-an-nb)” with the NB.

</li>

<li data-blatt="fehlerfall">

### Error case

#### Result in the error case

- In the case of a consuming market location: The electricity supply contract concluded between the final customer and LFA for the named consuming market location has not been terminated.
- In the case of a generating market location or a tranche: the electricity purchase contract concluded between the EZ and LFA for the named generating market location or the named tranche has not been terminated.
- If required, the LFN sends a contract termination to the LFA again.

#### Error cases

- The LFA is not assigned to the market location or tranche specified by the LFN at the contract termination date.
- The contractual situation of LFA does not permit the requested contract termination of LFN.

</li>

<li data-blatt="anforderungen">

### Further requirements

- In the case of a consuming market location:
  - A substitute supply is not a contractual relationship requiring termination; a contract termination is therefore not necessary (cf. § 38 para. 4 EnWG). If a LFN nevertheless sends the E/G a contract termination for the earliest possible point in time or for a fixed point in time in the future, the E/G consents to the contract termination provided there are no grounds for rejection.
  - Notwithstanding the option available to the final customer at any time to terminate their electricity supply contract in writing, LFA may not reject a contract termination notified in accordance with this use case solely by invoking non-compliance with a contractually agreed form. In this case it must also accept and process a contract termination in electronic form using this use case.
  - Note: The use case does not cover the case in which the final customer terminates the electricity supply contract with LFA themselves. If the final customer terminates in advance, LFA must initiate the use case “[End of supply from LF to NB](/en/prozessdoku/202604/LF/GPKE-Teil2-lieferende-von-lf-an-nb)” towards NB immediately upon drafting the termination confirmation for the final customer.
- In the case of a generating market location or a tranche:
  - Notwithstanding the option available to the EZ at any time to terminate its electricity purchase contract in writing, LFA may not reject a contract termination notified in accordance with this use case solely by invoking non-compliance with a contractually agreed form. In this case it must also accept and process a contract termination in electronic form using this use case.
  - Note: the use case does not cover the case in which the EZ itself terminates the electricity purchase contract towards LFA. If the EZ terminates in advance itself, the use case „[End of supply from LF to NB](/en/prozessdoku/202604/LF/GPKE-Teil2-lieferende-von-lf-an-nb)“ must be triggered by LFA towards NB immediately upon drafting the termination confirmation to the EZ.
- In the interest of a smooth switching process and in order to avoid subsequent clarification cases, it is advisable to generally precede a use case “[Start of supply](/en/prozessdoku/202604/LF--LFN/GPKE-Teil2-lieferbeginn)” with the use case “Contract termination”.

</li>

<li data-blatt="anlass">

### Trigger

- In the case of a consuming market location: LFN receives the order from the final customer for the contract termination of the existing electricity supply contract.
- In the case of a generating market location or a tranche: LFN receives the order from the EZ for the contract termination of the existing electricity purchase contract.

**Runs beforehand:** [Determination of the MaLo ID of the market location](/en/prozessdoku/202604/LF/GPKE-Teil2-ermittlung-der-malo-id-der-marktlokation) — these processes name the one shown here in their result.

</li>

<li data-blatt="erste-nachricht">

### First message

The party involved on this page is itself the sender of: „Contract termination“ to **LFA** (step 1).

</li>

<li data-blatt="ziel">

### Objective

- The electricity supply contract concluded between the final customer and the LFA for the named consuming market location has been terminated, or
- the electricity purchase contract concluded between EZ and LFA for the named generating market location or the named tranche has been terminated.

</li>

</ol>
</Stepper>

<a id="abschnitt-sichten"></a>

## Other views of the process

The same process through the eyes of the other parties involved: the same steps, each read from their point of view.

- [View LFA](/en/prozessdoku/202604/LF--LFA/GPKE-Teil2-kuendigung) — the transferring supplier · market role LF

<Hinweisbereich>

*The steps are the **possible** messages of this process, not a sequence — the source lists neither conditions nor alternatives. The small box on the step names the own view on the left: with **←** it receives, with **→** it sends. Collapsed steps run between other market partners.*

</Hinweisbereich>
