[MSB] START_VERSAND_RECHNUNG
Marktrolle MSB · Formatversion 202610 · BO4E-Schema 1.7.8
Master data
Exactly one of the following 2 check identifiers is permitted under this topic — which one is decided by the event process.
| Prüfi | Scope | Use case | Regulatory determination | Communication |
|---|---|---|---|---|
| PI_31003 | INVOIC | WiM invoice | WiM electricity part 1 | MSB (corresponds to MSBA on the object metering location) → MSB (corresponds to MSBN on the object metering location or gMSB on the object metering location) |
| PI_31004 | INVOIC | Cancellation invoice | Process description for capacity billing at exit points to final consumers | NB → TK (KN) |
The master data of the 2 check identifiers in one structure — one column per check identifier, as in the application handbook. A value in the column means that the field belongs to this check identifier: Must where its specification requires it, otherwise May. An empty cell means »not part of it«, not »unknown«. The first one is preselected; the bar above the table adds the others.
| Structure (BO4E) | Description | Format | 31003 | 31004 | Condition |
|---|---|---|---|---|---|
| stammdaten | — | object | May | May | — |
| MESSLOKATION [ ] * | — | object[] | Must | May | — |
| messadresse *00010 | The address at which the metering equipment is located.( Only specify if it differs from the address of the market location.) Attention: only one type of location information may ever be present (either an address or a geo coordinate or a cadastral address. | Adresse | Must | — | — |
| messlokationsId *00020 | The metering location identification. This is the former metering point identifier, e.g. DE 47108151234567 | string | Must | May | — |
| RECHNUNG [ ] * | — | object[] | Must | Must | — |
| ausfuehrungsdatum00030 | The date on which the service was rendered. | string (date-time) | May | May | — |
| bearbeitungsdatum *00040 | bearbeitungsdatum | string (date-time) | Must | Must | — |
| faelligkeitsdatum *00050 | Payment is due on this date. | string (date-time) | Must | Must | — |
| istReverseCharge00060 | Indicator whether the reverse charge procedure is applied to the invoice | boolean | May | May | — |
| rechnungsdatum *00070 | Issue date of the invoice. | string (date-time) | Must | Must | — |
| rechnungsstatus *00080 | Status of the invoice indicating the processing stage. For details see ENUM invoice status | Enum Rechnungsstatus | Must | Must | — |
DUPLIKAT | — | — | Must | Must | — |
ORIGINAL | — | — | Must | Must | — |
STORNIERT | — | — | Must | Must | — |
| rechnungstyp *00090 | A context-related invoice type, e.g. grid usage invoice. For details see ENUM Invoice type | Enum Rechnungstyp | Must | Must | — |
ABSCHLUSSRECHNUNG | — | — | Must | Must | — |
ABSCHLAGSRECHNUNG | — | — | Must | Must | — |
TURNUSRECHNUNG | — | — | Must | Must | — |
MONATSRECHNUNG | — | — | Must | Must | — |
WIMRECHNUNG | — | — | Must | Must | — |
ZWISCHENRECHNUNG | — | — | Must | Must | — |
INTEGRIERTE_13TE_RECHNUNG | — | — | Must | Must | — |
ZUSAETZLICHE_13TE_RECHNUNG | — | — | Must | Must | — |
MEHRMINDERMENGENRECHNUNG | — | — | Must | Must | — |
MSBRECHNUNG | — | — | Must | Must | — |
KAPAZITAETSRECHNUNG | — | — | Must | Must | — |
SPERRUNG_INBETRIEBNAHME | — | — | Must | Must | — |
VERZUGSKOSTEN | — | — | Must | Must | — |
BLINDARBEIT | — | — | Must | Must | — |
SONDERRECHNUNG | — | — | Must | Must | — |
ABRECHNUNG_VON_KONFIGURATIONEN_UNIVERSALBESTELLPROZESS | — | — | Must | Must | — |
ABRECHNUNG_VON_TECHNIK | — | — | Must | Must | — |
| referenzDokumentennummer *00100 | referenzDokumentennummer | string | Must | — | — |
| gesamtbrutto * | — | object | Must | Must | — |
| wert *00110 | Specifies the amount of the price. | number (float) | Must | Must | — |
| rechnungsperiode | — | object | May | May | — |
| enddatum00120 | enddatum | string (date-time) | May | May | — |
| startdatum00130 | startdatum | string (date-time) | May | May | — |
| rechnungspositionen [ ] * | — | object[] | Must | — | — |
| artikelnummer *00140 | Identification of the invoice line item with the standard article number of the BDEW. Details BDEW article number | string | Must | — | — |
| ausfuehrungsdatum00150 | The date on which the service was rendered. | string (date-time) | May | — | — |
| lieferungBis00160 | End of the supply for the billed service. | string (date-time) | May | — | — |
| lieferungVon00170 | Start of supply for the billed service. | string (date-time) | May | — | — |
| positionsnummer *00180 | Sequential number for the invoice line item. | integer | Must | — | — |
| einzelpreis * | — | object | Must | — | — |
| bezugswert00190 | Unit: measurands that can be determined by measurement or by specification | Enum Mengeneinheit | May | — | — |
W | — | — | May | — | — |
WH | — | — | May | — | — |
KW | — | — | May | — | — |
KWH | — | — | May | — | — |
KVARH | — | — | May | — | — |
MW | — | — | May | — | — |
MWH | — | — | May | — | — |
STUECK | — | — | May | — | — |
KUBIKMETER | — | — | May | — | — |
STUNDE | — | — | May | — | — |
TAG | — | — | May | — | — |
MONAT | — | — | May | — | — |
JAHR | — | — | May | — | — |
PROZENT | — | — | May | — | — |
ANZAHL | — | — | May | — | — |
VAR | — | — | May | — | — |
KVAR | — | — | May | — | — |
VARH | — | — | May | — | — |
KWHK | — | — | May | — | — |
Z16 | — | — | May | — | — |
KWT | — | — | May | — | — |
WATT_PRO_QUADRATMETER | — | — | May | — | — |
METER_PRO_SEKUNDE | — | — | May | — | — |
| wert *00200 | wert | number (float) | Must | — | — |
| positionsMenge * | — | object | Must | — | — |
| einheit *00210 | Unit: measurands that can be determined by measurement or by specification | Enum Mengeneinheit | Must | — | — |
W | — | — | Must | — | — |
WH | — | — | Must | — | — |
KW | — | — | Must | — | — |
KWH | — | — | Must | — | — |
KVARH | — | — | Must | — | — |
MW | — | — | Must | — | — |
MWH | — | — | Must | — | — |
STUECK | — | — | Must | — | — |
KUBIKMETER | — | — | Must | — | — |
STUNDE | — | — | Must | — | — |
TAG | — | — | Must | — | — |
MONAT | — | — | Must | — | — |
JAHR | — | — | Must | — | — |
PROZENT | — | — | Must | — | — |
ANZAHL | — | — | Must | — | — |
VAR | — | — | Must | — | — |
KVAR | — | — | Must | — | — |
VARH | — | — | Must | — | — |
KWHK | — | — | Must | — | — |
Z16 | — | — | Must | — | — |
KWT | — | — | Must | — | — |
WATT_PRO_QUADRATMETER | — | — | Must | — | — |
METER_PRO_SEKUNDE | — | — | Must | — | — |
| wert *00220 | Value | number (float) | Must | — | — |
| teilsummeNetto * | — | object | Must | — | — |
| wert *00230 | Specifies the amount of the price. | number (float) | Must | — | — |
| teilsummeSteuer * | — | object | Must | — | — |
| steuerkennzeichen *00240 | Identification of the tax rate or procedure. Details tax code | string | Must | — | — |
| zeitbezogeneMenge | — | object | May | — | — |
| einheit00250 | Unit: measurands that can be determined by measurement or by specification | Enum Mengeneinheit | May | — | — |
W | — | — | May | — | — |
WH | — | — | May | — | — |
KW | — | — | May | — | — |
KWH | — | — | May | — | — |
KVARH | — | — | May | — | — |
MW | — | — | May | — | — |
MWH | — | — | May | — | — |
STUECK | — | — | May | — | — |
KUBIKMETER | — | — | May | — | — |
STUNDE | — | — | May | — | — |
TAG | — | — | May | — | — |
MONAT | — | — | May | — | — |
JAHR | — | — | May | — | — |
PROZENT | — | — | May | — | — |
ANZAHL | — | — | May | — | — |
VAR | — | — | May | — | — |
KVAR | — | — | May | — | — |
VARH | — | — | May | — | — |
KWHK | — | — | May | — | — |
Z16 | — | — | May | — | — |
KWT | — | — | May | — | — |
WATT_PRO_QUADRATMETER | — | — | May | — | — |
METER_PRO_SEKUNDE | — | — | May | — | — |
| wert00260 | Value | number (float) | May | — | — |
| steuerbetraege [ ] * | — | object[] | Must | Must | — |
| basiswert *00270 | Net amount on which the tax was calculated. E.g. 200 | number (float) | Must | Must | — |
| steuerkennzeichen *00280 | Identification of the tax rate or procedure. Details tax code | string | Must | Must | — |
| steuerwert *00290 | Tax calculated from the base value. E.g. 38 (at UST_19) if the base value is 200. | number (float) | Must | Must | — |
| basiswertVorausbezahlt00300 | basiswertVorausbezahlt | number (float) | — | May | — |
| steuerwertVorausbezahlt00310 | steuerwertVorausbezahlt | number (float) | — | May | — |
| zuZahlen * | — | object | Must | Must | — |
| wert *00320 | Specifies the amount of the price. | number (float) | Must | Must | — |
| istSelbstausgestellt *00330 | Indicator whether the invoice is a self-billed invoice | boolean | — | Must | — |
| netzkonto00340 | netzkonto | string | — | May | — |
| originalRechnungsnummer *00350 | In the case of a cancellation invoice (storno = true), this contains the invoice number of the cancelled invoice. | string | — | Must | — |
| referenzNachrichtendatum *00360 | referenzNachrichtendatum | string | — | Must | — |
| gemeinderabatt | — | object | — | May | — |
| wert00370 | Value | number (float) | — | May | — |
| vorausgezahlt | — | object | — | May | — |
| wert00380 | Specifies the amount of the price. | number (float) | — | May | — |
| vorlaeufigerAbrechnungszeitraum | — | object | — | May | — |
| enddatum00390 | enddatum | string (date-time) | — | May | — |
| startdatum00400 | startdatum | string (date-time) | — | May | — |
| MARKTLOKATION [ ] | — | object[] | — | May | — |
| lokationsadresse00410 | The address at which the energy delivery or feed-in takes place. | Adresse | — | May | — |
| marktlokationsId00420 | Identification number of a market location at which energy is either consumed or generated | string | — | May | — |
| NETZLOKATION [ ] | — | object[] | — | May | — |
| netzlokationsId00430 | Identification number of a grid location at which energy is either consumed or generated (like MarktlokationsId market location) | string | — | May | — |
| STEUERBARE_RESSOURCE [ ] | — | object[] | — | May | — |
| ressourcenId00440 | ressourcenId | string | — | May | — |
| TECHNISCHE_RESSOURCE [ ] | — | object[] | — | May | — |
| ressourcenId00450 | ressourcenId | string | — | May | — |
Chain of this trigger
The event triggers the message. The market partner responds with one of the responses listed, and after that the MACO APP writes the transaction to your backend system.
| Message | Responses | Write call after the response |
|---|---|---|
| 31003 | 33001, 33002, 33003, 33004 | POST /updateProcessData (derived) |
| 31004 | 33001, 33002 | POST /updateProcessData (derived) |
This event triggers steps in these role views:
| Process | Party involved | Rulebook | Division |
|---|---|---|---|
| Billing of services of price sheet B of the MSB between MSB and LF | MSB | AWH processes for changing the technology at locations | Electricity |
| Billing of services of price sheet B of the MSB between MSB and NB | MSB | AWH processes for changing the technology at locations | Electricity |
| Billing of services in metering | MSBA | AWH WiM gas 2.0 | Gas |
| Billing of services of price sheet A of the MSB between MSB and LF | MSB | GPKE part 3 | Electricity |
| Billing of services of price sheet A of the MSB between MSB and NB | MSB | GPKE part 3 | Electricity |
| Billing of metering point operation to the LF | MSB-MALO | WiM electricity part 1 | Electricity |
| Billing of metering point operation with iMS to the NB | MSB-MALO | WiM electricity part 1 | Electricity |
| Billing of services | MSBA | WiM electricity part 1 | Electricity |
| Billing of a service rendered for the ESA | MSB | WiM electricity part 2 | Electricity |
Transaction data
The interchange envelope of the message. Mandatory fields must be set on the trigger call.
| Field | Type | Mandatory | Description |
|---|---|---|---|
pruefidentifikator | — | no | Determined dynamically in the event process (decision basis: rechnungstyp). A value supplied by the sender is ignored. Check identifiers possible in the topic — 31003, 31004. Possible values: 31003, 31004 |
Additional data
eventname is fixed to START_VERSAND_RECHNUNG. This value stays German in the English version as well, because Camunda correlates on it.
| Field | Type | Mandatory | Description |
|---|---|---|---|
prozessId | string | yes | — |
eventname | const START_VERSAND_RECHNUNG | yes | — |
Response
The trigger assigns its own businessKey. The MACO APP adopts neither the businessKey nor the prozessId of the calling system as the identifier of the process instance. The businessKey of the response is created when the process starts and is new. The body of this call carries no businessKey field; there is thus no place where a key of your own could be passed in. The prozessId passed in (a mandatory field of this call) remains the document number of the backend: it comes back in zusatzdaten.prozessId of the callbacks — mandatory there only for MaloIdent (03002/03003), otherwise optional.
201 — Success. Success message for the process data API call.
| Field | Type | Mandatory | Description |
|---|---|---|---|
businessKey | string (uuid) | yes | Unique identifier of the business process |
message | string | yes | Message with details of the triggered event — example from the source: received event XXXXXXXXXXXX with id at 2024-08-08T12:58:22Z and started process with businessKey 4c7170ed-3518-41ee-8582-39ab65b00107 |
400 — Error. Error message for the process data API call.
| Field | Type | Mandatory | Description |
|---|---|---|---|
errorCode | string | no | Error identifier — example from the source: 400 |
message | string | no | Technical message — example from the source: Validation Failed |
Which body the callbacks updateProcessData and createProcessData send is measured against the NiFi flow of the MACO APP: {stammdaten, transaktionsdaten, zusatzdaten} without an interchange envelope, the businessKey inside zusatzdaten. This is not measured against a recorded call, and not for MaloIdent (03002/03003).
What distinguishes businessKey, prozessId and targetBusinessKey is explained on Keys and assignment.