diff --git a/CHANGELOG.md b/CHANGELOG.md
index bd25d60c1e3b0f50d9caf376c0897db19a9dfc0b..b846ea7bcda6c3eaaafb2d1d5c922fd0192bdd0e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
 The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
 
 ## [Unreleased]
+### Changed
+-  IGNGPF-4603: modify get_name_from_template to work without tile_size and origin parameters
 
 ## [1.11.2] - 2025-05-14
 ### Changed
diff --git a/gpf_common_point_cloud/utils/laslaz_utils.py b/gpf_common_point_cloud/utils/laslaz_utils.py
index 435bb44b3febf3c5b4e8e4b0f9ee2f98c8b3038c..605973551883682ea52196d2c3450935d2739b6f 100644
--- a/gpf_common_point_cloud/utils/laslaz_utils.py
+++ b/gpf_common_point_cloud/utils/laslaz_utils.py
@@ -129,19 +129,21 @@ def _get_file_version(metadata: dict) -> str:
     )
 
 
-def correct_max_coord(coord: float, origin: float, tile_size: float) -> float:
+def correct_max_coord(
+    coord: float, origin: float | None, tile_size: float | None
+) -> float:
     """
     Correct max coordinate part
     Args:
         coord (float): coordinate part to correct
-        origin (float): grid origin
-        tile_size (float): tile size
+        origin (float | None): grid origin
+        tile_size (float | None): tile size
 
     Returns:
         float: corrected coordinate part
     """
 
-    if tile_size <= 0:
+    if tile_size is None or origin is None:
         return coord
 
     shift = (coord - origin) % tile_size
@@ -151,19 +153,21 @@ def correct_max_coord(coord: float, origin: float, tile_size: float) -> float:
     return coord
 
 
-def correct_min_coord(coord: float, origin: float, tile_size: float) -> float:
+def correct_min_coord(
+    coord: float, origin: float | None, tile_size: float | None
+) -> float:
     """
     Correct min coordinate part
     Args:
         coord (float): coordinate part to correct
-        origin (float): grid origin
-        tile_size (float): tile size
+        origin (float | None): grid origin
+        tile_size (float | None): tile size
 
     Returns:
         float: corrected coordinate part
     """
 
-    if tile_size <= 0:
+    if tile_size is None or origin is None:
         return coord
 
     shift = (coord - origin) % tile_size
@@ -204,7 +208,10 @@ def is_template_valid(template) -> bool:
 
 
 def get_name_from_template(
-    metadata: dict, template: str, origin: dict, tile_size: float
+    metadata: dict,
+    template: str,
+    origin: dict | None = None,
+    tile_size: float | None = None,
 ) -> str | None:
     """
     Compute file name from a template
@@ -212,17 +219,20 @@ def get_name_from_template(
     Args:
         metadata (dict): Metadata of the file from the PDAL LAS reader
         template (str): Template to use
-        origin (dict): Origin of tiling {"x": string, "y": string}
-        tile_size (float): Tile size
+        origin (dict | None): Origin of tiling {"x": string, "y": string}
+        tile_size (float | None): Tile size
     Returns:
         str: The computed file name
     """
 
     reader_metadata: dict = metadata[READER_NAME]
-    x_min = correct_min_coord(reader_metadata[MINX_FIELD], origin["x"], tile_size)
-    x_max = correct_max_coord(reader_metadata[MAXX_FIELD], origin["x"], tile_size)
-    y_min = correct_min_coord(reader_metadata[MINY_FIELD], origin["y"], tile_size)
-    y_max = correct_max_coord(reader_metadata[MAXY_FIELD], origin["y"], tile_size)
+    origin_x = origin["x"] if origin and "x" in origin else None
+    origin_y = origin["y"] if origin and "y" in origin else None
+
+    x_min = correct_min_coord(reader_metadata[MINX_FIELD], origin_x, tile_size)
+    x_max = correct_max_coord(reader_metadata[MAXX_FIELD], origin_x, tile_size)
+    y_min = correct_min_coord(reader_metadata[MINY_FIELD], origin_y, tile_size)
+    y_max = correct_max_coord(reader_metadata[MAXY_FIELD], origin_y, tile_size)
 
     values: dict = {
         "x_min": x_min,
diff --git a/tests/test_laslaz_utils.py b/tests/test_laslaz_utils.py
index acb9445095d06b162c3903036f68a36bae3adc3d..bf9f1eee956b6587cd4b538d1c9287d24c5bdaca 100644
--- a/tests/test_laslaz_utils.py
+++ b/tests/test_laslaz_utils.py
@@ -321,7 +321,7 @@ class TestLaslazUtils(unittest.TestCase):
             self.TEST_GET_NAME_FROM_TEMPLATE_METADATA,
             template="tile.copc.laz",
             origin={"x": 0, "y": 0},
-            tile_size=1000,
+            tile_size=None,
         )
 
         # Then
@@ -351,6 +351,18 @@ class TestLaslazUtils(unittest.TestCase):
         # Then
         self.assertEqual(result, "tile_4860_6732.copc.laz")
 
+    def test_get_name_from_template_ok_no_origin_no_tile_size(self):
+        # When
+        result: str = get_name_from_template(
+            self.TEST_GET_NAME_FROM_TEMPLATE_METADATA,
+            template="tile_{x_min/100}_{y_max/1000}.copc.laz",
+            origin=None,
+            tile_size=None,
+        )
+
+        # Then
+        self.assertEqual(result, "tile_4860_6732.copc.laz")
+
     def test_get_name_from_template_ok_formatters(self):
         # When
         result: str = get_name_from_template(
@@ -428,11 +440,11 @@ class TestLaslazUtils(unittest.TestCase):
         # Then
         self.assertEqual(19000.0, result)
 
-    def test_correct_max_coord_tile_size_le_0(self):
+    def test_correct_max_coord_tile_size_none(self):
         # Given
         coord = 486930
         origin = 0
-        tile_size = 0
+        tile_size = None
 
         # When
         result = correct_max_coord(coord, origin, tile_size)
@@ -440,10 +452,34 @@ class TestLaslazUtils(unittest.TestCase):
         # Then
         self.assertEqual(coord, result)
 
-    def test_correct_min_coord_tile_size_le_0(self):
+    def test_correct_min_coord_tile_size_none(self):
         # Given
         coord = 486930
         origin = 0
+        tile_size = None
+
+        # When
+        result = correct_min_coord(coord, origin, tile_size)
+
+        # Then
+        self.assertEqual(coord, result)
+
+    def test_correct_max_coord_origin_none(self):
+        # Given
+        coord = 486930
+        origin = None
+        tile_size = 0
+
+        # When
+        result = correct_max_coord(coord, origin, tile_size)
+
+        # Then
+        self.assertEqual(coord, result)
+
+    def test_correct_min_coord_origin_none(self):
+        # Given
+        coord = 486930
+        origin = None
         tile_size = 0
 
         # When