diff --git a/tests/features/Vendor Extensibility/__init__.robot b/tests/features/Vendor Extensibility/__init__.robot
new file mode 100644
index 0000000000000000000000000000000000000000..cdcb8538db7a9a7f41f8d6021cbd1d6b0198a222
--- /dev/null
+++ b/tests/features/Vendor Extensibility/__init__.robot	
@@ -0,0 +1,2 @@
+*** Settings ***
+Force Tags    vendor_extensibility
\ No newline at end of file
diff --git a/tests/features/Vendor Extensibility/vendor_extensibility.robot b/tests/features/Vendor Extensibility/vendor_extensibility.robot
new file mode 100644
index 0000000000000000000000000000000000000000..3c0c30a0189c12e0d44fd59b83d8c7257e04b2d0
--- /dev/null
+++ b/tests/features/Vendor Extensibility/vendor_extensibility.robot	
@@ -0,0 +1,51 @@
+*** Settings ***
+Resource            /opt/robot-tests/tests/resources/common.resource
+Resource            /opt/robot-tests/tests/resources/api_invoker_management_requests/apiInvokerManagementRequests.robot
+Resource            ../../resources/common.resource
+Library             /opt/robot-tests/tests/libraries/bodyRequests.py
+
+Suite Teardown      Reset Testing Environment
+Test Setup          Reset Testing Environment
+Test Teardown       Reset Testing Environment
+
+
+*** Variables ***
+${API_INVOKER_NOT_REGISTERED}       not-valid
+
+
+*** Test Cases ***
+Discover Published service APIs by Authorised API Invoker
+    [Tags]    vendor_extensibility-1
+    # Register APF
+    ${register_user_info}=    Provider Default Registration
+
+    # Create Vendor Specific information
+    ${vendor_specific_service_api_description}=    Create Vendor Specific Service Api Description
+    ...    vendorSpecific-urn:etsi:mec:capifext:service-info
+    ${vendor_specific_aef_profile}=    Create Vendor Specific Aef Profile
+    ...    vendorSpecific-urn:etsi:mec:capifext:transport-info
+
+    # Publish one api
+    ${service_api_description_published}    ${resource_url}    ${request_body}=    Publish Service Api
+    ...    ${register_user_info}
+    ...    supported_features=10
+    ...    vendor_specific_service_api_description=${vendor_specific_service_api_description}
+    ...    vendor_specific_aef_profile=${vendor_specific_aef_profile}
+
+    # Default Invoker Registration and Onboarding
+    ${register_user_info_invoker}    ${url}    ${request_body}=    Invoker Default Onboarding
+
+    # Test
+    ${resp}=    Get Request Capif
+    ...    ${DISCOVER_URL}${register_user_info_invoker['api_invoker_id']}&aef-id=${register_user_info['aef_id']}
+    ...    server=${CAPIF_HTTPS_URL}
+    ...    verify=ca.crt
+    ...    username=${INVOKER_USERNAME}
+
+    Check Response Variable Type And Values    ${resp}    200    DiscoveredAPIs
+
+    # Check Results
+    Dictionary Should Contain Key    ${resp.json()}    serviceAPIDescriptions
+    Should Not Be Empty    ${resp.json()['serviceAPIDescriptions']}
+    Length Should Be    ${resp.json()['serviceAPIDescriptions']}    1
+    List Should Contain Value    ${resp.json()['serviceAPIDescriptions']}    ${service_api_description_published}
diff --git a/tests/libraries/api_publish_service/bodyRequests.py b/tests/libraries/api_publish_service/bodyRequests.py
index 69e7bb117f01b4c53ee7d1db74b7da09e20bf3a1..f6317f63e0a818dd8a6db300e8b0a96cf4db767f 100644
--- a/tests/libraries/api_publish_service/bodyRequests.py
+++ b/tests/libraries/api_publish_service/bodyRequests.py
@@ -1,5 +1,5 @@
-def create_service_api_description(api_name="service_1",aef_id="aef_id"):
-    return {
+def create_service_api_description(api_name="service_1", aef_id="aef_id", supported_features="fffff", vendor_specific_service_api_description=None, vendor_specific_aef_profile=None):
+    body = {
         "apiName": api_name,
         "aefProfiles": [
             {
@@ -35,7 +35,7 @@ def create_service_api_description(api_name="service_1",aef_id="aef_id"):
             }
         ],
         "description": "ROBOT_TESTING",
-        "supportedFeatures": "fffff",
+        "supportedFeatures": supported_features,
         "shareableInfo": {
             "isShareable": True,
             "capifProvDoms": [
@@ -51,3 +51,14 @@ def create_service_api_description(api_name="service_1",aef_id="aef_id"):
         },
         "ccfId": "string"
     }
+
+    if vendor_specific_service_api_description is not None:
+        if isinstance(vendor_specific_service_api_description, dict):
+            for key, value in vendor_specific_service_api_description.items():
+                body[key] = value
+    if vendor_specific_aef_profile is not None:
+        if isinstance(vendor_specific_aef_profile, dict):
+            for key, value in vendor_specific_aef_profile.items():
+                body["aefProfiles"][0][key] = value
+
+    return body
diff --git a/tests/libraries/bodyRequests.py b/tests/libraries/bodyRequests.py
index 5e451242c693f385bccea597db898a5f7c16f725..30597bad66cb194192fb3713ccadae60d7b1985a 100644
--- a/tests/libraries/bodyRequests.py
+++ b/tests/libraries/bodyRequests.py
@@ -5,4 +5,4 @@ from api_publish_service.bodyRequests import *
 from api_events.bodyRequests import *
 from security_api.bodyRequests import *
 from api_provider_management.bodyRequests import *
-
+from vendor_extensibility.bodyRequests import *
diff --git a/tests/libraries/common/bodyRequests.py b/tests/libraries/common/bodyRequests.py
index 71fc9b956ce9a95fc77a480a9187ad065bae2dcf..b0829b7231cc34863e7abd15e8a8422edf1d1ee2 100644
--- a/tests/libraries/common/bodyRequests.py
+++ b/tests/libraries/common/bodyRequests.py
@@ -70,7 +70,7 @@ def check_variable(input, data_type):
 def check_attributes_dict(body, data_type):
     mandatory_attributes = capif_types[data_type]["mandatory_attributes"]
     optional_parameters = capif_types[data_type]["optional_attributes"]
-    regex_attributes = capif_types[data_type]["regex_attributes"]
+    regex_attributes = capif_types[data_type].get("regex_attributes",{})
 
     all_attributes = mandatory_attributes | optional_parameters
     # Check if body has not allowed attributes
diff --git a/tests/libraries/common/types.json b/tests/libraries/common/types.json
index 85a27adf41c1e9731e1c76df730d4247cb04623c..f2f0ff8a3bd857048cab718aa63531a6e07c7d76 100644
--- a/tests/libraries/common/types.json
+++ b/tests/libraries/common/types.json
@@ -104,6 +104,9 @@
       "interfaceDescriptions": "InterfaceDescription",
       "aefLocation": "AefLocation"
     },
+    "regex_attributes": {
+      "^vendorSpecific-(.*)": "VendorSpecificObject"
+    },
     "oneOf": ["interfaceDescriptions", "domainName"]
   },
   "Version": {
diff --git a/tests/libraries/vendor_extensibility/bodyRequests.py b/tests/libraries/vendor_extensibility/bodyRequests.py
new file mode 100644
index 0000000000000000000000000000000000000000..0e4e5bc6983e8b6c5dbf9968559d135f13ec3a3a
--- /dev/null
+++ b/tests/libraries/vendor_extensibility/bodyRequests.py
@@ -0,0 +1,34 @@
+def create_vendor_specific_service_api_description(vendor_specific_key):
+    vendor_dict = {
+        vendor_specific_key: {
+            "serializer": "JSON",
+            "state": "ACTIVE",
+            "scopeOfLocality": "MEC_SYSTEM",
+            "consumedLocalOnly": "True",
+            "isLocal": "True",
+            "category": {
+                "href": "https://www.location.com",
+                "id": "location_1",
+                "name": "Location",
+                "version": "1.0"
+            }
+        }
+    }
+    return vendor_dict
+
+
+def create_vendor_specific_aef_profile(vendor_specific_key):
+    vendor_dict = {
+        vendor_specific_key: {
+            "name": "trasport1",
+            "description": "Transport Info 1",
+            "type": "REST_HTTP",
+            "protocol": "HTTP",
+            "version": "2",
+            "security": {
+                "grantTypes": "OAUTH2_CLIENT_CREDENTIALS",
+                "tokenEndpoint": "https://token-endpoint/"
+            }
+        }
+    }
+    return vendor_dict
diff --git a/tests/resources/common/basicRequests.robot b/tests/resources/common/basicRequests.robot
index 838086f925a9d8310d3e00c55b652c036588b567..58374be652c31a20767dbdeebfdab5b3da7b8882 100644
--- a/tests/resources/common/basicRequests.robot
+++ b/tests/resources/common/basicRequests.robot
@@ -686,9 +686,9 @@ Provider Default Registration
     RETURN    ${register_user_info}
 
 Publish Service Api
-    [Arguments]    ${register_user_info_provider}    ${service_name}=service_1
+    [Arguments]    ${register_user_info_provider}    ${service_name}=service_1    ${supported_features}=fffff    ${vendor_specific_service_api_description}=${None}   ${vendor_specific_aef_profile}=${None}
 
-    ${request_body}=    Create Service Api Description    ${service_name}    ${register_user_info_provider['aef_id']}
+    ${request_body}=    Create Service Api Description    ${service_name}    ${register_user_info_provider['aef_id']}  ${supported_features}  ${vendor_specific_service_api_description}   ${vendor_specific_aef_profile}
     ${resp}=    Post Request Capif
     ...    /published-apis/v1/${register_user_info_provider['apf_id']}/service-apis
     ...    json=${request_body}