diff --git a/src/main/java/com/whatsapp/api/impl/WhatsappBusinessManagementApi.java b/src/main/java/com/whatsapp/api/impl/WhatsappBusinessManagementApi.java
index 620c3cd97..eccff19ac 100644
--- a/src/main/java/com/whatsapp/api/impl/WhatsappBusinessManagementApi.java
+++ b/src/main/java/com/whatsapp/api/impl/WhatsappBusinessManagementApi.java
@@ -127,6 +127,18 @@ public MessageTemplates retrieveTemplates(String whatsappBusinessAccountId, Stri
return executeSync(whatsappBusinessManagementApiService.retrieveTemplates(apiVersion.getValue(), whatsappBusinessAccountId, Map.of("name", templateName)));
}
+ /**
+ * Retrieve filtered templates message templates.
+ *
+ * @param whatsappBusinessAccountId Represents a specific WhatsApp Business Account (WABA). Make the API call to the WABA ID.
+ * @param filters map of query objects, key is query parameter and value is query parameter value, i.e. Map.of("name", "templateName") will search by name.
+ * For all filters see Allowed fields for filtering
+ * @return {@link MessageTemplates} List of templates
+ * @see Message templates
+ */
+ public MessageTemplates retrieveTemplates(String whatsappBusinessAccountId, Map filters) {
+ return executeSync(whatsappBusinessManagementApiService.retrieveTemplates(apiVersion.getValue(), whatsappBusinessAccountId, filters));
+ }
/**
* Retrieve templates message templates.
*
diff --git a/src/test/java/com/whatsapp/api/impl/WhatsappBusinessManagementApiTest.java b/src/test/java/com/whatsapp/api/impl/WhatsappBusinessManagementApiTest.java
index 788d5b7d2..39467bfa8 100644
--- a/src/test/java/com/whatsapp/api/impl/WhatsappBusinessManagementApiTest.java
+++ b/src/test/java/com/whatsapp/api/impl/WhatsappBusinessManagementApiTest.java
@@ -28,6 +28,7 @@
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Collections;
+import java.util.Map;
import static com.whatsapp.api.configuration.WhatsappApiConfig.getApiVersion;
@@ -507,6 +508,24 @@ void testRetrieveMessageTemplate3() throws IOException, URISyntaxException
}
+ @Test
+ void testRetrieveFilteredMessageTemplate() throws IOException, URISyntaxException, InterruptedException {
+ WhatsappApiFactory factory = WhatsappApiFactory.newInstance(TOKEN);
+
+ WhatsappBusinessManagementApi whatsappBusinessCloudApi = factory.newBusinessManagementApi();
+ mockWebServer.enqueue(new MockResponse().newBuilder().code(200).body(fromResource("/retTemplate3.json")).build());
+
+ var templates = whatsappBusinessCloudApi.retrieveTemplates(WABA_ID, Map.of("name", "welcome_template3"));
+
+ RecordedRequest recordedRequest = mockWebServer.takeRequest();
+ Assertions.assertEquals("GET", recordedRequest.getMethod());
+ Assertions.assertEquals("/" + API_VERSION + "/" + WABA_ID + "/message_templates?name=welcome_template3", recordedRequest.getPath());
+
+ Assertions.assertEquals(1, templates.data().size());
+ Assertions.assertEquals("welcome_template3", templates.data().get(0).name());
+ Assertions.assertEquals("Hello {{1}}, welcome to our {{2}} test.", templates.data().get(0).components().get(1).getText());
+ }
+
@Test
void testRetrieveMessageTemplate3WithLimit() throws IOException, URISyntaxException
{