DiWaSS-Codelisten¶
Diese Seite ist die Nachschlagereferenz für alle kontrollierten Wertemengen, die eine DiWaSS-Übermittlung akzeptiert: Abfallcodelisten, Verpackungsarten, R-/D-Codes, Anhang-Klassifikationen, Transportmittel, Event-Codes. Für jede Liste steht hier, welche Werte zulässig sind, in welcher Schreibweise, in welchem Feld sie stehen und wie ein falscher Wert sich äußert.
Quelle der Wertemengen ist die EU-Spezifikation „DiWaSS API specifications - for 3rd parties”,
Mappe [Repositories] (Arbeitsmappen DIWASS - lists waste codes.xlsx,
Disposal and recovery codes (box 11).xlsx, Packaging type codes (box 7).xlsx,
Physical characteristics codes (box 13).xlsx, Means of transport codes.xlsx,
Event codes for sync.xlsx, Attachment types.docx), gegengeprüft gegen die DiWaSS-XSDs
(codelists.xsd, basetypes.xsd) und gegen die ZEDAL-Protos.
Zwei Prüfstufen — davon hängt das Fehlerbild ab¶
DiWaSS prüft Codelisten auf zwei völlig verschiedenen Ebenen. Wer das nicht trennt, sucht den Fehler an der falschen Stelle.
| Prüfstufe | Wo definiert | Betroffen | Symptom bei ungültigem Wert |
|---|---|---|---|
| XML-Schema | <xs:enumeration> bzw. <xs:pattern> in den DiWaSS-XSDs |
Verpackungsart, physikalische Beschaffenheit, Transportmittel, R-/D-Codes, Anhang-typeID, Ländercode, alle kleinen Wertemengen |
SOAP Fault, HTTP 500, Meldung des Schema-Validators (cvc-…). Die Fachlogik wird nie erreicht |
| Repository (serverseitig) | gepflegte Codeliste in DiWaSS, nicht im Schema | Abfallcodes und ihr listID |
Fachlicher Fehler WASTE-CLASSIFICATION-INVALID-CODE / waste.error.classification.code |
Beispiel Ländercode: ein CountryID mit 56 statt 056 erzeugt
cvc-pattern-valid: Value '56' is not facet-valid with respect to pattern '\d\d\d' for type
'CountryCodeType' als SOAP Fault (HTTP 500) — der Wert erreicht die DiWaSS-Fachlogik nicht.
Fehlercodes kommen mit Bindestrich zurück, die Spezifikation schreibt sie mit Unterstrich
Die EU-Liste Validations-messages.xlsx führt die Codes als WASTE_CLASSIFICATION_INVALID_CODE.
DiWaSS meldet sie im Response als WASTE-CLASSIFICATION-INVALID-CODE. Ein Textabgleich zwischen
Laufzeitfehler und Spezifikation scheitert schon an der Schreibweise. Details zu den Fehlercodes
siehe Fehlercodes.
Schreibweise-Fallen¶
Die folgenden sechs Punkte verursachen in der Praxis die meisten Ablehnungen.
Abfallschlüssel brauchen Gruppen-Leerzeichen¶
DiWaSS erwartet EU-Abfallschlüssel als 01 03 06, nicht als 010306. Die deutsche
AVV-Schreibweise ohne Leerzeichen ist in der DiWaSS-Codeliste nicht enthalten und fällt als
WASTE-CLASSIFICATION-INVALID-CODE.
Im Repository-Sheet trägt jeder der 890 Codes Leerzeichen zwischen den Zweiergruppen;
010306 kommt dort in keiner Form vor.
Gefährliche Abfälle tragen den Stern im Wert¶
01 04 07* — der Stern ist Teil des Codes, nicht eine Anzeige-Konvention. 442 der 890
LoW-Einträge tragen ihn.
Ländercode: dreistellig numerisch im Dokument, alpha-2 im Verzeichnis¶
| Kontext | Format | Beispiel Belgien |
|---|---|---|
CountryID in jedem Dokument (model:CountryCodeType, Pattern \d\d\d) |
ISO 3166-1 numerisch, dreistellig mit führender Null | 056 |
Verzeichnissuche FindActivities |
ISO 3166-1 alpha-2 | BE |
Der numerische Code im Verzeichnis-Lookup liefert 0 Treffer — ohne Fehler und ohne Exception.
Beispiel: FindActivities("BE", code: "BE01") liefert einen Treffer, FindActivities("056", …)
und FindActivities("56", …) jeweils keinen. Wer numerisch sucht, schließt fälschlich auf „Behörde existiert nicht”.
Umgekehrt kommt ein zweistelliger Wert im Dokument gar nicht bis zur Fachlogik — er scheitert am XSD-Pattern (siehe oben).
HP-Codes gehören in die eigene Liste, ohne EU-Suffix¶
Feld 14 (viii) des Notifizierungsdokuments (listID = h-code) trägt ausschließlich
Basel-H-Codes. Die EU-Gefährlichkeitseigenschaften HP1–HP15 gehören in die eigene, validierte
Liste hp_codes — in der DiWaSS-Oberfläche unter „Other Waste Identification” — und dort ohne
den Zusatz EU.
Das weicht bewusst vom Verordnungstext ab: die WSR-Ausfüllanleitung (Anhang IC, Punkt (g) zu
Subheading (viii)) sieht vor, den HP-Code in Feld (viii) einzutragen und EU dahinterzusetzen
(Beispiel im Verordnungstext: HP14 EU). DiWaSS implementiert getrennte Listen ohne Suffix.
Ein HP11 EU oder ein HP-Code unter h-code wird als Klassifikations-Codefehler abgelehnt.
Praktisch nützlich: die beiden Wertemengen überschneiden sich nicht — kein Code steht in beiden Listen. Eine Listenverwechslung kann deshalb nie stumm auf den falschen Eintrag mappen.
Verpackungsart: „Sonstiges” ist die 10, nicht die 9¶
Die DiWaSS-Verpackungsliste hat gegenüber der klassischen Notifizierungsliste eine zusätzliche
Art: 9 = Bale (Ballen). „Other” rutscht damit auf die 10. Prüf- oder UI-Logik, die
„Sonstiges” per Zahlenvergleich erkennt, ist beim Wechsel zwischen klassischem Dokument und
DiWaSS-Dokument die erste Stelle, die man anfassen muss.
Groß-/Kleinschreibung des listID¶
Das Spezifikations-Sheet und die von DiWaSS akzeptierten Werte weichen bei vier Listen voneinander ab. Diese Schreibweisen nimmt DiWaSS an:
| Sheet-Spalte „Name in API” | akzeptiert |
|---|---|
Basel_A |
basel_a |
Basel_B |
basel_b |
OECD |
oecd |
Other |
other |
LoW |
LoW |
Auch listID="low" (klein) nimmt DiWaSS an. Ob DiWaSS Groß- und Kleinschreibung generell
ignoriert, regelt die Spezifikation nicht. Wähle eine Schreibweise und bleib dabei; im Zweifel
die aus der Tabelle.
Abfall-Codelisten (listID am WasteTypeCode)¶
Alle Abfallcodes stehen in derselben Struktur: ein Element WasteTypeCode mit dem Code als Wert
und dem Attribut listID, das die Liste benennt. Das Paar (code, listID) identifiziert den
Eintrag. WasteClassification ist maxOccurs="unbounded" — derselbe Abfall kann gleichzeitig
über Basel, LoW und einen nationalen Schlüssel beschrieben werden.
Im Proto: WasteClassificationType.waste_type_code[] mit code und list_id
(WasteCodeType). Verwendet in SubmissionType.WasteClassification (Notifizierung, Block 14),
in den Annex-VII-Dokumenten, im Empfangs- und Abschlusszertifikat sowie in der
Artikel-15-Bescheinigung.
listID ist kein XSD-Enum mehr
WasteClassificationSchemeIdentifierType ist im aktuellen Schema eine leere Restriction auf
xs:token — das Schema lässt jeden Token durch. Geprüft wird erst serverseitig gegen das
Repository. Die alte XSD-Enumeration (BASEL, EWL, YCODE, NATEXP, UNNUM, ANNEX3A, …)
ist hinfällig; mitgelieferte XML-Samples mit listID="BASEL" sind kein Beleg für den heute
gültigen Wert. Ein veralteter Listenname schlägt als waste.error.classification.code auf —
also mit derselben Meldung wie ein ungültiger Code.
Der Feldtyp ist genau genommen eine Union: WasteClassificationSchemeOrCountryIdentifierType
vereinigt den losen Token mit CountryCodeType (\d\d\d). Für nationale Abfalllisten ist
laut Schema-Annotation auch ein numerischer ISO-3166-1-Code als listID vorgesehen
(Beispiel der Annotation: 233 für Estland). Ob DiWaSS das serverseitig annimmt, beschreibt die
Spezifikation nicht; für nationale Schlüssel gibt es die Listen nat_exp und nat_imp.
Der Code selbst ist vom Typ Token64OrEmpty: ein xs:token mit maximal 64 Zeichen. xs:token
heißt, dass führende und abschließende Leerzeichen entfallen und interne Folgen von zwei oder mehr
Leerzeichen unzulässig sind — die einzelnen Gruppen-Leerzeichen eines Abfallschlüssels sind davon
nicht betroffen. Der Typ lässt ausdrücklich auch einen leeren Wert zu; die Schema-Annotation
nennt als Zweck Abfallcodes, die in keinem Pflichtkatalog stehen.
Übersicht¶
„validiert” = DiWaSS prüft den Code gegen ein gepflegtes Repository und lehnt Unbekanntes ab. „nicht validiert” = Freitext, es zählt nur das Format.
| Liste | listID (akzeptiert) |
Sheet-Schreibweise | validiert | Einträge im Sheet |
|---|---|---|---|---|
| Basel-Liste A | basel_a |
Basel_A |
ja | 67 |
| Basel-Liste B | basel_b |
Basel_B |
ja | 62 |
| OECD | oecd |
OECD |
ja | 36 |
| EU-Abfallverzeichnis (LoW) | LoW |
LoW |
ja | 890 |
| Y-Codes | y-code |
y-code |
ja | 45 |
| H-Codes | h-code |
h-code |
ja | 14 |
| HP-Codes | hp_codes |
hp_codes |
ja | 15 |
| UN-Klasse | un_class |
un_class |
ja | 11 distinkte |
| WSR Anhang III | wsr_a3 |
wsr_a3 |
ja | 1 |
| WSR Anhang IIIA | wsr_a3a |
wsr_a3a |
ja | 15 |
| WSR Anhang IIIB | wsr_a3b |
wsr_a3b |
ja | 2 |
| WSR Anhang IV | wsr_a4 |
wsr_a4 |
ja | 1 |
| Zollcodes (HS) | customs_codes |
customs_codes |
ja | Sheet leer |
| Nationaler Code Export | nat_exp |
nat_exp |
nein | — |
| Nationaler Code Import | nat_imp |
nat_imp |
nein | — |
| UN-Nummer | un_no |
un_no |
nein | — |
| UN-Versandbezeichnung | un_shipping |
un_shipping |
nein | — |
| Sonstiges | other |
Other |
nein | — |
| Nicht gelistet | unlisted |
unlisted |
nein | — |
Geltungsbereich: In der Notifizierung nimmt DiWaSS alle Listen mit den Beispielcodes aus
der Spezifikation an, außer customs_codes (siehe dort). Auf die Annex-VII-Ankündigung
überträgt sich das nicht automatisch, weil die listID-Prüfung serverseitig und nicht im Schema
stattfindet.
Im .NET-SDK sind die Listennamen als WasteCodeListId typisiert
(Namespace Zedal.Sdk.Apis.Diwass.Enums). ToWire() liefert den Wire-String,
TryFromWire() / FromWireOrUnknown() lesen zurück (case-insensitiv). Unbekannte Werte
mappen auf Unknown statt zu werfen.
Basel-Liste A — gefährliche Abfälle¶
listID = basel_a, validiert. Sheet (Basel)A_codes, 67 Einträge — 63 A-Codes plus vier
Y-Einträge, die das Sheet in derselben Spalte führt.
A1010 A1020 A1030 A1040 A1050 A1060 A1070 A1080 A1090 A1100
A1110 A1120 A1130 A1140 A1150 A1160 A1170 A1180 A1181 A1190
A2010 A2020 A2030 A2040 A2050 A2060
A3010 A3020 A3030 A3040 A3050 A3060 A3070 A3080 A3090 A3100
A3110 A3120 A3130 A3140 A3150 A3160 A3170 A3180 A3190 A3200
A3210
A4010 A4020 A4030 A4040 A4050 A4060 A4070 A4080 A4090 A4100
A4110 A4120 A4130 A4140 A4150 A4160
Y46 Y47 Y48 Y49
Beachte die Ausreißer aus dem Zehnerraster: A1181, A3210. Y46–Y49 stehen im Sheet der
A-Codes, nicht im Sheet der Y-Codes (das endet bei Y45).
Basel-Liste B — nicht gefährliche Abfälle¶
listID = basel_b, validiert. Sheet (Basel)B_codes, 62 Einträge.
B1010 B1020 B1030 B1031 B1040 B1050 B1060 B1070 B1080 B1090
B1100 B1110 B1115 B1120 B1130 B1140 B1150 B1160 B1170 B1180
B1190 B1200 B1210 B1220 B1230 B1240 B1250
B2010 B2020 B2030 B2040 B2050 B2060 B2070 B2080 B2090 B2100
B2110 B2120 B2130
B3010 B3011 B3020 B3026 B3027 B3030 B3035 B3040 B3050 B3060
B3065 B3070 B3080 B3090 B3100 B3110 B3120 B3130 B3140
B4010 B4020 B4030
Ausreißer: B1031, B1115, B3011, B3026, B3027, B3035, B3065.
OECD-Liste¶
listID = oecd, validiert. Sheet OECD, 36 Einträge.
GB040 GC010 GC020 GC030 GC050 GE020 GF010 GG030 GG040 GH013
GN010 GN020 GN030
AA010 AA060 AA190
AB030 AB070 AB120 AB130 AB150
AC060 AC070 AC080 AC150 AC160 AC170 AC250 AC260 AC270 AC300
AD090 AD100 AD120 AD150
RB020
Das Sheet trägt für die AA-/AB-/AC-/AD-/RB-Einträge eine zusätzliche Spalte mit einer
Gefährlichkeitsangabe (EU/National HZ, Maybe EU/National HZ, EU/National NHZ). Diese Spalte
ist eine Erläuterung des Sheets und hat kein Feld in der API.
EU-Abfallverzeichnis (LoW)¶
listID = LoW, validiert. Sheet (EU list of waste)LoW, 890 Einträge. Zu viele, um sie hier
abzudrucken — und eine gekürzte Auswahl wäre irreführend. Maßgeblich ist das Sheet.
Schreibweise des listID: LoW oder low?
Die EU-Codelistenübersicht führt den API-Namen als LoW. DiWaSS nimmt außerdem die
Kleinschreibung low an. Ob der Server die Schreibweise generell ignoriert, regelt die
Spezifikation nicht.
Für dich heißt das: Wenn du das .NET SDK verwendest, nimm den Wert aus
WasteCodeListId.Low.ToWire() und setz keine eigene Konstante — dann trifft dich eine
Änderung der Schreibweise nicht. Beim direkten Aufruf über REST oder gRPC gilt der
Sheet-Name LoW.
Struktur und Schreibweise:
- Sechs Ziffern in drei Zweiergruppen, getrennt durch je ein normales Leerzeichen (U+0020) —
Form
NN NN NN. - Die erste Zweiergruppe läuft von
01bis20. - Gefährliche Abfälle tragen einen angehängten Stern:
01 04 07*. 442 der 890 Einträge. - Beispiele aus dem Sheet:
01 01 01,01 03 04*,01 03 06,20 03 01,20 03 99.
Zwei Artefakte im Sheet, die ein Parser abfangen muss
Geltungszeitraum in eckigen Klammern. 58 Zeilen tragen im Code-Feld einen redaktionellen
Zusatz — 20 01 44 [from 09.11.2026], 16 06 04 [until 08.12.2026]. Der Code ist der Teil
davor; der Klammerzusatz beschreibt, ab bzw. bis wann der Eintrag gilt. Fünf Codes kommen
dadurch doppelt vor (09 01 11*, 16 06 01*, 16 06 02*, 16 06 03*, 16 06 06*) — einmal
je Zeitfenster. In einer Zeile steht ein Tippfehler im Datum ([until 08.112.2026]).
Geschützte Leerzeichen. 48 Zeilen benutzen U+00A0 statt U+0020 als Trenner. Sie treten ausschließlich innerhalb der 58 Zeilen mit Klammerzusatz auf, keine einzige in den übrigen 832. Auf U+0020 normalisieren — DiWaSS-Antworten führen die Codes mit normalem Leerzeichen.
Die Spezifikation regelt nicht, ob DiWaSS Codes innerhalb eines Übergangsfensters mit oder ohne Klammerzusatz erwartet; nimm im Zweifel den Code ohne Klammerzusatz.
Y-Codes — Abfallkategorien Basel Anhang I¶
listID = y-code, validiert. Sheet (Y codes)Y_codes, 45 Einträge: Y1 bis Y45, lückenlos.
Y46–Y49 gehören nicht in diese Liste — sie stehen im Sheet der Basel-A-Codes.
H-Codes — Gefährlichkeitsmerkmale Basel Anhang III¶
listID = h-code, validiert. Sheet H codes, 14 Werte — mit Punktnotation und mit Lücken.
Es gibt kein H2, H7, H9, H14, H15.
| Code | Merkmal | Code | Merkmal |
|---|---|---|---|
H1 |
Explosive | H6.1 |
Poisonous (acute) |
H3 |
Flammable liquids | H6.2 |
Infectious substances |
H4.1 |
Flammable solids | H8 |
Corrosives |
H4.2 |
Liable to spontaneous combustion | H10 |
Liberation of toxic gases in contact with air or water |
H4.3 |
Emits flammable gases in contact with water | H11 |
Toxic (delayed or chronic) |
H5.1 |
Oxidizing | H12 |
Ecotoxic |
H5.2 |
Organic peroxides | H13 |
Capable of yielding another material after disposal |
Im SDK typisiert als HCode (die Punkte werden in den C#-Namen zu Unterstrichen: H4_1).
HP-Codes — EU-Gefährlichkeitseigenschaften¶
listID = hp_codes, validiert. Sheet HP codes, 15 Werte, HP1 bis HP15, lückenlos —
anders als bei den H-Codes. Rechtsgrundlage ist Anhang III der Richtlinie 2008/98/EG in der
Fassung der Verordnung (EU) 1357/2014.
| Code | Eigenschaft | Code | Eigenschaft |
|---|---|---|---|
HP1 |
Explosive | HP9 |
Infectious |
HP2 |
Oxidising | HP10 |
Toxic for reproduction |
HP3 |
Flammable | HP11 |
Mutagenic |
HP4 |
Irritant — skin irritation and eye damage | HP12 |
Release of an acute toxic gas |
HP5 |
Specific Target Organ Toxicity (STOT) / Aspiration Toxicity | HP13 |
Sensitising |
HP6 |
Acute Toxicity | HP14 |
Ecotoxic |
HP7 |
Carcinogenic | HP15 |
Waste capable of exhibiting a hazardous property listed above not directly displayed by the original waste |
HP8 |
Corrosive |
Ohne EU-Suffix und nicht ins H-Code-Feld — siehe
Schreibweise-Fallen.
Im SDK typisiert als HpCode.
UN-Klasse¶
listID = un_class, validiert. Sheet UN class codes — 14 Zeilen, aber nur 11 distinkte
Codes: die Klasse 9 steht viermal, für vier verschiedene Merkmale.
| Code | Merkmal |
|---|---|
1 |
Explosive |
3 |
Flammable liquids |
4.1 |
Flammable solids |
4.2 |
Substances or wastes liable to spontaneous combustion |
4.3 |
Substances or wastes which, in contact with water, emit flammable gases |
5.1 |
Oxidizing |
5.2 |
Organic peroxides |
6.1 |
Poisonous (acute) |
6.2 |
Infectious substances |
8 |
Corrosives |
9 |
Sammelklasse — im Sheet für „liberation of toxic gases”, „toxic (delayed or chronic)”, „ecotoxic” und „capable of yielding another material after disposal” |
Die Punktnotation ist dieselbe wie bei den H-Codes, aber ohne Buchstabenpräfix. Das ist keine
Kurzform der H-Codes, auch wenn die Beschreibungstexte im Sheet identisch sind — die Zuordnung
9 deckt vier H-Codes gleichzeitig ab.
WSR-Anhänge III, IIIA, IIIB, IV¶
Alle vier validiert. Rechtsgrundlage ist die Verordnung (EU) 2024/1157.
listID |
Anhang | Codes im Sheet |
|---|---|---|
wsr_a3 |
Anhang III (grün gelistete Abfälle) | EU3011 |
wsr_a3a |
Anhang IIIA (Gemische grüner Abfälle) | IIIA.2.a IIIA.2.b IIIA.2.c IIIA.2.d IIIA.2.e IIIA.3.a IIIA.3.b IIIA.3.c IIIA.3.d IIIA.3.e IIIA.3.f IIIA.3.g IIIA.4.a IIIA.4.b IIIA.4.c |
wsr_a3b |
Anhang IIIB (zusätzliche grüne Abfälle) | BEU04 BEU05 |
wsr_a4 |
Anhang IV (notifizierungspflichtige Abfälle) | EU48 |
wsr_a3 und wsr_a4 führen im Sheet jeweils genau einen Code. Die weiteren Zeilen des Sheets
(WSR Annex III)A3 sind Fortsetzungszeilen der Beschreibung von EU3011 (Aufzählung der
zulässigen Polymere) und keine eigenen Codes.
Zollcodes (HS)¶
listID = customs_codes. Das Sheet Lists of codes führt die Liste als validiert, das
Detail-Sheet Customs code(s) (HS) ist jedoch leer — es enthält nur die Kopfzeile.
Zulässige Werte sind aus der Spezifikation nicht zu beantworten
Die reine vierstellige HS-Position (etwa 3915, Kunststoffabfälle) lehnt DiWaSS mit
WASTE-CLASSIFICATION-INVALID-CODE ab. DiWaSS prüft customs_codes also gegen ein Repository,
das die vierstellige HS-Position nicht enthält. Welche Codes es annimmt, beschreibt die
Spezifikation nicht. Frag den DiWaSS-Betreiber, statt zu raten.
Zollcodes haben außerdem ein eigenes Feld und müssen nicht über WasteTypeCode laufen:
- Notifizierung:
SubmissionType.CustomsCodes_HS(Protocustoms_codes_hs, TypCustomsCodesTypemitcommodity_codes[]), optional. - Annex VII:
Annex7TransportAnnouncementType.commodityCode(Protocommodity_code), optional.
Nicht validierte Listen — Freitext¶
Sechs Listen prüft DiWaSS nicht gegen ein Repository. Der Wert muss nur das Format erfüllen
(Token64OrEmpty, also ein xs:token bis 64 Zeichen).
listID |
Bedeutung | Beispielwert |
|---|---|---|
nat_exp |
Nationaler Abfallschlüssel des Versandstaates | 010304 |
nat_imp |
Nationaler Abfallschlüssel des Empfangsstaates | 010304 |
un_no |
UN-Nummer nach UN-Modellregelwerk | 3082 |
un_shipping |
UN proper shipping name | ENVIRONMENTALLY HAZARDOUS SUBSTANCE, LIQUID, N.O.S. |
other |
Sonstiger Code ohne vordefiniertes Vokabular | custom-code-1 |
unlisted |
Nicht gelisteter Abfall | not-listed-1 |
Beachte: ein Schlüssel ohne Leerzeichen — etwa der deutsche AVV-Schlüssel 010304 — wird hier
angenommen, weil die Liste nicht validiert wird. Derselbe Wert unter LoW ist ungültig; dort
gelten die Gruppen-Leerzeichen.
Codelisten aus dem Schema¶
Diese Wertemengen stehen als <xs:enumeration> in codelists.xsd. Ein Wert außerhalb der Menge
scheitert an der Schemaprüfung, nicht an der Fachlogik — die Ablehnung kommt als SOAP Fault, nicht
als Validierungs-Fehlercode.
Beseitigungs- und Verwertungsverfahren (R-/D-Codes)¶
XSD-Typ RecoveryDisposalCodeType — R1–R13 und D1–D15, zusammen 28 Werte.
| Verwertung | Beschreibung |
|---|---|
R1 |
Use as a fuel (other than in direct incineration) or other means to generate energy (Basel/OECD) — use principally as a fuel or other means to generate energy (EU) |
R2 |
Solvent reclamation/regeneration |
R3 |
Recycling/reclamation of organic substances which are not used as solvents |
R4 |
Recycling/reclamation of metals and metal compounds |
R5 |
Recycling/reclamation of other inorganic materials |
R6 |
Regeneration of acids or bases |
R7 |
Recovery of components used for pollution abatement |
R8 |
Recovery of components from catalysts |
R9 |
Used oil re-refining or other reuses of previously used oil |
R10 |
Land treatment resulting in benefit to agriculture or ecological improvement |
R11 |
Uses of residual materials obtained from any of the operations numbered R1–R10 |
R12 |
Exchange of wastes for submission to any of the operations numbered R1–R11 |
R13 |
Accumulation of material intended for any operation in this list |
| Beseitigung | Beschreibung |
|---|---|
D1 |
Deposit into or on land (e.g. landfill) |
D2 |
Land treatment (e.g. biodegradation of liquid or sludgy discards in soils) |
D3 |
Deep injection (e.g. injection of pumpable discards into wells, salt domes or naturally occurring repositories) |
D4 |
Surface impoundment (e.g. placement of liquid or sludge discards into pits, ponds or lagoons) |
D5 |
Specially engineered landfill (placement into lined discrete cells which are capped and isolated from one another and the environment) |
D6 |
Release into water body except seas/oceans |
D7 |
Release into seas/oceans including sea-bed insertion |
D8 |
Biological treatment not specified elsewhere in this list which results in final compounds or mixtures which are discarded by means of any of the operations in this list |
D9 |
Physico-chemical treatment not specified elsewhere in this list which results in final compounds or mixtures which are discarded by means of any of the operations in this list (e.g. evaporation, drying, calcination) |
D10 |
Incineration on land |
D11 |
Incineration at sea |
D12 |
Permanent storage (e.g. emplacement of containers in a mine) |
D13 |
Blending or mixing prior to submission to any of the operations in this list |
D14 |
Repackaging prior to submission to any of the operations in this list |
D15 |
Storage pending any of the operations numbered in this list |
Es gibt kein D16 und kein R14.
L1 gibt es nur an einer Stelle. Der XSD-Typ LaboratoryCodeType kennt genau den Wert L1;
er wird über die Union RecoveryDisposalLaboratoryCodeType (= RecoveryDisposalCodeType + L1)
ausschließlich in RecoveryDisposalLaboratoryFacilityType.RecoveryDisposalLaboratoryTypeCode
zugelassen. In allen anderen R-/D-Feldern ist L1 ungültig.
Verwendung:
| Feld | Wertemenge |
|---|---|
SubmissionType.DisposalRecoveryOperations.RecoveryDisposalTypeCode (Block 11) |
R1–R13, D1–D15 |
CertificateOfWasteReceiptType.RecoveryDisposalTypeCode |
R1–R13, D1–D15 |
Annex7TransportAnnouncementType.recoveryDisposalTypeCode |
R1–R13, D1–D15 |
QuantityArticle15Type.recoveryDisposalTypeCode (Artikel-15-Bescheinigung) |
R1–R13, D1–D15 |
RecoveryDisposalLaboratoryFacilityType.RecoveryDisposalLaboratoryTypeCode |
R1–R13, D1–D15, L1 |
Im SDK: RecoveryDisposalCode bzw. RecoveryDisposalLaboratoryCode.
Verpackungsart (Block 7)¶
XSD-Typ PackageCodeType — Werte 1 bis 10.
| Code | Bedeutung | Code | Bedeutung |
|---|---|---|---|
1 |
Drum | 6 |
Composite packaging |
2 |
Wooden barrel | 7 |
Pressure receptacle |
3 |
Jerrican | 8 |
Bulk |
4 |
Box | 9 |
Bale |
5 |
Bag | 10 |
Other |
Verwendet in SubmissionType.Packaging.PackageTypeCode (Notifizierung, Typ PackagingType) und
in MovementPackagingType (Transportankündigung, Basis PackagingTypeBase, dort zusätzlich mit
PackageQuantity als Pflichtfeld). Beide Strukturen tragen PackageTypeCode als Pflichtfeld mit
maxOccurs="unbounded" und ein optionales PackageDescription (Freitext). Der Boolean
SpecialHandlingRequirementIndicator ist in PackagingType Pflicht, in PackagingTypeBase
optional — das ist der einzige Unterschied zwischen den beiden Typen.
Zur Verwechslungsgefahr mit der klassischen Liste siehe
Schreibweise-Fallen.
Im SDK: PackageTypeCode.
Physikalische Beschaffenheit (Block 13)¶
XSD-Typ PhysicalCharacteristicCodeType — Werte 1 bis 6.
| Code | Bedeutung |
|---|---|
1 |
Powdery / powder |
2 |
Solid |
3 |
Viscous / paste |
4 |
Sludgy |
5 |
Liquid |
6 |
Gaseous |
Das Spezifikations-Sheet nennt eine 7, das Schema kennt sie nicht
Physical characteristics codes (box 13).xlsx führt zusätzlich 7 = Other (specify).
PhysicalCharacteristicCodeType in codelists.xsd enumeriert nur 1–6. Eine 7 scheitert
an der Schemaprüfung.
SubmissionType.PhysicalCharacteristicTypeCode ist Pflicht und maxOccurs="unbounded".
Das begleitende PhysicalCharacteristicDescription ist im Schema optional — die
DiWaSS-Validierungsliste führt aber einen Code
PHYSICAL_CHARACTERISTICS_DESCRIPTION_REQUIRED. Das Muster „im Schema optional, von DiWaSS
trotzdem verlangt” tritt an mehreren Stellen auf; verlass dich nicht auf minOccurs="0".
Im SDK: PhysicalCharacteristicCode.
Transportmittel¶
XSD-Typ MeansOfTransportCodeType — fünf Buchstaben.
| Code | Bedeutung |
|---|---|
R |
Road |
T |
Train / Rail |
S |
Sea |
A |
Air |
W |
Inland waterways |
Verwendet in CarrierType.meansOfTransportCode (Attribut) und
TransportType.MeansOfTransportCode. Beide sind Pflicht. Im SDK: MeansOfTransportCode.
Anhang-Klassifikation (typeID)¶
XSD-Typ BinaryAttachmentClassificationCodeType, Attribut typeID an
model:AttachmentBinaryObject, Pflicht. 27 Werte.
typeID |
Bezeichnung in der Oberfläche |
|---|---|
AuditReport |
Audit report |
BrokerRegistration |
Broker / Dealer Registration |
CarrierRegistration |
Carrier Registration |
ContractNotifierProducer |
Contract (between waste producer and notifier) |
StandardContract |
Contract (standard) |
Decision |
Decision |
DeclarationOfNotifier |
Declaration of notifier |
InformationOnMeetingConditions |
Information on meeting conditions of Art. 11(1)(a) WSR |
InformationOnIllegalActivities |
Information concerning illegal activities related to this file or operator |
FacilityPermit |
Facility Permit |
FinancialGuarantee |
Financial Guarantee |
HandlingRequirements |
Handling Requirements |
IntendedRoute |
Intended Route and Alternative Route |
InterimFacilitiesInfo |
Interim treatment facilities – additional information |
LiabilityInsurance |
Liability Insurance (notifier) |
OtherAnnex |
Other Annex |
PowerOfAttorney |
Power of attorney |
PreConsent |
Pre-consent decision |
TakebackInformation |
Take-back information |
TechnologyEmployed |
Technology Employed |
TreatmentCertificate |
Treatment certificate |
TreatmentCertificateInfo |
Treatment certificate – additional information |
TreatmentProcess |
Treatment Process |
WasteAnalysis |
Waste Analysis |
WasteComposition |
Waste Composition |
WasteProductionProcess |
Waste Production Process |
WasteTreatmentInformation |
Waste Treatment Information |
Das Dokument Attachment types.docx listet zwei weitere Oberflächen-Bezeichnungen — Carrier
Insurance und Financial Guarantee Calculation — ohne API-Code; die Spalte „API code” ist
dort leer. Beide haben in BinaryAttachmentClassificationCodeType keine Entsprechung und sind
über die API nicht adressierbar.
Im SDK: AttachmentTypeId.
mimeCode ist kein kontrolliertes Feld
Neben typeID trägt AttachmentBinaryObject das Attribut mimeCode — Typ Token64, also
ein freier String mit maximal 64 Zeichen, required, ohne Enumeration und ohne Pattern.
Es gibt keine MIME-Allowlist, weder im Schema noch in ZEDAL. Das image/png in der
Schema-Dokumentation ist ein Beispiel, keine Beschränkung. Die kontrollierte Liste im
Anhang-Kontext ist typeID — das ist die fachliche Klassifikation, kein Dateiformat.
Weitere Pflichtattribute: filename (NameType, max. 256 Zeichen) und
containsPersonalData (Boolean).
Anlagentyp¶
Zwei verschiedene Wertemengen, die sich leicht verwechseln lassen.
| XSD-Typ | Werte | Verwendung |
|---|---|---|
FacilityTypeCode |
R (Recovery), D (Disposal) |
SubmissionType.DestinedForRecoveryDisposal, RecoveryDisposalFacilityType.facilityTypeCode, CertificateOfWasteReceiptType.FacilityTypeCode, CertificateOfCompletionType.FacilityTypeCode |
Annex7FacilityTypeCode |
R (Recovery), L (Laboratory) |
RecoveryLaboratoryFacilityType.facilityLaboratoryTypeCode, Annex7CertificateOfWasteReceiptType.FacilityTypeCode, Annex7CertificateOfCompletionType.facilityTypeCode |
In der Notifizierungswelt ist D zulässig und L nicht; in der Annex-VII-Welt umgekehrt.
Im SDK: FacilityTypeCode und Annex7FacilityTypeCode.
Behördenbereich¶
Feld userCompetentAuthorityDomainID (Typ notification:AuthorityDomainBodyIdentifier).
| Code | Bedeutung |
|---|---|
WSRDISP |
Behörde am Versandort (dispatch) |
WSRTRAN |
Durchfuhrbehörde (transit) |
WSRDEST |
Behörde am Bestimmungsort (destination) |
Pflicht in MovementTakeBackDocumentType und WasteAnnex7TakeBackType, optional in
MovementSignalDocumentType und WasteAnnex7DocumentType.
Im SDK: CompetentAuthorityDomain (WsrDispatch, WsrTransit, WsrDestination).
Verwandt, aber eine andere Liste: AuthorityDomainDocumentType.AccessRights mit R / RW.
Identifikations-Schemas für Beteiligte¶
| XSD-Typ | Werte |
|---|---|
PartyIdentificationSchemeIdentifierType |
VAT, NTR, GLN |
TracesPartyIdentificationSchemeIdentifierType |
EORI |
SiteIdentificationSchemeIdentifierType |
GLN |
PartyIdentificationSchemeOrCountryIdentifierType ist die Union aus beiden Party-Typen und
CountryCodeType — ein numerischer Ländercode ist als Schema-Kennung also ebenfalls vorgesehen.
Im Attribut @type der Operator-Suche ist der Typ ein freier xs:token ohne Restriction. In den
Spezifikations-Samples sind die Werte durchgängig kleingeschrieben (eori, vat). Das SDK-Enum OperatorIdentifierType schreibt
eori/vat/ntr/gln und liest case-insensitiv zurück.
Ländercode¶
XSD-Typ CountryCodeType: <xs:pattern value="\d\d\d"/> — ISO 3166-1 numerisch, genau drei
Ziffern, führende Null zwingend. Keine Enumeration; die gültigen Werte kommen aus der
ISO-Codeliste, das Schema prüft nur die Form.
Verwendet in AddressType.CountryID, ConcernedCountryType.CountryID,
Annex7ConcernedCountryType.countryID, OnBehalfCAType.CountryID und weiteren.
Ein formal gültiger, aber unbekannter Code wird erst von der Fachlogik abgelehnt — dann mit
DISPATCH_COUNTRY_NOT_FOUND, TRANSIT_COUNTRY_NOT_FOUND, DESTINATION_COUNTRY_NOT_FOUND,
COUNTRY_NOT_FOUND oder CA_CODE_COUNTRY_NOT_FOUND, je nach Fundstelle.
Zur Formatdifferenz gegenüber dem Verzeichnis-Lookup siehe Schreibweise-Fallen.
Weitere kleine Wertemengen¶
| XSD-Typ | Werte | Bedeutung |
|---|---|---|
CountryRoleIDType |
E, I, T |
Rolle des Landes: export/dispatch, import/destination, transit |
RejectionIndicatorType |
A, R |
A = vollständig angenommen, R = vollständig zurückgewiesen |
DecisionTypeEnum |
CONSENT, OBJECTED, WITHDRAWN |
Behördenentscheidung |
MessageCategoryCodeType |
inform, request |
inform = nur zur Kenntnis, request = Reaktion erwartet |
StatementTypeCodeType |
RequestForNotificationInformation, PreConsentInformation |
Typ einer Statement-Nachricht |
PriorityCodeType |
1, 2, 3 |
1 = Immediate, 2 = Urgent, 3 = Normal (UN/CEFACT-Codeliste 4037) |
GenderCodeType |
1, 2 |
ISO 5218: 1 = male, 2 = female |
AuthorityStatusType |
VALID, DELETED |
Status einer Behörde im Verzeichnis |
AuthorityActivityStatusType |
VALID, SUSPENDED, DELETED |
Status einer Behördenaktivität |
OperatorActivityStatusBaseType |
NEW, VALID, SUSPENDED, DELETED |
Status einer Operator-Aktivität |
OperatorNameQueryMatchModeBaseType / AuthorityNameQueryMatchModeType |
PHRASE, FULL_TEXT |
Suchmodus im Verzeichnis, Default PHRASE |
OperatorAuthorityActivityQueryCodeBaseType |
ACTIVITY_CODE, UNLOCODE |
Art des Codes in der Aktivitätssuche, Default ACTIVITY_CODE |
OperatorSortingPredicateBaseType |
UPDATE, CREATE, NAME |
Sortierung der Trefferliste |
SDK-Enums existieren für DecisionType, PriorityCode und SignalStatementType.
Die Wertemenge von SignalStatementType: ProperlyCarriedOut, ProperlyCompleted,
NotificationInvalid, NotificationRevalidated, NotificationCancelled,
NotificationCompleted, NoPreConsentedFacilityTimeline, RejectPreConsentedFacility,
MovementCancelled, Annex7Cancelled, NotificationWithdrawn.
Event-Codes¶
XSD-Typ waste:ModificationEventCode, 52 Werte. Verwendet in WasteEventType.code
(Ereignisliste eines Dokuments) und SyncNotificationEventType.code (Detail eines Sync-Events).
Notifizierung
SUBMIT_NOTIFICATION UPDATE_NOTIFICATION
NEW_ACKNOWLEDGE NEW_DECISION UPDATE_DECISION
NEW_REQUEST_INFORMATION UPDATE_REQUEST_INFORMATION
NEW_REPLY_TO_REQUEST_INFORMATION
NEW_REQUEST_CHANGE NEW_REPLY_TO_REQUEST_CHANGE
NEW_ARTICLE15 UPDATE_ARTICLE15
Movement
ANNOUNCE_MOVEMENT UPDATE_MOVEMENT
NEW_MOVEMENT_CARRIER_TRANSPORT UPDATE_MOVEMENT_CARRIER_TRANSPORT
NEW_MOVEMENT_CONSIGNEE_RECEIPT UPDATE_MOVEMENT_CONSIGNEE_RECEIPT
NEW_MOVEMENT_FACILITY_RECEIPT UPDATE_MOVEMENT_FACILITY_RECEIPT
NEW_MOVEMENT_FACILITY_COMPLETION UPDATE_MOVEMENT_FACILITY_COMPLETION
NEW_MOVEMENT_TAKEBACK UPDATE_MOVEMENT_TAKEBACK
Signale
SIGNAL_PROPERLY_CARRIED_OUT SIGNAL_PROPERLY_COMPLETED
SIGNAL_COMPLETE_NOTIFICATION SIGNAL_CANCEL_NOTIFICATION
SIGNAL_NOTIFICATION_INVALID SIGNAL_NOTIFICATION_REVALIDATED
SIGNAL_CANCEL_MOVEMENT
SIGNAL_REJECT_PRE_CONSENTED_FACILITY SIGNAL_NO_PRE_CONSENTED_FACILITY_TIMELINE
Annex VII (Präfix GLW_ für green-listed waste)
GLW_ANNOUNCE GLW_UPDATE GLW_CANCEL
GLW_NEW_CARRIER_TRANSPORT GLW_UPDATE_CARRIER_TRANSPORT
GLW_NEW_CONSIGNEE_RECEIPT GLW_UPDATE_CONSIGNEE_RECEIPT
GLW_NEW_FACILITY_RECEIPT GLW_UPDATE_FACILITY_RECEIPT
GLW_NEW_FACILITY_COMPLETION GLW_UPDATE_FACILITY_COMPLETION
GLW_NEW_CA_TAKE_BACK GLW_UPDATE_CA_TAKE_BACK
Statuswechsel, Pre-Consent, Vertraulichkeit
UPDATE_NOTIFICATION_STATUS UPDATE_MOVEMENT_STATUS UPDATE_GLW_STATUS
NEW_PRE_CONSENT_FACILITY UPDATE_PRE_CONSENT_FACILITY
UPDATE_FACILITY_CONFIDENTIALITY
Das Sheet nennt den Statuswechsel für Annex VII falsch
Event codes for sync.xlsx führt UPDATE_ANNEX7_STATUS. Im Schema heißt der Wert
UPDATE_GLW_STATUS — passend zum GLW_-Präfix der übrigen Annex-VII-Events. Ein Abgleich
gegen den Sheet-Wert findet nie einen Treffer. Alle übrigen 51 Werte stimmen zwischen Sheet
und Schema überein.
Das Sheet trägt für 19 Events zusätzlich einen Kurzcode (NEWSUB, UPDSUB, NEWACK,
NEWREQ, NEWDEC, …) vor dem Langnamen. Im Feld code steht ausschließlich der Langname —
ModificationEventCode enumeriert nur diese. Einer der Kurzcodes ist im Sheet außerdem
verschrieben (NEWMOVEMENT_CONIGNEE_RECEIPT).
Die sechs Werte aus dem Block „Statuswechsel, Pre-Consent, Vertraulichkeit” sind in den
ZEDAL-Protos nur auf SyncNotificationEventType.code annotiert, nicht auf WasteEventType.code
— dort stehen die übrigen 46. Der XSD-Typ ist für beide Felder derselbe.
Fehlerbild je Liste¶
| Auslöser | Fehler |
|---|---|
| Unbekannter Code in einer validierten Abfallcodeliste | WASTE-CLASSIFICATION-INVALID-CODE / waste.error.classification.code |
Veralteter oder falsch geschriebener listID |
dieselbe Meldung — der Fehler unterscheidet nicht zwischen „Code falsch” und „Liste falsch” |
| Abfallschlüssel ohne Gruppen-Leerzeichen | dieselbe Meldung |
HP-Code unter h-code, oder HP-Code mit EU-Suffix |
dieselbe Meldung |
WasteClassification fehlt ganz |
WASTE_CLASSIFICATION_REQUIRED / waste.notification.waste.classification.required |
Wert außerhalb einer XSD-Enumeration (Verpackung, Beschaffenheit, Transport, R-/D, typeID) |
SOAP Fault, HTTP 500, cvc-…-Meldung des Schema-Validators |
| Ländercode nicht dreistellig | SOAP Fault, HTTP 500, cvc-pattern-valid … pattern '\d\d\d' for type 'CountryCodeType' |
| Ländercode formal gültig, Land unbekannt | DISPATCH_COUNTRY_NOT_FOUND / TRANSIT_COUNTRY_NOT_FOUND / DESTINATION_COUNTRY_NOT_FOUND / COUNTRY_NOT_FOUND |
| Verpackungscodes fehlen | PACKAGING_TYPE_CODES_REQUIRED |
| Physikalische Beschaffenheit fehlt | PHYSICAL_CHARACTERISTICS_CODES_REQUIRED |
Anhang ohne typeID |
ATTACHMENT_TYPE_EMPTY / waste.error.invalid.attachment.type |
Die vollständige Fehlercode-Referenz steht unter Fehlercodes.
Die EU-Fehlercodeliste ist nicht abschließend
Validations-messages.xlsx führt 188 Codes, deckt die real auftretenden aber nicht
vollständig ab — real zurückgemeldete Codes wie REJECTED-QUANTITY-EMPTY und
REJECTION-DESCRIPTION-EMPTY stehen dort in keiner Schreibweise. Behandle unbekannte
Fehlercodes zur Laufzeit als erwartbar und protokolliere sie, statt gegen eine feste Liste zu
matchen.
Bekannte Lücken¶
Diese Punkte lassen sich aus der Spezifikation nicht beantworten:
customs_codes: die Spezifikation nennt keinen gültigen Beispielcode. Das Detail-Sheet ist leer, die vierstellige HS-Position lehnt DiWaSS ab.- Groß-/Kleinschreibung des
listID: ob DiWaSS case-insensitiv prüft. Bleib bei einer Schreibweise. - LoW-Codes in einem Übergangsfenster: ob DiWaSS die 58 Codes mit
[from …]/[until …]mit oder ohne Klammerzusatz erwartet. - Numerischer
listIDfür nationale Listen: laut Schema-Annotation zulässig (WasteClassificationSchemeOrCountryIdentifierType); ob DiWaSS ihn serverseitig annimmt, sagt die Spezifikation nicht. - Codelisten auf dem Annex-VII-Pfad: die akzeptierten
listID-Werte gelten für die Notifizierung. DielistID-Prüfung läuft serverseitig, nicht im Schema — das gilt deshalb nicht automatisch für die Annex-VII-Ankündigung.