diff --git a/src/main/java/com/resend/services/batch/Batch.java b/src/main/java/com/resend/services/batch/Batch.java
index cdcf2df..b2c1457 100644
--- a/src/main/java/com/resend/services/batch/Batch.java
+++ b/src/main/java/com/resend/services/batch/Batch.java
@@ -33,6 +33,8 @@ public Batch(final String apiKey) {
/**
* Sends up to 100 batch emails.
*
+ *
Each email supports standard send options plus {@code tags}.
+ *
* @param emails batch emails to send.
* @return The emails ids.
* @throws ResendException If an error occurs while sending batch emails.
@@ -54,6 +56,8 @@ public CreateBatchEmailsResponse send(List emails) throws Re
/**
* Sends up to 100 batch emails.
*
+ * Each email supports standard send options plus {@code tags}.
+ *
* @param emails batch emails to send.
* @param requestOptions The options with additional headers.
* @return The emails ids.
diff --git a/src/test/java/com/resend/services/batch/BatchTest.java b/src/test/java/com/resend/services/batch/BatchTest.java
index 0ae1c22..3b9c147 100644
--- a/src/test/java/com/resend/services/batch/BatchTest.java
+++ b/src/test/java/com/resend/services/batch/BatchTest.java
@@ -12,6 +12,7 @@
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -50,6 +51,21 @@ public void tearDown() throws Exception {
mocks.close();
}
+ @Test
+ public void testCreateBatchEmails_SerializesTags() throws ResendException {
+ List batchEmailsRequest = EmailsUtil.createBatchEmailOptions();
+ ArgumentCaptor payloadCaptor = ArgumentCaptor.forClass(String.class);
+ AbstractHttpResponse httpResponse = new AbstractHttpResponse<>(200, BATCH_RESPONSE_JSON, true);
+
+ when(httpClient.perform(eq("/emails/batch"), anyString(), eq(HttpMethod.POST), payloadCaptor.capture(), any(MediaType.class)))
+ .thenReturn(httpResponse);
+
+ batch.send(batchEmailsRequest);
+
+ String payload = payloadCaptor.getValue();
+ assertTrue(payload.contains("\"tags\":[{\"name\":\"tagName\",\"value\":\"tagValue\"}]"));
+ }
+
@Test
public void testCreateBatchEmails_Success() throws ResendException {
List batchEmailsRequest = EmailsUtil.createBatchEmailOptions();
diff --git a/src/test/java/com/resend/services/util/EmailsUtil.java b/src/test/java/com/resend/services/util/EmailsUtil.java
index efaadc1..9e8e432 100644
--- a/src/test/java/com/resend/services/util/EmailsUtil.java
+++ b/src/test/java/com/resend/services/util/EmailsUtil.java
@@ -99,8 +99,21 @@ public static CancelEmailResponse cancelEmailResponse() {
return new CancelEmailResponse("123", "emails");
}
+ public static CreateEmailOptions createBatchEmailOption() {
+ return CreateEmailOptions.builder()
+ .from("Acme ")
+ .to(Arrays.asList("example@resend.dev"))
+ .cc(Arrays.asList("example@resend.dev"))
+ .bcc(Arrays.asList("example@resend.dev"))
+ .replyTo(Arrays.asList("example@resend.dev", "example@resend.dev"))
+ .text("Hello, this is a batch email.")
+ .subject("Test batch email with tags")
+ .tags(Arrays.asList(createTag()))
+ .build();
+ }
+
public static List createBatchEmailOptions() {
- return Arrays.asList(createEmailOptions(), createEmailOptions());
+ return Arrays.asList(createBatchEmailOption(), createBatchEmailOption());
}
public static CreateBatchEmailsResponse createBatchEmailsResponse() {