From b8b2f845dde5653e57f0350a6637dd9ddec27c15 Mon Sep 17 00:00:00 2001 From: Koushik SK Date: Mon, 18 May 2026 15:45:55 +0530 Subject: [PATCH 1/3] feat: add DBA (Doing Business As) field to profile Adds optional dba kwarg to profile.create() and exposes it on the update params dict, mirroring the campaign-service backend addition. Tests and the get-response fixture cover the new field. Co-Authored-By: Claude Sonnet 4.6 --- plivo/resources/profile.py | 10 ++++++---- tests/resources/fixtures/profileGetResponse.json | 1 + tests/resources/test_profile.py | 5 +++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/plivo/resources/profile.py b/plivo/resources/profile.py index 74988316..d82e85f9 100644 --- a/plivo/resources/profile.py +++ b/plivo/resources/profile.py @@ -60,7 +60,8 @@ def delete(self, profile_uuid): plivo_subaccount=[optional(of_type(six.text_type))], address=[optional(of_type_exact(dict))], authorized_contact=[optional(of_type_exact(dict))], - business_contact_email=[optional(of_type(six.text_type))]) + business_contact_email=[optional(of_type(six.text_type))], + dba=[optional(of_type(six.text_type))]) def create(self, profile_alias, customer_type, @@ -77,13 +78,14 @@ def create(self, website='', address={}, authorized_contact={}, - business_contact_email=''): + business_contact_email='', + dba=''): return self.client.request('POST', ('Profile', ), to_param_dict(self.create, locals())) - # params values should be dictionary like - # {'address': {}, 'authorized_contact': {}, 'entity_type':'', 'vertical': '', 'company_name': '', 'website':'', 'business_contact_email':''} + # params values should be dictionary like + # {'address': {}, 'authorized_contact': {}, 'entity_type':'', 'vertical': '', 'company_name': '', 'website':'', 'business_contact_email':'', 'dba':''} def update(self,profile_uuid, params=None): if params == None: raise ValidationError( diff --git a/tests/resources/fixtures/profileGetResponse.json b/tests/resources/fixtures/profileGetResponse.json index 66c84d02..deca26a1 100644 --- a/tests/resources/fixtures/profileGetResponse.json +++ b/tests/resources/fixtures/profileGetResponse.json @@ -7,6 +7,7 @@ }, "company_name": "ABC Inc.", "customer_type": "RESELLER", + "dba": "ABC DBA", "ein": "111111111", "ein_issuing_country": "US", "entity_type": "PUBLIC_PROFIT", diff --git a/tests/resources/test_profile.py b/tests/resources/test_profile.py index 54611281..4f1e168c 100644 --- a/tests/resources/test_profile.py +++ b/tests/resources/test_profile.py @@ -34,7 +34,8 @@ def test_create(self): "title": "CEO", "seniority": "C_LEVEL" }, - business_contact_email="employee@company.com" + business_contact_email="employee@company.com", + dba="Test DBA" ) self.assertEqual('POST', self.client.current_request.method) self.assertUrlEqual( @@ -73,7 +74,7 @@ def test_delete(self): @with_response(200) def test_update(self): - param = {'company_name': 'google'} + param = {'company_name': 'google', 'dba': 'Updated DBA'} response = self.client.profile.update(profile_uuid='09322f43-fe16-4525-b8e4-4229c867795d', params=param) # Verifying the endpoint hit print(self.client.current_request.url) From 667987939556a83684192aa65493f17c77b58174 Mon Sep 17 00:00:00 2001 From: Sanathan Srikar Mutya Date: Thu, 21 May 2026 17:11:33 +0530 Subject: [PATCH 2/3] feat: add dba field to Profile API Co-Authored-By: Claude Opus 4.6 (1M context) --- plivo/resources/profile.py | 6 +++--- tests/resources/fixtures/profileGetResponse.json | 2 +- tests/resources/test_profile.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plivo/resources/profile.py b/plivo/resources/profile.py index d82e85f9..ba4da1d3 100644 --- a/plivo/resources/profile.py +++ b/plivo/resources/profile.py @@ -61,7 +61,7 @@ def delete(self, profile_uuid): address=[optional(of_type_exact(dict))], authorized_contact=[optional(of_type_exact(dict))], business_contact_email=[optional(of_type(six.text_type))], - dba=[optional(of_type(six.text_type))]) + doing_business_as=[optional(of_type(six.text_type))]) def create(self, profile_alias, customer_type, @@ -79,13 +79,13 @@ def create(self, address={}, authorized_contact={}, business_contact_email='', - dba=''): + doing_business_as=''): return self.client.request('POST', ('Profile', ), to_param_dict(self.create, locals())) # params values should be dictionary like - # {'address': {}, 'authorized_contact': {}, 'entity_type':'', 'vertical': '', 'company_name': '', 'website':'', 'business_contact_email':'', 'dba':''} + # {'address': {}, 'authorized_contact': {}, 'entity_type':'', 'vertical': '', 'company_name': '', 'website':'', 'business_contact_email':'', 'doing_business_as':''} def update(self,profile_uuid, params=None): if params == None: raise ValidationError( diff --git a/tests/resources/fixtures/profileGetResponse.json b/tests/resources/fixtures/profileGetResponse.json index deca26a1..a30b2a96 100644 --- a/tests/resources/fixtures/profileGetResponse.json +++ b/tests/resources/fixtures/profileGetResponse.json @@ -7,7 +7,7 @@ }, "company_name": "ABC Inc.", "customer_type": "RESELLER", - "dba": "ABC DBA", + "doing_business_as": "ABC DBA", "ein": "111111111", "ein_issuing_country": "US", "entity_type": "PUBLIC_PROFIT", diff --git a/tests/resources/test_profile.py b/tests/resources/test_profile.py index 4f1e168c..bdba33e8 100644 --- a/tests/resources/test_profile.py +++ b/tests/resources/test_profile.py @@ -35,7 +35,7 @@ def test_create(self): "seniority": "C_LEVEL" }, business_contact_email="employee@company.com", - dba="Test DBA" + doing_business_as="Test DBA" ) self.assertEqual('POST', self.client.current_request.method) self.assertUrlEqual( @@ -74,7 +74,7 @@ def test_delete(self): @with_response(200) def test_update(self): - param = {'company_name': 'google', 'dba': 'Updated DBA'} + param = {'company_name': 'google', 'doing_business_as': 'Updated DBA'} response = self.client.profile.update(profile_uuid='09322f43-fe16-4525-b8e4-4229c867795d', params=param) # Verifying the endpoint hit print(self.client.current_request.url) From c5e480482255f6bfa58683dd80fa146fb76682d7 Mon Sep 17 00:00:00 2001 From: Sanathan Srikar Mutya Date: Mon, 25 May 2026 14:34:15 +0530 Subject: [PATCH 3/3] chore: version bump from 4.60.2 to 4.61.0 Co-Authored-By: Claude Opus 4.6 (1M context) --- CHANGELOG.md | 4 ++++ plivo/version.py | 2 +- setup.py | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3bc619d..bd036e4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ # Change Log +## [4.61.0](https://github.com/plivo/plivo-python/tree/v4.61.0) (2026-05-25) +**Feature - Profile API DBA field support** +- Added Doing Business As (DBA) field support to Profile API + ## [4.60.1](https://github.com/plivo/plivo-python/tree/v4.60.1) (2026-04-17) **Bug Fix - PhoneNumber Compliance API** - Fixed Requirements.get() sending None values as query params when not provided diff --git a/plivo/version.py b/plivo/version.py index d9200218..be3e91c2 100644 --- a/plivo/version.py +++ b/plivo/version.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -__version__ = '4.60.1' +__version__ = '4.61.0' diff --git a/setup.py b/setup.py index 5aa4ad1e..18f23075 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setup( name='plivo', - version='4.60.1', + version='4.61.0', description='A Python SDK to make voice calls & send SMS using Plivo and to generate Plivo XML', long_description=long_description, url='https://github.com/plivo/plivo-python',