{"id":74972,"date":"2026-02-03T18:10:18","date_gmt":"2026-02-03T16:10:18","guid":{"rendered":"https:\/\/www.sweco.fi\/?post_type=blog&#038;p=74972"},"modified":"2026-05-07T09:49:45","modified_gmt":"2026-05-07T06:49:45","slug":"eu-drinking-water-directive","status":"publish","type":"blog","link":"https:\/\/www.sweco.fi\/en\/blog\/eu-drinking-water-directive\/","title":{"rendered":"EU Drinking Water Directive"},"content":{"rendered":"<section class=\"block cb block--white\" >\n\t<div class=\"block__inner cb__inner cb__inner--one\">\n\t<div class=\"col--12 col--center col--wrapper\">\n\t\t<div class=\"col col--6 editor-content\">\n\t\t\t<p><a href=\"https:\/\/environment.ec.europa.eu\/topics\/water\/drinking-water_en\" target=\"_blank\" rel=\"noopener\">The European Union&#8217;s new Drinking Water Directive<\/a> (EU) 2020\/2184 introduces significant changes to ensuring the safety of drinking water. At the same time, its impacts extend much further than might initially be expected.<\/p>\n<div>The objective of the EU Drinking Water Directive is to ensure that drinking water remains safe for consumers throughout the entire supply chain \u2013 from source all the way to the tap. This means stricter requirements for materials and products in contact with drinking water, such as pipes, fittings, taps and other components.<\/div>\n<h2 id=\"what-is-new-in-the-eu-drinking-water-directive\">What is new in the EU Drinking Water Directive?<\/h2>\n<p>One of the most significant reforms is the introduction of a harmonised EU-wide approval system for materials that come into contact with drinking water (Article 11).<\/p>\n<p>The directive aims to facilitate the functioning of the EU internal market, while at the same time requiring materials to meet stricter safety criteria than before. Approved materials will be included in an EU positive list, the first version of which will be based on existing national positive lists and regulations. Economic operators, including manufacturers of materials in contact with drinking water, can apply to have new starting substances, compositions or constituents added to the list.<\/p>\n<p>Competent authorities in Member States may apply to ECHA to remove or modify existing materials. Changes to the positive list \u2013 additions, updates or removals \u2013 are processed through delegated or implementing acts of the European Commission in cooperation with ECHA\u2019s Risk Assessment Committee (RAC).<\/p>\n<p>The EU positive list is published on ECHA\u2019s website. Materials are divided into four categories: organic, metallic, cementitious, and enamel as well as ceramic and other inorganic materials.<\/p>\n<h2 id=\"key-steps-and-dates-in-the-eu-drinking-water-directive\">Key steps and dates in the EU Drinking Water Directive<\/h2>\n<p><strong>\u00a0The Notice of Intention (NoI)<\/strong> is a mandatory step before submitting a full application. Its purpose is to ensure transparency and improve the efficiency of the approval process. It also seeks to promote joint applications and reduce the need for animal testing. <strong>Submission of Notices of Intention began on 31 December 2025.<\/strong><\/p>\n<p>The full application has significantly more extensive data requirements than the NoI. The application must include, for example, material identification data, chemical and physical properties, analytical data, migration levels of substances released into water, absorption and toxicological data, intended use and a risk assessment. <strong>Submission of applications will begin on 31 December 2026.<\/strong><\/p>\n<p>Both the Notice of Intention and the full application documentation must be prepared in ECHA\u2019s IUCLID system.<\/p>\n<p>Materials on the positive list have an expiry date. To remain on the list, an application must be submitted before the expiry date. ECHA recommends submitting the application at least 18 months before expiry. There are four different expiry timelines, with the first expiring at the end of 2028 (31 December 2028). This means that, according to regulatory guidance, the first applications should be submitted in summer 2027.<\/p>\n<p>The expiry dates are based on risk assessment: the higher the hazard profile, the earlier the approval expires. Approval will expire at the end of 2028 for some constituents of organic and cementitious materials, such as cellulose and lignocellulose.<\/p>\n<p>It is important to start preparing application documentation without delay, especially for materials with expiry dates at the end of 2028.<\/p>\n<p>Sweco supports your company throughout the entire process \u2013 from assessing material compliance and preparing Notice of Intention and application documentation in IUCLID, to conducting drinking water risk assessments using the Water Safety Plan (WSP) approach.<\/p>\n<p><strong>Get in touch \u2014 we\u2019re happy to guide you through the entire EU Drinking Water Directive process.<\/strong><\/p>\n<p><strong>Saila Kivij\u00e4rvi<\/strong>, Food Safety Specialist, <a href=\"mailto:saila.kivijarvi@sweco.fi\">saila.kivijarvi@sweco.fi<\/a><\/p>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n<\/section>\n\n\n    <section class=\"block block--white related-content\" >\n        <div class=\"block__inner related-content__inner\">\n            <div class=\"col--11 col--wrapper col--start col--stretch col--bottom no-img\">\n                                    <div class=\"col col--12 editor-content related-content__title\">\n                        <h3 class=\"h3 hyphenate\" id=\"discover-more\">Discover more<\/h3>                    <\/div>\n                \n                                    <div class=\"col col--3 item \">\n\n                        \n                                                    <div class=\"item__content editor-content\" data-clickable=\"true\">\n                                                                <div class=\"item__content--wrapper\">\n                                    <h4 class=\"h5 hyphenate\" id=\"food-safety-services\"><a href='https:\/\/www.sweco.fi\/en\/services\/industry\/safety\/food-safety\/' class='' title='Food safety services'>Food safety services<\/a><\/h4>                                    <button class=\"btn btn__arrow\" aria-label=\"Food safety services\">\n                                        <i class=\"icon icon-arrow-right\"><\/i>\n                                    <\/button>\n                                <\/div>\n                            <\/div>\n                                            <\/div>\n                                    <div class=\"col col--3 item \">\n\n                        \n                                                    <div class=\"item__content editor-content\" data-clickable=\"true\">\n                                                                <div class=\"item__content--wrapper\">\n                                    <h4 class=\"h5 hyphenate\" id=\"food-industry\"><a href='https:\/\/www.sweco.fi\/en\/services\/industry\/food-industry\/' class='' title='Food industry'>Food industry<\/a><\/h4>                                    <button class=\"btn btn__arrow\" aria-label=\"Food industry\">\n                                        <i class=\"icon icon-arrow-right\"><\/i>\n                                    <\/button>\n                                <\/div>\n                            <\/div>\n                                            <\/div>\n                \n                            <\/div>\n        <\/div>\n    <\/section>\n\n\n<section class=\"block form-block block--white\" >\n\t<div class=\"block__inner form-block__inner \">\n\n                    <div class=\"col--11 col--wrapper\">\n                                    <div class=\"col col--4 editor-content form-block__title\">\n                        <h3 class=\"h3 hyphenate\" id=\"contact-us\">Contact Us!<\/h3>                    <\/div>\n                    <div class=\"col--12 col\"><\/div>\n                \n                <div class=\"col col--4 editor-content\">\n                                    <\/div>\n\n                <div class=\"col col--7\">\n                    <script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n\/* ]]> *\/\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gform_legacy_markup_wrapper gform-theme--no-framework' data-form-theme='legacy' data-form-index='0' id='gform_wrapper_6' ><form class=\"gform_analytics_tracking\" method='post' enctype='multipart\/form-data' target='gform_ajax_frame_6' id='gform_6'  action='\/en\/wp-json\/wp\/v2\/blog\/74972' data-formid='6' novalidate autocomplete=\"off\">\n                        <div class='gform-body gform_body'><ul id='gform_fields_6' class='gform_fields top_label form_sublabel_below description_below validation_below'><li id=\"field_6_8\" class=\"gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible gform_honeypot\"  data-field-class=\"gform_honeypot\" ><label class='gfield_label gform-field-label' for='input_6_8'>X\/Twitter<\/label><div class='ginput_container'><input autocomplete=\"off\"  name='input_8' id='input_6_8' type='text' value='' autocomplete='new-password'\/><\/div><div class='gfield_description' id='gfield_description_6_8'>This field is for validation purposes and should be left unchanged.<\/div><\/li><li id=\"field_6_1\" class=\"gfield gfield--type-text half field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gform_text\"  data-field-class=\"gform_text\" ><label class='gfield_label gform-field-label' for='input_6_1'>Name<\/label><div class='ginput_container ginput_container_text'><input autocomplete=\"off\"  name='input_1' id='input_6_1' type='text' value='' class='medium'      aria-invalid=\"false\"   \/><\/div><\/li><li id=\"field_6_2\" class=\"gfield gfield--type-text half field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gform_text\"  data-field-class=\"gform_text\" ><label class='gfield_label gform-field-label' for='input_6_2'>Company<\/label><div class='ginput_container ginput_container_text'><input autocomplete=\"off\"  name='input_2' id='input_6_2' type='text' value='' class='medium'      aria-invalid=\"false\"   \/><\/div><\/li><li id=\"field_6_5\" class=\"gfield gfield--type-email half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gform_email\"  data-field-class=\"gform_email\" ><label class='gfield_label gform-field-label' for='input_6_5'>Email<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input autocomplete=\"off\"  name='input_5' id='input_6_5' type='email' value='' class='medium'    aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/li><li id=\"field_6_3\" class=\"gfield gfield--type-text half gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gform_text\"  data-field-class=\"gform_text\" ><label class='gfield_label gform-field-label' for='input_6_3'>Mobile<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_text'><input autocomplete=\"off\"  name='input_3' id='input_6_3' type='text' value='' class='medium'     aria-required=\"true\" aria-invalid=\"false\"   \/><\/div><\/li><li id=\"field_6_6\" class=\"gfield gfield--type-textarea full expanding-textarea field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gform_textarea\"  data-field-class=\"gform_textarea\" ><label class='gfield_label gform-field-label' for='input_6_6'>How can we help you?<\/label><div class='ginput_container ginput_container_textarea'><textarea autocomplete=\"off\"  name='input_6' id='input_6_6' class='textarea medium'      aria-invalid=\"false\"   rows='10' cols='50'><\/textarea><\/div><\/li><li id=\"field_6_7\" class=\"gfield gfield--type-consent gfield--type-choice gfield--input-type-consent gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible gform_consent\"  data-field-class=\"gform_consent\" ><label class='gfield_label gform-field-label gfield_label_before_complex' >Agreement<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_consent'><input autocomplete=\"off\"  name='input_7.1' id='input_6_7_1' type='checkbox' value='1'   aria-required=\"true\" aria-invalid=\"false\"   \/> <label class=\"gform-field-label gform-field-label--type-inline gfield_consent_label\" for='input_6_7_1' >By sending this form I accept that my information will be saved in Sweco customer register. <a href=\"https:\/\/www.sweco.fi\/en\/about-sweco\/sweco-data-privacy-statement\/\">Sweco Data Privacy Statement<\/a>&gt;<\/label><input autocomplete=\"off\"  type='hidden' name='input_7.2' value='By sending this form I accept that my information will be saved in Sweco customer register. &lt;a href=&quot;https:\/\/www.sweco.fi\/en\/about-sweco\/sweco-data-privacy-statement\/&quot;&gt;Sweco Data Privacy Statement&lt;\/a&gt;&gt;' class='gform_hidden' \/><input autocomplete=\"off\"  type='hidden' name='input_7.3' value='5' class='gform_hidden' \/><\/div><\/li><\/ul><\/div>\n        <div class='gform-footer gform_footer top_label'> <button class='btn btn__primary' id='gform_submit_button_6'><span>Send<\/span><\/button> <input type='hidden' name='gform_ajax' value='form_id=6&amp;title=&amp;description=&amp;tabindex=0&amp;theme=legacy&amp;hash=4fef7decf52ef6029b89308caac65e3b' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_6' value='iframe' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_6' id='gform_theme_6' value='legacy' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_6' id='gform_style_settings_6' value='' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_6' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='6' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='EUR' value='zaRFpo7Mdt371SSkiDdF5OXaME0pFfaDmPxeS3uUnSae0\/M54xLAV31GiMUrMroIuCCshzdavRZRZ6q6cprTy3gJKr2Oj4A5ZY4BHTW8HlRRFgQ=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_6' value='WyJ7XCI3LjFcIjpcIjVhYWVlZmI3NTc0MTU1YjA1ZTkwNjQxMWI2MWVlNGZiXCIsXCI3LjJcIjpcIjNiMjE4NmJlMWQ5YWNhNTQ3NTA5NzgyNzViYzNjNmM4XCIsXCI3LjNcIjpcIjY5M2FkN2IxNjZjMGFlYWRiOTEwNmMzMjZkNGEwOGZhXCJ9IiwiZTk3ZDcyNzQ2ZWYyMzZjOTU0OGJiOGM0NWQ0ZTRiNTYiXQ==' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_6' id='gform_target_page_number_6' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_6' id='gform_source_page_number_6' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div>\n\t\t                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_6' id='gform_ajax_frame_6' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'><\/iframe>\n\t\t                <script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n gform.initializeOnLoaded( function() {gformInitSpinner( 6, 'https:\/\/www.sweco.fi\/wp-content\/themes\/sweco\/assets\/dist\/oval.svg', true );jQuery('#gform_ajax_frame_6').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_6');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_6').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_6').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_6').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_6').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/  }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_6').val();gformInitSpinner( 6, 'https:\/\/www.sweco.fi\/wp-content\/themes\/sweco\/assets\/dist\/oval.svg', true );jQuery(document).trigger('gform_page_loaded', [6, current_page]);window['gf_submitting_6'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_6').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [6]);window['gf_submitting_6'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_6').text());}else{jQuery('#gform_6').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"6\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_6\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_6\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_6\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 6, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} ); \n\/* ]]> *\/\n<\/script>\n                <\/div>\n            <\/div>\n        \n\t<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>The European Union&#8217;s new Drinking Water Directive (EU) 2020\/2184 brings significant changes to ensuring drinking water safety. At the same time, its impact reaches far more stakeholders than one might initially expect.<\/p>\n","protected":false},"featured_media":74977,"template":"","blog_cats":[932],"blog_tags":[1236],"blog_author":[1237],"class_list":["post-74972","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_cats-sustainability-and-environment","blog_tags-drinking-water-directive","blog_author-saila-kivijarvi"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.sweco.fi\/en\/wp-json\/wp\/v2\/blog\/74972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sweco.fi\/en\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.sweco.fi\/en\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sweco.fi\/en\/wp-json\/wp\/v2\/media\/74977"}],"wp:attachment":[{"href":"https:\/\/www.sweco.fi\/en\/wp-json\/wp\/v2\/media?parent=74972"}],"wp:term":[{"taxonomy":"blog_cats","embeddable":true,"href":"https:\/\/www.sweco.fi\/en\/wp-json\/wp\/v2\/blog_cats?post=74972"},{"taxonomy":"blog_tags","embeddable":true,"href":"https:\/\/www.sweco.fi\/en\/wp-json\/wp\/v2\/blog_tags?post=74972"},{"taxonomy":"blog_author","embeddable":true,"href":"https:\/\/www.sweco.fi\/en\/wp-json\/wp\/v2\/blog_author?post=74972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}