[MSB] START_VERSAND_RECHNUNG
Marktrolle MSB · Formatversion 202610 · BO4E-Schema 1.7.8
Stammdaten
Unter diesem Topic ist genau einer der folgenden 2 Prüfidentifikatoren zulässig — welcher, entscheidet der Event-Prozess.
| Prüfi | Scope | Anwendungsfall | Festlegung | Kommunikation |
|---|---|---|---|---|
| PI_31003 | INVOIC | WiM-Rechnung | WiM Strom Teil 1 | MSB (entspricht MSBA am Objekt Messlokation) → MSB (entspricht MSBN am Objekt Messlokation oder gMSB am Objekt Messlokation) |
| PI_31004 | INVOIC | Stornorechnung | Prozessbeschreibung zur Kapazitätsabrechnung an Ausspeisepunkten zu Letztverbrauchern | NB → TK (KN) |
Die Stammdaten der 2 Prüfidentifikatoren in einer Struktur — eine Spalte je Prüfidentifikator, wie im Anwendungshandbuch. Ein Wert in der Spalte heißt, dass das Feld zu diesem Prüfidentifikator gehört: Muss, wenn seine Spezifikation es verlangt, sonst Kann. Eine leere Zelle heißt »gehört nicht dazu«, nicht »unbekannt«. Vorausgewählt ist der erste; die übrigen schaltet die Leiste über der Tabelle zu.
| Struktur (BO4E) | Beschreibung | Format | 31003 | 31004 | Bedingung |
|---|---|---|---|---|---|
| stammdaten | — | object | Kann | Kann | — |
| MESSLOKATION [ ] * | — | object[] | Muss | Kann | — |
| messadresse *00010 | Die Adresse, an der die Messeinrichtungen zu finden sind.( Nur angeben, wenn diese von der Adresse der Marktlokation abweicht.) Achtung: Es darf immer nur eine Art der Ortsangabe vorhanden sein (entweder eine Adresse oder eine GeoKoordinate oder eine Katasteradresse. | Adresse | Muss | — | — |
| messlokationsId *00020 | Die Messlokations-Identifikation. Das ist die frühere Zählpunktbezeichnung, z.B. DE 47108151234567 | string | Muss | Kann | — |
| RECHNUNG [ ] * | — | object[] | Muss | Muss | — |
| ausfuehrungsdatum00030 | Das Datum an dem die Leistung erbracht wurde. | string (date-time) | Kann | Kann | — |
| bearbeitungsdatum *00040 | bearbeitungsdatum | string (date-time) | Muss | Muss | — |
| faelligkeitsdatum *00050 | Zu diesem Datum ist die Zahlung fällig. | string (date-time) | Muss | Muss | — |
| istReverseCharge00060 | Kennzeichen, ob bei der Rechnung das Reverse Charge verfahren angewendet wird | boolean | Kann | Kann | — |
| rechnungsdatum *00070 | Ausstellungsdatum der Rechnung. | string (date-time) | Muss | Muss | — |
| rechnungsstatus *00080 | Status der Rechnung zur Kennzeichnung des Bearbeitungsstandes. Details siehe ENUM Rechnungsstatus | Enum Rechnungsstatus | Muss | Muss | — |
DUPLIKAT | — | — | Muss | Muss | — |
ORIGINAL | — | — | Muss | Muss | — |
STORNIERT | — | — | Muss | Muss | — |
| rechnungstyp *00090 | Ein kontextbezogender Rechnungstyp, z.B. Netznutzungsrechnung. Details siehe ENUM Rechnungstyp | Enum Rechnungstyp | Muss | Muss | — |
ABSCHLUSSRECHNUNG | — | — | Muss | Muss | — |
ABSCHLAGSRECHNUNG | — | — | Muss | Muss | — |
TURNUSRECHNUNG | — | — | Muss | Muss | — |
MONATSRECHNUNG | — | — | Muss | Muss | — |
WIMRECHNUNG | — | — | Muss | Muss | — |
ZWISCHENRECHNUNG | — | — | Muss | Muss | — |
INTEGRIERTE_13TE_RECHNUNG | — | — | Muss | Muss | — |
ZUSAETZLICHE_13TE_RECHNUNG | — | — | Muss | Muss | — |
MEHRMINDERMENGENRECHNUNG | — | — | Muss | Muss | — |
MSBRECHNUNG | — | — | Muss | Muss | — |
KAPAZITAETSRECHNUNG | — | — | Muss | Muss | — |
SPERRUNG_INBETRIEBNAHME | — | — | Muss | Muss | — |
VERZUGSKOSTEN | — | — | Muss | Muss | — |
BLINDARBEIT | — | — | Muss | Muss | — |
SONDERRECHNUNG | — | — | Muss | Muss | — |
ABRECHNUNG_VON_KONFIGURATIONEN_UNIVERSALBESTELLPROZESS | — | — | Muss | Muss | — |
ABRECHNUNG_VON_TECHNIK | — | — | Muss | Muss | — |
| referenzDokumentennummer *00100 | referenzDokumentennummer | string | Muss | — | — |
| gesamtbrutto * | — | object | Muss | Muss | — |
| wert *00110 | Gibt den Betrag des Preises an. | number (float) | Muss | Muss | — |
| rechnungsperiode | — | object | Kann | Kann | — |
| enddatum00120 | enddatum | string (date-time) | Kann | Kann | — |
| startdatum00130 | startdatum | string (date-time) | Kann | Kann | — |
| rechnungspositionen [ ] * | — | object[] | Muss | — | — |
| artikelnummer *00140 | Kennzeichnung der Rechnungsposition mit der Standard-Artikelnummer des BDEW. Details BDEWArtikelnummer | string | Muss | — | — |
| ausfuehrungsdatum00150 | Das Datum an dem die Leistung erbracht wurde. | string (date-time) | Kann | — | — |
| lieferungBis00160 | Ende der Lieferung für die abgerechnete Leistung. | string (date-time) | Kann | — | — |
| lieferungVon00170 | Start der Lieferung für die abgerechnete Leistung. | string (date-time) | Kann | — | — |
| positionsnummer *00180 | Fortlaufende Nummer für die Rechnungsposition. | integer | Muss | — | — |
| einzelpreis * | — | object | Muss | — | — |
| bezugswert00190 | Einheit: Messgrößen, die per Messung oder Vorgabe ermittelt werden können | Enum Mengeneinheit | Kann | — | — |
W | — | — | Kann | — | — |
WH | — | — | Kann | — | — |
KW | — | — | Kann | — | — |
KWH | — | — | Kann | — | — |
KVARH | — | — | Kann | — | — |
MW | — | — | Kann | — | — |
MWH | — | — | Kann | — | — |
STUECK | — | — | Kann | — | — |
KUBIKMETER | — | — | Kann | — | — |
STUNDE | — | — | Kann | — | — |
TAG | — | — | Kann | — | — |
MONAT | — | — | Kann | — | — |
JAHR | — | — | Kann | — | — |
PROZENT | — | — | Kann | — | — |
ANZAHL | — | — | Kann | — | — |
VAR | — | — | Kann | — | — |
KVAR | — | — | Kann | — | — |
VARH | — | — | Kann | — | — |
KWHK | — | — | Kann | — | — |
Z16 | — | — | Kann | — | — |
KWT | — | — | Kann | — | — |
WATT_PRO_QUADRATMETER | — | — | Kann | — | — |
METER_PRO_SEKUNDE | — | — | Kann | — | — |
| wert *00200 | wert | number (float) | Muss | — | — |
| positionsMenge * | — | object | Muss | — | — |
| einheit *00210 | Einheit: Messgrößen, die per Messung oder Vorgabe ermittelt werden können | Enum Mengeneinheit | Muss | — | — |
W | — | — | Muss | — | — |
WH | — | — | Muss | — | — |
KW | — | — | Muss | — | — |
KWH | — | — | Muss | — | — |
KVARH | — | — | Muss | — | — |
MW | — | — | Muss | — | — |
MWH | — | — | Muss | — | — |
STUECK | — | — | Muss | — | — |
KUBIKMETER | — | — | Muss | — | — |
STUNDE | — | — | Muss | — | — |
TAG | — | — | Muss | — | — |
MONAT | — | — | Muss | — | — |
JAHR | — | — | Muss | — | — |
PROZENT | — | — | Muss | — | — |
ANZAHL | — | — | Muss | — | — |
VAR | — | — | Muss | — | — |
KVAR | — | — | Muss | — | — |
VARH | — | — | Muss | — | — |
KWHK | — | — | Muss | — | — |
Z16 | — | — | Muss | — | — |
KWT | — | — | Muss | — | — |
WATT_PRO_QUADRATMETER | — | — | Muss | — | — |
METER_PRO_SEKUNDE | — | — | Muss | — | — |
| wert *00220 | Wert | number (float) | Muss | — | — |
| teilsummeNetto * | — | object | Muss | — | — |
| wert *00230 | Gibt den Betrag des Preises an. | number (float) | Muss | — | — |
| teilsummeSteuer * | — | object | Muss | — | — |
| steuerkennzeichen *00240 | Kennzeichnung des Steuersatzes, bzw. Verfahrens. Details Steuerkennzeichen | string | Muss | — | — |
| zeitbezogeneMenge | — | object | Kann | — | — |
| einheit00250 | Einheit: Messgrößen, die per Messung oder Vorgabe ermittelt werden können | Enum Mengeneinheit | Kann | — | — |
W | — | — | Kann | — | — |
WH | — | — | Kann | — | — |
KW | — | — | Kann | — | — |
KWH | — | — | Kann | — | — |
KVARH | — | — | Kann | — | — |
MW | — | — | Kann | — | — |
MWH | — | — | Kann | — | — |
STUECK | — | — | Kann | — | — |
KUBIKMETER | — | — | Kann | — | — |
STUNDE | — | — | Kann | — | — |
TAG | — | — | Kann | — | — |
MONAT | — | — | Kann | — | — |
JAHR | — | — | Kann | — | — |
PROZENT | — | — | Kann | — | — |
ANZAHL | — | — | Kann | — | — |
VAR | — | — | Kann | — | — |
KVAR | — | — | Kann | — | — |
VARH | — | — | Kann | — | — |
KWHK | — | — | Kann | — | — |
Z16 | — | — | Kann | — | — |
KWT | — | — | Kann | — | — |
WATT_PRO_QUADRATMETER | — | — | Kann | — | — |
METER_PRO_SEKUNDE | — | — | Kann | — | — |
| wert00260 | Wert | number (float) | Kann | — | — |
| steuerbetraege [ ] * | — | object[] | Muss | Muss | — |
| basiswert *00270 | Nettobetrag für den die Steuer berechnet wurde. Z.B. 200 | number (float) | Muss | Muss | — |
| steuerkennzeichen *00280 | Kennzeichnung des Steuersatzes, bzw. Verfahrens. Details Steuerkennzeichen | string | Muss | Muss | — |
| steuerwert *00290 | Aus dem Basiswert berechnete Steuer. Z.B. 38 (bei UST_19), falls Basiswert 200 ist. | number (float) | Muss | Muss | — |
| basiswertVorausbezahlt00300 | basiswertVorausbezahlt | number (float) | — | Kann | — |
| steuerwertVorausbezahlt00310 | steuerwertVorausbezahlt | number (float) | — | Kann | — |
| zuZahlen * | — | object | Muss | Muss | — |
| wert *00320 | Gibt den Betrag des Preises an. | number (float) | Muss | Muss | — |
| istSelbstausgestellt *00330 | Kennzeichen, ob es sich um eine selbstausgestellte Rechnung handelt | boolean | — | Muss | — |
| netzkonto00340 | netzkonto | string | — | Kann | — |
| originalRechnungsnummer *00350 | Im Falle einer Stornorechnung (storno = true) steht hier die Rechnungsnummer der stornierten Rechnung. | string | — | Muss | — |
| referenzNachrichtendatum *00360 | referenzNachrichtendatum | string | — | Muss | — |
| gemeinderabatt | — | object | — | Kann | — |
| wert00370 | Wert | number (float) | — | Kann | — |
| vorausgezahlt | — | object | — | Kann | — |
| wert00380 | Gibt den Betrag des Preises an. | number (float) | — | Kann | — |
| vorlaeufigerAbrechnungszeitraum | — | object | — | Kann | — |
| enddatum00390 | enddatum | string (date-time) | — | Kann | — |
| startdatum00400 | startdatum | string (date-time) | — | Kann | — |
| MARKTLOKATION [ ] | — | object[] | — | Kann | — |
| lokationsadresse00410 | Die Adresse, an der die Energie-Lieferung oder -Einspeisung erfolgt. | Adresse | — | Kann | — |
| marktlokationsId00420 | Identifikationsnummer einer Marktlokation, an der Energie entweder verbraucht, oder erzeugt wird | string | — | Kann | — |
| NETZLOKATION [ ] | — | object[] | — | Kann | — |
| netzlokationsId00430 | Identifikationsnummer einer Netzlokation, an der Energie entweder verbraucht, oder erzeugt wird (Like MarktlokationsId Marktlokation) | string | — | Kann | — |
| STEUERBARE_RESSOURCE [ ] | — | object[] | — | Kann | — |
| ressourcenId00440 | ressourcenId | string | — | Kann | — |
| TECHNISCHE_RESSOURCE [ ] | — | object[] | — | Kann | — |
| ressourcenId00450 | ressourcenId | string | — | Kann | — |
Kette dieses Auslösers
Das Ereignis löst die Nachricht aus. Der Marktpartner antwortet mit einer der genannten Antworten, und danach schreibt die MACO APP den Vorgang in Ihr Backendsystem.
| Nachricht | Antworten | Schreibaufruf nach der Antwort |
|---|---|---|
| 31003 | 33001, 33002, 33003, 33004 | POST /updateProcessData (abgeleitet) |
| 31004 | 33001, 33002 | POST /updateProcessData (abgeleitet) |
Dieses Ereignis löst Schritte in diesen Rollensichten aus:
| Prozess | Beteiligter | Regelwerk | Sparte |
|---|---|---|---|
| Abrechnung Leistungen des Preisblatts B des MSB zwischen MSB und LF | MSB | AWH Prozesse zur Änderung der Technik an Lokationen | Strom |
| Abrechnung Leistungen des Preisblatts B des MSB zwischen MSB und NB | MSB | AWH Prozesse zur Änderung der Technik an Lokationen | Strom |
| Abrechnung von Dienstleistungen im Messwesen | MSBA | AWH WiM Gas 2.0 | Gas |
| Abrechnung Leistungen des Preisblatts A des MSB zwischen MSB und LF | MSB | GPKE Teil 3 | Strom |
| Abrechnung Leistungen des Preisblatts A des MSB zwischen MSB und NB | MSB | GPKE Teil 3 | Strom |
| Abrechnung Messstellenbetrieb gegenüber dem LF | MSB-MALO | WiM Strom Teil 1 | Strom |
| Abrechnung Messstellenbetrieb mit iMS gegenüber dem NB | MSB-MALO | WiM Strom Teil 1 | Strom |
| Abrechnung von Dienstleistungen | MSBA | WiM Strom Teil 1 | Strom |
| Abrechnung einer für den ESA erbrachten Leistung | MSB | WiM Strom Teil 2 | Strom |
Transaktionsdaten
Der Umschlag der Nachricht. Pflichtfelder müssen beim Trigger-Aufruf gesetzt sein.
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
pruefidentifikator | — | nein | Wird dynamisch im Event-Prozess ermittelt (Entscheidungsgrundlage: rechnungstyp). Ein vom Sender mitgegebener Wert wird ignoriert. Im Topic mögliche Prüfis — 31003, 31004. Mögliche Werte: 31003, 31004 |
Zusatzdaten
eventname ist auf START_VERSAND_RECHNUNG festgelegt. Dieser Wert bleibt auch in der englischen Fassung deutsch, weil Camunda darüber korreliert.
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
prozessId | string | ja | — |
eventname | const START_VERSAND_RECHNUNG | ja | — |
Antwort
Der Auslöser vergibt einen eigenen businessKey. Die MACO APP übernimmt weder den businessKey noch die prozessId des aufrufenden Systems als Kennung der Prozessinstanz. Der businessKey der Antwort entsteht beim Start des Prozesses und ist neu. Der Rumpf dieses Aufrufs führt kein Feld businessKey; es gibt also keine Stelle, an der ein eigener Schlüssel mitgegeben werden könnte. Die mitgegebene prozessId (Pflichtfeld dieses Aufrufs) bleibt die Belegnummer des Backends: sie kommt in zusatzdaten.prozessId der Callbacks zurück — dort Pflicht nur bei MaloIdent (03002/03003), sonst optional.
201 — Erfolg. Erfolgsmeldung auf Prozessdaten API Aufruf.
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
businessKey | string (uuid) | ja | Einzigartige Kennung des Geschäftsprozesses |
message | string | ja | Nachricht mit Details zum ausgelösten Event — Beispiel der Quelle: received event XXXXXXXXXXXX with id at 2024-08-08T12:58:22Z and started process with businessKey 4c7170ed-3518-41ee-8582-39ab65b00107 |
400 — Fehler. Fehlermeldung auf Prozessdaten API Aufruf.
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
errorCode | string | nein | Error identifier — Beispiel der Quelle: 400 |
message | string | nein | Technische Meldung — Beispiel der Quelle: Validation Failed |
Welchen Rumpf die Callbacks updateProcessData und createProcessData senden, ist am NiFi-Fluss der MACO APP gemessen: {stammdaten, transaktionsdaten, zusatzdaten} ohne Umschlag, der businessKey innerhalb von zusatzdaten. Nicht gemessen ist das an einem mitgeschnittenen Aufruf, und nicht für MaloIdent (03002/03003).
Was businessKey, prozessId und targetBusinessKey unterscheidet, steht auf Schlüssel und Zuordnung.