bitrix24/b24phpsdk
Bitrix24 PHP SDK for working with the Bitrix24 REST API from Laravel or plain PHP. Provides typed clients, authentication helpers, API method wrappers, pagination, and webhook/OAuth support to simplify integrating CRM, tasks, chats, and other Bitrix24 modules.
Bitrix24\SDK\Services\IM\Department\Service\Department service wrapping im.department.get, im.department.colleagues.list, im.department.employees.get, and im.department.managers.get, with typed department/user result wrappers and IMServiceBuilder::department() accessor (#432)Bitrix24\SDK\Services\IM\Disk\Service\Disk with getFolderId(?int $chatId = null, ?string $dialogId = null) for im.disk.folder.get, plus dedicated FolderIdResult, IM builder registration, and focused unit/integration coverage (#435)Bitrix24\SDK\Services\IM\Disk\Service\Disk: commitFile, deleteFile, saveFile, and shareRecord, with dedicated result wrappers and live IM Disk integration coverage (#482)Bitrix24\SDK\Services\IM\Chat\Service\ChatUser service wrapping im.chat.user.add, im.chat.user.delete, im.chat.user.list for chat participant management, with ChatUserListResult and IMServiceBuilder::chatUser() accessor (#424)Bitrix24\SDK\Services\IM\Search\Service\Search service wrapping im.search.chat.list, im.search.user.list, im.search.department.list, and deprecated legacy im.search.last.* methods, with typed search result wrappers and IMServiceBuilder::search() accessor (#431)Bitrix24\SDK\Services\IM\Recent\Service\Recent service wrapping im.recent.get, im.recent.list, im.recent.pin, im.recent.unread, and im.recent.hide, with RecentItemResult/RecentsResult and IMServiceBuilder::recent() accessor (#427)Bitrix24\SDK\Services\IM\Revision\Service\Revision service wrapping im.revision.get for IM module API revision/compatibility checks, with RevisionItemResult (rest, web, mobile, desktop, im_revision_mobile fields) and IMServiceBuilder::revision() accessor (#434)IM\Counters service with im.counters.get support for retrieving unread message and notification counters (#433)getLogoUrl() and changeLogoUrl() methods to Bitrix24PartnerInterface and reference implementation with Bitrix24PartnerLogoUrlChangedEvent (#452)Services\IM\Message\Attach payload builders for ATTACH blocks in im.message.add and im.message.update, plus RawAttach::fromArray() as an object-based escape hatch for unsupported or vendor-extended payload shapes (#426)Bitrix24\SDK\Services\IM\Placements\PlacementLocationCodes with constants IM_TEXTAREA, IM_SIDEBAR, IM_CONTEXT_MENU, IM_NAVIGATION, and IM_SMILES_SELECTOR (deprecated since im 25.1600.0) for IM widget placement codes (#437)PlacementOptionsInterface and fluent option builders TextareaPlacementOptions, SidebarPlacementOptions, ContextMenuPlacementOptions under Bitrix24\SDK\Services\IM\Placements namespace, backed by ChatContext, PlacementColor (IM-specific) and shared Role, ExtranetAvailability string-backed enums under Bitrix24\SDK\Services\Placement (#437)PlacementLocationCodesTest that asserts (via reflection) every IM_-prefixed code returned by placement.list is declared as a constant in PlacementLocationCodes (#437)Bitrix24\SDK\Services\IM\Chat\Service\Chat service wrapping im.chat.add, im.chat.get, im.chat.leave, im.chat.mute, im.chat.setOwner, im.chat.updateAvatar, im.chat.updateColor, im.chat.updateTitle, with enums ChatType, ChatColor, ChatEntityType, result types ChatItemResult/ChatResult, and IMServiceBuilder::chat() accessor (#423)Bitrix24\SDK\Services\IM\Dialog\Service\Dialog service for im.dialog.* support, with typed result wrappers, IMServiceBuilder::dialog(), and dedicated unit/integration/annotation coverage (#425)Bitrix24\SDK\Services\IM\User\Service\User service for im.user.get and im.user.list.get support, with typed result wrappers UserResult/UsersResult/UserItemResult, IMServiceBuilder::user() accessor, and unit/integration/annotation test coverage (#429)b24-dev:result-item-generator developer command for staged ResultItem payload build, verification, apply, and generation workflows backed by OpenAPI, REST documentation, and live API metadata (#425)Services\IM\Message\Service\Message service for im.message.* support (#426):
add — send a message (im.message.add)update — edit text and parameters (im.message.update)delete — delete a message (im.message.delete)like — toggle the Like mark (im.message.like), with typed LikeAction enum (auto/plus/minus)share — create an object from a message (im.message.share), with typed ShareType enum (CHAT/TASK/POST/CALEND)command — invoke a chat-bot command (im.message.command)IMServiceBuilder::message() accessor and cached service instance (#426)Bitrix24\SDK\Services\IM\User\Service\UserStatus service wrapping im.user.status.get, im.user.status.set, im.user.status.idle.start, and im.user.status.idle.end, with UserStatusType enum and UserStatusResult; exposed via IMServiceBuilder::userStatus() (#430)IM\Notify service with send (im.notify), getList (im.notify.get), historySearch (im.notify.history.search), markAllAsRead (im.notify.read.all), getSchema (im.notify.schema.get) methods; refactored markMessagesAsRead/markMessagesAsUnread to call im.notify.read.list instead of im.notify.read; added NotifyItemResult, NotifiesResult, NotifyHistorySearchResult, NotifyReadAllResult, NotifySchemaItemResult, NotifySchemaResult result types (#428)bitrix24PartnerNumber uniqueness expectation from the Bitrix24PartnerRepositoryInterface contract so save() remains a persistence operation; uniqueness validation belongs in the use-case layer (#468)delete(Uuid $uuid) method from Bitrix24PartnerRepositoryInterface, its in-memory stub implementation, and the testDelete contract test — the soft-delete flow (markAsDeleted() + save()) makes this method redundant (#471)set* prefix with change* in Bitrix24PartnerInterface mutator methods (changeTitle, changeSite, changePhone, changeEmail, changeOpenLineId, changeExternalId) to better express domain-level change operations (#453)ATTACH as raw JSON string to im.message.add and im.message.update; prefer AttachPayloadInterface for typed object payloads or raw array payloads for backward-compatible structures (#426)Placement::bind() $options parameter type to PlacementOptionsInterface|array — existing array callers remain fully compatible (#437)DialogItemResult from the ResultItem generator payload, including imported CarbonImmutable PHPDoc types and live-verified nullable fields (#425)ChatItemResult, DialogUserItemResult, and DialogReadStateItemResult from ResultItem generator payloads and extended the generator workflow for their REST docs response shapes (#425)CountersItemResult from a live-verified ResultItem generator payload and extended REST docs payload extraction to support direct root fields in Returned Data tables (#433)RevisionItemResult from a live-verified ResultItem generator payload and extended REST docs payload extraction to support Returned Data tables with nested result.* fields (#434)UserStatusResult::status() to return UserStatusItemResult with enum-backed STATUS access via UserStatusType; backed-enum casting now lives in AbstractAnnotatedItem for all annotated result items (#430)DialogItemResult magic getters so annotated fields such as date_create return their PHPDoc-declared SDK types (#425)typhoon/reflection to runtime dependencies because annotated result-item casting uses it outside development tooling (#425)Dialog::messagesSearch() date filters to accept CarbonImmutable arguments and serialize them to REST date-time strings at the service boundary (#425)Field, Payload, Provider, Verification, PhpDoc, and Path namespaces (#425)b24phpsdk-maintainer skill and AGENTS.md: all GitHub issues (title, body, checklists, comments) must be written in English only (#422)AGENTS.md: limit mandatory b24phpsdk-maintainer usage to issue, changelog, and release-related workb24phpsdk-maintainer skill: added "Implementing placements for a scope" section with directory layout, plain-class-over-enum rationale, option-builder template, shared-vs-scope-specific enum placement, and mandatory reflection-based integration test template (#437)b24phpsdk-maintainer skill and AGENTS.md: require polling PR CI status via mcp__github__get_pull_request_status (fallback gh pr checks --watch) after every push to a PR branch, with ~60s cadence, until the status reaches a terminal state (#437)b24phpsdk-maintainer skill: hardened PR creation rules — agent must auto-create the PR via mcp__github__create_pull_request (never forward the pull/new/<branch> URL as a manual-action prompt), PR base branch is strictly v3-dev for v3 and dev for v1 (never main), and the PR body is always composed from .github/PULL_REQUEST_TEMPLATE.md read fresh from diskb24phpsdk-maintainer skill: generalized the placements workflow to cover PlacementLocationCodes, typed Placements facades, PlacementLangMap/PlacementLangItem, LangCodes placement, service-builder registration, docs links, and the full unit/integration test matrixb24phpsdk-maintainer skill: moved the detailed placements workflow into a dedicated adjacent guide to keep SKILL.md compact while preserving the full placement implementation playbookb24phpsdk-maintainer skill: require CarbonImmutable for public service method arguments that represent date or date-time valuesb24phpsdk-maintainer skill: require ApiEndpointMetadata documentation links to use the English https://apidocs.bitrix24.com/ siteb24phpsdk-maintainer skill: require SDK file generators for supported *ItemResult, *SelectBuilder, and *ItemBuilder files before manual editsb24phpsdk-maintainer skill and AGENTS.md: require make lint-rector before reporting completed tasks, including microtasks that bypass the maintainer skillIM\Recent\Result\RecentItemResult PHPDoc annotations to match live im.recent.get payload fields and magic-getter casting (#427)Core::call() handling of REST API v3 HTTP 401 error responses: array-shaped error payloads are now routed through ApiLevelErrorHandler instead of triggering Array to string conversion, and Bitrix24 v3 access-denied errors map to AuthForbiddenException.IM\User\Result\UserItemResult::last_activity_date PHPDoc annotation so the magic getter casts live im.user.get date-time values to CarbonImmutable.im.notify.get and im.notify.schema.get payloads, including uppercase schema fields and list-normalized schema items.User\Service\Batch::get() yielding DealItemResult instead of UserItemResult (#447)Bitrix24PartnerInterfaceTest and Bitrix24PartnerRepositoryInterfaceTest contracts: dropped createdAt / updatedAt from the factory method signature and data provider so implementations that initialise both timestamps internally (e.g. new CarbonImmutable() in the constructor) no longer fail with microsecond mismatches (#457)ValidationError and UnsuccessfulResponseError DTOs for REST API v3 unified unsuccessful response structure (#341)ValidationException (extends BaseException) with getValidationErrors(): ValidationError[] method — thrown when REST API v3 response contains field-level validation errors (#341)ApiLevelErrorHandler: responses with non-empty error.validation[] now throw ValidationException instead of generic BaseException (#341)b24-dev:show-v3-builder-coverage CLI command: audits SelectBuilder / ItemBuilder coverage for all OpenAPI v3 entities in a given scope and reports unmapped, missing, invalid, field-coverage-mismatch, and duplicate entity key cases (make sdk-builder-coverage-v3-show) (#340)b24-dev:generate-select-builder console command — reads the checked-in OpenAPI snapshot and generates a deterministic *SelectBuilder PHP class for any v3 entity; $ref properties are expanded one level deep using dot-notation, methods are sorted alphabetically (#340)#[OaEntity] PHP 8 attribute that links a *ItemResult class to its OpenAPI entity key (entityKey), optional *SelectBuilder class (selectBuilder), and optional *ItemBuilder class (itemBuilder); applied to TaskItemResult and EventLogItemResult (#340)onCrmDocumentGeneratorDocumentAdd — fires when a document is created,
see event documentationonCrmDocumentGeneratorDocumentUpdate — fires when a document is updated,
see event documentationonCrmDocumentGeneratorDocumentDelete — fires when a document is deleted,
see event documentationServices\CRM\Documentgenerator\Document with support methods,
see crm.documentgenerator.document.* methods:
add creates a new document based on a template and CRM entity, with batch calls supportlist gets the list of documents, with batch calls supportupdate updates an existing document, with batch calls supportdelete deletes a document, with batch calls supportget gets information about the document by its identifiergetFields returns the description of document fieldsenablePublicUrl enables public URL for a documentupload uploads a file for a documentcount count documentsServices\CRM\Documentgenerator\Template with support methods,
see crm.documentgenerator.template.* methods:
add adds a new template, with batch calls supportlist gets the list of templates, with batch calls supportupdate updates an existing template, with batch calls supportdelete deletes a template, with batch calls supportget gets information about the template by its identifiergetFields returns the description of template fieldscount count templatesRestServiceBuilder with Scope service for rest.scope.list support (#408)oauthServerUrl field to LocalAppAuth: stored in toArray() as oauth_server_url, restored in initFromArray() with fallback to DefaultOAuthServerUrl::default() for backward compatibility (#385)ItemBuilderInterface (src/Core/Contracts/ItemBuilderInterface.php) and AbstractItemBuilder (src/Services/AbstractItemBuilder.php) for type-safe task field building; Task::add() and Task::update() accept array|TaskItemBuilder where TaskItemBuilder extends AbstractItemBuilder implements ItemBuilderInterface, allowing user subclasses with custom typed user-field methods (#344)AbstractItemBuilder::getSupportedFieldNames() — discovers public 1-parameter instance methods in concrete subclass via reflection, returns alphabetically sorted list; mirrors AbstractSelectBuilder::allSystemFields() pattern (#344)OpenApiSchemaEntityReader::getWritableFields(string $schemaFile, string $operationPath): array<string, string> — reads writable field names and OpenAPI types from paths/{op}/post/requestBody in the OpenAPI snapshot; $ref entries are mapped to 'object' (#344)ItemBuilderCodeGenerator (src/CodeGenerator/ItemBuilderCodeGenerator.php) with ItemBuilder.tpl.php template — generates typed setter methods from OpenAPI writable-field maps, skipping object types; mirrors SelectBuilderCodeGenerator (#344)b24-dev:generate-item-builder console command (GenerateItemBuilderCommand) — wraps ItemBuilderCodeGenerator to generate *ItemBuilder classes from the OpenAPI snapshot; expanded TaskItemBuilder with all 78 writable fields from /tasks.task.add (deadline, startPlan, endPlan preserve CarbonInterface input; needsControl preserves 'Y'/'N' serialization) (#344)EventLogField service for main.eventlog.field.get and main.eventlog.field.list support (#394)tasks.task.access.field.get and tasks.task.access.field.list via AccessField service (#396)tasks.task.file.field.get and tasks.task.file.field.list via FileField service (#398)tasks.task.chat.message.field.* methods (#397):
TaskServiceBuilder::taskChatMessageField() — new scope accessorChatMessageField::get(string $name, array $select = []) → ChatMessageFieldResult — get a single field descriptor by code (tasks.task.chat.message.field.get, API v3)ChatMessageField::list(array $select = []) → ChatMessageFieldsResult — list all available field descriptors (tasks.task.chat.message.field.list, API v3)ChatMessageFieldItemResult — field descriptor item with properties: name, type, title, description, validationRules, requiredGroups, filterable, sortable, editable, multiple, elementTypeServices\Task\Service\TaskField for v3 methods tasks.task.field.get and tasks.task.field.list, including TaskServiceBuilder::taskField() and typed TaskFieldItemResult, TaskFieldResult, and TaskFieldsResult wrappers for task field metadata responses (#395)CustomBitrix24Assertions::assertBitrix24ResultItemFieldsTypeCastMatchAnnotations(AbstractItem $item, string $resultItemClassName) — generic assertion that reads all [@property-read](https://github.com/property-read) PHPDoc annotations via Typhoon Reflection and verifies each magic-getter value matches its declared PHP type (supports string, bool, int, float, array, nullable variants, and class types via assertInstanceOf)assertBitrix24ResultItemFieldsTypeCastMatchAnnotations in tests/Unit/CustomAssertions/CustomBitrix24AssertionsTest.php covering happy paths (all types match, nullable fields as null) and 9 failure cases via DataProviderChatMessageFieldItemResult in tests/Integration/Services/Task/ChatMessageField/Result/ChatMessageFieldItemResultTest.php:
testAllFieldsAreAnnotated — verifies every field from raw API response is covered by a [@property-read](https://github.com/property-read) annotationtestAllFieldsHasValidTypeCastingInMagicGetters — verifies magic getters return values matching their PHPDoc-declared typesb24-dev:show-oa-sdk-coverage, Make targets make sdk-coverage-v3-show and make sdk-coverage-v3-show-uncovered, normalization of OpenAPI aliases/scopes, and uncovered-method output with documentation links built from the Bitrix24 REST v3 docs URL pattern (#391)ContactPersonInterface::getBitrix24UserId() now returns int instead of ?int — a ContactPerson is always linked to a Bitrix24 user (#365)createRepositoryFlusherImplementation() abstract method to Bitrix24PartnerRepositoryInterfaceTest and updated all 7 test methods to call flush() after every write operation, aligning with the contract test pattern used by Bitrix24AccountRepositoryInterfaceTest and ApplicationInstallationRepositoryInterfaceTest (#416)docs/open-api/openapi.json; refresh it before implementation and release verification with make oa-schema-build (#391)cebe/php-openapi dependency from require (#418)TaskItemSelectBuilder with the refreshed task OpenAPI schema so crmItems.id is covered in generated selections (#449)RemoteEventsFactory and event requests accept valid Bitrix24 form webhooks already parsed by Symfony request bags (#443)Response::getResponseData() crashing when API response lacks a time node (e.g. documentation endpoint): added Time::initWithZeroValues() factory that fills numeric fields with 0.0 and date fields with CarbonImmutable::now() (#343)Core::call() when portal returns a 302 redirect to the same domain (e.g. expired-license redirect to /bitrix/coupon_activation.php); now throws PortalUnavailableException (#372)InMemoryApplicationInstallationRepositoryImplementation::findByBitrix24AccountMemberId() to resolve installations for non-deleted master accounts in pending install flows, including new accounts, while still excluding deleted installations (#387)AttributesParser metadata extraction for SDK methods with compound return types and migrated coverage tooling to a typed SupportedInSdkApiMethod contract so documentation and statistics commands no longer crash on union returns (#391)Core\Contracts\ApiVersion - enum for API version support (v1, v3) with helper methods isV3() and isV1()Core\EndpointUrlFormatter - formats API request URLs based on API version, handles V3 API prefix /rest/api, manages case-sensitive method handling, and request ID parameter placement for strict methodsServices\Task\Service\Task: get (tasks.task.get), add (tasks.task.add), delete (tasks.task.delete), update (tasks.task.update)Services\Task\Service\TaskChat: sendMessage (tasks.task.chat.message.send)Services\Task\Service\TaskFile: attachExists (tasks.task.file.attach)Services\Main\Service\Documentation: getSchema (documentation)FilterBuilderInterface - contract for all filter buildersAbstractFilterBuilder - base implementation with AND/OR logic supportFieldConditionBuilder - provides all 8 REST 3.0 operators: =, !=, >, >=, <, <=, in, betweenTaskFilter - type-safe filter for Task entity with 30 field accessors->title()->eq('ASAP')->or(function(TaskFilter $f) {...})->userField('UF_CRM_TASK')->eq('value')->raw([['field', 'operator', 'value']])Task::list() to accept TaskFilter or array via union typeCore\Contracts\SelectBuilderInterface - contract with buildSelect() and withUserFields() methodsServices\AbstractSelectBuilder - base implementation for select buildersServices\Task\Service\TaskItemSelectBuilder - type-safe select builder for Task entity with field methods: title(), description(), creatorId(), creator(), created(), chat()src/Filters/docs/README.md - unified guide covering REST 3.0 filtering principles, type-safe filter builders, all 8 operators, field type mapping, usage examples with TaskFilter, and complete migration guide from generic to type-safe approachServices\Main\Service\Documentation - new service with getSchema() method for retrieving OpenAPI documentation from REST 3.0 /documentation endpointOpenApi\Infrastructure\Console\SchemaBuilder - console command b24-dev:build-schema for fetching and saving OpenAPI schema to docs/open-api/openapi.jsonDocumentationResult - DTO returning raw OpenAPI payload as stringtests/Integration/Services/Main/Service/DocumentationTest.phpCore\Contracts\SortOrder enum (Ascending = 'ASC', Descending = 'DESC') —
type-safe sort direction for use across all REST v3 API calls.Services\Main\Service\EventLog with REST v3 event log methods
(scope: main, requires administrator access),
see main.eventlog.* methods:
get(int $id, array|EventLogSelectBuilder $select) — returns a single event log entry by ID
(main.eventlog.get)list(array|EventLogSelectBuilder $select, array|EventLogFilter $filter, array $order, array $pagination) — returns a list of entries with filtering and pagination
(main.eventlog.list)tail(array|EventLogSelectBuilder $select, array|EventLogFilter $filter, EventLogTailCursor $cursor) — returns new entries after a cursor point for polling/sync scenarios
(main.eventlog.tail)Services\Main\Service\EventLogSelectBuilder — fluent select builder for event log fieldsServices\Main\Service\EventLogFilter — type-safe filter builder with typed condition builders
per field (IntFieldConditionBuilder, DateTimeFieldConditionBuilder, StringFieldConditionBuilder)Services\Main\Service\EventLogTailCursor — immutable value object for the tail cursor
(field, order: SortOrder, value, limit), serialized via toArray()EventLogItemResult::$remoteAddr as Darsyn\IP\Version\Multi|null instead of string|null.
darsyn/ip was already a dependency but unused in result items.
Multi::factory() auto-detects IPv4/IPv6 and returns a value object supporting CIDR range checks,
protocol-appropriate string representation, and strict typing.
Applies the same null/empty-string guard used by $timestampX to handle absent API fields safely.deptrac/deptrac (^3.0) as a dev dependency — architectural layer enforcement tool.
Rules are declared in deptrac.yaml; run via make lint-deptrac (also part of make lint-all).
Layer boundaries: Core → nothing; Application → Core, Services; Infrastructure → Core, Services;
Services → Core, Application, Legacy; Legacy → Core, Application, Services.
22 pre-existing violations are recorded in skip_violations with TODO comments tracking required refactoring.Services\AbstractSelectBuilder::allSystemFields() — convenience method that uses reflection
to discover and call all public zero-parameter field methods declared in the concrete subclass,
collecting all available system fields in a single call. Supports chaining with withUserFields().
Works automatically for any existing or future AbstractSelectBuilder descendant without any changes to them.src/Legacy/ namespace with LegacyServiceBuilder and LegacyTaskServiceBuilder,
accessible via $serviceBuilder->getLegacyServiceBuilder()->getTaskScope()->task().
Preserves access to all Bitrix24 REST API v1 task methods (list, fields, delegate,
start, pause, defer, complete, etc.) for users migrating to the v3 SDK.
All classes under Bitrix24\SDK\Legacy\ are marked [@deprecated](https://github.com/deprecated) and will be removed
once v3 reaches feature parity with v1.OpenApi\Domain\OpenApiSchemaReader for programmatic reading and navigation of the OpenAPI specification,
with support for component schemas, field type extraction, $ref resolution, and request/response schema accessServices\Lists\Lists\Service\Lists with support methods,
see lists.* methods:
add creates a universal list, with batch calls supportupdate updates a universal list, with batch calls supportget returns data of a universal list or an array of lists, with batch calls supportdelete deletes a universal list, with batch calls supportgetIBlockTypeId returns the identifier of the information block typeServices\Lists\Field\Service\Field with support methods,
see lists.field.* methods:
add creates a field for the universal list, with batch calls supportupdate updates a field of the universal list, with batch calls supportget returns data about a field or list of fieldsdelete deletes a field from the universal list, with batch calls supporttypes returns a list of available field types for the listaddByCode helper method to create field by iblock codeupdateByCode helper method to update field by iblock codegetByCode helper method to get field(s) by iblock codedeleteByCode helper method to delete field by iblock codeServices\Lists\Section\Service\Section with support methods,
see lists.section.* methods:
add creates a section for the universal list, with batch calls supportupdate updates a section of the universal list, with batch calls supportget returns data about a section or list of sectionsdelete deletes a section from the universal list, with batch calls supportServices\Lists\Element\Service\Element with support methods,
see lists.element.* methods:
add creates an element for the universal list, with batch calls supportupdate updates an element of the universal list, with batch calls supportget returns data about an element or list of elements, with batch calls supportdelete deletes an element from the universal list, with batch calls supportgetFileUrl returns file URL from element fieldServices\Landing\Site\Service\Site with support methods,
see landing.site.* methods:
add adds a sitegetList retrieves a list of sitesupdate updates site parametersdelete deletes a sitegetPublicUrl returns the full URL of the site(s)getPreview returns the preview image URL of the sitepublication publishes the site and all its pagesunpublic unpublishes the site and all its pagesmarkDelete marks the site as deletedmarkUnDelete restores the site from the trashgetAdditionalFields returns additional fields of the sitefullExport exports the site to ZIP archivegetFolders retrieves the site foldersaddFolder adds a folder to the siteupdateFolder updates folder parameterspublicationFolder publishes the site's folderunPublicFolder unpublishes the site's foldermarkFolderDelete marks the folder as deletedmarkFolderUnDelete restores the folder from the trashgetRights returns access permissions of the current user for the specified sitesetRights sets access permissions for the siteServices\Landing\SysPage\Service\SysPage with support methods,
see landing.syspage.* methods:
set sets a special page for the siteget retrieves the list of special pagesServices\Landing\Role\Service\Role with support methods,
see landing.role.* methods:
isEnabled checks if role model is enabledenable enables or disables the role modelgetList retrieves a list of available rolesgetRights gets role rights for sitessetRights sets role rights for sitessetAccessCodes sets access codes for a rolegetSpecialPage retrieves the address of the special page on the sitedeleteForLanding deletes all mentions of the page as a special onedeleteForSite deletes all special pages of the siteServices\Landing\Page\Service\Page with support methods,
see landing.landing.* methods:
add adds a pageaddByTemplate creates a page from a templatecopy copies a pagedelete deletes a pageupdate updates page parametersgetList retrieves a list of pagesgetAdditionalFields returns additional fields of the pagegetPreview returns the preview image URL of the pagegetPublicUrl returns the full URL of the pageresolveIdByPublicUrl resolves page ID by its public URLpublish publishes the pageunpublish unpublishes the pagemarkDeleted marks the page as deletedmarkUnDeleted restores the page from the trashmove moves a page to another site or folderremoveEntities removes entities from the pageaddBlock adds a block to the pagecopyBlock copies a block within the pagedeleteBlock deletes a block by its identifiermoveBlockDown moves a block down on the pagemoveBlockUp moves a block up on the pagemoveBlock moves a block to a specific positionhideBlock hides a block on the pageshowBlock shows a block on the pagemarkBlockDeleted marks a block as deletedmarkBlockUnDeleted restores a block from the trashaddBlockToFavorites adds a block to favoritesremoveBlockFromFavorites removes a block from favoritesServices\Landing\Block\Service\Block with support methods,
see landing.block.* methods:
list retrieves a list of page blocksgetById retrieves a block by its identifiergetContent retrieves the content of a blockgetManifest retrieves the manifest of a blockgetRepository retrieves blocks from the repositorygetManifestFile retrieves block manifest from repositorygetContentFromRepository retrieves block content from repositoryupdateNodes updates block contentupdateAttrs updates block node attributesupdateStyles updates block stylesupdateContent updates block content with arbitrary contentupdateCards bulk updates block cardscloneCard clones a block cardaddCard adds a card with modified contentremoveCard removes a block carduploadFile uploads and attaches image to blockchangeAnchor changes anchor symbol codechangeNodeName changes tag nameServices\Landing\Template\Service\Template with support methods,
see landing.template.* methods:
getList retrieves a list of templatesgetLandingRef retrieves a list of included areas for the pagegetSiteRef retrieves a list of included areas for the sitesetLandingRef sets the included areas for the pagesetSiteRef sets the included areas for the siteServices\Landing\Repo\Service\Repo with support methods,
see landing.repo.* methods:
getList retrieves a list of blocks from the current applicationregister adds a block to the repositoryunregister deletes a block from the repositorycheckContent checks the content for dangerous substringsServices\Landing\Demos\Service\Demos with support methods,
see landing.demos.* methods:
register registers a template in the site and page creation wizardunregister deletes the registered partner templategetList retrieves a list of available partner templates for the current applicationgetSiteList retrieves a list of available templates for creating sitesgetPageList retrieves a list of available templates for creating pagesServices\IMOpenLines\Connector\Service\Connector with support methods,
see imconnector.* methods:
list method returns a list of available connectorsregister method registers a new connectoractivate method activates or deactivates a connectorunregister method unregisters a connectorstatus method retrieves connector status informationsetData method sets connector datasendMessages method sends messages through the connectorupdateMessages method updates messagesdeleteMessages method deletes messagessendStatusDelivery method sends message delivery statussendStatusReading method sends message reading statussetChatName method sets chat nameServices\IMOpenLines\Config\Service\Config with support methods,
see imopenlines.config.*:
add adds a new open linedelete deletes an open lineget retrieves an open line by IdgetList retrieves a list of open linesgetPath gets a link to the public page of open lines in the accountupdate modifies an open linejoinNetwork connects an external open line to the accountgetRevision retrieves information about API revisionsServices\IMOpenLines\CRMChat\Service\Chat with support methods,
see imopenlines.crm.chat.*:
get retrieves chats for a CRM objectgetLastId retrieves the ID of the last chat associated with a CRM entityaddUser adds a user to a CRM entity chatdeleteUser removes a user from the CRM entity chatServices\IMOpenLines\Message\Service\Message with support methods,
see imopenlines.crm.message., imopenlines.message.:
addCrmMessage sends a message to the open line on behalf of an employee or bot in a chat linked to a CRM entityquickSave saves a message from the open line chat to the list of quick answerssessionStart starts a new dialogue session based on a messageServices\IMOpenLines\Bot\Service\Bot with support methods,
see imopenlines.bot.*:
sendMessage sends an automatic message via the chatbottransferToOperator switches the conversation to a free operatortransferToUser transfers the conversation to a specific operator by user IDtransferToQueue transfers the conversation to another open line queuefinishSession ends the current sessionServices\IMOpenLines\Operator\Service\Operator with support methods,
see imopenlines.operator.*:
answer takes the dialog for the current operatorfinish ends the dialogue by the current operatoranotherFinish finishes the dialog of another operatorskip skips the dialog for the current operatorspam marks the conversation as "spam" by the current operatortransfer transfers the dialogue to another operator or lineServices\IMOpenLines\Session\Service\Session with support methods,
see imopenlines.session.*:
createCrmLead creates a lead based on the dialoguegetDialog retrieves information about the operator's dialogue (chat) in the open linestartMessageSession starts a new dialogue session based on a messagevoteHead votes for the session headgetHistory gets session historyintercept intercepts the sessionjoin joins the sessionpinAll pins all sessionspin pins a specific sessionsetSilent sets silent mode for sessionunpinAll unpins all sessionsopen opens a sessionstart starts a sessionServices\SonetGroup\Service\SonetGroup with support methods,
see sonet_group.* methods:
create creates a social network group/projectupdate modifies group parametersdelete deletes a social network groupget gets detailed information about a specific workgrouplist gets list of workgroups with filteringgetGroups gets list of social network groups (simpler version)getUserGroups gets list of current user's groupsaddUser adds users to group without invitation processdeleteUser removes users from groupsetOwner changes group ownerisPartner(): bool method to ContactPersonInterface to check if the contact person is a partner employee,
see details:
true if the contact person has a Bitrix24 partner ID setfalse if no partner ID is associated with the contact persongetBitrix24PartnerId() !== nullRemoved deprecated RemoteEventsFabric test file (tests/Unit/Services/RemoteEventsFabricTest.php);
RemoteEventsFactoryTest already provides full coverage of the replacement class
Removed unused use Bitrix24\SDK\Services\RemoteEventsFabric imports from
CRMServiceBuilderTest, IMServiceBuilderTest, and MainServiceBuilderTest
Fixed PHPUnit 12 deprecations in RemoteEventsFactoryTest: replaced createStub() + ->with()
(no-op combination) with createStub() + ->willReturn() only
Breaking changes in Bitrix24PartnerInterface and Bitrix24PartnerRepositoryInterface,
see details:
getBitrix24PartnerId(): int to getBitrix24PartnerNumber(): int in Bitrix24PartnerInterface to clarify that this method returns the partner's external vendor site number (visible on bitrix24.com/partners/), not an internal database IDfindByBitrix24PartnerId(int $bitrix24PartnerId) to findByBitrix24PartnerNumber(int $bitrix24PartnerNumber) in Bitrix24PartnerRepositoryInterfacegetBitrix24PartnerId() with getBitrix24PartnerNumber() and findByBitrix24PartnerId() with findByBitrix24PartnerNumber() in Bitrix24PartnerInterface implementationsUpdated Task::list() method to accept TaskFilter|array via union type - backward compatible with existing array-based filters while supporting new type-safe TaskFilter instances
Updated Symfony dependencies to support OpenAPI schema builder infrastructure
Refactored integration tests: renamed Fabric.php to Factory.php for consistency
ContactPersonInterface::markMobilePhoneAsVerified() now accepts an optional ?CarbonImmutable $verifiedAt = null
parameter. When omitted, the behaviour is identical to before (defaults to the current timestamp).
Allows callers to supply a specific verification time (e.g. historical imports).
ContactPersonInterface::markEmailAsVerified() now accepts an optional
?CarbonImmutable $verifiedAt = null parameter.
When null (default), the current timestamp is used — fully backward-compatible.
Callers may supply an explicit date when restoring state from persistence or syncing external data.
Updated: ContactPersonInterface, ContactPersonReferenceEntityImplementation,
ContactPersons.md documentation, added testMarkEmailAsVerifiedWithSpecificDate unit test.
scope and licence_family fields.scope and licence_family fields.ApplicationSettingsItemInterface with methods for managing settings lifecycleApplicationSettingsItemRepositoryInterface with CRUD operations and scope-based queriesApplicationSettingStatus for tracking setting state (active/deleted)ApplicationSettingsItemCreatedEvent - triggered when new setting is createdApplicationSettingsItemChangedEvent - triggered when setting value is updated (includes old/new values and change author)ApplicationSettingsItemDeletedEvent - triggered when setting is soft-deletedApplicationSettingsItemNotFoundException for handling missing settingssrc/Application/Contracts/ApplicationSettings/Docs/ApplicationSettings.mdVersionedScope container class for managing multiple Scope instances with version support:
Scope instances indexed by version numbergetScope(int $version): Scope method retrieves Scope by version number (throws InvalidArgumentException if version doesn't exist)getVersions(): array method returns sorted array of all available version numbershasVersion(int $version): bool method checks if a specific version existsInvalidArgumentException for all validation errors (no custom exceptions).claude/mcp_settings.json with Bitrix24 MCP server setupInvalidGrantException - thrown when refresh token is invalid or expired (requires user re-authorization)PortalDomainNotFoundException - thrown when Bitrix24 portal domain is not found or inaccessibledarsyn/ip dependency constraint to support version 6.x alongside versions 4.x and 5.x, see details
^4 || ^5 || ^6IP::factory() continue to work without changesMOVED_TIME field in DealItemResult and LeadItemResult to return CarbonImmutable instead of int,
see details:
MOVED_TIME from integer casting block to datetime casting block in AbstractCrmItem::__get()CarbonImmutable object matching the documented typeAbstractCrmItem datetime field type casting with 8 test cases covering:
MOVED_TIME returns CarbonImmutable for both snake_case and camelCase variantsDATE_CREATE, DATE_MODIFY, LAST_ACTIVITY_TIME return CarbonImmutableMOVED_BY_ID correctly returns intFlowItemResult,
see details:
[@property-read](https://github.com/property-read) bool $active annotationtask.flow.Flow.get method:
responsibleList: changed from array|null to array (required field)demo: changed from bool|null to bool (required field)responsibleCanChangeDeadline: changed from bool|null to bool (required field)matchWorkTime: changed from bool|null to bool (required field)taskControl: changed from bool|null to bool (required field)notifyAtHalfTime: changed from bool|null to bool (required field)taskCreators: changed from array|null to array (required field)team: changed from array|null to array (required field)trialFeatureEnabled: changed from bool|null to bool (required field)notifyOnQueueOverflow, notifyOnTasksInProgressOverflow, notifyWhenEfficiencyDecreases (int|null)ApiClient::getNewAuthToken(), see details:
invalid_grant → throws InvalidGrantException (user re-authorization required)invalid_client → throws WrongClientException (configuration issue)PortalDomainNotFoundException (portal not found)TransportException with retry suggestion (server errors)testFindByEmailWithVerifiedEmail test in ContactPersonRepositoryInterfaceTest to properly mark email as verified,
see details:
markEmailAsVerified() call for the first contact person after save and before flushfindByEmail method with onlyVerified=true flagtestFindByEmailWithVerifiedPhone test in ContactPersonRepositoryInterfaceTest to properly mark phone as verified,
see details:
markMobilePhoneAsVerified() call for the first contact person after save and before flushfindByPhone method with onlyVerified=true flagtestDelete test in ContactPersonRepositoryInterfaceTest to call flush() after delete,
see details:
$flusher->flush() call after $contactPersonRepository->delete() to persist changesServices\CRM\Type\Service\Type with support methods,
see crm.type.* methods:
fields method retrieves information about the custom fields of the smart process settingsadd method creates a new SPAupdate updates an existing SPA by its identifier idget method retrieves information about the SPA with the identifier idgetByEntityTypeId method retrieves information about the SPA with the smart process type identifier entityTypeIdlist Get a list of custom types crm.type.listdelete This method deletes an existing smart process by the identifier idAbstractCrmItem added method getSmartProcessItem to get smart process item, see detailsonCrmContactAddonCrmContactUpdateonCrmContactDeleteRemoteEventsFactory::create and RemoteEventsFactory::validate for create and validate incoming
events, see detailsRemoteEventsFactory::create and RemoteEventsFactory::validate methods with 14 test cases covering:
Bitrix24AccountInterfaceOnApplicationInstall eventsContactPersonInterface implementation, see details with new methods:
isEmailVerified(): bool to check email verification statusisMobilePhoneVerified(): bool to check mobile phone verification statuschangeEmail(?string $email) signature (removed optional $isEmailVerified parameter)changeMobilePhone(?PhoneNumber $phoneNumber) signature (removed optional $isMobilePhoneVerified parameter)getUserAgentInfo(): UserAgentInfo to replace separate methods for user agent dataUTMs class with 28 test cases covering:
UserAgentInfo class with 33 test cases covering:
Credentials class now supports Endpoints object with authServerUrl and clientUrlCredentials: getEndpoints(), getOauthServerUrl(), getClientUrl(),
changeDomainUrl(), see detailsEndpoints class gained changeClientUrl() method to create new instance with updated client URL (immutable)RenewedAuthToken gained getEndpoints() method to create Endpoints object from server responseCoreBuilder gained withEndpoints() and withOauthServerUrl() methods for explicit endpoint configurationserver_endpoint field in API responseshttps://oauth.bitrix.info for backward compatibilityEndpoints class with 29 test cases covering:
getClientUrl() and getAuthServerUrl() methodschangeClientUrl() method with immutability checksinitFromArray() static factory method with validationhttps:// protocol when missing from client URLEndpoints constructor: if client URL is provided without protocol (e.g., example.bitrix24.com), https:// is automatically addedContactPersonInterface method signatures:
changeEmail(?string $email) - removed second parameter ?bool $isEmailVerified. Migration path: call markEmailAsVerified() separately after
changeEmail() if email needs to be verifiedchangeMobilePhone(?PhoneNumber $phoneNumber) - removed second parameter ?bool $isMobilePhoneVerified. Migration path: call
markMobilePhoneAsVerified() separately after changeMobilePhone() if phone needs to be verifiedgetUserAgent(), getUserAgentReferer(), getUserAgentIp() methods with single getUserAgentInfo(): UserAgentInfo method that returns
complete user agent information object. Migration path: use $info->userAgent, $info->referrer, $info->ip properties insteadRemoteEventsFactory::validate() method signature from validate(EventInterface $event, string $applicationToken) to
validate(Bitrix24AccountInterface $bitrix24Account, EventInterface $event). Now uses Bitrix24AccountInterface::isApplicationTokenValid() for token
validation instead of direct string comparisonphp:8.4-cli-bookworm)amqp, excimer, opcache, pcntl, yaml, zipLevelSetList::UP_TO_PHP_84 for PHP 8.4 feature detectionPHPUnitSetList::PHPUNIT_110)random_int() range handlingApiClient now uses Credentials::getOauthServerUrl() instead of hardcoded constantCore automatically updates endpoints in credentials when receiving renewed auth tokensserver_endpoint in token refresh responsesItemsResult see detailscrm.item.get, now it ItemNotFoundException see detailsproject in enum PortalLicenseFamily see detailsContactPersonRepositoryInterfaceTest, see detailsCredentials::createFromOAuth() - third parameter changed from string $domainUrl to Endpoints $endpoints
object
Credentials::createFromOAuth($authToken, $appProfile, 'https://example.com') with
Credentials::createFromOAuth($authToken, $appProfile, new Endpoints('https://example.com', 'https://oauth.bitrix.info/'))Endpoints class constructor (line 35) - validation should check $this->authServerUrl instead of $authServerUrl parameterCredentialsTest.php to properly instantiate Endpoints objectsCoreTest.php integration test to use Endpoints objectRemoteEventsFactory::createEvent marked as deprecated, use RemoteEventsFactory::create and RemoteEventsFactory::validate insteadBitrix24 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
Services\Sale\Delivery\Service\Delivery with support methods,
see sale.delivery.* methods:
add adds a delivery serviceupdate updates a delivery servicegetlist returns a list of delivery servicesdelete deletes a delivery serviceconfigUpdate updates delivery service settingsconfigGet returns delivery service settingsServices\Sale\DeliveryRequest\Service\DeliveryRequest with support methods,
see sale.delivery.request.* methods:
update updates the delivery requestsendMessage creates notifications for the delivery requestdelete deletes the delivery requestServices\Sale\DeliveryExtraService\Service\DeliveryExtraService with support methods,
see sale.delivery.extra.service.* methods:
add adds a delivery serviceupdate updates a delivery serviceget returns information about all services of a specific delivery servicedelete deletes a delivery serviceServices\Sale\DeliveryHandler\Service\DeliveryHandler with support methods,
see sale.delivery.handler.* methods:
add adds a delivery service handlerupdate updates the delivery service handlerlist returns a list of delivery service handlersdelete deletes a delivery service handlerServices\Disk\Service\Disk with support methods,
see disk service methods:
getVersion returns the version by identifiergetAttachedObject returns information about the attached filegetRightsTasks returns a list of available access levels that can be used for assigning permissionsServices\Disk\Storage\Service\Storage with support methods,
see disk.storage.* methods:
fields returns the description of the storage fieldsget returns the storage by identifierrename renames the storagelist returns a list of available storagesgetTypes returns a list of storage typesaddFolder creates a folder in the root of the storagegetChildren returns a list of files and folders in the root of the storageuploadFile uploads a new file to the root of the storagegetForApp returns the description of the storage that the application can work withServices\Disk\Folder\Service\Folder with support methods,
see disk.folder.* methods:
getFields returns the description of folder fieldsget returns the folder by identifiergetChildren returns a list of files and folders that are directly in the folderaddSubfolder creates a subfoldercopyTo copies the folder to the specified foldermoveTo moves the folder to the specified folderrename renames the foldermarkDeleted moves the folder to the trashrestore restores the folder from the trashdeleteTree permanently destroys the folder and all its child elementsgetExternalLink returns a public linkuploadFile uploads a new file to the specified folderServices\Disk\File\Service\File with support methods,
see disk.file.* methods:
getFields returns the description of file fieldsget returns the file by identifierrename renames the filecopyTo copies the file to the specified foldermoveTo moves the file to the specified folderdelete permanently destroys the filemarkDeleted moves the file to the trashrestore restores the file from the trashuploadVersion uploads a new version of the filegetVersions returns a list of file versionsrestoreFromVersion restores the file from a specific versiongetExternalLink returns a public link to the fileServices\CRM\Documentgenerator\Numerator with support methods,
see crm.documentgenerator.numerator.* methods:
add adds a new numerator, with batch calls supportlist gets the list of numerators, with batch calls supportupdate updates an existing numbering with new values, with batch calls supportdelete deletes a numerator, with batch calls supportget gets information about the numerator by its identifiercount count numeratorsServices\Paysystem\Handler\Service\Handler with support methods,
see pay_system.handler.* methods:
add adds a payment system handlerupdate updates a payment system handlerlist returns a list of payment system handlersdelete deletes a payment system handlerServices\Paysystem\Service\Paysystem with support methods,
see sale.paysystem.* methods:
add adds a payment systemupdate updates a payment systemget returns a payment system by its identifierlist returns a list of payment systemsdelete deletes a payment systempayPayment pays a paymentpayInvoice pays an invoice (legacy version)Services\Paysystem\Settings\Service\Settings with support methods,
see sale.paysystem.settings.* methods:
get returns the settings of the payment systemupdate updates the payment system settingsgetForPayment returns the payment system settings for a specific paymentgetForInvoice returns the payment system settings for a specific invoice (legacy version)Services\Sale\Shipment\Service\Shipment with support methods,
see sale.shipment.* methods:
add adds a shipmentupdate updates the fields of a shipmentget returns a shipment by its identifierlist returns a list of shipmentsdelete deletes a shipmentgetFields returns the fields and settings for shipmentsServices\Sale\ShipmentProperty\Service\ShipmentProperty with support methods,
see sale.shipmentproperty.* methods:
add adds a shipment propertyupdate updates the fields of a shipment propertyget returns a shipment property by its identifierlist returns a list of shipment propertiesdelete deletes a shipment propertygetFieldsByType returns the fields and settings for shipment properties by typeServices\Sale\ShipmentPropertyValue\Service\ShipmentPropertyValue with support methods,
see sale.shipmentpropertyvalue.* methods:
modify updates shipment property values for a shipmentget returns a shipment property value by its identifierlist returns a list of shipment property valuesdelete deletes a shipment property valuegetFields returns the fields and settings for shipment property valuesServices\Sale\ShipmentItem\Service\ShipmentItem with support methods,
see sale.shipmentitem.* methods:
add adds a new shipment itemupdate updates the fields of a shipment itemget returns a shipment item by its identifierlist returns a list of shipment itemsdelete deletes a shipment itemgetFields returns the fields and settings for shipment itemsServices\Sale\Payment\Service\Payment with support methods,
see sale.payment.* methods:
add adds a paymentupdate updates the fields of a paymentget returns a payment by its identifierlist returns a list of paymentsdelete deletes a paymentgetFields returns the fields and settings for paymentsServices\Sale\CashboxHandler\Service\CashboxHandler with support methods,
see sale.cashbox.handler.* methods:
add adds a REST cashbox handlerupdate updates the data of the REST cashbox handlerlist returns a list of available REST cashbox handlersdelete deletes the REST cashbox handlerServices\Sale\Cashbox\Service\Cashbox with support methods,
see sale.cashbox.* methods:
add adds a new cash registerupdate updates an existing cash registerlist returns a list of configured cash registersdelete deletes a cash registercheckApply saves the result of printing the receiptServices\Calendar\Service\Calendar with support methods,
see calendar.* methods:
add adds a new calendar sectionupdate updates a calendar sectionget returns a list of calendar sectionsdelete deletes a calendar sectiongetSettings returns main calendar settingsgetUserSettings returns user calendar settingssetUserSettings sets user calendar settingsOnCalendarSectionAddOnCalendarSectionUpdateOnCalendarSectionDeleteServices\Calendar\Event\Service\Event with support methods,
see calendar.event.* methods:
add adds a new calendar event, with batch calls supportupdate updates a calendar event, with batch calls supportgetById returns calendar event by identifierget returns a list of calendar eventsgetNearest returns a list of upcoming eventsdelete deletes a calendar event, with batch calls supportgetMeetingStatus gets current user's participation status in eventsetMeetingStatus sets participation status in event for current usergetAccessibility gets users' availability from listServices\Calendar\Resource\Service\Resource with support methods,
see calendar.resource.* methods:
add adds a new calendar resourceupdate updates a calendar resourcelist returns a list of all resourcesbookingList retrieves resource bookings based on a filterdelete deletes a calendar resourceServices\Sale\PaymentItemBasket\Service\PaymentItemBasket with support methods,
see sale.paymentitembasket.* methods:
add adds a binding of a basket item to a paymentupdate updates the binding of a basket item to a paymentget returns the values of all fields for the basket item binding to paymentlist returns a list of bindings of basket items to paymentsdelete deletes the binding of a basket item to a paymentgetFields returns the available fields for payment item basket bindingsServices\Sale\PaymentItemShipment\Service\PaymentItemShipment with support methods,
see sale.paymentitemshipment.* methods:
add adds a binding of a payment to a shipmentupdate updates the binding of a payment to a shipmentget returns the values of all fields for the payment binding to shipmentlist returns a list of bindings of payments to shipmentsdelete deletes the binding of a payment to a shipmentgetFields returns the available fields for payment item shipment bindingsServices\Sale\PropertyRelation\Service\PropertyRelation with support methods,
see sale.propertyRelation.* methods:
add adds a property bindinglist retrieves a list of property bindingsdeleteByFilter removes the property relationgetFields returns the available fields for property bindingCore\Batch::getTraversableList() with desc sorting by ID see detailsBitrix24 API-methods count: 1162
Supported in bitrix24-php-sdk methods count: 632
Coverage percentage: 54.39% 🚀
Services\Sale\BasketItem\Service\BasketItem with support methods,
see sale.basketitems.* methods:
add adds a new basket item, with batch calls supportupdate updates a basket item, with batch calls supportget returns a basket item by IDlist returns a list of basket items, with batch calls supportdelete deletes a basket item, with batch calls supportgetFields returns the fields of a basket itemServices\Sale\BasketProperty\Service\BasketProperty with support methods,
see sale.basketproperties.* methods:
add adds a basket propertyupdate updates the fields of a basket propertyget returns a basket property by IDlist returns a list of basket propertiesdelete deletes a basket propertygetFields returns the fields of basket propertiesServices\Sale\Order\Service\Order with support methods,
see sale.order.* methods:
add adds an order, with batch calls supportupdate modifies an order, with batch calls supportget returns order fields and fields of related objectslist returns a list of orders, with batch calls supportdelete deletes an order and related objects, with batch calls supportgetFields returns order fieldsServices\Sale\PropertyVariant\Service\PropertyVariant with support methods,
see sale.propertyvariant.* methods:
add adds a variant of an order propertyupdate updates the fields of a property variantget returns the value of a property variant by its identifierlist returns a list of property variantsdelete deletes a property variantgetFields returns the fields and settings of property variantsServices\Sale\Property\Service\Property with support methods,
see sale.property.* methods:
add adds a new order propertyupdate updates the fields of an order propertyget returns an order property by IDlist returns a list of order propertiesdelete deletes an order propertygetFieldsByType returns the fields and settings of order properties by typeServices\Sale\PropertyGroup\Service\PropertyGroup with support methods,
see sale.propertygroup.* methods:
add adds a new property groupupdate updates a property groupget returns a property group by idlist returns a list of property groupsdelete deletes a property groupgetFields returns available fields for property groupsServices\Sale\Status\Service\Status with support methods,
see sale.status.* methods:
add adds a new statusupdate updates an existing statusget returns information about a status by IDlist returns a list of statuses with filtering and sorting optionsdelete deletes a statusgetFields returns available fields for statusesServices\Sale\StatusLang\Service\StatusLang with support methods,
see sale.statusLang.* methods:
getListLangs returns list of available languagesadd adds a new status languagelist returns a list of status languages with filtering and sorting optionsdeleteByFilter deletes status languages by filtergetFields returns available fields for status languagesServices\Sale\PersonTypeStatus\Service\PersonTypeStatus with support methods,
see sale.businessValuePersonDomain.* methods:
add adds business value for person domainlist retrieves list of business values for person domaindelete deletes business values by filtergetFields gets fields description for business value person domainServices\Task\Service\Task with support methods,
see tasks.task.* methods:
add creates a task, with batch calls supportupdate updates a task, with batch calls supportlist retrieves a list of tasks, with batch calls supportdelete deletes a task, with batch calls supportfields retrieves available fieldsget retrieves information about a task by iddelegate delegates tasksstart changes the task status to "in progress"pause stops task execution and changes status to "waiting for execution"defer changes the task status to "deferred"complete changes the task status to "completed"renew renews a task after it has been completedapprove approves a taskdisapprove rejects a taskstartwatch allows watching a taskstopwatch stops watching a taskmute enables "Mute" modeunmute disables "Mute" modeaddFavorite adds tasks to favoritesremoveFavorite removes tasks from favoritesgetCounters retrieves user countersgetAccess checks access to a taskaddDependence creates a dependency of one task on anotherdeleteDependence deletes a dependency of one task on anotherhistoryList retrieves task historyOnTaskAddOnTaskUpdateOnTaskDeleteServices\Task\TaskResult\Service\Result with support methods:
addFromComment adds a comment to the resultdeleteFromComment deletes a comment from the task resultlist retrieves a list of task resultsServices\Task\Checklistitem\Service\Checklistitem with support methods:
add adds a new checklist item to a taskupdate updates the data of a checklist itemdelete deletes a checklist itemget retrieves a checklist item by its idgetList retrieves a list of checklist items in a taskmoveAfterItem retrieves a list of checklist items in a taskcomplete marks a checklist item as completedrenew marks a completed checklist item as active againisActionAllowed checks if the action is allowed for the checklist itemgetManifest retrieves the list of methods and their descriptionsServices\Task\Commentitem\Service\Commentitem with support methods:
add creates a new comment for a taskupdate updates the comment datadelete deletes a commentget retrieves a comment for a taskgetList retrieves a list of comments for a taskServices\Task\Elapseditem\Service\Elapseditem with support methods:
add adds time spent to a taskupdate updates the parameters of the time tracking recorddelete deletes a time tracking recordget retrieves a time tracking record by its identifiergetList retrieves a list of time tracking records for a taskisActionAllowed checks if the action is allowedgetManifest retrieves the list of methods and their descriptionsServices\Task\Userfield\Service\Userfield with support methods:
add creates a new fieldget retrieves a field by its identifiergetList retrieves a list of fieldsdelete deletes a fieldupdate updates the parameters of the fieldgetTypes retrieves all available data typesgetFields retrieves all available fields of the custom fieldServices\Task\Stage\Service\Stage with support methods:
add adds stages to kanban or "My Planner"get retrieves stages of kanban or "My Planner"delete deletes stages of kanban or "My Planner"update updates stages of kanban or "My Planner"canMoveTask determines if the current user can move tasks in the specified objectmoveTask moves tasks from one stage to anotherServices\Task\Planner\Service\Planner with support methods:
getList retrieves a list of tasks from "The Daily Planner"Services\Task\Flow\Service\Flow with support methods:
add creates a flowget retrieves a flowdelete deletes a flowupdate modifies a flowisExists checks if a flow with that name existsactivate turns a flow on or offpin pins or unpins a flow in the listServices\Log\BlogPost\Service\BlogPost with support method:
add - Add new blog post to Live Feed with support for all parameters (title, destination, files, importance, etc.)User::countByFilter see detailsBitrix24AccountRepositoryInterface::findByMemberId see detailsApplicationInstallationRepositoryInterface::findByMemberId to
ApplicationInstallationRepositoryInterface::findByBitrix24AccountMemberId see detailsBitrix24 API-methods count: 1160
Supported in bitrix24-php-sdk methods count: 476
Coverage percentage: 41.03% 🚀
Services\Entity\Section\Service\Section with support methods,
see crm.entity.section.* methods:
get retrieve a list of storage sections, with batch calls supportadd add a storage section, with batch calls supportupdate update a storage section, with batch calls supportdelete delete a storage section, with batch calls supportServices\Entity\Item\Property\Service\Property with support methods:
get retrieve a list of additional properties of storage elements, with batch calls supportadd add an additional property to storage elements, with batch calls supportupdate update an additional property of storage elements, with batch calls supportdelete delete an additional property of storage elements, with batch calls supportServices\Department\Service\Department with support methods,
see department.* methods:
fields gets the department fields referenceget retrieves a list of departments, with batch calls supportadd creates a department, with batch calls supportdelete deletes a department, with batch calls supportupdate modifies a department, with batch calls supportcountByFilter count departments by filterCRM\Requisites\Service\RequisiteUserfield with support methods,
see add crm.requisite.userfield.* methods:
add add userfield to requisiteget get userfield to requisitelist list userfieldsdelete delete userfieldupdate update userfieldCRM\Requisites\Service\RequisiteBankdetail with support methods:
add add bank detail to requisiteget get bank detail to requisitefields get fields for bank detailslist list bank detailsdelete delete bank detailupdate update bank detailcountByFilter count bank details by filterCRM\Requisites\Service\RequisiteLink with support methods:
register registers the link between requisites and an objectunregister removes the link between requisites and an objectfields get a formal description of the fields of the requisites linkget returns the link between requisites and an objectlist returns a list of links between requisites based on a filtercountByFilter count links by filterCRM\Requisites\Service\RequisitePresetField with support methods:
add adds a customizable field to the requisites templateget returns the description of the custom field in the requisites template by identifierfields returns the description of the custom field in the requisites template by identifierlist returns a list of all custom fields for a specific requisites templatedelete deletes a customizable field from the requisites templateupdate modifies a custom field in the requisites templateavailabletoadd returns fields available for addition to the specified requisites templateServices\CRM\Status\Service\Status with support methods,
see crm.status.* methods:
fields returns descriptions of reference book fieldsget returns an element of the reference book by its identifierlist returns a list of elements of the reference book by filter, with batch calls supportadd creates a new element in the specified reference book, with batch calls supportdelete deletes an element from the reference book, with batch calls supportupdate updates an existing element of the reference book, with batch calls supportcountByFilter counts elements of the reference book by filterServices\CRM\Status\Service\StatusEntity with support methods,
items returns elements of the reference book by its symbolic identifiertypes returns descriptions of reference book typesServices\CRM\Timeline\Service\Comment with support methods,
see crm.timeline.comment.* methods:
fields retrieves a list of timeline comment fieldsget retrieves information about a commentlist retrieves a list of all comments for a CRM entity, with batch calls supportadd adds a new comment to the timeline, with batch calls supportdelete deletes a comment, with batch calls supportupdate updates a comment, with batch calls supportcountByFilter count comments by filterOnCrmTimelineCommentAddOnCrmTimelineCommentDeleteOnCrmTimelineCommentUpdateServices\CRM\Timeline\Service\Bindings with support methods:
fields retrieves the fields of the link between CRM entities and the timeline recordlist retrieves a list of links for a timeline record, with batch calls supportbind adds a link between a timeline record and a CRM entity, with batch calls supportunbind removes a link between a timeline record and a CRM entity, with batch calls supportcountByFilter count links between a timeline record and CRM entities by filterServices\CRM\Item\Productrow\Service\Productrow with support methods,
see crm.item.productrow.* methods:
fields retrieves a list of product item fieldsset associates a product item with a CRM objectget retrieves information about a product item by idlist retrieves a list of product items, with batch calls supportadd adds a product item, with batch calls supportdelete deletes a product item, with batch calls supportupdate updates a product itemgetAvailableForPayment retrieves a list of unpaid productscountByFilter counts product items by filterApplicationInstallationRepositoryInterface, see 223
findByMemberIdfindByApplicationTokenadd, see detailsBitrix24 API-methods count: 1166
Supported in bitrix24-php-sdk methods count: 362
Coverage percentage: 31.05%
Services\CRM\Lead\Service\LeadContact with support methods,
see crm.lead.contact.* methods:
fields get fields for lead contact connectionsetItems set contacts related with leadget get contacts related to leaddeleteItems delete all relations for leadadd add contact relation with leaddelete delete contact relation with leadCRM\Item\Service\ItemDetailsConfiguration with support methods,
see add crm.item.details.* methods:
getPersonal method retrieves the settings of item cards for personal usergetGeneral method retrieves the settings of item cards for all usersresetPersonal method reset for item user settingsresetGeneral method reset all card settings for all userssetPersonal method set card configurationsetGeneral method set card configuration for all userssetForceCommonConfigForAll method set common detail form for All UsersCRM\Deal\Service\DealDetailsConfiguration with support methods,
see add crm.deal.details.* methods:
getPersonal method retrieves the settings of deal cards for personal usergetGeneral method retrieves the settings of deal cards for all usersresetPersonal method reset for item user settingsresetGeneral method reset all card settings for all userssetPersonal method set card configurationsetGeneral method set card configuration for all userssetForceCommonConfigForAll method set common detail form for All UsersCRM\Lead\Service\LeadDetailsConfiguration with support methods,
see add crm.lead.details.* methods:
getPersonal method retrieves the settings of lead cards for personal usergetGeneral method retrieves the settings of lead cards for all usersresetPersonal method reset for item user settingsresetGeneral method reset all card settings for all userssetPersonal method set card configurationsetGeneral method set card configuration for all userssetForceCommonConfigForAll method set common detail form for All UsersServices\CRM\Lead\Service\LeadProductRows with support methods,
see add crm.lead.productrows* methods:
set Adds products to a leadget Returns the products of a leadServices\CRM\Quote\Service\Quote with support methods,
see crm.quote.* methods:
fields returns a list of fields for the quoteget returns the settings of the quote by Idlist returns a list of quoteadd creates a new quotedelete deletes a quoteupdate modifies the quotecountByFilter count quotes by filterOnCrmQuoteAddOnCrmQuoteDeleteOnCrmQuoteUpdateOnCrmQuoteUserFieldAddOnCrmQuoteUserFieldDeleteOnCrmQuoteUserFieldSetEnumValuesOnCrmQuoteUserFieldUpdateServices\CRM\Quote\Service\QuoteUserfield with support methods:
add add userfield to a quoteget get userfield to a quotelist list userfieldsdelete delete userfieldupdate update userfieldServices\CRM\Quote\Service\QuoteProductRows with support methods:
set Adds products to a quoteget Returns the products of a quoteServices\CRM\Quote\Service\QuoteContact with support methods,
fields get fiels for quote contact connectionsetItems set contacts related with quoteget get contacts related to quotedeleteItems delete all relations for quoteadd add contact relation with quotedelete delete contact relation with quoteCRM\Lead\Service\LeadUserfield with support methods,
see add crm.lead.userfield.* methods:
add add userfield to leadget get userfield to leadlist list userfieldsdelete delete userfieldupdate update userfieldServices\CRM\Deal\Service\DealRecurring with support methods,
see crm.deal.recurring.* methods:
fields returns a list of fields for the recurring deal templateget returns the settings of the recurring deal template by Idlist returns a list of recurring deal templatesadd creates a new recurring deal templatedelete deletes a recurring deal templateupdate modifies the settings of the recurring deal templateexpose creates a new deal based on the templateServices\CRM\Automation\Service\Trigger with support methods,
see add crm.automation.trigger* methods:
add add new trigger, with batch calls supportdelete delete trigger, with batch calls supportlist get list of triggers, with batch calls supportexecute execute trigger, with batch calls supportServices\CRM\Currency with support methods,
see Add crm.currency.* methods:
get get currencyfields get currency fieldslist get currency listadd add new currency, with batch calls supportdelete delete currency, with batch calls supportupdate update currency, with batch calls supportServices\CRM\Currency\Localizations with support methods,
see Add crm.currency.* methods:
set set localizations, with batch calls supportget get localizationsfields get localization fieldsdelete delete currency, with batch calls supportServices\CRM\Address\Service\Address with support methods,
see add crm.address REST methods:
list get item listadd add new item, with batch calls supportdelete delete item, with batch calls supportupdate update item, with batch calls supportServices\CRM\Enum\OwnerTypelint-all for run all code linters step by step, see detailsplacement.bind, see detailstask.elapseditem.* call in ApiClient see detailsvendor, see detailsBitrix24\SDK\Application\Contracts\Bitrix24Accounts\Entity\Bitrix24AccountInterface, this change needs to process corner cases
when installed application with UI or without UI:
public function applicationInstalled(?string $applicationToken): void application token now is nullablepublic function setApplicationToken(string $applicationToken): void;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.
isMasterAccountBitrix24\SDK\Application\Contracts\ApplicationInstallations\Entity\ApplicationInstallationInterface, this change needs to process
corner cases when installed application with UI or without UI.
setApplicationTokenisApplicationTokenValidpublic function applicationInstalled(?string $applicationToken): void application token now is nullablepublic function applicationUninstalled(?string $applicationToken): void application token now is nullablelinkContactPerson(Uuid $uuid), see change signatures.linkBitrix24Partner(), see change signatures.unlinkBitrix24Partner(), see change signatures.unlinkContactPerson(), see change signatures.linkBitrix24PartnerContactPerson(), see change signatures.unlinkBitrix24PartnerContactPerson(), see change signatures.changeContactPerson(?Uuid $uuid), see change signatures.changeBitrix24Partner(?Uuid $uuid), see change signatures.changeBitrix24PartnerContactPerson(?Uuid $uuid), see change signatures.Bitrix24\SDK\Application\Contracts\ApplicationInstallations\Repository\ApplicationInstallationRepositoryInterface,
see change signatures:
findByBitrix24AccountId from an array to ?ApplicationInstallationInterfaceBitrix24 API-methods count: 1166
Supported in bitrix24-php-sdk methods count: 300
Coverage percentage: 25.73% 🚀
Supported in bitrix24-php-sdk methods with batch wrapper count: 45
CRM\Contact\Service\ContactDetailsConfiguration with support methods,
see add crm.contact.details.* methods:
getPersonal method retrieves the settings of contact cards for personal usergetGeneral method retrieves the settings of contact cards for all usersresetPersonal method reset for item user settingsresetGeneral method reset all card settings for all userssetPersonal method set card configurationsetGeneral method set card configuration for all userssetForceCommonConfigForAll method set common detail form for All UsersBitrix24\SDK\Services\Main\Service::guardValidateCurrentAuthToken for validate current auth token with
api-call app.info on vendor OAUTH server.entityServices\Entity\Service\Item with support methods,
see fix entity.item.* methods:
get get item, with batch calls supportadd add new item, with batch calls supportdelete delete itemupdate update itemServices\Entity\Service\Entity with support methods,
see fix entity.* methods:
get get entityadd add new entitydelete delete entityupdate update entityrights get or change access permissionshumanresources.hcmlink and sign.b2eBitrix24\SDK\Core\Credentials\Scope::contains for check is current scope code contains in scope, for
task «split cli commands»Bitrix24\SDK\Core\Credentials\Scope::getAvailableScopeCodes returned all available scope codes, for
task «split cli commands»Services\CRM\VatRates\Service\Vat with support methods,
see add crm.vat.* methods:
get get vat rate by idadd add new vat ratedelete delete vat ratelist get list of vat ratesupdate update vat rateServices\CRM\Contact\Service\ContactCompany with support methods,
see crm.contact.company.* methods:
fields get fields for contact with company connectionsetItems set companies related with contactget get companies related with contactdeleteItems delete all relations for contactadd add company relation with contactdelete delete company relation with contactServices\CRM\Requisites\Service\Requisite with support methods,
see crm.requisite.* methods:
fields get fields for requisite itemlist get requisites listget returns a requisite by the requisite idadd add requisitedelete delete requisite and related objectsupdate delete requisiteServices\CRM\Requisites\Service\RequisitePreset with support methods,
see crm.requisite.preset.* methods:
fields get fields for requisite itemlist get requisites listget returns a requisite by the requisite idadd add requisitecountries get countries listdelete delete requisite and related objectsupdate delete requisiteBitrix24\SDK\Services\User\Service\Batch
with support methods:
add add (invite) usersget get users list
Added service Services\AI\Engine\Service\Engine with 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 class Bitrix24\SDK\Core\Exceptions\LogicException for logic exceptionsb24-dev:show-sdk-coverage-statistics for show actual SDK coverage for
REST-API, see task «split cli commands»Bitrix24\SDK\Deprecations\DeprecatedMethods with list of
all deprecated methodsphp-cli$scope in method Bitrix24\SDK\Attributes\Services::getSupportedInSdkApiMethods,
for task «split cli commands»Bitrix24\SDK\Core\Exceptions\LogicException for logic exceptions,
for task «fix contract tests»Bitrix24\SDK\Application\Contracts\Bitrix24Accounts\Entity::updateApplicationVersion, for
task «add bitrixUserId and AuthToken»Bitrix24\SDK\Core\Batch for method
user.get, see detailsBitrix24\SDK\Core\Batch for methods entity.item.get and
entity.item.update, see detailsBitrix24\SDK\Core\ApiClient for methods with strict arguments
order, see detailsApplicationInstallationRepositoryInterfaceTest for work with storage see detailsBitrix24AccountInterfaceTest, remove some arguments in constructorBitrix24\SDK\Services\Main\Service::guardValidateCurrentAuthToken for validate current auth token with
api-call app.info on vendor OAUTH server. You can validate incoming tokens from placements and eventsBitrix24 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
CRM\Company\Service with support methods,
see add crm.company.* methods:
get get company by idadd add new company with batch supportdelete delete company by id with batch supportlist get list of companies with batch supportupdate update companies with batch supportcountByFilter count companies count with filterCRM\Company\Service\CompanyUserfield with support methods,
see add crm.company.* methods:
add add userfield to companyget get userfield to companylist list userfieldsdelete delete userfieldupdate update userfieldCRM\Company\Service\CompanyCompanyContact with support methods,
see add crm.company.* methods:
fields get fiels for company contact connectionsetItems set contacts related with companyget get contacts related to companydeleteItems delete all relations for companyadd add contact relation with companydelete delete contact relation with companyCRM\Company\Service\CompanyDetailsConfiguration with support methods,
see add crm.company.* methods:
getPersonal method retrieves the settings of company cards for personal usergetGeneral method retrieves the settings of company cards for all usersresetPersonal method reset for item user settingsresetGeneral method reset all card settings for all userssetPersonal method set card configurationsetGeneral method set card configuration for all companysetForceCommonConfigForAll method set common detail form for All UsersOnCrmCompanyAddOnCrmCompanyDeleteOnCrmCompanyUpdateOnCrmCompanyUserFieldAddOnCrmCompanyUserFieldDeleteOnCrmCompanyUserFieldSetEnumValuesOnCrmCompanyUserFieldUpdateCRM\Enum\Service\Enum with support methods:
activityStatusactivityNotifyTypeactivityPriorityactivityDirectionactivityTypeaddressTypecontentTypeorderOwnerTypessettingsModefieldsownerTypeBitrix24\SDK\Services\CRM\Enum\AddressTypeBitrix24\SDK\Services\CRM\Enum\ContentTypeBitrix24\SDK\Services\CRM\Enum\CrmSettingsModeBitrix24\SDK\Core\Fields\FieldsFilter:
Bitrix24\SDK\Core\Fields\FieldsFilter::filterUserFieldsBitrix24\SDK\Core\Fields\FieldsFilter::filterSmartProcessFieldsBitrix24AccountRepositoryInterface::findByApplicationToken in contracts for
support «Delete Application» use caseBitrix24\SDK\Application\Contracts\Bitrix24Accounts\Exceptions\MultipleBitrix24AccountsFoundExceptionBitrix24AccountBlockedEvent and Bitrix24AccountUnblockedEvent,
see add comment to events.Bitrix24\SDK\Services\CRM\Common\Result\SystemFields\Types\FileBitrix24\SDK\Core\Exceptions\ItemNotFoundExceptionApiLevelErrorHandler added processing API response error_not_found error code.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_TIMEBitrix24\SDK\Services\CRM\Userfield\Service\UserfieldConstraints for check userfield naming rules./examples/local-app-workflows for demonstrate work
with workflows.make dev-show-fields-description for show typehints for methods
arguments from bitrix24 types from *.fields methodBitrix24\SDK\Attributes\ApiServiceBuilderMetadata for document service
builders per scopeBitrix24\SDK\Tests\CustomAssertions\CustomBitrix24Assertions for
additional checks in php-unit with methods:
assertBitrix24AllResultItemFieldsAnnotated - for check phpdoc annotations and result of *.fields commandassertBitrix24AllResultItemFieldsHasValidTypeAnnotation - for check phpdoc annotations and bitrix24 custom types
mapping.gitattributes with config to export data when you use composer flags
--prefer-source and --prefer-distbitrix24UserId in method Bitrix24AccountRepositoryInterface::findByMemberId in contracts
for support use case «RenewAuthToken»GenerateCoverageDocumentationCommand to namespace
Bitrix24\SDK\Infrastructure\Console\Commands\DocumentationBitrix24\SDK\Services\Workflows\Common\WorkflowDocumentId,
see parsing errors.Bitrix24\SDK\Core\Fields\FieldsFilter::filterSystemFields,
see filtration errors.ActivityItemResult, ContactItemResult,
see wrong type hints in ActivityItemResultBitrix24\SDK\Core\Fields\FieldsFilter::filterSystemFields for product user fields case.Bitrix24\SDK\Services\CRM\Lead\Result\LeadItemResult
see wrong typehints in LeadItemResult:
CURRENCY_ID string → Currency|nullOPPORTUNITY string → Money|nullIS_MANUAL_OPPORTUNITY string → bool|nullOPENED string → bool|nullHAS_PHONE string → bool|nullHAS_EMAIL string → bool|nullHAS_IMOL string → bool|nullASSIGNED_BY_ID string → int|nullCREATED_BY_ID string → int|nullMODIFY_BY_ID string → int|nullMOVED_BY_ID string → int|nullDATE_CREATE string → CarbonImmutable|nullDATE_MODIFY string → CarbonImmutable|nullMOVED_TIME string → CarbonImmutable|nullCOMPANY_ID string → int|nullCONTACT_ID string → int|nullCONTACT_IDS string → array|nullIS_RETURN_CUSTOMER string → bool|nullDATE_CLOSED string → CarbonImmutable|nullLAST_ACTIVITY_BY string → int|nullLAST_ACTIVITY_TIME string → CarbonImmutable|nullBitrix24\SDK\Services\CRM\Product\Result\ProductItemResult:
PRICE string → MoneyCURRENCY_ID string → CurrencyACTIVE string → boolVAT_INCLUDED string → boolDATE_CREATE string → CarbonImmutableTIMESTAMP_X string → CarbonImmutableBitrix24\SDK\Services\CRM\Userfield\Result\AbstractUserfieldItemResult:
ID string → intSORT string → intMULTIPLE string → boolMANDATORY string → boolSHOW_FILTER string → boolSHOW_IN_LIST string → boolEDIT_IN_LIST string → boolIS_SEARCHABLE string → boolRemoteEventsFabric use RemoteEventsFactoryApplicationLifeCycleEventsFabric use ApplicationLifeCycleEventsFactoryTelephonyEventsFabric use TelephonyEventsFactoryBitrix24 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
Bitrix24\SDK\Services\RemoteEventsFabric for simple work with builtin Bitrix24 events. You can create
Bitrix24 events from Symfony\Component\HttpFoundation\Request object. If event is not supported in SDK, fabric will
create Bitrix24\SDK\Core\Requests\Events\UnsupportedRemoteEvent with generic interface
Bitrix24\SDK\Core\Contracts\Events\EventInterface without typehints. Every event checked with valid
application_token signature.Bitrix24\SDK\Services\ServiceBuilderFactory::createServiceBuilderFromWebhook for simple work with
webhook, see add super-simple kick-off guide.Bitrix24\SDK\Services\ServiceBuilderFactory::createServiceBuilderFromPlacementRequest for simple work
with placement request, see add super-simple kick-off guide.Bitrix24\SDK\Core\Contracts\Events\EventsFabricInterface for scope-based event fabrics.Bitrix24\SDK\Core\Requests\Events\UnsupportedEvent as a default event container object for unsupported in SDK
Bitrix24 events.Bitrix24\SDK\Application\Local:
Local\Entity\LocalAppAuth: auth data for local application. Contains: AuthToken, domainUrl and
applicationToken.Local\Infrastructure\Filesystem\AppAuthFileStorage: class for store LocalAppAuth in fileLocal\Repository\LocalAppAuthRepositoryInterface: interface for LocalAppAuthRepository./examples/local-app-with-token-storage for demonstrate all options for work with
SDK and created local
application skeleton./examples/webhook-error-handling for demonstrate exceptions handling./examples/local-app-placement for demonstrate work with placements.WrongClientException for handle errors with wrong application client configuration.PaymentRequiredException for handle errors with expired subscription.WrongConfigurationException for handle errors with wrong application infrastructure configuration.WrongSecuritySignatureException for handle errors
with wrong signature events with
application_token.Bitrix24\SDK\Core\Credentials\ApplicationProfileBitrix24\SDK\Application\Requests\Events\ApplicationLifeCycleEventsFabricEventInterface from Bitrix24\SDK\Application\Requests\Events to
Bitrix24\SDK\Core\Contracts\EventsBitrix24\SDK\Events\AuthTokenRenewedEvent for store tokenBitrix24\SDK\Events\AuthTokenRenewedEvent for store token → repeat api-callBitrix24\SDK\Core\ApiClient - added class Bitrix24\SDK\Core\ApiLevelErrorHandlerBitrix24\SDK\Core\Credentials\ApplicationProfile - mark as publicBitrix24\SDK\Core\Credentials\AuthToken - mark as public/examples/webhook//examples/local-application/Bitrix24\SDK\Core\ApiClient,
see wrong API-client and sdk version in headers.core in Bitrix24\SDK\Services\AbstractServiceBuilder - for better DX,
see Make core public in service builder.Bitrix24\SDK\Services\ServiceBuilderFactory::initFromRequest to
Bitrix24\SDK\Services\ServiceBuilderFactory::initBitrix24\SDK\Services\ServiceBuilderFactory::initFromRequest,
see wrong variable name.Bitrix24\SDK\Core\ApiLevelErrorHandlerHow can I help you explore Laravel packages today?