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
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.

## [Unreleased]

## [17.5.0](https://github.com/pipedrive/client-php/compare17.4.0...17.5.0) (2026-08-13)

### Added
- Added `website`, `linkedin`, `industry`, `annual_revenue`, and `employee_count` as writable fields to v2 organization request body (`POST /api/v2/organizations`, `PATCH /api/v2/organizations/{id}`)
- Added `postal_address`, `notes`, `im`, `birthday`, and `job_title` as writable fields to v2 person request body (`POST /api/v2/persons`, `PATCH /api/v2/persons/{id}`) — these fields don't exist by default and are only created when contact sync is set up for the company
- Updated `POST /api/v2/persons` and `PATCH /api/v2/persons/{id}` descriptions to clarify that the `im`, `postal_address`, `notes`, `birthday`, and `job_title` fields require contact sync to be set up
### Fixed
- Removed `update_time` from `POST /api/v2/organizations` and `POST /api/v2/persons` request body schemas, and removed `add_time`/`update_time` from `PATCH /api/v2/organizations/{id}` and `PATCH /api/v2/persons/{id}` request body schemas — these are server-generated fields that were never meant to be accepted as input
- Added missing example values for `website`, `linkedin`, `industry`, `annual_revenue`, and `employee_count` to the v2 organization response example

## [17.4.0](https://github.com/pipedrive/client-php/compare17.3.1...17.4.0) (2026-08-13)

### Added
Expand Down
16 changes: 8 additions & 8 deletions docs/versions/v2/Api/OrganizationsApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Method | HTTP request | Description
## `addOrganization()`

```php
addOrganization($organization_request_body): \Pipedrive\versions\v2\Model\PostPatchGetOrganization
addOrganization($post_organization_request_body): \Pipedrive\versions\v2\Model\PostPatchGetOrganization
```

Add a new organization
Expand Down Expand Up @@ -48,10 +48,10 @@ $apiInstance = new Pipedrive\versions\v2\Api\OrganizationsApi(
new GuzzleHttp\Client(),
$config
);
$organization_request_body = new \Pipedrive\versions\v2\Model\OrganizationRequestBody(); // \Pipedrive\versions\v2\Model\OrganizationRequestBody
$post_organization_request_body = new \Pipedrive\versions\v2\Model\PostOrganizationRequestBody(); // \Pipedrive\versions\v2\Model\PostOrganizationRequestBody

