Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,22 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Removed `deprecated: true` from LegacyTeams endpoints (`GET`/`POST /v1/legacyTeams`, `GET`/`PUT /v1/legacyTeams/{id}`, `GET`/`POST`/`DELETE /v1/legacyTeams/{id}/users`, `GET /v1/legacyTeams/user/{id}`) and updated the tag description to remove outdated deprecation notice

### Fixed
- Fixed `has_pic` field type in v1 deal creator schema (`DealNonStrictModeFields`, used by `GET`/`POST /v1/deals` and related endpoints) — changed from `boolean` to `integer` since the API returns `0`/`1`, not `true`/`false`
- Fixed `code` field type in v2 product search results (`GET /api/v2/products/search`) — changed from `integer` to `string` and made nullable to match actual API responses
- Fixed `value` field type in v2 deal search results (`DealSearchItem`, used by `GET /api/v2/deals/search`) — changed from `integer` to `number` and made nullable to match actual API responses
- Marked `data` nullable in `ListProductFilesResponse` (`GET /v1/products/{id}/files`)
- Marked `update_time` nullable in v2 deal, organization, person, and stage schemas (`DealItem`, `OrganizationItem`, `PersonItem`, `StageItem`)
- Marked `next_cursor` nullable in v2 cursor pagination schema, used across all v2 cursor-paginated list endpoints
- Marked several v2 activity fields nullable (`ActivityItem`): `deal_id`, `lead_id`, `person_id`, `org_id`, `project_id`, `due_time`, `duration`, `marked_as_done_time`, `location`, and all `location` address subfields (`country`, `admin_area_level_1`, `admin_area_level_2`, `locality`, `sublocality`, `route`, `street_number`, `subpremise`, `postal_code`)
- Marked v2 `OrganizationItemAddress` and `PersonItemAddress` objects and all their subfields nullable, and marked `PersonItem.picture_id` nullable
- Marked `person` nullable in v2 lead search results (`LeadSearchItem`) and `address` nullable in v2 organization search results (`OrganizationSearchItem`)
- Removed `person_id` from the v2 activity request body (`POST /api/v2/activities`, `PATCH /api/v2/activities/{id}`) — the API has always rejected it as read-only, and the schema advertised it as writable; use `participants: [{ "person_id": 123, "primary": true }]` instead. `org_id` is unaffected.
- Added `required: [name]` to the v2 person create request body (`POST /api/v2/persons`) — a bare call previously reached the API instead of failing client-side.
- Reworded the `im`, `notes`, `birthday`, and `job_title` field descriptions and the `addPerson`/`updatePerson` operation descriptions (which also cover `postal_address`) to disclose that these fields 403 when contact sync isn't enabled, rather than only describing when they're present on read.
- Fixed OAuth scopes on six v2 deal sub-resource write operations (`POST /api/v2/deals/{id}/discounts`, `PATCH`/`DELETE /api/v2/deals/{id}/discounts/{discount_id}`, `POST /api/v2/deals/{id}/installments`, `PATCH`/`DELETE /api/v2/deals/{id}/installments/{installment_id}`) that incorrectly listed `deals:read` alongside `deals:full`, copied from their sibling GET operations - these are now `deals:full` only, matching their read-write nature

## [17.8.0](https://github.com/pipedrive/client-php/compare/17.7.0...17.8.0) (2026-09-17)

## [17.7.0](https://github.com/pipedrive/client-php/compare/17.6.3...17.7.0) (2026-09-17)

