Releases: bitrix24/b24phpsdk
Releases · bitrix24/b24phpsdk
1.8.0
Added
- Added service
Services\CRM\Type\Service\Typewith support methods,
see crm.type.* methods:fieldsmethod retrieves information about the custom fields of the smart process settingsaddmethod creates a new SPAupdateupdates an existing SPA by its identifier idgetmethod retrieves information about the SPA with the identifier idgetByEntityTypeIdmethod retrieves information about the SPA with the smart process type identifier entityTypeIdlistGet a list of custom types crm.type.listdeleteThis method deletes an existing smart process by the identifier id
- For
AbstractCrmItemadded methodgetSmartProcessItemto get smart process item, see details - Added support for events, see details
onCrmContactAddonCrmContactUpdateonCrmContactDelete
- Added separated methods
RemoteEventsFactory::createandRemoteEventsFactory::validatefor create and validate incoming
events, see details - Added comprehensive unit tests for
RemoteEventsFactory::createandRemoteEventsFactory::validatemethods with 14 test cases covering:- Event creation for supported event types (CRM Contact Add, Application Install)
- Handling of unsupported events
- Request validation
- Token validation with
Bitrix24AccountInterface - Special handling for
OnApplicationInstallevents
- Updated
ContactPersonInterfaceimplementation, see details with new methods:- Added
isEmailVerified(): boolto check email verification status - Added
isMobilePhoneVerified(): boolto check mobile phone verification status - Changed
changeEmail(?string $email)signature (removed optional$isEmailVerifiedparameter) - Changed
changeMobilePhone(?PhoneNumber $phoneNumber)signature (removed optional$isMobilePhoneVerifiedparameter) - Added
getUserAgentInfo(): UserAgentInfoto replace separate methods for user agent data
- Added
- Added comprehensive unit tests for
UTMsclass with 28 test cases covering:- Constructor with all, partial, and default parameters
- URL parsing with various UTM parameter combinations
- Case-insensitive parameter handling
- URL encoding and special characters
- Real-world URL examples (Google Ads, Facebook, Email, Twitter, LinkedIn, etc.)
- Added comprehensive unit tests for
UserAgentInfoclass with 33 test cases covering:- Constructor with IP addresses (IPv4, IPv6, localhost)
- Various user agent strings (Chrome, Firefox, Safari, Edge, mobile browsers)
- UTM extraction from referrer URLs
- Real-world scenarios with complete user tracking data
- Added support for dynamic OAuth server selection based on regional endpoints:
Credentialsclass now supportsEndpointsobject withauthServerUrlandclientUrl- New methods in
Credentials:getEndpoints(),getOauthServerUrl(),getClientUrl(),
changeDomainUrl(), see details Endpointsclass gainedchangeClientUrl()method to create new instance with updated client URL (immutable)RenewedAuthTokengainedgetEndpoints()method to createEndpointsobject from server responseCoreBuildergainedwithEndpoints()andwithOauthServerUrl()methods for explicit endpoint configuration- OAuth server URL is automatically extracted from
server_endpointfield in API responses - Default OAuth server remains
https://oauth.bitrix.infofor backward compatibility
- Added comprehensive unit tests for
Endpointsclass with 29 test cases covering:- Constructor validation for client and auth server URLs
getClientUrl()andgetAuthServerUrl()methodschangeClientUrl()method with immutability checksinitFromArray()static factory method with validation- URL format validation (HTTP/HTTPS, ports, paths, subdomains)
- Error handling for invalid URLs and missing required fields
- Automatic addition of
https://protocol when missing from client URL - Added automatic protocol fallback in
Endpointsconstructor: if client URL is provided without protocol (e.g.,example.bitrix24.com),https://is automatically added
Changed
- Breaking changes in
ContactPersonInterfacemethod signatures:changeEmail(?string $email)- removed second parameter?bool $isEmailVerified. Migration path: callmarkEmailAsVerified()separately after
changeEmail()if email needs to be verifiedchangeMobilePhone(?PhoneNumber $phoneNumber)- removed second parameter?bool $isMobilePhoneVerified. Migration path: call
markMobilePhoneAsVerified()separately afterchangeMobilePhone()if phone needs to be verified- Replaced
getUserAgent(),getUserAgentReferer(),getUserAgentIp()methods with singlegetUserAgentInfo(): UserAgentInfomethod that returns
complete user agent information object. Migration path: use$info->userAgent,$info->referrer,$info->ipproperties instead
- Updated
RemoteEventsFactory::validate()method signature fromvalidate(EventInterface $event, string $applicationToken)to
validate(Bitrix24AccountInterface $bitrix24Account, EventInterface $event). Now usesBitrix24AccountInterface::isApplicationTokenValid()for token
validation instead of direct string comparison - Docker configuration updated to PHP 8.4 - Development environment now uses PHP 8.4.14 (docker/php-cli/Dockerfile):
- Upgraded from PHP 8.3 to PHP 8.4 base image (
php:8.4-cli-bookworm) - Updated Composer to version 2.8
- Added PHP extension installer v2.4 from mlocati for easier extension management
- Added new PHP extensions:
amqp,excimer,opcache,pcntl,yaml,zip - Changed base OS from Alpine to Debian Bookworm for better compatibility
- Implemented multi-stage Docker build for optimized image size
- Added proper user/group ID mapping for www-data user (UID/GID 10001)
- Set proper working directory ownership and non-root user execution
- Upgraded from PHP 8.3 to PHP 8.4 base image (
- PHP 8.4 compatibility improvements:
- Rector configuration updated to use
LevelSetList::UP_TO_PHP_84for PHP 8.4 feature detection - PHPUnit configuration updated to PHPUnit 11.0 attribute set (
PHPUnitSetList::PHPUNIT_110) - Fixed all implicitly nullable parameter deprecation warnings (8 occurrences)
- Fixed PHPStan internal errors with
random_int()range handling
- Rector configuration updated to use
- OAuth server selection made dynamic:
ApiClientnow usesCredentials::getOauthServerUrl()instead of hardcoded constantCoreautomatically updates endpoints in credentials when receiving renewed auth tokens- OAuth server URL is preserved and updated from
server_endpointin token refresh responses - Existing code continues to work without changes (backward compatible)
Fixed
- Fixed wrong offset in
ItemsResultsee details - Fixed wrong exception for method
crm.item.get, now itItemNotFoundExceptionsee details - Fixed added type
projectin enumPortalLicenseFamilysee details - Fixed errors in
ContactPersonRepositoryInterfaceTest, see details - Breaking change: Fixed method signature
Credentials::createFromOAuth()- third parameter changed fromstring $domainUrltoEndpoints $endpoints
object- Migration: Replace
Credentials::createFromOAuth($authToken, $appProfile, 'https://example.com')with
Credentials::createFromOAuth($authToken, $appProfile, new Endpoints('https://example.com', 'https://oauth.bitrix.info/')) - Updated all unit and integration tests to use new signature
- Migration: Replace
- Fixed bug in
Endpointsclass constructor (line 35) - validation should check$this->authServerUrlinstead of$authServerUrlparameter - Fixed unit tests in
CredentialsTest.phpto properly instantiateEndpointsobjects - Fixed unit tests in
CoreTest.phpintegration test to useEndpointsobject
Deprecated
- Method
RemoteEventsFactory::createEventmarked as deprecated, useRemoteEventsFactory::createandRemoteEventsFactory::validateinstead
Statistics
Bitrix24 API-methods count: 1162
Supported in bitrix24-php-sdk methods count: 639
Coverage percentage: 54.99% 🚀
Supported in bitrix24-php-sdk methods with batch wrapper count: 91
New Contributors
- @maximyugov made their first contribution in #295
1.7.0
Added
- Added service
Services\Sale\Delivery\Service\Deliverywith support methods,
see sale.delivery.* methods:addadds a delivery serviceupdateupdates a delivery servicegetlistreturns a list of delivery servicesdeletedeletes a delivery serviceconfigUpdateupdates delivery service settingsconfigGetreturns delivery service settings
- Added service
Services\Sale\DeliveryRequest\Service\DeliveryRequestwith support methods,
see sale.delivery.request.* methods:updateupdates the delivery requestsendMessagecreates notifications for the delivery requestdeletedeletes the delivery request
- Added service
Services\Sale\DeliveryExtraService\Service\DeliveryExtraServicewith support methods,
see sale.delivery.extra.service.* methods:addadds a delivery serviceupdateupdates a delivery servicegetreturns information about all services of a specific delivery servicedeletedeletes a delivery service
- Added service
Services\Sale\DeliveryHandler\Service\DeliveryHandlerwith support methods,
see sale.delivery.handler.* methods:addadds a delivery service handlerupdateupdates the delivery service handlerlistreturns a list of delivery service handlersdeletedeletes a delivery service handler
- Added service
Services\Disk\Service\Diskwith support methods,
see disk service methods:getVersionreturns the version by identifiergetAttachedObjectreturns information about the attached filegetRightsTasksreturns a list of available access levels that can be used for assigning permissions
- Added service
Services\Disk\Storage\Service\Storagewith support methods,
see disk.storage.* methods:fieldsreturns the description of the storage fieldsgetreturns the storage by identifierrenamerenames the storagelistreturns a list of available storagesgetTypesreturns a list of storage typesaddFoldercreates a folder in the root of the storagegetChildrenreturns a list of files and folders in the root of the storageuploadFileuploads a new file to the root of the storagegetForAppreturns the description of the storage that the application can work with
- Added service
Services\Disk\Folder\Service\Folderwith support methods,
see disk.folder.* methods:getFieldsreturns the description of folder fieldsgetreturns the folder by identifiergetChildrenreturns a list of files and folders that are directly in the folderaddSubfoldercreates a subfoldercopyTocopies the folder to the specified foldermoveTomoves the folder to the specified folderrenamerenames the foldermarkDeletedmoves the folder to the trashrestorerestores the folder from the trashdeleteTreepermanently destroys the folder and all its child elementsgetExternalLinkreturns a public linkuploadFileuploads a new file to the specified folder
- Added service
Services\Disk\File\Service\Filewith support methods,
see disk.file.* methods:getFieldsreturns the description of file fieldsgetreturns the file by identifierrenamerenames the filecopyTocopies the file to the specified foldermoveTomoves the file to the specified folderdeletepermanently destroys the filemarkDeletedmoves the file to the trashrestorerestores the file from the trashuploadVersionuploads a new version of the filegetVersionsreturns a list of file versionsrestoreFromVersionrestores the file from a specific versiongetExternalLinkreturns a public link to the file
- Added service
Services\CRM\Documentgenerator\Numeratorwith support methods,
see crm.documentgenerator.numerator.* methods:addadds a new numerator, with batch calls supportlistgets the list of numerators, with batch calls supportupdateupdates an existing numbering with new values, with batch calls supportdeletedeletes a numerator, with batch calls supportgetgets information about the numerator by its identifiercountcount numerators
- Added service
Services\Paysystem\Handler\Service\Handlerwith support methods,
see pay_system.handler.* methods:addadds a payment system handlerupdateupdates a payment system handlerlistreturns a list of payment system handlersdeletedeletes a payment system handler
- Added service
Services\Paysystem\Service\Paysystemwith support methods,
see sale.paysystem.* methods:addadds a payment systemupdateupdates a payment systemgetreturns a payment system by its identifierlistreturns a list of payment systemsdeletedeletes a payment systempayPaymentpays a paymentpayInvoicepays an invoice (legacy version)
- Added service
Services\Paysystem\Settings\Service\Settingswith support methods,
see sale.paysystem.settings.* methods:getreturns the settings of the payment systemupdateupdates the payment system settingsgetForPaymentreturns the payment system settings for a specific paymentgetForInvoicereturns the payment system settings for a specific invoice (legacy version)
- Added service
Services\Sale\Shipment\Service\Shipmentwith support methods,
see sale.shipment.* methods:addadds a shipmentupdateupdates the fields of a shipmentgetreturns a shipment by its identifierlistreturns a list of shipmentsdeletedeletes a shipmentgetFieldsreturns the fields and settings for shipments
- Added service
Services\Sale\ShipmentProperty\Service\ShipmentPropertywith support methods,
see sale.shipmentproperty.* methods:addadds a shipment propertyupdateupdates the fields of a shipment propertygetreturns a shipment property by its identifierlistreturns a list of shipment propertiesdeletedeletes a shipment propertygetFieldsByTypereturns the fields and settings for shipment properties by type
- Added service
Services\Sale\ShipmentPropertyValue\Service\ShipmentPropertyValuewith support methods,
see sale.shipmentpropertyvalue.* methods:modifyupdates shipment property values for a shipmentgetreturns a shipment property value by its identifierlistreturns a list of shipment property valuesdeletedeletes a shipment property valuegetFieldsreturns the fields and settings for shipment property values
- Added service
Services\Sale\ShipmentItem\Service\ShipmentItemwith support methods,
see sale.shipmentitem.* methods:addadds a new shipment itemupdateupdates the fields of a shipment itemgetreturns a shipment item by its identifierlistreturns a list of shipment itemsdeletedeletes a shipment itemgetFieldsreturns the fields and settings for shipment items
- Added service
Services\Sale\Payment\Service\Paymentwith support methods,
see sale.payment.* methods:addadds a paymentupdateupdates the fields of a paymentgetreturns a payment by its identifierlistreturns a list of paymentsdeletedeletes a paymentgetFieldsreturns the fields and settings for payments
- Added service
Services\Sale\CashboxHandler\Service\CashboxHandlerwith support methods,
see sale.cashbox.handler.* methods:addadds a REST cashbox handlerupdateupdates the data of the REST cashbox handlerlistreturns a list of available REST cashbox handlersdeletedeletes the REST cashbox handler
- Added service
Services\Sale\Cashbox\Service\Cashboxwith support methods,
see sale.cashbox.* methods:addadds a new cash registerupdateupdates an existing cash registerlistreturns a list of configured cash registersdeletedeletes a cash registercheckApplysaves the result of printing the receipt
- Added service
Services\Calendar\Service\Calendarwith support methods,
see calendar.* methods:addadds a new calendar sectionupdateupdates a calendar sectiongetreturns a list of calendar sectionsdeletedeletes a calendar sectiongetSettingsreturns main calendar settingsgetUserSettingsreturns user calendar settingssetUserSettingssets user calendar settings
- Added support for events:
OnCalendarSectionAddOnCalendarSectionUpdate- `OnCale...
1.6.0
1.6.0 – 2025.09.01
Added
- Added service
Services\Sale\Order\Service\Orderwith support methods,
see sale.order.* methods:addadds an order, with batch calls supportupdatemodifies an order, with batch calls supportgetreturns order fields and fields of related objectslistreturns a list of orders, with batch calls supportdeletedeletes an order and related objects, with batch calls supportgetFieldsreturns order fields
- Added service
Services\Sale\PropertyVariant\Service\PropertyVariantwith support methods,
see sale.propertyvariant.* methods:addadds a variant of an order propertyupdateupdates the fields of a property variantgetreturns the value of a property variant by its identifierlistreturns a list of property variantsdeletedeletes a property variantgetFieldsreturns the fields and settings of property variants
- Added service
Services\Sale\Property\Service\Propertywith support methods,
see sale.property.* methods:addadds a new order propertyupdateupdates the fields of an order propertygetreturns an order property by IDlistreturns a list of order propertiesdeletedeletes an order propertygetFieldsByTypereturns the fields and settings of order properties by type
- Added service
Services\Sale\PropertyGroup\Service\PropertyGroupwith support methods,
see sale.propertygroup.* methods:addadds a new property groupupdateupdates a property groupgetreturns a property group by idlistreturns a list of property groupsdeletedeletes a property groupgetFieldsreturns available fields for property groups
- Added service
Services\Sale\Status\Service\Statuswith support methods,
see sale.status.* methods:addadds a new statusupdateupdates an existing statusgetreturns information about a status by IDlistreturns a list of statuses with filtering and sorting optionsdeletedeletes a statusgetFieldsreturns available fields for statuses
- Added service
Services\Sale\StatusLang\Service\StatusLangwith support methods,
see sale.statusLang.* methods:getListLangsreturns list of available languagesaddadds a new status languagelistreturns a list of status languages with filtering and sorting optionsdeleteByFilterdeletes status languages by filtergetFieldsreturns available fields for status languages
- Added service
Services\Sale\PersonTypeStatus\Service\PersonTypeStatuswith support methods,
see sale.businessValuePersonDomain.* methods:addadds business value for person domainlistretrieves list of business values for person domaindeletedeletes business values by filtergetFieldsgets fields description for business value person domain
- Added service
Services\Task\Service\Taskwith support methods,
see tasks.task.* methods:addcreates a task, with batch calls supportupdateupdates a task, with batch calls supportlistretrieves a list of tasks, with batch calls supportdeletedeletes a task, with batch calls supportfieldsretrieves available fieldsgetretrieves information about a task by iddelegatedelegates tasksstartchanges the task status to "in progress"pausestops task execution and changes status to "waiting for execution"deferchanges the task status to "deferred"completechanges the task status to "completed"renewrenews a task after it has been completedapproveapproves a taskdisapproverejects a taskstartwatchallows watching a taskstopwatchstops watching a taskmuteenables "Mute" modeunmutedisables "Mute" modeaddFavoriteadds tasks to favoritesremoveFavoriteremoves tasks from favoritesgetCountersretrieves user countersgetAccesschecks access to a taskaddDependencecreates a dependency of one task on anotherdeleteDependencedeletes a dependency of one task on anotherhistoryListretrieves task history
- Added support for events:
OnTaskAddOnTaskUpdateOnTaskDelete
- Added service
Services\Task\TaskResult\Service\Resultwith support methods:addFromCommentadds a comment to the resultdeleteFromCommentdeletes a comment from the task resultlistretrieves a list of task results
- Added service
Services\Task\Checklistitem\Service\Checklistitemwith support methods:addadds a new checklist item to a taskupdateupdates the data of a checklist itemdeletedeletes a checklist itemgetretrieves a checklist item by its idgetListretrieves a list of checklist items in a taskmoveAfterItemretrieves a list of checklist items in a taskcompletemarks a checklist item as completedrenewmarks a completed checklist item as active againisActionAllowedchecks if the action is allowed for the checklist itemgetManifestretrieves the list of methods and their descriptions
- Added service
Services\Task\Commentitem\Service\Commentitemwith support methods:addcreates a new comment for a taskupdateupdates the comment datadeletedeletes a commentgetretrieves a comment for a taskgetListretrieves a list of comments for a task
- Added service
Services\Task\Elapseditem\Service\Elapseditemwith support methods:addadds time spent to a taskupdateupdates the parameters of the time tracking recorddeletedeletes a time tracking recordgetretrieves a time tracking record by its identifiergetListretrieves a list of time tracking records for a taskisActionAllowedchecks if the action is allowedgetManifestretrieves the list of methods and their descriptions
- Added service
Services\Task\Userfield\Service\Userfieldwith support methods:addcreates a new fieldgetretrieves a field by its identifiergetListretrieves a list of fieldsdeletedeletes a fieldupdateupdates the parameters of the fieldgetTypesretrieves all available data typesgetFieldsretrieves all available fields of the custom field
- Added service
Services\Task\Stage\Service\Stagewith support methods:addadds stages to kanban or "My Planner"getretrieves stages of kanban or "My Planner"deletedeletes stages of kanban or "My Planner"updateupdates stages of kanban or "My Planner"canMoveTaskdetermines if the current user can move tasks in the specified objectmoveTaskmoves tasks from one stage to another
- Added service
Services\Task\Planner\Service\Plannerwith support methods:getListretrieves a list of tasks from "The Daily Planner"
- Added service
Services\Task\Flow\Service\Flowwith support methods:addcreates a flowgetretrieves a flowdeletedeletes a flowupdatemodifies a flowisExistschecks if a flow with that name existsactivateturns a flow on or offpinpins or unpins a flow in the list
- Added service
Services\Log\BlogPost\Service\BlogPostwith support method:add- Add new blog post to Live Feed with support for all parameters (title, destination, files, importance, etc.)
- Added method
User::countByFiltersee details
Fixed
- Fixed typehints in the ApplicationInfo method see details
Changed
- Added optional argument in method
Bitrix24AccountRepositoryInterface::findByMemberIdsee details - Changed method name
ApplicationInstallationRepositoryInterface::findByMemberIdto
ApplicationInstallationRepositoryInterface::findByBitrix24AccountMemberIdsee details
Statistics
Bitrix24 API-methods count: 1160
Supported in bitrix24-php-sdk methods count: 476
Coverage percentage: 41.03% 🚀
New Contributors
- @serg-vostrikov-bitrix made their first contribution in #218
- @vadimsallee made their first contribution in #231
1.5.0
Added
- Added service
Services\Entity\Section\Service\Sectionwith support methods,
see crm.entity.section.* methods:getretrieve a list of storage sections, with batch calls supportaddadd a storage section, with batch calls supportupdateupdate a storage section, with batch calls supportdeletedelete a storage section, with batch calls support
- Added service
Services\Entity\Item\Property\Service\Propertywith support methods:getretrieve a list of additional properties of storage elements, with batch calls supportaddadd an additional property to storage elements, with batch calls supportupdateupdate an additional property of storage elements, with batch calls supportdeletedelete an additional property of storage elements, with batch calls support
- Added service
Services\Department\Service\Departmentwith support methods,
see department.* methods:fieldsgets the department fields referencegetretrieves a list of departments, with batch calls supportaddcreates a department, with batch calls supportdeletedeletes a department, with batch calls supportupdatemodifies a department, with batch calls supportcountByFiltercount departments by filter
- Added service
CRM\Requisites\Service\RequisiteUserfieldwith support methods,
see add crm.requisite.userfield.* methods:addadd userfield to requisitegetget userfield to requisitelistlist userfieldsdeletedelete userfieldupdateupdate userfield
- Added service
CRM\Requisites\Service\RequisiteBankdetailwith support methods:addadd bank detail to requisitegetget bank detail to requisitefieldsget fields for bank detailslistlist bank detailsdeletedelete bank detailupdateupdate bank detailcountByFiltercount bank details by filter
- Added service
CRM\Requisites\Service\RequisiteLinkwith support methods:registerregisters the link between requisites and an objectunregisterremoves the link between requisites and an objectfieldsget a formal description of the fields of the requisites linkgetreturns the link between requisites and an objectlistreturns a list of links between requisites based on a filtercountByFiltercount links by filter
- Added service
CRM\Requisites\Service\RequisitePresetFieldwith support methods:addadds a customizable field to the requisites templategetreturns the description of the custom field in the requisites template by identifierfieldsreturns the description of the custom field in the requisites template by identifierlistreturns a list of all custom fields for a specific requisites templatedeletedeletes a customizable field from the requisites templateupdatemodifies a custom field in the requisites templateavailabletoaddreturns fields available for addition to the specified requisites template
- Added service
Services\CRM\Status\Service\Statuswith support methods,
see crm.status.* methods:fieldsreturns descriptions of reference book fieldsgetreturns an element of the reference book by its identifierlistreturns a list of elements of the reference book by filter, with batch calls supportaddcreates a new element in the specified reference book, with batch calls supportdeletedeletes an element from the reference book, with batch calls supportupdateupdates an existing element of the reference book, with batch calls supportcountByFiltercounts elements of the reference book by filter
- Added service
Services\CRM\Status\Service\StatusEntitywith support methods,itemsreturns elements of the reference book by its symbolic identifiertypesreturns descriptions of reference book types
- Added service
Services\CRM\Timeline\Service\Commentwith support methods,
see crm.timeline.comment.* methods:fieldsretrieves a list of timeline comment fieldsgetretrieves information about a commentlistretrieves a list of all comments for a CRM entity, with batch calls supportaddadds a new comment to the timeline, with batch calls supportdeletedeletes a comment, with batch calls supportupdateupdates a comment, with batch calls supportcountByFiltercount comments by filter
- Added support for events:
OnCrmTimelineCommentAddOnCrmTimelineCommentDeleteOnCrmTimelineCommentUpdate
- Added service
Services\CRM\Timeline\Service\Bindingswith support methods:fieldsretrieves the fields of the link between CRM entities and the timeline recordlistretrieves a list of links for a timeline record, with batch calls supportbindadds a link between a timeline record and a CRM entity, with batch calls supportunbindremoves a link between a timeline record and a CRM entity, with batch calls supportcountByFiltercount links between a timeline record and CRM entities by filter
- Added service
Services\CRM\Item\Productrow\Service\Productrowwith support methods,
see crm.item.productrow.* methods:fieldsretrieves a list of product item fieldssetassociates a product item with a CRM objectgetretrieves information about a product item by idlistretrieves a list of product items, with batch calls supportaddadds a product item, with batch calls supportdeletedeletes a product item, with batch calls supportupdateupdates a product itemgetAvailableForPaymentretrieves a list of unpaid productscountByFiltercounts product items by filter
Fixed
- Fixed typehints in Contact batch for method
add, see details
Changed
- Fixed constructor arguments in tests ApplicationInstallations see details
- Bump giggsey/libphonenumber-for-php version to ^8|^9
Statistics
Bitrix24 API-methods count: 1166
Supported in bitrix24-php-sdk methods count: 362
Coverage percentage: 31.05%
1.4.0
Added
- Added service
Services\CRM\Lead\Service\LeadContactwith support methods,
see crm.lead.contact.* methods:fieldsget fiels for lead contact connectionsetItemsset contacts related with leadgetget contacts related to leaddeleteItemsdelete all relations for leadaddadd contact relation with leaddeletedelete contact relation with lead
- Added service
CRM\Item\Service\ItemDetailsConfigurationwith support methods,
see add crm.item.details.* methods:getPersonalmethod retrieves the settings of item cards for personal usergetGeneralmethod retrieves the settings of item cards for all usersresetPersonalmethod reset for item user settingsresetGeneralmethod reset all card settings for all userssetPersonalmethod set card configurationsetGeneralmethod set card configuration for all userssetForceCommonConfigForAllmethod set common detail form for All Users
- Added service
CRM\Deal\Service\DealDetailsConfigurationwith support methods,
see add crm.deal.details.* methods:getPersonalmethod retrieves the settings of deal cards for personal usergetGeneralmethod retrieves the settings of deal cards for all usersresetPersonalmethod reset for item user settingsresetGeneralmethod reset all card settings for all userssetPersonalmethod set card configurationsetGeneralmethod set card configuration for all userssetForceCommonConfigForAllmethod set common detail form for All Users
- Added service
CRM\Lead\Service\LeadDetailsConfigurationwith support methods,
see add crm.lead.details.* methods:getPersonalmethod retrieves the settings of lead cards for personal usergetGeneralmethod retrieves the settings of lead cards for all usersresetPersonalmethod reset for item user settingsresetGeneralmethod reset all card settings for all userssetPersonalmethod set card configurationsetGeneralmethod set card configuration for all userssetForceCommonConfigForAllmethod set common detail form for All Users
- Added service
Services\CRM\Lead\Service\LeadProductRowswith support methods,
see add crm.lead.productrows* methods:setAdds products to a leadgetReturns the products of a lead
- Added service
Services\CRM\Quote\Service\Quotewith support methods,
see crm.quote.* methods:fieldsreturns a list of fields for the quotegetreturns the settings of the quote by Idlistreturns a list of quoteaddcreates a new quotedeletedeletes a quoteupdatemodifies the quotecountByFiltercount quotes by filter
- Added support for events:
OnCrmQuoteAddOnCrmQuoteDeleteOnCrmQuoteUpdateOnCrmQuoteUserFieldAddOnCrmQuoteUserFieldDeleteOnCrmQuoteUserFieldSetEnumValuesOnCrmQuoteUserFieldUpdate
- Added service
Services\CRM\Quote\Service\QuoteUserfieldwith support methods:addadd userfield to a quotegetget userfield to a quotelistlist userfieldsdeletedelete userfieldupdateupdate userfield
- Added service
Services\CRM\Quote\Service\QuoteProductRowswith support methods:setAdds products to a quotegetReturns the products of a quote
- Added service
Services\CRM\Quote\Service\QuoteContactwith support methods,fieldsget fiels for quote contact connectionsetItemsset contacts related with quotegetget contacts related to quotedeleteItemsdelete all relations for quoteaddadd contact relation with quotedeletedelete contact relation with quote
- Added service
CRM\Lead\Service\LeadUserfieldwith support methods,
see add crm.lead.userfield.* methods:addadd userfield to leadgetget userfield to leadlistlist userfieldsdeletedelete userfieldupdateupdate userfield
- Added service
Services\CRM\Deal\Service\DealRecurringwith support methods,
see crm.deal.recurring.* methods:fieldsreturns a list of fields for the recurring deal templategetreturns the settings of the recurring deal template by Idlistreturns a list of recurring deal templatesaddcreates a new recurring deal templatedeletedeletes a recurring deal templateupdatemodifies the settings of the recurring deal templateexposecreates a new deal based on the template
- Added service
Services\CRM\Automation\Service\Triggerwith support methods,
see add crm.automation.trigger* methods:addadd new trigger, with batch calls supportdeletedelete trigger, with batch calls supportlistget list of triggers, with batch calls supportexecuteexecute trigger, with batch calls support
- Added service
Services\CRM\Currencywith support methods,
see Add crm.currency.* methods:getget currencyfieldsget currency fieldslistget currency listaddadd new currency, with batch calls supportdeletedelete currency, with batch calls supportupdateupdate currency, with batch calls support
- Added service
Services\CRM\Currency\Localizationswith support methods,
see Add crm.currency.* methods:setset localizations, with batch calls supportgetget localizationsfieldsget localization fieldsdeletedelete currency, with batch calls support
- Added service
Services\CRM\Address\Service\Addresswith support methods,
see add crm.address REST methods:listget item listaddadd new item, with batch calls supportdeletedelete item, with batch calls supportupdateupdate item, with batch calls support
- Added enum
Services\CRM\Enum\OwnerType - Developer experience: added make command
lint-allfor run all code linters step by step, see details
Fixed
- Fixed error in arguments in service for method
placement.bind, see details - Fixed errors in
task.elapseditem.*call in ApiClient see details
Changed
- Changed B24-PHP-SDK useragent: added prefix
vendor, see details - ❗️️BC Changed contract
Bitrix24\SDK\Application\Contracts\Bitrix24Accounts\Entity\Bitrix24AccountInterface, this change needs to process corner cases
when installed application with UI or without UI:- changed method
public function applicationInstalled(?string $applicationToken): voidapplication token now is nullable - added method
public function setApplicationToken(string $applicationToken): void;
- changed method
- ❗️️BC Changed contract
Bitrix24\SDK\Application\Contracts\Bitrix24Accounts\Entity\Bitrix24AccountInterface, this change needs to process corner cases
when we need to store multiple accounts from one Bitrix24 portal.- added method
isMasterAccount
- added method
- ❗️️BC Changed contract
Bitrix24\SDK\Application\Contracts\ApplicationInstallations\Entity\ApplicationInstallationInterface, this change needs to process
corner cases when installed application with UI or without UI.- added method
setApplicationToken - added method
isApplicationTokenValid - changed method
public function applicationInstalled(?string $applicationToken): voidapplication token now is nullable - changed method
public function applicationUninstalled(?string $applicationToken): voidapplication token now is nullable - added method
linkContactPerson(Uuid $uuid), see change signatures. - added method
linkBitrix24Partner(), see change signatures. - added method
unlinkBitrix24Partner(), see change signatures. - added method
unlinkContactPerson(), see change signatures. - added method
linkBitrix24PartnerContactPerson(), see change signatures. - added method
unlinkBitrix24PartnerContactPerson(), see change signatures. - remove method
changeContactPerson(?Uuid $uuid), see change signatures. - remove method
changeBitrix24Partner(?Uuid $uuid), see change signatures. - remove method
changeBitrix24PartnerContactPerson(?Uuid $uuid), see change signatures.
- added method
- ❗️️BC Changed contract `Bitrix24\SDK\Application\Contracts\ApplicationInstallations\Repository\ApplicationInstallationRepositoryInterface...
1.3.0
Added
- Added PHP 8.4 support 🚀
- Added method
Bitrix24\SDK\Services\Main\Service::guardValidateCurrentAuthTokenfor validate current auth token with
api-callapp.infoon vendor OAUTH server. - Added support new scope
entity - Added service
Services\Entity\Service\Itemwith support methods,
see fix entity.item.* methods:getget item, with batch calls supportaddadd new item, with batch calls supportdeletedelete item, with batch calls supportupdateupdate item, with batch calls support
- Added service
Services\Entity\Service\Entitywith support methods,
see fix entity.* methods:getget entityaddadd new entitydeletedelete entityupdateupdate entityrightsget or change access permissions
- Added new application scope nodes
humanresources.hcmlinkandsign.b2e - Added method
Bitrix24\SDK\Core\Credentials\Scope::containsfor check is current scope code contains in scope, for
task «split cli commands» - Added method
Bitrix24\SDK\Core\Credentials\Scope::getAvailableScopeCodesreturned all available scope codes, for
task «split cli commands» - Added service
Services\CRM\VatRates\Service\Vatwith support methods,
see add crm.vat.* methods:getget vat rate by idaddadd new vat ratedeletedelete vat ratelistget list of vat ratesupdateupdate vat rate
- Added service
Services\CRM\Contact\Service\ContactCompanywith support methods,
see crm.contact.company.* methods:fieldsget fields for contact with company connectionsetItemsset companies related with contactgetget companies related with contactdeleteItemsdelete all relations for contactaddadd company relation with contactdeletedelete company relation with contact
- Added service
Services\CRM\Requisites\Service\Requisitewith support methods,
see crm.requisite.* methods:fieldsget fields for requisite itemlistget requisites listgetreturns a requisite by the requisite idaddadd requisitedeletedelete requisite and related objectsupdatedelete requisite
- Added service
Services\CRM\Requisites\Service\RequisitePresetwith support methods,
see crm.requisite.preset.* methods:fieldsget fields for requisite itemlistget requisites listgetreturns a requisite by the requisite idaddadd requisitecountriesget countries listdeletedelete requisite and related objectsupdatedelete requisite
- Added batch service
Bitrix24\SDK\Services\User\Service\Batch
with support methods:addadd (invite) usersgetget users list
Added serviceServices\AI\Engine\Service\Enginewith support methods:ai.engine.register- method registers an engine and updates it upon subsequent callsai.engine.list- get the list of ai servicesai.engine.unregister- Delete registered ai service
Added classBitrix24\SDK\Core\Exceptions\LogicExceptionfor logic exceptions
- Developer experience: added cli command
b24-dev:show-sdk-coverage-statisticsfor show actual SDK coverage for
REST-API, see task «split cli commands» - Developer experience: added class
Bitrix24\SDK\Deprecations\DeprecatedMethodswith list of
all deprecated methods - Developer experience: commands from makefile now run inside docker container
php-cli - Developer experience: added cache folder in phpstan config
- Developer experience: added article «How to Contribute to Bitrix24 PHP SDK»
Changed
- Added nullable argument
$scopein methodBitrix24\SDK\Attributes\Services::getSupportedInSdkApiMethods,
for task «split cli commands» - Added class
Bitrix24\SDK\Core\Exceptions\LogicExceptionfor logic exceptions,
for task «fix contract tests» - Changed method signature
Bitrix24\SDK\Application\Contracts\Bitrix24Accounts\Entity::updateApplicationVersion, for
task «add bitrixUserId and AuthToken» - Developer experience: webhook example moved to
repository bitrix24/b24sdk-examples
Fixed
- Fixed errors in
Bitrix24\SDK\Core\Batchfor method
user.get, see details - Fixed errors in
Bitrix24\SDK\Core\Batchfor methodsentity.item.getand
entity.item.update, see details - Fixed errors in
Bitrix24\SDK\Core\ApiClientfor methods with strict arguments
order, see details - Fixed errors in
ApplicationInstallationRepositoryInterfaceTestfor work with storage see details - Fixed errors in
Bitrix24AccountInterfaceTest, remove some arguments in constructor
Security
- Added method
Bitrix24\SDK\Services\Main\Service::guardValidateCurrentAuthTokenfor validate current auth token with
api-callapp.infoon vendor OAUTH server. You can validate incoming tokens from placements and events
Removed
- Developer experience: removed example webhook-error-handling, see
example 02-work-with-webhook
Statistics
Bitrix24 API-methods count: 1146
Supported in bitrix24-php-sdk methods count: 227
Coverage percentage: 19.81% 🚀
Supported in bitrix24-php-sdk methods with batch wrapper count: 29
New Contributors
- @wmnnd made their first contribution in #118
- @sallee113 made their first contribution in #146
1.2.0
Added
- Added service
CRM\Company\Servicewith support methods, see add crm.company.* methods:getget company by idaddadd new company with batch supportdeletedelete company by id with batch supportlistget list of companies with batch supportupdateupdate companies with batch supportcountByFiltercount companies count with filter
- Added service
CRM\Company\Service\CompanyUserfieldwith support methods, see add crm.company.* methods:addadd userfield to companygetget userfield to companylistlist userfieldsdeletedelete userfieldupdateupdate userfield
- Added service
CRM\Company\Service\CompanyCompanyContactwith support methods, see add crm.company.* methods:fieldsget fiels for company contact connectionsetItemsset contacts related with companygetget contacts related to companydeleteItemsdelete all relations for companyaddadd contact relation with companydeletedelete contact relation with company
- Added service
CRM\Company\Service\CompanyDetailsConfigurationwith support methods, see add crm.company.* methods:getPersonalmethod retrieves the settings of company cards for personal usergetGeneralmethod retrieves the settings of company cards for all usersresetPersonalmethod reset for item user settingsresetGeneralmethod reset all card settings for all userssetPersonalmethod set card configurationsetGeneralmethod set card configuration for all companysetForceCommonConfigForAllmethod set common detail form for All Users
- Added support for events:
OnCrmCompanyAddOnCrmCompanyDeleteOnCrmCompanyUpdateOnCrmCompanyUserFieldAddOnCrmCompanyUserFieldDeleteOnCrmCompanyUserFieldSetEnumValuesOnCrmCompanyUserFieldUpdate
- Added service
CRM\Enum\Service\Enumwith support methods:activityStatusactivityNotifyTypeactivityPriorityactivityDirectionactivityTypeaddressTypecontentTypeorderOwnerTypessettingsModefieldsownerType
- Added enums:
Bitrix24\SDK\Services\CRM\Enum\AddressTypeBitrix24\SDK\Services\CRM\Enum\ContentTypeBitrix24\SDK\Services\CRM\Enum\CrmSettingsMode
- Added methods for filtration entity fields in
Bitrix24\SDK\Core\Fields\FieldsFilter:Bitrix24\SDK\Core\Fields\FieldsFilter::filterUserFieldsBitrix24\SDK\Core\Fields\FieldsFilter::filterSmartProcessFields
- Added method
Bitrix24AccountRepositoryInterface::findByApplicationTokenin contracts for
support «Delete Application» use case - Added
Bitrix24\SDK\Application\Contracts\Bitrix24Accounts\Exceptions\MultipleBitrix24AccountsFoundException - Added nullable comments in events
Bitrix24AccountBlockedEventandBitrix24AccountUnblockedEvent,
see add comment to events. - Add result type
Bitrix24\SDK\Services\CRM\Common\Result\SystemFields\Types\File - Add exception
Bitrix24\SDK\Core\Exceptions\ItemNotFoundException - In
ApiLevelErrorHandleradded processing API responseerror_not_founderror code. - Added fields for
Bitrix24\SDK\Services\CRM\Deal\Result\DealItemResult:int|null $ASSIGNED_BY_IDarray|null $CONTACT_IDSint|null $CREATED_BY_IDCarbonImmutable $DATE_CREATECarbonImmutable $DATE_MODIFYint|null $LAST_ACTIVITY_BYCarbonImmutable $LAST_ACTIVITY_TIMEint|null $MODIFY_BY_IDint|null $MOVED_BY_IDCarbonImmutable $MOVED_TIME
- Added service
Bitrix24\SDK\Services\CRM\Userfield\Service\UserfieldConstraintsfor check userfield naming rules. - Developer experience: added example
/examples/local-app-workflowsfor demonstrate work
with workflows. - Developer experience: added cli make command
make dev-show-fields-descriptionfor show typehints for methods arguments from bitrix24 types from *.fields method - Developer experience: added in CI pipeline check for allowed licenses in composer package dependencies: only MIT,
BSD-3-Clause, Apache. - Developer experience: added in CI pipeline unit-tests on Windows Server 2022 in GitHub actions and updated
installation instructions for Windows-based systems. - Developer experience: start move make commands to docker
- Developer experience: added attribute
Bitrix24\SDK\Attributes\ApiServiceBuilderMetadatafor document service builders per scope - Developer experience: added trait with asserts
Bitrix24\SDK\Tests\CustomAssertions\CustomBitrix24Assertionsfor additional checks in php-unit with methods:assertBitrix24AllResultItemFieldsAnnotated- for check phpdoc annotations and result of*.fieldscommandassertBitrix24AllResultItemFieldsHasValidTypeAnnotation- for check phpdoc annotations and bitrix24 custom types
mapping
- Developer experience: added file
.gitattributeswith config to export data when you use composer flags
--prefer-sourceand--prefer-dist - Developer experience: start use PhpCsFixer in some project folders.
Changed
- Added nullable argument
bitrix24UserIdin methodBitrix24AccountRepositoryInterface::findByMemberIdin contracts
for support use case «RenewAuthToken» - Developer experience: moved CLI-command
GenerateCoverageDocumentationCommandto namespace
Bitrix24\SDK\Infrastructure\Console\Commands\Documentation
Fixed
- Fixed errors in
Bitrix24\SDK\Services\Workflows\Common\WorkflowDocumentId, see parsing errors. - Fixed the problem with mismatch Deals fields in API and SDK, see Increasing code coverage with annotations.
- Fixed error in
Bitrix24\SDK\Core\Fields\FieldsFilter::filterSystemFields, see filtration errors. - Fixed error in contract tests design, see bitrix24AccountRepositoryInterface has problem with contract tests design - can't add flusher.
- Fixed error in bitrix24 account contract test data provider, see incorrect data in data provider.
- ❗️BC Fixed typehints and return types in
ActivityItemResult,ContactItemResult, see wrong type hints in ActivityItemResult - Fixed error in method
Bitrix24\SDK\Core\Fields\FieldsFilter::filterSystemFieldsfor product user fields case. - ❗️BC Fixed typehints and return types in
Bitrix24\SDK\Services\CRM\Lead\Result\LeadItemResult
see wrong typehints in LeadItemResult:CURRENCY_IDstring→Currency|nullOPPORTUNITYstring→Money|nullIS_MANUAL_OPPORTUNITYstring→bool|nullOPENEDstring→bool|nullHAS_PHONEstring→bool|nullHAS_EMAILstring→bool|nullHAS_IMOLstring→bool|nullASSIGNED_BY_IDstring→int|nullCREATED_BY_IDstring→int|nullMODIFY_BY_IDstring→int|nullMOVED_BY_IDstring→int|nullDATE_CREATEstring→CarbonImmutable|nullDATE_MODIFYstring→CarbonImmutable|nullMOVED_TIMEstring→CarbonImmutable|nullCOMPANY_IDstring→int|nullCONTACT_IDstring→int|nullCONTACT_IDSstring→array|nullIS_RETURN_CUSTOMERstring→bool|nullDATE_CLOSEDstring→CarbonImmutable|nullLAST_ACTIVITY_BYstring→int|nullLAST_ACTIVITY_TIMEstring→CarbonImmutable|null
- ❗️BC Fixed typehints and return types in
Bitrix24\SDK\Services\CRM\Product\Result\ProductItemResult:PRICEstring→MoneyCURRENCY_IDstring→CurrencyACTIVEstring→boolVAT_INCLUDEDstring→boolDATE_CREATEstring→CarbonImmutableTIMESTAMP_Xstring→CarbonImmutable
- ❗️BC Fixed typehints and return types in
Bitrix24\SDK\Services\CRM\Userfield\Result\AbstractUserfieldItemResult:IDstring→intSORTstring→intMULTIPLEstring→boolMANDATORYstring→boolSHOW_FILTERstring→boolSHOW_IN_LISTstring→boolEDIT_IN_LISTstring→boolIS_SEARCHABLEstring→bool
Deprecated
- Deprecated class
RemoteEventsFabricuseRemoteEventsFactory - Deprecated class
ApplicationLifeCycleEventsFabricuseApplicationLifeCycleEventsFactory - Deprecated class
TelephonyEventsFabricuseTelephonyEventsFactory
Statistics
Bitrix24 API-methods count: 1135
Supported in bitrix24-php-sdk methods count: 191
Coverage percentage: 16.83% 🚀
Supported in bitrix24-php-sdk methods with batch wrapper count: 22
Contributors
- NEW @ZoolanderX made their first contribution in #67
- @mesilov publish this release
1.1.0
What's Changed
Added
- Added class
Bitrix24\SDK\Services\RemoteEventsFabricfor simple work with builtin Bitrix24 events. You can create
Bitrix24 events fromSymfony\Component\HttpFoundation\Requestobject. If event is not supported in SDK, fabric will
createBitrix24\SDK\Core\Requests\Events\UnsupportedRemoteEventwith generic interface
Bitrix24\SDK\Core\Contracts\Events\EventInterfacewithout typehints. Every event checked with valid
application_tokensignature. - Added method
Bitrix24\SDK\Services\ServiceBuilderFactory::createServiceBuilderFromWebhookfor simple work with
webhook, see add super-simple kick-off guide. - Added method
Bitrix24\SDK\Services\ServiceBuilderFactory::createServiceBuilderFromPlacementRequestfor simple work
with placement request, see add super-simple kick-off guide. - Added
Bitrix24\SDK\Core\Contracts\Events\EventsFabricInterfacefor scope-based event fabrics. - Added
Bitrix24\SDK\Core\Requests\Events\UnsupportedEventas a default event container object for unsupported in SDK
Bitrix24 events. - Added helpers for build local application in namespace
Bitrix24\SDK\Application\Local:Local\Entity\LocalAppAuth: auth data for local application. Contains:AuthToken,domainUrland
applicationToken.Local\Infrastructure\Filesystem\AppAuthFileStorage: class for store LocalAppAuth in fileLocal\Repository\LocalAppAuthRepositoryInterface: interface for LocalAppAuthRepository.
- Developer experience: added example
/examples/local-app-with-token-storagefor demonstrate all options for work with SDK and created local application skeleton. - Developer experience: added example
/examples/webhook-error-handlingfor demonstrate exceptions handling. - Developer experience: added example
/examples/local-app-placementfor demonstrate work with placements. - Added
WrongClientExceptionfor handle errors with wrong application client configuration. - Added
PaymentRequiredExceptionfor handle errors with expired subscription. - Added
WrongConfigurationExceptionfor handle errors with wrong application infrastructure configuration. - Added
WrongSecuritySignatureExceptionfor handle errors with wrong signature events withapplication_token. - Added checks for empty string in args for constructor
Bitrix24\SDK\Core\Credentials\ApplicationProfile - Added class
Bitrix24\SDK\Application\Requests\Events\ApplicationLifeCycleEventsFabric - Documentation: added section Basic necessary knowledge in SDK documentation
- Documentation: added section Call unsupported methods in SDK documentation
- Developer experience: add issue template Ship new SDK release
Changed
- ❗️moved interface
EventInterfacefromBitrix24\SDK\Application\Requests\Eventsto
Bitrix24\SDK\Core\Contracts\Events - Changed order in expired_token case:
- old: get new auth token → repeat api-call → emit event
Bitrix24\SDK\Events\AuthTokenRenewedEventfor store token - new: get new auth token → emit event
Bitrix24\SDK\Events\AuthTokenRenewedEventfor store token → repeat api-call
- old: get new auth token → repeat api-call → emit event
- Changed dependencies for
Bitrix24\SDK\Core\ApiClient- added classBitrix24\SDK\Core\ApiLevelErrorHandler - Changed scope for properties
Bitrix24\SDK\Core\Credentials\ApplicationProfile- mark as public - Changed scope for properties
Bitrix24\SDK\Core\Credentials\AuthToken- mark as public - Changed example for work with webhook in README.md file and directory
/examples/webhook/ - Changed example for work with local application in README.md file and directory
/examples/local-application/ - Changed bitrix24-php-sdk version in headers in class
Bitrix24\SDK\Core\ApiClient,
see wrong API-client and sdk version in headers. - Changed scope for property
coreinBitrix24\SDK\Services\AbstractServiceBuilder- for better DX,
see Make core public in service builder. - Changed method name
Bitrix24\SDK\Services\ServiceBuilderFactory::initFromRequestto
Bitrix24\SDK\Services\ServiceBuilderFactory::init
Fixed
- Fixed variable names in
Bitrix24\SDK\Services\ServiceBuilderFactory::initFromRequest,
see wrong variable name. - Fixed some corner cases in
Bitrix24\SDK\Core\ApiLevelErrorHandler
1.0
What's Changed
- Add issue and PR templates by @mesilov in #2
- Add GitHub Actions workflow for PHPUnit tests by @mesilov in #5
- Update SECURITY.md for supported versions and formatting by @mesilov in #6
- Add development section and update method list in docs by @mesilov in #8
- Update project details and dependencies in composer.json by @mesilov in #10
New Contributors
Full Changelog: https://github.com/bitrix24/b24phpsdk/commits/1.0