try {
$result = $apiInstance->addOrganization($organization_request_body);
$result = $apiInstance->addOrganization($post_organization_request_body);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OrganizationsApi->addOrganization: ', $e->getMessage(), PHP_EOL;
Expand All @@ -62,7 +62,7 @@ try {

Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**organization_request_body** | [**\Pipedrive\versions\v2\Model\OrganizationRequestBody**](../Model/OrganizationRequestBody.md)| | [optional]
**post_organization_request_body** | [**\Pipedrive\versions\v2\Model\PostOrganizationRequestBody**](../Model/PostOrganizationRequestBody.md)| | [optional]

### Return type

Expand Down Expand Up @@ -656,7 +656,7 @@ Name | Type | Description | Notes
## `updateOrganization()`

```php
updateOrganization($id, $organization_request_body): \Pipedrive\versions\v2\Model\PostPatchGetOrganization
updateOrganization($id, $update_organization_request_body): \Pipedrive\versions\v2\Model\PostPatchGetOrganization
```

Update a organization
Expand Down Expand Up @@ -686,10 +686,10 @@ $apiInstance = new Pipedrive\versions\v2\Api\OrganizationsApi(
$config
);
$id = 56; // int | The ID of the organization
$organization_request_body = new \Pipedrive\versions\v2\Model\OrganizationRequestBody(); // \Pipedrive\versions\v2\Model\OrganizationRequestBody
$update_organization_request_body = new \Pipedrive\versions\v2\Model\UpdateOrganizationRequestBody(); // \Pipedrive\versions\v2\Model\UpdateOrganizationRequestBody

try {
$result = $apiInstance->updateOrganization($id, $organization_request_body);
$result = $apiInstance->updateOrganization($id, $update_organization_request_body);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling OrganizationsApi->updateOrganization: ', $e->getMessage(), PHP_EOL;
Expand All @@ -701,7 +701,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **int**| The ID of the organization |
**organization_request_body** | [**\Pipedrive\versions\v2\Model\OrganizationRequestBody**](../Model/OrganizationRequestBody.md)| | [optional]
**update_organization_request_body** | [**\Pipedrive\versions\v2\Model\UpdateOrganizationRequestBody**](../Model/UpdateOrganizationRequestBody.md)| | [optional]

### Return type

Expand Down
20 changes: 10 additions & 10 deletions docs/versions/v2/Api/PersonsApi.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ Method | HTTP request | Description
## `addPerson()`

```php
addPerson($person_request_body): \Pipedrive\versions\v2\Model\PostPatchGetPerson
addPerson($post_person_request_body): \Pipedrive\versions\v2\Model\PostPatchGetPerson
```

Add a new person

Adds a new person. If the company uses the [Campaigns product](https://pipedrive.readme.io/docs/campaigns-in-pipedrive-api), then this endpoint will also accept and return the `marketing_status` field.
Adds a new person. <br>If the company uses the [Campaigns product](https://pipedrive.readme.io/docs/campaigns-in-pipedrive-api), then this endpoint will also accept and return the `marketing_status` field. <br>The `im`, `postal_address`, `notes`, `birthday` and `job_title` fields don’t exist by default in Pipedrive and are only created when you set up your contact sync.

### Example

Expand All @@ -49,10 +49,10 @@ $apiInstance = new Pipedrive\versions\v2\Api\PersonsApi(
new GuzzleHttp\Client(),
$config
);
$person_request_body = new \Pipedrive\versions\v2\Model\PersonRequestBody(); // \Pipedrive\versions\v2\Model\PersonRequestBody
$post_person_request_body = new \Pipedrive\versions\v2\Model\PostPersonRequestBody(); // \Pipedrive\versions\v2\Model\PostPersonRequestBody

try {
$result = $apiInstance->addPerson($person_request_body);
$result = $apiInstance->addPerson($post_person_request_body);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling PersonsApi->addPerson: ', $e->getMessage(), PHP_EOL;
Expand All @@ -63,7 +63,7 @@ try {

Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**person_request_body** | [**\Pipedrive\versions\v2\Model\PersonRequestBody**](../Model/PersonRequestBody.md)| | [optional]
**post_person_request_body** | [**\Pipedrive\versions\v2\Model\PostPersonRequestBody**](../Model/PostPersonRequestBody.md)| | [optional]

### Return type

Expand Down Expand Up @@ -730,12 +730,12 @@ Name | Type | Description | Notes
## `updatePerson()`

```php
updatePerson($id, $person_request_body): \Pipedrive\versions\v2\Model\PostPatchGetPerson
updatePerson($id, $update_person_request_body): \Pipedrive\versions\v2\Model\PostPatchGetPerson
```

Update a person

Updates the properties of a person. <br>If the company uses the [Campaigns product](https://pipedrive.readme.io/docs/campaigns-in-pipedrive-api), then this endpoint will also accept and return the `marketing_status` field.
Updates the properties of a person. <br>If the company uses the [Campaigns product](https://pipedrive.readme.io/docs/campaigns-in-pipedrive-api), then this endpoint will also accept and return the `marketing_status` field. <br>The `im`, `postal_address`, `notes`, `birthday` and `job_title` fields don’t exist by default in Pipedrive and are only created when you set up your contact sync.

### Example

Expand All @@ -760,10 +760,10 @@ $apiInstance = new Pipedrive\versions\v2\Api\PersonsApi(
$config
);
$id = 56; // int | The ID of the person
$person_request_body = new \Pipedrive\versions\v2\Model\PersonRequestBody(); // \Pipedrive\versions\v2\Model\PersonRequestBody
$update_person_request_body = new \Pipedrive\versions\v2\Model\UpdatePersonRequestBody(); // \Pipedrive\versions\v2\Model\UpdatePersonRequestBody

try {
$result = $apiInstance->updatePerson($id, $person_request_body);
$result = $apiInstance->updatePerson($id, $update_person_request_body);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling PersonsApi->updatePerson: ', $e->getMessage(), PHP_EOL;
Expand All @@ -775,7 +775,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**id** | **int**| The ID of the person |
**person_request_body** | [**\Pipedrive\versions\v2\Model\PersonRequestBody**](../Model/PersonRequestBody.md)| | [optional]
**update_person_request_body** | [**\Pipedrive\versions\v2\Model\UpdatePersonRequestBody**](../Model/UpdatePersonRequestBody.md)| | [optional]

### Return type

Expand Down
8 changes: 4 additions & 4 deletions docs/versions/v2/Model/Person.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ Name | Type | Description | Notes
**org_id** | **int** | The ID of the organization linked to the person | [optional]
**add_time** | **string** | The creation date and time of the person | [optional]
**update_time** | **string** | The last updated date and time of the person | [optional]
**emails** | [**\Pipedrive\versions\v2\Model\PersonEmails[]**](PersonEmails.md) | The emails of the person | [optional]
**phones** | [**\Pipedrive\versions\v2\Model\PersonPhones[]**](PersonPhones.md) | The phones of the person | [optional]
**emails** | [**\Pipedrive\versions\v2\Model\PersonItemEmail[]**](PersonItemEmail.md) | The emails of the person | [optional]
**phones** | [**\Pipedrive\versions\v2\Model\PersonItemPhone[]**](PersonItemPhone.md) | The phones of the person | [optional]
**is_deleted** | **bool** | Whether the person is deleted or not | [optional]
**visible_to** | **int** | The visibility of the person | [optional]
**label_ids** | **int[]** | The IDs of labels assigned to the person | [optional]
**picture_id** | **int** | The ID of the picture associated with the person | [optional]
**postal_address** | [**\Pipedrive\versions\v2\Model\PersonPostalAddress**](PersonPostalAddress.md) | | [optional]
**postal_address** | [**\Pipedrive\versions\v2\Model\PersonItemAddress**](PersonItemAddress.md) | | [optional]
**notes** | **string** | Contact sync notes of the person, maximum 10 000 characters, included if contact sync is enabled for the company | [optional]
**im** | [**\Pipedrive\versions\v2\Model\PersonIm[]**](PersonIm.md) | The instant messaging accounts of the person, included if contact sync is enabled for the company | [optional]
**im** | [**\Pipedrive\versions\v2\Model\PersonItemIm[]**](PersonItemIm.md) | The instant messaging accounts of the person, included if contact sync is enabled for the company | [optional]
**birthday** | **string** | The birthday of the person, included if contact sync is enabled for the company | [optional]
**job_title** | **string** | The job title of the person, included if contact sync is enabled for the company | [optional]
**custom_fields** | **array<string,object>** | An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to &#x60;null&#x60;. For multi-option fields (field type &#x60;set&#x60;), use &#x60;null&#x60; to clear the selection — sending an empty array &#x60;[]&#x60; is not supported and will result in a validation error. | [optional]
Expand Down
8 changes: 4 additions & 4 deletions docs/versions/v2/Model/PersonItem.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ Name | Type | Description | Notes
**org_id** | **int** | The ID of the organization linked to the person | [optional]
**add_time** | **string** | The creation date and time of the person | [optional]
**update_time** | **string** | The last updated date and time of the person | [optional]
**emails** | [**\Pipedrive\versions\v2\Model\PersonEmails[]**](PersonEmails.md) | The emails of the person | [optional]
**phones** | [**\Pipedrive\versions\v2\Model\PersonPhones[]**](PersonPhones.md) | The phones of the person | [optional]
**emails** | [**\Pipedrive\versions\v2\Model\PersonItemEmail[]**](PersonItemEmail.md) | The emails of the person | [optional]
**phones** | [**\Pipedrive\versions\v2\Model\PersonItemPhone[]**](PersonItemPhone.md) | The phones of the person | [optional]
**is_deleted** | **bool** | Whether the person is deleted or not | [optional]
**visible_to** | **int** | The visibility of the person | [optional]
**label_ids** | **int[]** | The IDs of labels assigned to the person | [optional]
**picture_id** | **int** | The ID of the picture associated with the person | [optional]
**postal_address** | [**\Pipedrive\versions\v2\Model\PersonPostalAddress**](PersonPostalAddress.md) | | [optional]
**postal_address** | [**\Pipedrive\versions\v2\Model\PersonItemAddress**](PersonItemAddress.md) | | [optional]
**notes** | **string** | Contact sync notes of the person, maximum 10 000 characters, included if contact sync is enabled for the company | [optional]
**im** | [**\Pipedrive\versions\v2\Model\PersonIm[]**](PersonIm.md) | The instant messaging accounts of the person, included if contact sync is enabled for the company | [optional]
**im** | [**\Pipedrive\versions\v2\Model\PersonItemIm[]**](PersonItemIm.md) | The instant messaging accounts of the person, included if contact sync is enabled for the company | [optional]
**birthday** | **string** | The birthday of the person, included if contact sync is enabled for the company | [optional]
**job_title** | **string** | The job title of the person, included if contact sync is enabled for the company | [optional]
**custom_fields** | **array<string,object>** | An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to &#x60;null&#x60;. For multi-option fields (field type &#x60;set&#x60;), use &#x60;null&#x60; to clear the selection — sending an empty array &#x60;[]&#x60; is not supported and will result in a validation error. | [optional]
Expand Down
18 changes: 18 additions & 0 deletions docs/versions/v2/Model/PersonItemAddress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# # PersonItemAddress

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**value** | **string** | The full address of the person | [optional]
**country** | **string** | Country of the person | [optional]
**admin_area_level_1** | **string** | Admin area level 1 (e.g. state) of the person | [optional]
**admin_area_level_2** | **string** | Admin area level 2 (e.g. county) of the person | [optional]
**locality** | **string** | Locality (e.g. city) of the person | [optional]
**sublocality** | **string** | Sublocality (e.g. neighborhood) of the person | [optional]
**route** | **string** | Route (e.g. street) of the person | [optional]
**street_number** | **string** | Street number of the person | [optional]
**subpremise** | **string** | Subpremise (e.g. apartment/suite number) of the person | [optional]
**postal_code** | **string** | Postal code of the person | [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)
11 changes: 11 additions & 0 deletions docs/versions/v2/Model/PersonItemEmail.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# # PersonItemEmail

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**value** | **string** | The email address of the person | [optional]
**primary** | **bool** | Whether the email is primary or not | [optional]
**label** | **string** | The email address classification label | [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)
11 changes: 11 additions & 0 deletions docs/versions/v2/Model/PersonItemPhone.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# # PersonItemPhone

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**value** | **string** | The phone number of the person | [optional]
**primary** | **bool** | Whether the phone number is primary or not | [optional]
**label** | **string** | The phone number classification label | [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)
20 changes: 20 additions & 0 deletions docs/versions/v2/Model/PostOrganizationRequestBody.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# # PostOrganizationRequestBody

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **string** | The name of the organization | [optional]
**owner_id** | **int** | The ID of the user who owns the organization | [optional]
**add_time** | **string** | The creation date and time of the organization | [optional]
**visible_to** | **int** | The visibility of the organization | [optional]
**label_ids** | **int[]** | The IDs of labels assigned to the organization | [optional]
**address** | [**\Pipedrive\versions\v2\Model\OrganizationItemAddress**](OrganizationItemAddress.md) | | [optional]
**website** | **string** | The website of the organization | [optional]
**linkedin** | **string** | The LinkedIn profile URL of the organization | [optional]
**industry** | **int** | The industry the organization belongs to | [optional]
**annual_revenue** | **int** | The annual revenue of the organization | [optional]
**employee_count** | **int** | The number of employees in the organization | [optional]
**custom_fields** | **array<string,object>** | An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to &#x60;null&#x60;. For multi-option fields (field type &#x60;set&#x60;), use &#x60;null&#x60; to clear the selection — sending an empty array &#x60;[]&#x60; is not supported and will result in a validation error. | [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)
Loading