diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5be50f17..7d6087eb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# Change Log
+## [5.49.0](https://github.com/plivo/plivo-java/tree/v5.49.0) (2026-06-11)
+**Feature - complianceApplicationId on phone number buy**
+- Added an optional `complianceApplicationId` builder param to `PhoneNumberCreator`, serialized to the `compliance_application_id` wire param on phone number buy
+- Lets regulated numbers (e.g. India) be purchased with an approved regulatory compliance application linked at purchase time
+- Backward-compatible additive builder method
+
## [5.48.1](https://github.com/plivo/plivo-java/tree/v5.48.1) (2026-05-26)
**Feature - Profile API DBA field support**
- Added Doing Business As (DBA) field support to Profile API
diff --git a/pom.xml b/pom.xml
index f2351839..a28af048 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.plivo
plivo-java
- 5.48.1
+ 5.49.0
plivo-java
A Java SDK to make voice calls & send SMS using Plivo and to generate Plivo XML
diff --git a/src/main/java/com/plivo/api/models/number/PhoneNumberCreator.java b/src/main/java/com/plivo/api/models/number/PhoneNumberCreator.java
index 36f548ec..83e47ace 100644
--- a/src/main/java/com/plivo/api/models/number/PhoneNumberCreator.java
+++ b/src/main/java/com/plivo/api/models/number/PhoneNumberCreator.java
@@ -9,6 +9,7 @@ public class PhoneNumberCreator extends Creator {
private String appId;
private String cnamLookup;
private Boolean haEnable;
+ private String complianceApplicationId;
public PhoneNumberCreator(String number) {
if (number == null) {
@@ -45,6 +46,15 @@ public PhoneNumberCreator haEnable(final Boolean haEnable) {
return this;
}
+ public String complianceApplicationId() {
+ return this.complianceApplicationId;
+ }
+
+ public PhoneNumberCreator complianceApplicationId(final String complianceApplicationId) {
+ this.complianceApplicationId = complianceApplicationId;
+ return this;
+ }
+
@Override
protected Call obtainCall() {
return client().getApiService().phoneNumberCreate(client().getAuthId(), number, this);
diff --git a/src/main/resources/com/plivo/api/version.txt b/src/main/resources/com/plivo/api/version.txt
index 297c7a9e..357e1c72 100644
--- a/src/main/resources/com/plivo/api/version.txt
+++ b/src/main/resources/com/plivo/api/version.txt
@@ -1 +1 @@
-5.48.1
+5.49.0
diff --git a/src/test/java/com/plivo/api/NumberTest.java b/src/test/java/com/plivo/api/NumberTest.java
index 81c4a1fb..93c54e28 100644
--- a/src/test/java/com/plivo/api/NumberTest.java
+++ b/src/test/java/com/plivo/api/NumberTest.java
@@ -2,6 +2,7 @@
import static junit.framework.TestCase.assertEquals;
+import com.fasterxml.jackson.databind.JsonNode;
import com.plivo.api.models.base.ListResponse;
import com.plivo.api.models.number.Number;
import com.plivo.api.models.number.PhoneNumber;
@@ -173,4 +174,20 @@ public void phoneNumberCreateWithClientShouldSucceed() throws Exception {
assertRequest("POST", "PhoneNumber/%s/", number);
}
+ @Test
+ public void phoneNumberBuyWithComplianceApplicationIdShouldSucceed() throws Exception {
+ expectResponse("phoneNumberCreateResponse.json", 201);
+
+ final String number = "1231231231";
+ final String complianceApplicationId = "1234567890123456";
+
+ PhoneNumber.buyer(number)
+ .complianceApplicationId(complianceApplicationId)
+ .create();
+
+ JsonNode payload = actualRequestPayload();
+ assertEquals(complianceApplicationId,
+ payload.get("compliance_application_id").asText());
+ }
+
}