## [17.6.3](https://github.com/pipedrive/client-php/compare/17.6.2...17.6.3) (2026-09-17)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **int** | The ID of the deal creator | [optional]
**name** | **string** | The name of the deal creator | [optional]
**email** | **string** | The email of the deal creator | [optional]
**has_pic** | **bool** | If the creator has a picture or not | [optional]
**has_pic** | **int** | If the creator has a picture or not | [optional]
**pic_hash** | **string** | The creator picture hash | [optional]
**active_flag** | **bool** | Whether the creator is active or not | [optional]
**value** | **int** | The ID of the deal creator | [optional]
Expand Down
2 changes: 1 addition & 1 deletion docs/versions/v2/Model/ActivityRequestBody.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Name | Type | Description | Notes
**duration** | **string** | The duration of the activity | [optional]
**busy** | **bool** | Whether the activity marks the assignee as busy or not in their calendar | [optional]
**done** | **bool** | Whether the activity is marked as done or not | [optional]
**location** | [**\Pipedrive\versions\v2\Model\ActivityItemLocation**](ActivityItemLocation.md) | | [optional]
**location** | [**\Pipedrive\versions\v2\Model\ActivityRequestBodyLocation**](ActivityRequestBodyLocation.md) | | [optional]
**participants** | [**\Pipedrive\versions\v2\Model\ActivityItemParticipants[]**](ActivityItemParticipants.md) | The participants of the activity. Use this to set the activity's person — a primary participant (`primary: true`) sets `person_id` on the activity. | [optional]
**attendees** | [**\Pipedrive\versions\v2\Model\ActivityItemAttendees[]**](ActivityItemAttendees.md) | The attendees of the activity | [optional]
**public_description** | **string** | The public description of the activity | [optional]
Expand Down
18 changes: 18 additions & 0 deletions docs/versions/v2/Model/ActivityRequestBodyLocation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# # ActivityRequestBodyLocation

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**value** | **string** | The full address of the activity | [optional]
**country** | **string** | Country of the activity | [optional]
**admin_area_level_1** | **string** | Admin area level 1 (e.g. state) of the activity | [optional]
**admin_area_level_2** | **string** | Admin area level 2 (e.g. county) of the activity | [optional]
**locality** | **string** | Locality (e.g. city) of the activity | [optional]
**sublocality** | **string** | Sublocality (e.g. neighborhood) of the activity | [optional]
**route** | **string** | Route (e.g. street) of the activity | [optional]
**street_number** | **string** | Street number of the activity | [optional]
**subpremise** | **string** | Subpremise (e.g. apartment/suite number) of the activity | [optional]
**postal_code** | **string** | Postal code of the activity | [optional]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
2 changes: 1 addition & 1 deletion docs/versions/v2/Model/DealSearchItemItem.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **int** | The ID of the deal | [optional]
**type** | **string** | The type of the item | [optional]
**title** | **string** | The title of the deal | [optional]
**value** | **int** | The value of the deal | [optional]
**value** | **float** | The value of the deal | [optional]
**currency** | **string** | The currency of the deal | [optional]
**status** | **string** | The status of the deal | [optional]
**visible_to** | **int** | The visibility of the deal | [optional]
Expand Down
2 changes: 1 addition & 1 deletion docs/versions/v2/Model/ProductSearchItemItem.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Name | Type | Description | Notes
**id** | **int** | The ID of the product | [optional]
**type** | **string** | The type of the item | [optional]
**name** | **string** | The name of the product | [optional]
**code** | **int** | The code of the product | [optional]
**code** | **string** | The code of the product | [optional]
**visible_to** | **int** | The visibility of the product | [optional]
**owner** | [**\Pipedrive\versions\v2\Model\ProductSearchItemItemOwner**](ProductSearchItemItemOwner.md) | | [optional]
**custom_fields** | **string[]** | The custom fields | [optional]
Expand Down
1 change: 1 addition & 0 deletions docs/versions/v2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,7 @@ Class | Method | HTTP request | Description
- [ActivityItemLocation](Model/ActivityItemLocation.md)
- [ActivityItemParticipants](Model/ActivityItemParticipants.md)
- [ActivityRequestBody](Model/ActivityRequestBody.md)
- [ActivityRequestBodyLocation](Model/ActivityRequestBodyLocation.md)
- [AddAdditionalDiscountResponse](Model/AddAdditionalDiscountResponse.md)
- [AddConvertDealToLeadResponse](Model/AddConvertDealToLeadResponse.md)
- [AddConvertLeadToDealResponse](Model/AddConvertLeadToDealResponse.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class DealNonStrictModeFieldsCreatorUserId implements ModelInterface, ArrayAcces
'id' => 'int',
'name' => 'string',
'email' => 'string',
'has_pic' => 'bool',
'has_pic' => 'int',
'pic_hash' => 'string',
'active_flag' => 'bool',
'value' => 'int'
Expand Down Expand Up @@ -340,7 +340,7 @@ public function setEmail($email): self
/**
* Gets has_pic
*
* @return bool|null
* @return int|null
*/
public function getHasPic()
{
Expand All @@ -350,7 +350,7 @@ public function getHasPic()
/**
* Sets has_pic
*
* @param bool|null $has_pic If the creator has a picture or not
* @param int|null $has_pic If the creator has a picture or not
*
* @return self
*/
Expand Down
6 changes: 3 additions & 3 deletions lib/versions/v2/Model/ActivityRequestBody.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ class ActivityRequestBody implements ModelInterface, ArrayAccess, JsonSerializab
'duration' => 'string',
'busy' => 'bool',
'done' => 'bool',
'location' => '\Pipedrive\versions\v2\Model\ActivityItemLocation',
'location' => '\Pipedrive\versions\v2\Model\ActivityRequestBodyLocation',
'participants' => '\Pipedrive\versions\v2\Model\ActivityItemParticipants[]',
'attendees' => '\Pipedrive\versions\v2\Model\ActivityItemAttendees[]',
'public_description' => 'string',
Expand Down Expand Up @@ -627,7 +627,7 @@ public function setDone($done): self
/**
* Gets location
*
* @return \Pipedrive\versions\v2\Model\ActivityItemLocation|null
* @return \Pipedrive\versions\v2\Model\ActivityRequestBodyLocation|null
*/
public function getLocation()
{
Expand All @@ -637,7 +637,7 @@ public function getLocation()
/**
* Sets location
*
* @param \Pipedrive\versions\v2\Model\ActivityItemLocation|null $location location
* @param \Pipedrive\versions\v2\Model\ActivityRequestBodyLocation|null $location location
*
* @return self
*/
Expand Down
Loading