diff --git a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java
index 6b6e4160adf85c40375fc570691f75b0cd597b26..8e67f7efbd1ed41bf74f9a2c45fe409e97e3c333 100644
--- a/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java
+++ b/smp-ui-tests/src/main/java/pages/domain/DomainPopup.java
@@ -55,6 +55,9 @@ public class DomainPopup extends PageComponent {
 	@FindBy(css = "div.mat-form-field-infix > div.ng-star-inserted")
 	WebElement domainCodeValidationError;
 
+	@FindBy(css = "#MetadataTextArea")
+	private WebElement metadataTextArea;
+
 	@FindBy(css = "#smlClientKeyAlias_id")
 	WebElement smlClientAliasSelectContainer;
 	GenericSelect smlClientAliasSelect;
@@ -70,6 +73,7 @@ public class DomainPopup extends PageComponent {
 		waitForElementToBeGone(cancelBtn);
 	}
 
+
 	public boolean isLoaded() {
 		log.info("checking if domain popup is properly loaded");
 		return isVisible(okBtn)
@@ -148,7 +152,29 @@ public class DomainPopup extends PageComponent {
 		}
 
 	}
+	public String domainCode63CharValidationGetErrMsg() {
+		try {
+			waitForElementToBeVisible(domainCodeValidationError);
+			return domainCodeValidationError.getAttribute("value");
+		} catch (Exception e) {
+		}
+		return null;
+	}
 
+	public String getSmlSmpId63CharValidationMsg() {
+		WebElement invalidSmlSmpIdErrorMsg = driver.findElement(By.cssSelector("div.mat-form-field-infix > div.ng-star-inserted"));
+		try {
+			waitForElementToBeVisible(invalidSmlSmpIdErrorMsg);
+			return invalidSmlSmpIdErrorMsg.getAttribute("value");
+		} catch (Exception e) {
+		}
+		return null;
+	}
+
+	public String xmlFieldVALUE(){
+		log.info("value is "+metadataTextArea.getAttribute("value"));
+		return metadataTextArea.getAttribute("value");
+	}
 	public void clearAndFillDomainCodeInput(String domainCode) {
 		log.info("clear and fill domain code data");
 		clearAndFillInput(domainCodeInput, domainCode);
diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java
index 0b98f19153ad4469ed169d93140ec628ce2ea735..b3998e7587e09a09395220ea5335463d273d316f 100644
--- a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java
+++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceMetadataPopup.java
@@ -28,7 +28,7 @@ public class ServiceMetadataPopup extends PageComponent {
 	private WebElement clearButton;
 	@FindBy(css = "mat-card-content > mat-toolbar > mat-toolbar-row > button:nth-child(2)")
 	private WebElement generateXMLButton;
-	@FindBy(css = "mat-card-content > mat-toolbar > mat-toolbar-row > button:nth-child(3)")
+	@FindBy(css = "mat-card-content > mat-toolbar > mat-toolbar-row > button:nth-child(4)")
 	private WebElement validateButton;
 
 	@FindBy(css = "#MetadataTextArea")
@@ -49,6 +49,9 @@ public class ServiceMetadataPopup extends PageComponent {
 	@FindBy(xpath = "//span[text() ='Metadata wizard']")
 	private WebElement metadataWizardBtn;
 
+	@FindBy(css = "mat-card-content > div > div.ng-star-inserted:nth-child(2)")
+	private WebElement xmlValidationMsg;
+
 	@FindBy(css = "mat-dialog-content #domain_id")
 	private WebElement domainSelectContainer;
 	private GenericSelect domainSelect;
@@ -73,6 +76,11 @@ public class ServiceMetadataPopup extends PageComponent {
 
 	}
 
+	public String xmlFieldVALUE(){
+		log.info("value is "+metadataTextArea.getAttribute("value"));
+		return metadataTextArea.getAttribute("value");
+	}
+
 	public void fillForm(String domain, String docID, String docScheme) {
 		waitForElementToBeVisible(documentIdentifierInput);
 		domainSelect.selectWithIndex(0);
@@ -83,7 +91,26 @@ public class ServiceMetadataPopup extends PageComponent {
 		generateXMLButton.click();
 
 	}
+	public String captureTextOfMetadataTextArea(){
+		return metadataTextArea.getText();
+	}
+
+	public void clickValidateBtn(){
+		waitForElementToBeClickable(validateButton).click();
+	}
+	public void clickGenerateXMLBtn(){
+		waitForElementToBeClickable(generateXMLButton).click();
+	}
+	public void clickClearBtn(){
+		waitForElementToBeClickable(clearButton).click();
+	}
+	public String getXMLValidationMessage(){
+		return xmlValidationMsg.getText();
+	}
+	public void addTextToMetadataTextArea(String generator){
+		metadataTextArea.sendKeys(generator);
 
+	}
 
 	public String docIDFieldValue(){
 		return documentIdentifierInput.getAttribute("value");
diff --git a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java
index 3aabdc70d5b7f026e9954b52d06e288194ca88a6..059b4b88bbd4962ca7349fdb44b50caab6a0930f 100644
--- a/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java
+++ b/smp-ui-tests/src/main/java/utils/enums/SMPMessages.java
@@ -80,4 +80,15 @@ public class SMPMessages {
 	public static final String SMLSMPID_VALIDATION_MESSAGE = "SML SMP ID should be up to 63 characters long, should only contain alphanumeric and hyphen characters, should not start with a digit nor a hyphen and should not end with a hyphen.";
 	public static final String USER_EMAIL_VALIDATION_MESSAGE ="Email is invalid!";
 	public static final String DOMAINCODE_VALIDATION_MESSAGE = "Domain code must contain only chars and numbers and must be less than 63 chars long.";
+	public static final String VALID_XML_MESSAGE = "Servicemetadata is valid!";
+	public static final String INVALID_XML_MESSAGE1 = "SAXParseException: XML document structures must start and end within the same entity.";
+	public static final String INVALID_XML_MESSAGE2 = "SAXParseException: Content is not allowed in prolog.";
+	public static final String INVALID_XML_MESSAGE3 = "SAXParseException: Content is not allowed in trailing section.";
+	public static final String INVALID_XML_MESSAGE4 = "SAXParseException: cvc-complex-type.2.3: Element 'ServiceMetadata' cannot have character [children], because the type's content type is element-only.";
+	public static final String INVALID_XML_MESSAGE5 = "SAXParseException: The end-tag for element type \"ServiceMetadata\" must end with a '>' delimiter.";
+	public static final String INVALID_XML_MESSAGE6 = "SAXParseException: cvc-complex-type.2.3: Element 'Process' cannot have character [children], because the type's content type is element-only.";
+	public static final String EMPTY_XML_WARN_MESSAGE = "Service metadata xml must not be empty";
+	public static final String EMPTY_XML_MESSAGE = "Valid service metadata XML is required!";
+	public static final String INVALID_XML_MESSAGE7 = "SAXParseException: The markup in the document following the root element must be well-formed.";
+
 }
diff --git a/smp-ui-tests/src/test/java/ui/DomainPgTest.java b/smp-ui-tests/src/test/java/ui/DomainPgTest.java
index b69c199d8dd6c8092a533aa90669714eea89d188..635c3ea6d5b071dd796938034a1d3cfd49fdf2c7 100644
--- a/smp-ui-tests/src/test/java/ui/DomainPgTest.java
+++ b/smp-ui-tests/src/test/java/ui/DomainPgTest.java
@@ -177,6 +177,11 @@ public class DomainPgTest extends BaseTest {
 
 
 		popup.fillDataForNewDomain(rndString, rndString, rndString, rndString);
+		try {
+			Thread.sleep(1000);
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
 		popup.clickOK();
 
 		soft.assertTrue(page.isSaveButtonEnabled(), "Save button is enabled");
@@ -453,8 +458,7 @@ public class DomainPgTest extends BaseTest {
 		SoftAssert soft = new SoftAssert();
 		DomainPage page = new DomainPage(driver);
 		String randstring =Generator.randomAlphaNumeric(10);
-		ArrayList<String> smlsmpId = new ArrayList<>(Arrays.asList("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopmkjh",
-				"abc@k",
+		ArrayList<String> smlsmpId = new ArrayList<>(Arrays.asList("abc@k",
 				"abcd-",
 				"-abgxknvlk",
 				"1qwertyuvbnm"));
@@ -489,8 +493,7 @@ public class DomainPgTest extends BaseTest {
 
 		soft.assertTrue(page.isLoaded(), "Check that the page is loaded");
 		ArrayList<String> domainCode = new ArrayList<>(Arrays.asList("sddfgf@",
-				"123%",
-				"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345678901g"));
+				"123%"));
 
 		DomainPopup popup = page.clickNew();
 		soft.assertTrue(popup.isLoaded(), "Domain popup is loaded");
@@ -509,4 +512,20 @@ public class DomainPgTest extends BaseTest {
 		soft.assertAll();
 	}
 
+	@Test(description = "USR-150")
+	public void verifyNoOfCharcterAllowanceLimitInDomaincodeAndSMLSMPId(){
+		SoftAssert soft = new SoftAssert();
+		DomainPage page = new DomainPage(driver);
+		String randstring =Generator.randomAlphaNumeric(10);
+		String string = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz12345678901g";
+
+		soft.assertTrue(page.isLoaded(), "Check that the page is not loaded");
+		DomainPopup popup = page.clickNew();
+		soft.assertTrue(popup.isLoaded(), "Domain popup is not loaded");
+		popup.fillDataForNewDomain(string, randstring, string, randstring);
+		soft.assertEquals(popup.domainCode63CharValidationGetErrMsg(), SMPMessages.DOMAINCODE_VALIDATION_MESSAGE, "Message is not in the list");
+		soft.assertEquals(popup.getSmlSmpId63CharValidationMsg(), SMPMessages.SMLSMPID_VALIDATION_MESSAGE,"Error message is not in list");
+
+		soft.assertAll();
+	}
 }
diff --git a/smp-ui-tests/src/test/java/ui/EditPgTest.java b/smp-ui-tests/src/test/java/ui/EditPgTest.java
index 69f93b1338982127aa805e1454eac261f387f5e6..1ddfd3bfcc9489281e2f0385b9e27a46523dc8e7 100644
--- a/smp-ui-tests/src/test/java/ui/EditPgTest.java
+++ b/smp-ui-tests/src/test/java/ui/EditPgTest.java
@@ -10,6 +10,7 @@ import pages.service_groups.ServiceGroupGrid;
 import pages.service_groups.ServiceGroupRow;
 import pages.service_groups.edit.*;
 import utils.Generator;
+import utils.enums.SMPMessages;
 import utils.rest.SMPRestClient;
 
 import java.util.List;
@@ -166,7 +167,7 @@ public class EditPgTest extends BaseTest {
 		ServiceGroupPopup popup = new ServiceGroupPopup(driver);
 
 		soft.assertTrue(row0.getParticipantIdentifier().equalsIgnoreCase(popup.getParticipantIdentifierValue()), "Popup opened for appropriate service group");
-		soft.assertTrue(row0.getParticipantIdentifier().equalsIgnoreCase(popup.getParticipantSchemeValue()), "Popup opened for appropriate service group");
+		soft.assertTrue(row0.getParticipantScheme().equalsIgnoreCase(popup.getParticipantSchemeValue()), "Popup opened for appropriate service group");
 		soft.assertTrue(popup.isExtensionAreaEditable(), "extension area is editable");
 
 		soft.assertTrue(!popup.isParticipantIdentifierInputEnabled(), "Participant Identifier field is disabled");
@@ -436,6 +437,74 @@ public class EditPgTest extends BaseTest {
 		soft.assertAll();
 	}
 
+	@Test(description = "EDT-140")
+	public void serviceMetadataXMLValidationRule(){
+		SoftAssert soft = new SoftAssert();
+		EditPage page = new EditPage(driver);
+		String generator = Generator.randomAlphaNumeric(10);
+		ServiceGroupGrid grid = page.getGrid();
+		Integer index = 0;
+		ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index);
+		ServiceMetadataPopup metadataPopup= row0.clickAddMetadata();
+		metadataPopup.fillForm(generator,generator,generator);
+		metadataPopup.clickValidateBtn();
+		soft.assertEquals(metadataPopup.getXMLValidationMessage(), SMPMessages.VALID_XML_MESSAGE,"The message is not in list");
+		metadataPopup.clickClearBtn();
+		metadataPopup.clickValidateBtn();
+		soft.assertEquals(metadataPopup.getXMLValidationMessage(),SMPMessages.EMPTY_XML_WARN_MESSAGE,"The message is not in list");
+		metadataPopup.clickGenerateXMLBtn();
+		String xml1 = metadataPopup.captureTextOfMetadataTextArea();
+		String invalidxml1 = xml1+"xcvjdvxv";
+		metadataPopup.addTextToMetadataTextArea(invalidxml1);
+		metadataPopup.clickValidateBtn();
+		soft.assertEquals(metadataPopup.getXMLValidationMessage(),SMPMessages.INVALID_XML_MESSAGE3,"The message error message is not in list");
+		metadataPopup.clickClearBtn();
+		metadataPopup.addTextToMetadataTextArea("xjvnkcfjblcf");
+		metadataPopup.clickValidateBtn();
+		soft.assertEquals(metadataPopup.getXMLValidationMessage(),SMPMessages.INVALID_XML_MESSAGE2,"The message error message is not in list");
+		metadataPopup.clickClearBtn();
+
+		soft.assertAll();
+
+	}
+
+	@Test(description = "EDT-150")
+	public void verifyServiceMetadataXMLClearBtn(){
+		SoftAssert soft = new SoftAssert();
+		EditPage page = new EditPage(driver);
+		String generator = Generator.randomAlphaNumeric(10);
+		ServiceGroupGrid grid = page.getGrid();
+		Integer index = 0;
+		ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index);
+		ServiceMetadataPopup metadataPopup= row0.clickAddMetadata();
+		metadataPopup.fillForm(generator,generator,generator);
+		soft.assertNotEquals(metadataPopup.xmlFieldVALUE(),"","The xml field area is empty");
+		metadataPopup.clickClearBtn();
+		soft.assertEquals(metadataPopup.xmlFieldVALUE(),"","The clear button did not clear the xml field");
+		soft.assertAll();
+	}
+
+	@Test(description = "EDT-160")
+	public void verifyServiceMetadataWizardOkBtn(){
+		SoftAssert soft = new SoftAssert();
+		EditPage page = new EditPage(driver);
+		String generator = Generator.randomAlphaNumeric(10);
+		ServiceGroupGrid grid = page.getGrid();
+		int index = 0;
+		ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index);
+		ServiceMetadataPopup metadataPopup= row0.clickAddMetadata();
+		ServiceMetadataWizardPopup metadataWizard = metadataPopup.clickMetadataWizard();
+		soft.assertTrue(!metadataPopup.isParticipantIdentifierEnabled(),"participantId field is enabled for an existing service group in service metadata popup");
+		soft.assertTrue(!metadataPopup.isParticipantSchemeEnabled(),"participantScheme field is enabled for an existing service group in service metadata popup");
+		soft.assertFalse(metadataWizard.isEnableOkBtn(),"OK button is enable before providing the valid data");
+		metadataWizard.fillForm(generator,generator,generator,generator,"bdxr-transport-ebms3-as4-v1p0","internal/rest/domain");
+		metadataWizard.fillCerificateBox(generator);
+		soft.assertTrue(metadataWizard.isEnableOkBtn(),"OK button is disable after providing the valid data");
+
+		soft.assertAll();
+
+	}
+
 
 	private int scrollToSG(String pi) {
 		EditPage page = new EditPage(driver);