diff --git a/odoo_somconnexio_python_client/resources/product_catalog.py b/odoo_somconnexio_python_client/resources/product_catalog.py
index 18e560d47627a89aea09bf097581a8341058d1f1..b705e51b46937c625cdcad60f98f3ac1b545b97b 100644
--- a/odoo_somconnexio_python_client/resources/product_catalog.py
+++ b/odoo_somconnexio_python_client/resources/product_catalog.py
@@ -23,11 +23,11 @@ class ProductCatalog:
         self.products = [Product(**product) for product in products]
 
     @classmethod
-    def search(cls, code="", category="", lang="ca"):
+    def search(cls, code="", category="", lang="ca", product_code=""):
         headers = {'Accept-Language': lang}
         response_data = Client().get(
             "{}".format(cls._url_path),
-            params={"code": code, "categ": category},
+            params={"code": code, "categ": category, "product_code": product_code},
             extra_headers=headers
         )
 
diff --git a/tests/resources/cassettes/test_product_catalog/TariffTests.test_search_available_products_for_product_code.yaml b/tests/resources/cassettes/test_product_catalog/TariffTests.test_search_available_products_for_product_code.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..793e929706fda1a775ff96a33b3e9f9daa082a20
--- /dev/null
+++ b/tests/resources/cassettes/test_product_catalog/TariffTests.test_search_available_products_for_product_code.yaml
@@ -0,0 +1,47 @@
+interactions:
+- request:
+    body: null
+    headers:
+      API-KEY:
+      - '****'
+      Accept:
+      - application/json
+      Accept-Encoding:
+      - gzip, deflate
+      Accept-Language:
+      - ca
+      Connection:
+      - keep-alive
+      User-Agent:
+      - python-requests/2.27.1
+    method: GET
+    uri: http://odoo-sc.local:8069/api/product-catalog?code=&categ=&product_code=SE_SC_REC_BA_F_100
+  response:
+    body:
+      string: '{"pricelists": [{"code": "21IVA", "products": [
+        {"code": "SE_SC_REC_BA_F_100", "name": "Fibra 100Mb amb fix", "price": 34.0,
+        "category": "fiber", "minutes": null, "data": null, "bandwidth": 100, "available_for":
+        ["member"]}, {"code": "SE_SC_REC_BA_F_1024", "name": "Fibra 1Gb", "price":
+        58.0, "category": "fiber", "minutes": null, "data": null, "bandwidth": 1000,
+        "available_for": ["member"]}, {"code": "SE_SC_REC_BA_F_600", "name": "Fibra
+        600Mb", "price": 43.0, "category": "fiber", "minutes": null, "data": null,
+        "bandwidth": 600, "available_for": ["member"]}]}]}'
+    headers:
+      Access-Control-Allow-Methods:
+      - GET
+      Access-Control-Allow-Origin:
+      - None
+      Content-Length:
+      - '2873'
+      Content-Type:
+      - application/json
+      Cookie: '****'
+      Date:
+      - Tue, 8 Apr 2022 11:25:49 GMT
+      Server:
+      - Werkzeug/0.11.15 Python/3.7.7
+      Set-Cookie: '****'
+    status:
+      code: 200
+      message: OK
+version: 1
diff --git a/tests/resources/test_product_catalog.py b/tests/resources/test_product_catalog.py
index 8c24bc71210f923223fc77de3cf7ec19eb248d04..fa75cca6e5b4b053c315ede431fa8a2d3217f9cf 100644
--- a/tests/resources/test_product_catalog.py
+++ b/tests/resources/test_product_catalog.py
@@ -75,3 +75,22 @@ class TariffTests(unittest.TestCase):
             "Ilimitadas 10 GB",
             es_product_names
         )
+
+    @pytest.mark.vcr()
+    def test_search_available_products_for_product_code(self):
+        """ For product fibra 100Mb only are available other Fiber products. """
+        pricelists = ProductCatalog.search(product_code="SE_SC_REC_BA_F_100")
+        product_codes = [p.code for p in pricelists[0].products]
+
+        self.assertIn(
+            "SE_SC_REC_BA_F_1024",
+            product_codes
+        )
+        self.assertIn(
+            "SE_SC_REC_BA_F_600",
+            product_codes
+        )
+        self.assertNotIn(
+            "SE_SC_REC_BA_ADSL_SF",
+            product_codes
+        )