From 2b3d22387239fd87d0b225d21cd467fe973f6ed3 Mon Sep 17 00:00:00 2001 From: pipedrive-bot Date: Fri, 6 Feb 2026 06:22:04 +0000 Subject: [PATCH 1/3] Build 310 - version-minor --- CHANGELOG.md | 7 +++ docs/versions/v2/Api/DealsApi.md | 8 +-- docs/versions/v2/Api/LeadsApi.md | 8 +-- .../v2/Model/AddProductRequestBody.md | 1 + docs/versions/v2/Model/PersonRequestBody.md | 5 +- docs/versions/v2/Model/ProductRequest.md | 1 + .../v2/Model/UpdateProductRequestBody.md | 1 + docs/versions/v2/README.md | 22 ++------ lib/versions/v1/Configuration.php | 4 +- lib/versions/v2/Api/DealsApi.php | 16 +++--- lib/versions/v2/Api/LeadsApi.php | 16 +++--- lib/versions/v2/Configuration.php | 4 +- .../v2/Model/AddProductRequestBody.php | 30 +++++++++++ lib/versions/v2/Model/PersonRequestBody.php | 52 +++++++++++++++---- lib/versions/v2/Model/ProductRequest.php | 40 ++++++++++++-- .../v2/Model/UpdateProductRequestBody.php | 30 +++++++++++ 16 files changed, 181 insertions(+), 64 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 499f794..ec06dc5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- Added `custom_fields` property to the Person entity request schema in v2 endpoints that will fix types in endpoints: + - `POST /api/v2/persons` + - `PATCH /api/v2/persons/{id}` +- Added `custom_fields` property to the Product entity request schema in v2 endpoints that will fix types in endpoints: + - `POST /api/v2/products` + - `PATCH /api/v2/products/{id}` ### Removed - Removed deprecated bulk delete endpoints: - `DELETE /v1/activities` diff --git a/docs/versions/v2/Api/DealsApi.md b/docs/versions/v2/Api/DealsApi.md index a757081..ed94715 100644 --- a/docs/versions/v2/Api/DealsApi.md +++ b/docs/versions/v2/Api/DealsApi.md @@ -8,7 +8,7 @@ Method | HTTP request | Description [**addDealFollower()**](DealsApi.md#addDealFollower) | **POST** /deals/{id}/followers | Add a follower to a deal [**addDealProduct()**](DealsApi.md#addDealProduct) | **POST** /deals/{id}/products | Add a product to a deal [**addManyDealProducts()**](DealsApi.md#addManyDealProducts) | **POST** /deals/{id}/products/bulk | Add multiple products to a deal -[**convertDealToLead()**](DealsApi.md#convertDealToLead) | **POST** /deals/{id}/convert/lead | Convert a deal to a lead (BETA) +[**convertDealToLead()**](DealsApi.md#convertDealToLead) | **POST** /deals/{id}/convert/lead | Convert a deal to a lead [**deleteAdditionalDiscount()**](DealsApi.md#deleteAdditionalDiscount) | **DELETE** /deals/{id}/discounts/{discount_id} | Delete a discount from a deal [**deleteDeal()**](DealsApi.md#deleteDeal) | **DELETE** /deals/{id} | Delete a deal [**deleteDealFollower()**](DealsApi.md#deleteDealFollower) | **DELETE** /deals/{id}/followers/{follower_id} | Delete a follower from a deal @@ -18,7 +18,7 @@ Method | HTTP request | Description [**getAdditionalDiscounts()**](DealsApi.md#getAdditionalDiscounts) | **GET** /deals/{id}/discounts | List discounts added to a deal [**getArchivedDeals()**](DealsApi.md#getArchivedDeals) | **GET** /deals/archived | Get all archived deals [**getDeal()**](DealsApi.md#getDeal) | **GET** /deals/{id} | Get details of a deal -[**getDealConversionStatus()**](DealsApi.md#getDealConversionStatus) | **GET** /deals/{id}/convert/status/{conversion_id} | Get Deal conversion status (BETA) +[**getDealConversionStatus()**](DealsApi.md#getDealConversionStatus) | **GET** /deals/{id}/convert/status/{conversion_id} | Get Deal conversion status [**getDealFollowers()**](DealsApi.md#getDealFollowers) | **GET** /deals/{id}/followers | List followers of a deal [**getDealFollowersChangelog()**](DealsApi.md#getDealFollowersChangelog) | **GET** /deals/{id}/followers/changelog | List followers changelog of a deal [**getDealProducts()**](DealsApi.md#getDealProducts) | **GET** /deals/{id}/products | List products attached to a deal @@ -306,7 +306,7 @@ Name | Type | Description | Notes convertDealToLead($id): \Pipedrive\versions\v2\Model\AddConvertDealToLeadResponse ``` -Convert a deal to a lead (BETA) +Convert a deal to a lead Initiates a conversion of a deal to a lead. The return value is an ID of a job that was assigned to perform the conversion. Related entities (notes, files, emails, activities, ...) are transferred during the process to the target entity. There are exceptions for entities like invoices or history that are not transferred and remain linked to the original deal. If the conversion is successful, the deal is marked as deleted. To retrieve the created entity ID and the result of the conversion, call the /api/v2/deals/{deal_id}/convert/status/{conversion_id} endpoint. @@ -1000,7 +1000,7 @@ Name | Type | Description | Notes getDealConversionStatus($id, $conversion_id) ``` -Get Deal conversion status (BETA) +Get Deal conversion status Returns information about the conversion. Status is always present and its value (not_started, running, completed, failed, rejected) represents the current state of the conversion. Lead ID is only present if the conversion was successfully finished. This data is only temporary and removed after a few days. diff --git a/docs/versions/v2/Api/LeadsApi.md b/docs/versions/v2/Api/LeadsApi.md index 62b258e..893def9 100644 --- a/docs/versions/v2/Api/LeadsApi.md +++ b/docs/versions/v2/Api/LeadsApi.md @@ -4,8 +4,8 @@ All URIs are relative to https://api.pipedrive.com/api/v2. Method | HTTP request | Description ------------- | ------------- | ------------- -[**convertLeadToDeal()**](LeadsApi.md#convertLeadToDeal) | **POST** /leads/{id}/convert/deal | Convert a lead to a deal (BETA) -[**getLeadConversionStatus()**](LeadsApi.md#getLeadConversionStatus) | **GET** /leads/{id}/convert/status/{conversion_id} | Get Lead conversion status (BETA) +[**convertLeadToDeal()**](LeadsApi.md#convertLeadToDeal) | **POST** /leads/{id}/convert/deal | Convert a lead to a deal +[**getLeadConversionStatus()**](LeadsApi.md#getLeadConversionStatus) | **GET** /leads/{id}/convert/status/{conversion_id} | Get Lead conversion status [**searchLeads()**](LeadsApi.md#searchLeads) | **GET** /leads/search | Search leads @@ -15,7 +15,7 @@ Method | HTTP request | Description convertLeadToDeal($id, $inline_object): \Pipedrive\versions\v2\Model\AddConvertLeadToDealResponse ``` -Convert a lead to a deal (BETA) +Convert a lead to a deal Initiates a conversion of a lead to a deal. The return value is an ID of a job that was assigned to perform the conversion. Related entities (notes, files, emails, activities, ...) are transferred during the process to the target entity. If the conversion is successful, the lead is marked as deleted. To retrieve the created entity ID and the result of the conversion, call the /api/v2/leads/{lead_id}/convert/status/{conversion_id} endpoint. @@ -82,7 +82,7 @@ Name | Type | Description | Notes getLeadConversionStatus($id, $conversion_id) ``` -Get Lead conversion status (BETA) +Get Lead conversion status Returns data about the conversion. Status is always present and its value (not_started, running, completed, failed, rejected) represents the current state of the conversion. Deal ID is only present if the conversion was successfully finished. This data is only temporary and removed after a few days. diff --git a/docs/versions/v2/Model/AddProductRequestBody.md b/docs/versions/v2/Model/AddProductRequestBody.md index 8a014a4..ffa422b 100644 --- a/docs/versions/v2/Model/AddProductRequestBody.md +++ b/docs/versions/v2/Model/AddProductRequestBody.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **is_linkable** | **bool** | Whether this product can be added to a deal or not | [optional] [default to true] **visible_to** | [**VisibleTo**](VisibleTo.md) | The visibility of the product. If omitted, the visibility will be set to the default visibility setting of this item type for the authorized user. Read more about visibility groups <a href=\"https://support.pipedrive.com/en/article/visibility-groups\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.<h4>Light / Growth and Professional plans</h4><table><tr><th style=\"width: 40px\">Value</th><th>Description</th></tr><tr><td>`1`</td><td>Owner &amp; followers</td><tr><td>`3`</td><td>Entire company</td></tr></table><h4>Premium / Ultimate plan</h4><table><tr><th style=\"width: 40px\">Value</th><th>Description</th></tr><tr><td>`1`</td><td>Owner only</td><tr><td>`3`</td><td>Owner's visibility group</td></tr><tr><td>`5`</td><td>Owner's visibility group and sub-groups</td></tr><tr><td>`7`</td><td>Entire company</td></tr></table> | [optional] **prices** | **object[]** | An array of objects, each containing: `currency` (string), `price` (number), `cost` (number, optional), `direct_cost` (number, optional). Note that there can only be one price per product per currency. When `prices` is omitted altogether, a default price of 0 and the user's default currency will be assigned. | [optional] +**custom_fields** | **array** | An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes | [optional] **billing_frequency** | [**\Pipedrive\versions\v2\Model\BillingFrequency1**](BillingFrequency1.md) | | [optional] **billing_frequency_cycles** | **int** | Only available in Growth and above plans The number of times the billing frequency repeats for a product in a deal When `billing_frequency` is set to `one-time`, this field must be `null` When `billing_frequency` is set to `weekly`, this field cannot be `null` For all the other values of `billing_frequency`, `null` represents a product billed indefinitely Must be a positive integer less or equal to 208 | [optional] diff --git a/docs/versions/v2/Model/PersonRequestBody.md b/docs/versions/v2/Model/PersonRequestBody.md index 403ed20..c420824 100644 --- a/docs/versions/v2/Model/PersonRequestBody.md +++ b/docs/versions/v2/Model/PersonRequestBody.md @@ -9,10 +9,11 @@ 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\PersonRequestBodyEmails[]**](PersonRequestBodyEmails.md) | The emails of the person | [optional] -**phones** | [**\Pipedrive\versions\v2\Model\PersonRequestBodyPhones[]**](PersonRequestBodyPhones.md) | The phones of the person | [optional] +**emails** | [**\Pipedrive\versions\v2\Model\PersonItemEmails[]**](PersonItemEmails.md) | The emails of the person | [optional] +**phones** | [**\Pipedrive\versions\v2\Model\PersonItemPhones[]**](PersonItemPhones.md) | The phones of the person | [optional] **visible_to** | **int** | The visibility of the person | [optional] **label_ids** | **int[]** | The IDs of labels assigned to the person | [optional] **marketing_status** | **string** | If the person does not have a valid email address, then the marketing status is **not set** and `no_consent` is returned for the `marketing_status` value when the new person is created. If the change is forbidden, the status will remain unchanged for every call that tries to modify the marketing status. Please be aware that it is only allowed **once** to change the marketing status from an old status to a new one.<table><tr><th>Value</th><th>Description</th></tr><tr><td>`no_consent`</td><td>The customer has not given consent to receive any marketing communications</td></tr><tr><td>`unsubscribed`</td><td>The customers have unsubscribed from ALL marketing communications</td></tr><tr><td>`subscribed`</td><td>The customers are subscribed and are counted towards marketing caps</td></tr><tr><td>`archived`</td><td>The customers with `subscribed` status can be moved to `archived` to save consent, but they are not paid for</td></tr></table> | [optional] +**custom_fields** | **array** | An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes | [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) diff --git a/docs/versions/v2/Model/ProductRequest.md b/docs/versions/v2/Model/ProductRequest.md index 9f91952..c1e4541 100644 --- a/docs/versions/v2/Model/ProductRequest.md +++ b/docs/versions/v2/Model/ProductRequest.md @@ -13,5 +13,6 @@ Name | Type | Description | Notes **is_linkable** | **bool** | Whether this product can be added to a deal or not | [optional] [default to true] **visible_to** | [**VisibleTo**](VisibleTo.md) | The visibility of the product. If omitted, the visibility will be set to the default visibility setting of this item type for the authorized user. Read more about visibility groups <a href=\"https://support.pipedrive.com/en/article/visibility-groups\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.<h4>Light / Growth and Professional plans</h4><table><tr><th style=\"width: 40px\">Value</th><th>Description</th></tr><tr><td>`1`</td><td>Owner &amp; followers</td><tr><td>`3`</td><td>Entire company</td></tr></table><h4>Premium / Ultimate plan</h4><table><tr><th style=\"width: 40px\">Value</th><th>Description</th></tr><tr><td>`1`</td><td>Owner only</td><tr><td>`3`</td><td>Owner's visibility group</td></tr><tr><td>`5`</td><td>Owner's visibility group and sub-groups</td></tr><tr><td>`7`</td><td>Entire company</td></tr></table> | [optional] **prices** | **object[]** | An array of objects, each containing: `currency` (string), `price` (number), `cost` (number, optional), `direct_cost` (number, optional). Note that there can only be one price per product per currency. When `prices` is omitted altogether, a default price of 0 and the user's default currency will be assigned. | [optional] +**custom_fields** | **array** | An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes | [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) diff --git a/docs/versions/v2/Model/UpdateProductRequestBody.md b/docs/versions/v2/Model/UpdateProductRequestBody.md index 2a1b904..a7ae010 100644 --- a/docs/versions/v2/Model/UpdateProductRequestBody.md +++ b/docs/versions/v2/Model/UpdateProductRequestBody.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **is_linkable** | **bool** | Whether this product can be added to a deal or not | [optional] [default to true] **visible_to** | [**VisibleTo**](VisibleTo.md) | The visibility of the product. If omitted, the visibility will be set to the default visibility setting of this item type for the authorized user. Read more about visibility groups <a href=\"https://support.pipedrive.com/en/article/visibility-groups\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.<h4>Light / Growth and Professional plans</h4><table><tr><th style=\"width: 40px\">Value</th><th>Description</th></tr><tr><td>`1`</td><td>Owner &amp; followers</td><tr><td>`3`</td><td>Entire company</td></tr></table><h4>Premium / Ultimate plan</h4><table><tr><th style=\"width: 40px\">Value</th><th>Description</th></tr><tr><td>`1`</td><td>Owner only</td><tr><td>`3`</td><td>Owner's visibility group</td></tr><tr><td>`5`</td><td>Owner's visibility group and sub-groups</td></tr><tr><td>`7`</td><td>Entire company</td></tr></table> | [optional] **prices** | **object[]** | An array of objects, each containing: `currency` (string), `price` (number), `cost` (number, optional), `direct_cost` (number, optional). Note that there can only be one price per product per currency. When `prices` is omitted altogether, a default price of 0 and the user's default currency will be assigned. | [optional] +**custom_fields** | **array** | An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes | [optional] **billing_frequency** | [**\Pipedrive\versions\v2\Model\BillingFrequency1**](BillingFrequency1.md) | | [optional] **billing_frequency_cycles** | **int** | Only available in Growth and above plans The number of times the billing frequency repeats for a product in a deal When `billing_frequency` is set to `one-time`, this field must be `null` When `billing_frequency` is set to `weekly`, this field cannot be `null` For all the other values of `billing_frequency`, `null` represents a product billed indefinitely Must be a positive integer less or equal to 208 | [optional] diff --git a/docs/versions/v2/README.md b/docs/versions/v2/README.md index ac62ecc..43fcdb4 100644 --- a/docs/versions/v2/README.md +++ b/docs/versions/v2/README.md @@ -272,18 +272,6 @@ Class | Method | HTTP request | Description *ActivitiesApi* | [**updateActivity**](Api/ActivitiesApi.md#updateactivity) | **PATCH** /activities/{id} | Update an activity *ActivityFieldsApi* | [**getActivityField**](Api/ActivityFieldsApi.md#getactivityfield) | **GET** /activityFields/{field_code} | Get one activity field *ActivityFieldsApi* | [**getActivityFields**](Api/ActivityFieldsApi.md#getactivityfields) | **GET** /activityFields | Get all activity fields -*BetaApi* | [**convertDealToLead**](Api/BetaApi.md#convertdealtolead) | **POST** /deals/{id}/convert/lead | Convert a deal to a lead (BETA) -*BetaApi* | [**convertLeadToDeal**](Api/BetaApi.md#convertleadtodeal) | **POST** /leads/{id}/convert/deal | Convert a lead to a deal (BETA) -*BetaApi* | [**deleteInstallment**](Api/BetaApi.md#deleteinstallment) | **DELETE** /deals/{id}/installments/{installment_id} | Delete an installment from a deal -*BetaApi* | [**deleteProductImage**](Api/BetaApi.md#deleteproductimage) | **DELETE** /products/{id}/images | Delete an image of a product -*BetaApi* | [**getDealConversionStatus**](Api/BetaApi.md#getdealconversionstatus) | **GET** /deals/{id}/convert/status/{conversion_id} | Get Deal conversion status (BETA) -*BetaApi* | [**getInstallments**](Api/BetaApi.md#getinstallments) | **GET** /deals/installments | List installments added to a list of deals -*BetaApi* | [**getLeadConversionStatus**](Api/BetaApi.md#getleadconversionstatus) | **GET** /leads/{id}/convert/status/{conversion_id} | Get Lead conversion status (BETA) -*BetaApi* | [**getProductImage**](Api/BetaApi.md#getproductimage) | **GET** /products/{id}/images | Get image of a product -*BetaApi* | [**postInstallment**](Api/BetaApi.md#postinstallment) | **POST** /deals/{id}/installments | Add an installment to a deal -*BetaApi* | [**updateInstallment**](Api/BetaApi.md#updateinstallment) | **PATCH** /deals/{id}/installments/{installment_id} | Update an installment added to a deal -*BetaApi* | [**updateProductImage**](Api/BetaApi.md#updateproductimage) | **PUT** /products/{id}/images | Update an image for a product -*BetaApi* | [**uploadProductImage**](Api/BetaApi.md#uploadproductimage) | **POST** /products/{id}/images | Upload an image for a product *DealFieldsApi* | [**addDealField**](Api/DealFieldsApi.md#adddealfield) | **POST** /dealFields | Create one deal field *DealFieldsApi* | [**addDealFieldOptions**](Api/DealFieldsApi.md#adddealfieldoptions) | **POST** /dealFields/{field_code}/options | Add deal field options in bulk *DealFieldsApi* | [**deleteDealField**](Api/DealFieldsApi.md#deletedealfield) | **DELETE** /dealFields/{field_code} | Delete one deal field @@ -296,7 +284,7 @@ Class | Method | HTTP request | Description *DealsApi* | [**addDealFollower**](Api/DealsApi.md#adddealfollower) | **POST** /deals/{id}/followers | Add a follower to a deal *DealsApi* | [**addDealProduct**](Api/DealsApi.md#adddealproduct) | **POST** /deals/{id}/products | Add a product to a deal *DealsApi* | [**addManyDealProducts**](Api/DealsApi.md#addmanydealproducts) | **POST** /deals/{id}/products/bulk | Add multiple products to a deal -*DealsApi* | [**convertDealToLead**](Api/DealsApi.md#convertdealtolead) | **POST** /deals/{id}/convert/lead | Convert a deal to a lead (BETA) +*DealsApi* | [**convertDealToLead**](Api/DealsApi.md#convertdealtolead) | **POST** /deals/{id}/convert/lead | Convert a deal to a lead *DealsApi* | [**deleteAdditionalDiscount**](Api/DealsApi.md#deleteadditionaldiscount) | **DELETE** /deals/{id}/discounts/{discount_id} | Delete a discount from a deal *DealsApi* | [**deleteDeal**](Api/DealsApi.md#deletedeal) | **DELETE** /deals/{id} | Delete a deal *DealsApi* | [**deleteDealFollower**](Api/DealsApi.md#deletedealfollower) | **DELETE** /deals/{id}/followers/{follower_id} | Delete a follower from a deal @@ -306,7 +294,7 @@ Class | Method | HTTP request | Description *DealsApi* | [**getAdditionalDiscounts**](Api/DealsApi.md#getadditionaldiscounts) | **GET** /deals/{id}/discounts | List discounts added to a deal *DealsApi* | [**getArchivedDeals**](Api/DealsApi.md#getarchiveddeals) | **GET** /deals/archived | Get all archived deals *DealsApi* | [**getDeal**](Api/DealsApi.md#getdeal) | **GET** /deals/{id} | Get details of a deal -*DealsApi* | [**getDealConversionStatus**](Api/DealsApi.md#getdealconversionstatus) | **GET** /deals/{id}/convert/status/{conversion_id} | Get Deal conversion status (BETA) +*DealsApi* | [**getDealConversionStatus**](Api/DealsApi.md#getdealconversionstatus) | **GET** /deals/{id}/convert/status/{conversion_id} | Get Deal conversion status *DealsApi* | [**getDealFollowers**](Api/DealsApi.md#getdealfollowers) | **GET** /deals/{id}/followers | List followers of a deal *DealsApi* | [**getDealFollowersChangelog**](Api/DealsApi.md#getdealfollowerschangelog) | **GET** /deals/{id}/followers/changelog | List followers changelog of a deal *DealsApi* | [**getDealProducts**](Api/DealsApi.md#getdealproducts) | **GET** /deals/{id}/products | List products attached to a deal @@ -322,8 +310,8 @@ Class | Method | HTTP request | Description *DealsApi* | [**updateInstallment**](Api/DealsApi.md#updateinstallment) | **PATCH** /deals/{id}/installments/{installment_id} | Update an installment added to a deal *ItemSearchApi* | [**searchItem**](Api/ItemSearchApi.md#searchitem) | **GET** /itemSearch | Perform a search from multiple item types *ItemSearchApi* | [**searchItemByField**](Api/ItemSearchApi.md#searchitembyfield) | **GET** /itemSearch/field | Perform a search using a specific field from an item type -*LeadsApi* | [**convertLeadToDeal**](Api/LeadsApi.md#convertleadtodeal) | **POST** /leads/{id}/convert/deal | Convert a lead to a deal (BETA) -*LeadsApi* | [**getLeadConversionStatus**](Api/LeadsApi.md#getleadconversionstatus) | **GET** /leads/{id}/convert/status/{conversion_id} | Get Lead conversion status (BETA) +*LeadsApi* | [**convertLeadToDeal**](Api/LeadsApi.md#convertleadtodeal) | **POST** /leads/{id}/convert/deal | Convert a lead to a deal +*LeadsApi* | [**getLeadConversionStatus**](Api/LeadsApi.md#getleadconversionstatus) | **GET** /leads/{id}/convert/status/{conversion_id} | Get Lead conversion status *LeadsApi* | [**searchLeads**](Api/LeadsApi.md#searchleads) | **GET** /leads/search | Search leads *OrganizationFieldsApi* | [**addOrganizationField**](Api/OrganizationFieldsApi.md#addorganizationfield) | **POST** /organizationFields | Create one organization field *OrganizationFieldsApi* | [**addOrganizationFieldOptions**](Api/OrganizationFieldsApi.md#addorganizationfieldoptions) | **POST** /organizationFields/{field_code}/options | Add organization field options in bulk @@ -579,8 +567,6 @@ Class | Method | HTTP request | Description - [PersonPictureItemPictures](Model/PersonPictureItemPictures.md) - [PersonPictureResponse](Model/PersonPictureResponse.md) - [PersonRequestBody](Model/PersonRequestBody.md) - - [PersonRequestBodyEmails](Model/PersonRequestBodyEmails.md) - - [PersonRequestBodyPhones](Model/PersonRequestBodyPhones.md) - [PersonSearchItem](Model/PersonSearchItem.md) - [PersonSearchItemItem](Model/PersonSearchItemItem.md) - [PersonSearchItemItemOrganization](Model/PersonSearchItemItemOrganization.md) diff --git a/lib/versions/v1/Configuration.php b/lib/versions/v1/Configuration.php index 86e83cb..682c41a 100644 --- a/lib/versions/v1/Configuration.php +++ b/lib/versions/v1/Configuration.php @@ -111,11 +111,11 @@ class Configuration */ protected string $host = 'https://api.pipedrive.com/v1'; /** - * User agent of the HTTP request, set to "Pipedrive-SDK-PHP-15.x" by default + * User agent of the HTTP request, set to "Pipedrive-SDK-PHP-14.x" by default * * @var string */ - protected string $userAgent = 'Pipedrive-SDK-PHP-15.x'; + protected string $userAgent = 'Pipedrive-SDK-PHP-14.x'; /** * Debug switch (default set to false) diff --git a/lib/versions/v2/Api/DealsApi.php b/lib/versions/v2/Api/DealsApi.php index d65e671..67ad71a 100644 --- a/lib/versions/v2/Api/DealsApi.php +++ b/lib/versions/v2/Api/DealsApi.php @@ -1333,7 +1333,7 @@ public function addManyDealProductsRequest($id, $create_many_deal_product_reques /** * Operation convertDealToLead * - * Convert a deal to a lead (BETA) + * Convert a deal to a lead * * @param int $id The ID of the deal to convert (required) * @@ -1350,7 +1350,7 @@ public function convertDealToLead($id) /** * Operation convertDealToLeadWithHttpInfo * - * Convert a deal to a lead (BETA) + * Convert a deal to a lead * * @param int $id The ID of the deal to convert (required) * @@ -1472,7 +1472,7 @@ public function convertDealToLeadWithHttpInfo($id) /** * Operation convertDealToLeadAsync * - * Convert a deal to a lead (BETA) + * Convert a deal to a lead * * @param int $id The ID of the deal to convert (required) * @@ -1492,7 +1492,7 @@ function ($response) { /** * Operation convertDealToLeadAsyncWithHttpInfo * - * Convert a deal to a lead (BETA) + * Convert a deal to a lead * * @param int $id The ID of the deal to convert (required) * @@ -4621,7 +4621,7 @@ public function getDealRequest($id, $include_fields = null, $custom_fields = nul /** * Operation getDealConversionStatus * - * Get Deal conversion status (BETA) + * Get Deal conversion status * * @param int $id The ID of a deal (required) * @param string $conversion_id The ID of the conversion (required) @@ -4638,7 +4638,7 @@ public function getDealConversionStatus($id, $conversion_id) /** * Operation getDealConversionStatusWithHttpInfo * - * Get Deal conversion status (BETA) + * Get Deal conversion status * * @param int $id The ID of a deal (required) * @param string $conversion_id The ID of the conversion (required) @@ -4700,7 +4700,7 @@ public function getDealConversionStatusWithHttpInfo($id, $conversion_id) /** * Operation getDealConversionStatusAsync * - * Get Deal conversion status (BETA) + * Get Deal conversion status * * @param int $id The ID of a deal (required) * @param string $conversion_id The ID of the conversion (required) @@ -4721,7 +4721,7 @@ function ($response) { /** * Operation getDealConversionStatusAsyncWithHttpInfo * - * Get Deal conversion status (BETA) + * Get Deal conversion status * * @param int $id The ID of a deal (required) * @param string $conversion_id The ID of the conversion (required) diff --git a/lib/versions/v2/Api/LeadsApi.php b/lib/versions/v2/Api/LeadsApi.php index 1785895..021221b 100644 --- a/lib/versions/v2/Api/LeadsApi.php +++ b/lib/versions/v2/Api/LeadsApi.php @@ -125,7 +125,7 @@ public function getConfig(): Configuration /** * Operation convertLeadToDeal * - * Convert a lead to a deal (BETA) + * Convert a lead to a deal * * @param string $id The ID of the lead to convert (required) * @param \Pipedrive\versions\v2\Model\InlineObject|null $inline_object inline_object (optional) @@ -143,7 +143,7 @@ public function convertLeadToDeal($id, $inline_object = null) /** * Operation convertLeadToDealWithHttpInfo * - * Convert a lead to a deal (BETA) + * Convert a lead to a deal * * @param string $id The ID of the lead to convert (required) * @param \Pipedrive\versions\v2\Model\InlineObject|null $inline_object (optional) @@ -266,7 +266,7 @@ public function convertLeadToDealWithHttpInfo($id, $inline_object = null) /** * Operation convertLeadToDealAsync * - * Convert a lead to a deal (BETA) + * Convert a lead to a deal * * @param string $id The ID of the lead to convert (required) * @param \Pipedrive\versions\v2\Model\InlineObject|null $inline_object (optional) @@ -287,7 +287,7 @@ function ($response) { /** * Operation convertLeadToDealAsyncWithHttpInfo * - * Convert a lead to a deal (BETA) + * Convert a lead to a deal * * @param string $id The ID of the lead to convert (required) * @param \Pipedrive\versions\v2\Model\InlineObject|null $inline_object (optional) @@ -453,7 +453,7 @@ public function convertLeadToDealRequest($id, $inline_object = null): Request /** * Operation getLeadConversionStatus * - * Get Lead conversion status (BETA) + * Get Lead conversion status * * @param string $id The ID of a lead (required) * @param string $conversion_id The ID of the conversion (required) @@ -470,7 +470,7 @@ public function getLeadConversionStatus($id, $conversion_id) /** * Operation getLeadConversionStatusWithHttpInfo * - * Get Lead conversion status (BETA) + * Get Lead conversion status * * @param string $id The ID of a lead (required) * @param string $conversion_id The ID of the conversion (required) @@ -532,7 +532,7 @@ public function getLeadConversionStatusWithHttpInfo($id, $conversion_id) /** * Operation getLeadConversionStatusAsync * - * Get Lead conversion status (BETA) + * Get Lead conversion status * * @param string $id The ID of a lead (required) * @param string $conversion_id The ID of the conversion (required) @@ -553,7 +553,7 @@ function ($response) { /** * Operation getLeadConversionStatusAsyncWithHttpInfo * - * Get Lead conversion status (BETA) + * Get Lead conversion status * * @param string $id The ID of a lead (required) * @param string $conversion_id The ID of the conversion (required) diff --git a/lib/versions/v2/Configuration.php b/lib/versions/v2/Configuration.php index 5b016ee..90cca17 100644 --- a/lib/versions/v2/Configuration.php +++ b/lib/versions/v2/Configuration.php @@ -111,11 +111,11 @@ class Configuration */ protected string $host = 'https://api.pipedrive.com/api/v2'; /** - * User agent of the HTTP request, set to "Pipedrive-SDK-PHP-15.x" by default + * User agent of the HTTP request, set to "Pipedrive-SDK-PHP-14.x" by default * * @var string */ - protected string $userAgent = 'Pipedrive-SDK-PHP-15.x'; + protected string $userAgent = 'Pipedrive-SDK-PHP-14.x'; /** * Debug switch (default set to false) diff --git a/lib/versions/v2/Model/AddProductRequestBody.php b/lib/versions/v2/Model/AddProductRequestBody.php index d6339b3..810e09d 100644 --- a/lib/versions/v2/Model/AddProductRequestBody.php +++ b/lib/versions/v2/Model/AddProductRequestBody.php @@ -76,6 +76,7 @@ class AddProductRequestBody implements ModelInterface, ArrayAccess, JsonSerializ 'is_linkable' => 'bool', 'visible_to' => '\Pipedrive\versions\v2\Model\VisibleTo', 'prices' => 'object[]', + 'custom_fields' => 'array', 'billing_frequency' => '\Pipedrive\versions\v2\Model\BillingFrequency1', 'billing_frequency_cycles' => 'int' ]; @@ -98,6 +99,7 @@ class AddProductRequestBody implements ModelInterface, ArrayAccess, JsonSerializ 'is_linkable' => null, 'visible_to' => null, 'prices' => null, + 'custom_fields' => null, 'billing_frequency' => null, 'billing_frequency_cycles' => null ]; @@ -143,6 +145,7 @@ public static function openAPIFormats(): array 'is_linkable' => 'is_linkable', 'visible_to' => 'visible_to', 'prices' => 'prices', + 'custom_fields' => 'custom_fields', 'billing_frequency' => 'billing_frequency', 'billing_frequency_cycles' => 'billing_frequency_cycles' ]; @@ -163,6 +166,7 @@ public static function openAPIFormats(): array 'is_linkable' => 'setIsLinkable', 'visible_to' => 'setVisibleTo', 'prices' => 'setPrices', + 'custom_fields' => 'setCustomFields', 'billing_frequency' => 'setBillingFrequency', 'billing_frequency_cycles' => 'setBillingFrequencyCycles' ]; @@ -183,6 +187,7 @@ public static function openAPIFormats(): array 'is_linkable' => 'getIsLinkable', 'visible_to' => 'getVisibleTo', 'prices' => 'getPrices', + 'custom_fields' => 'getCustomFields', 'billing_frequency' => 'getBillingFrequency', 'billing_frequency_cycles' => 'getBillingFrequencyCycles' ]; @@ -264,6 +269,7 @@ public function __construct(array $data = null) $this->container['is_linkable'] = $data['is_linkable'] ?? true; $this->container['visible_to'] = $data['visible_to'] ?? null; $this->container['prices'] = $data['prices'] ?? null; + $this->container['custom_fields'] = $data['custom_fields'] ?? null; $this->container['billing_frequency'] = $data['billing_frequency'] ?? null; $this->container['billing_frequency_cycles'] = $data['billing_frequency_cycles'] ?? null; } @@ -534,6 +540,30 @@ public function setPrices($prices): self return $this; } + /** + * Gets custom_fields + * + * @return array|null + */ + public function getCustomFields() + { + return $this->container['custom_fields']; + } + + /** + * Sets custom_fields + * + * @param array|null $custom_fields An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes + * + * @return self + */ + public function setCustomFields($custom_fields): self + { + $this->container['custom_fields'] = $custom_fields; + + return $this; + } + /** * Gets billing_frequency * diff --git a/lib/versions/v2/Model/PersonRequestBody.php b/lib/versions/v2/Model/PersonRequestBody.php index 6337ade..172c864 100644 --- a/lib/versions/v2/Model/PersonRequestBody.php +++ b/lib/versions/v2/Model/PersonRequestBody.php @@ -71,11 +71,12 @@ class PersonRequestBody implements ModelInterface, ArrayAccess, JsonSerializable 'org_id' => 'int', 'add_time' => 'string', 'update_time' => 'string', - 'emails' => '\Pipedrive\versions\v2\Model\PersonRequestBodyEmails[]', - 'phones' => '\Pipedrive\versions\v2\Model\PersonRequestBodyPhones[]', + 'emails' => '\Pipedrive\versions\v2\Model\PersonItemEmails[]', + 'phones' => '\Pipedrive\versions\v2\Model\PersonItemPhones[]', 'visible_to' => 'int', 'label_ids' => 'int[]', - 'marketing_status' => 'string' + 'marketing_status' => 'string', + 'custom_fields' => 'array' ]; /** @@ -95,7 +96,8 @@ class PersonRequestBody implements ModelInterface, ArrayAccess, JsonSerializable 'phones' => null, 'visible_to' => null, 'label_ids' => null, - 'marketing_status' => null + 'marketing_status' => null, + 'custom_fields' => null ]; /** @@ -138,7 +140,8 @@ public static function openAPIFormats(): array 'phones' => 'phones', 'visible_to' => 'visible_to', 'label_ids' => 'label_ids', - 'marketing_status' => 'marketing_status' + 'marketing_status' => 'marketing_status', + 'custom_fields' => 'custom_fields' ]; /** @@ -156,7 +159,8 @@ public static function openAPIFormats(): array 'phones' => 'setPhones', 'visible_to' => 'setVisibleTo', 'label_ids' => 'setLabelIds', - 'marketing_status' => 'setMarketingStatus' + 'marketing_status' => 'setMarketingStatus', + 'custom_fields' => 'setCustomFields' ]; /** @@ -174,7 +178,8 @@ public static function openAPIFormats(): array 'phones' => 'getPhones', 'visible_to' => 'getVisibleTo', 'label_ids' => 'getLabelIds', - 'marketing_status' => 'getMarketingStatus' + 'marketing_status' => 'getMarketingStatus', + 'custom_fields' => 'getCustomFields' ]; /** @@ -275,6 +280,7 @@ public function __construct(array $data = null) $this->container['visible_to'] = $data['visible_to'] ?? null; $this->container['label_ids'] = $data['label_ids'] ?? null; $this->container['marketing_status'] = $data['marketing_status'] ?? null; + $this->container['custom_fields'] = $data['custom_fields'] ?? null; } /** @@ -435,7 +441,7 @@ public function setUpdateTime($update_time): self /** * Gets emails * - * @return \Pipedrive\versions\v2\Model\PersonRequestBodyEmails[]|null + * @return \Pipedrive\versions\v2\Model\PersonItemEmails[]|null */ public function getEmails() { @@ -445,7 +451,7 @@ public function getEmails() /** * Sets emails * - * @param \Pipedrive\versions\v2\Model\PersonRequestBodyEmails[]|null $emails The emails of the person + * @param \Pipedrive\versions\v2\Model\PersonItemEmails[]|null $emails The emails of the person * * @return self */ @@ -459,7 +465,7 @@ public function setEmails($emails): self /** * Gets phones * - * @return \Pipedrive\versions\v2\Model\PersonRequestBodyPhones[]|null + * @return \Pipedrive\versions\v2\Model\PersonItemPhones[]|null */ public function getPhones() { @@ -469,7 +475,7 @@ public function getPhones() /** * Sets phones * - * @param \Pipedrive\versions\v2\Model\PersonRequestBodyPhones[]|null $phones The phones of the person + * @param \Pipedrive\versions\v2\Model\PersonItemPhones[]|null $phones The phones of the person * * @return self */ @@ -561,6 +567,30 @@ public function setMarketingStatus($marketing_status): self return $this; } + + /** + * Gets custom_fields + * + * @return array|null + */ + public function getCustomFields() + { + return $this->container['custom_fields']; + } + + /** + * Sets custom_fields + * + * @param array|null $custom_fields An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes + * + * @return self + */ + public function setCustomFields($custom_fields): self + { + $this->container['custom_fields'] = $custom_fields; + + return $this; + } /** * Returns true if offset exists. False otherwise. * diff --git a/lib/versions/v2/Model/ProductRequest.php b/lib/versions/v2/Model/ProductRequest.php index 9717fe4..3606496 100644 --- a/lib/versions/v2/Model/ProductRequest.php +++ b/lib/versions/v2/Model/ProductRequest.php @@ -74,7 +74,8 @@ class ProductRequest implements ModelInterface, ArrayAccess, JsonSerializable 'owner_id' => 'int', 'is_linkable' => 'bool', 'visible_to' => '\Pipedrive\versions\v2\Model\VisibleTo', - 'prices' => 'object[]' + 'prices' => 'object[]', + 'custom_fields' => 'array' ]; /** @@ -93,7 +94,8 @@ class ProductRequest implements ModelInterface, ArrayAccess, JsonSerializable 'owner_id' => null, 'is_linkable' => null, 'visible_to' => null, - 'prices' => null + 'prices' => null, + 'custom_fields' => null ]; /** @@ -135,7 +137,8 @@ public static function openAPIFormats(): array 'owner_id' => 'owner_id', 'is_linkable' => 'is_linkable', 'visible_to' => 'visible_to', - 'prices' => 'prices' + 'prices' => 'prices', + 'custom_fields' => 'custom_fields' ]; /** @@ -152,7 +155,8 @@ public static function openAPIFormats(): array 'owner_id' => 'setOwnerId', 'is_linkable' => 'setIsLinkable', 'visible_to' => 'setVisibleTo', - 'prices' => 'setPrices' + 'prices' => 'setPrices', + 'custom_fields' => 'setCustomFields' ]; /** @@ -169,7 +173,8 @@ public static function openAPIFormats(): array 'owner_id' => 'getOwnerId', 'is_linkable' => 'getIsLinkable', 'visible_to' => 'getVisibleTo', - 'prices' => 'getPrices' + 'prices' => 'getPrices', + 'custom_fields' => 'getCustomFields' ]; /** @@ -248,6 +253,7 @@ public function __construct(array $data = null) $this->container['is_linkable'] = $data['is_linkable'] ?? true; $this->container['visible_to'] = $data['visible_to'] ?? null; $this->container['prices'] = $data['prices'] ?? null; + $this->container['custom_fields'] = $data['custom_fields'] ?? null; } /** @@ -491,6 +497,30 @@ public function setPrices($prices): self return $this; } + + /** + * Gets custom_fields + * + * @return array|null + */ + public function getCustomFields() + { + return $this->container['custom_fields']; + } + + /** + * Sets custom_fields + * + * @param array|null $custom_fields An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes + * + * @return self + */ + public function setCustomFields($custom_fields): self + { + $this->container['custom_fields'] = $custom_fields; + + return $this; + } /** * Returns true if offset exists. False otherwise. * diff --git a/lib/versions/v2/Model/UpdateProductRequestBody.php b/lib/versions/v2/Model/UpdateProductRequestBody.php index 64c052c..b2a8185 100644 --- a/lib/versions/v2/Model/UpdateProductRequestBody.php +++ b/lib/versions/v2/Model/UpdateProductRequestBody.php @@ -76,6 +76,7 @@ class UpdateProductRequestBody implements ModelInterface, ArrayAccess, JsonSeria 'is_linkable' => 'bool', 'visible_to' => '\Pipedrive\versions\v2\Model\VisibleTo', 'prices' => 'object[]', + 'custom_fields' => 'array', 'billing_frequency' => '\Pipedrive\versions\v2\Model\BillingFrequency1', 'billing_frequency_cycles' => 'int' ]; @@ -98,6 +99,7 @@ class UpdateProductRequestBody implements ModelInterface, ArrayAccess, JsonSeria 'is_linkable' => null, 'visible_to' => null, 'prices' => null, + 'custom_fields' => null, 'billing_frequency' => null, 'billing_frequency_cycles' => null ]; @@ -143,6 +145,7 @@ public static function openAPIFormats(): array 'is_linkable' => 'is_linkable', 'visible_to' => 'visible_to', 'prices' => 'prices', + 'custom_fields' => 'custom_fields', 'billing_frequency' => 'billing_frequency', 'billing_frequency_cycles' => 'billing_frequency_cycles' ]; @@ -163,6 +166,7 @@ public static function openAPIFormats(): array 'is_linkable' => 'setIsLinkable', 'visible_to' => 'setVisibleTo', 'prices' => 'setPrices', + 'custom_fields' => 'setCustomFields', 'billing_frequency' => 'setBillingFrequency', 'billing_frequency_cycles' => 'setBillingFrequencyCycles' ]; @@ -183,6 +187,7 @@ public static function openAPIFormats(): array 'is_linkable' => 'getIsLinkable', 'visible_to' => 'getVisibleTo', 'prices' => 'getPrices', + 'custom_fields' => 'getCustomFields', 'billing_frequency' => 'getBillingFrequency', 'billing_frequency_cycles' => 'getBillingFrequencyCycles' ]; @@ -264,6 +269,7 @@ public function __construct(array $data = null) $this->container['is_linkable'] = $data['is_linkable'] ?? true; $this->container['visible_to'] = $data['visible_to'] ?? null; $this->container['prices'] = $data['prices'] ?? null; + $this->container['custom_fields'] = $data['custom_fields'] ?? null; $this->container['billing_frequency'] = $data['billing_frequency'] ?? null; $this->container['billing_frequency_cycles'] = $data['billing_frequency_cycles'] ?? null; } @@ -534,6 +540,30 @@ public function setPrices($prices): self return $this; } + /** + * Gets custom_fields + * + * @return array|null + */ + public function getCustomFields() + { + return $this->container['custom_fields']; + } + + /** + * Sets custom_fields + * + * @param array|null $custom_fields An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes + * + * @return self + */ + public function setCustomFields($custom_fields): self + { + $this->container['custom_fields'] = $custom_fields; + + return $this; + } + /** * Gets billing_frequency * From 6aff266aed29ddb75635c8e2180beb7b79a2d6a9 Mon Sep 17 00:00:00 2001 From: Siiri Mangus Date: Fri, 6 Feb 2026 16:29:24 +0200 Subject: [PATCH 2/3] Fix the SDK version number in userAgent --- lib/versions/v1/Configuration.php | 4 ++-- lib/versions/v2/Configuration.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/versions/v1/Configuration.php b/lib/versions/v1/Configuration.php index 682c41a..86e83cb 100644 --- a/lib/versions/v1/Configuration.php +++ b/lib/versions/v1/Configuration.php @@ -111,11 +111,11 @@ class Configuration */ protected string $host = 'https://api.pipedrive.com/v1'; /** - * User agent of the HTTP request, set to "Pipedrive-SDK-PHP-14.x" by default + * User agent of the HTTP request, set to "Pipedrive-SDK-PHP-15.x" by default * * @var string */ - protected string $userAgent = 'Pipedrive-SDK-PHP-14.x'; + protected string $userAgent = 'Pipedrive-SDK-PHP-15.x'; /** * Debug switch (default set to false) diff --git a/lib/versions/v2/Configuration.php b/lib/versions/v2/Configuration.php index 90cca17..5b016ee 100644 --- a/lib/versions/v2/Configuration.php +++ b/lib/versions/v2/Configuration.php @@ -111,11 +111,11 @@ class Configuration */ protected string $host = 'https://api.pipedrive.com/api/v2'; /** - * User agent of the HTTP request, set to "Pipedrive-SDK-PHP-14.x" by default + * User agent of the HTTP request, set to "Pipedrive-SDK-PHP-15.x" by default * * @var string */ - protected string $userAgent = 'Pipedrive-SDK-PHP-14.x'; + protected string $userAgent = 'Pipedrive-SDK-PHP-15.x'; /** * Debug switch (default set to false) From 23aa4ab124eb2cf51e8978313380389aa0cbecad Mon Sep 17 00:00:00 2001 From: Siiri Mangus Date: Fri, 6 Feb 2026 16:30:16 +0200 Subject: [PATCH 3/3] Release v15.3.0 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56e18a9..b220270 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] + +## [15.3.0](https://github.com/pipedrive/client-php/compare/15.2.0...15.3.0) (2026-02-06) + ### Added - Added `custom_fields` property to the Person entity request schema in v2 endpoints that will fix types in endpoints: - `POST /api/v2/persons`