bitrix24/b24phpsdk
Official PHP library for the Bitrix24 REST API, with two branches: v1 (stable, PHP 8.2–8.4) and v3 (active development, PHP 8.4+, new REST methods, breaking changes). Handles authentication, API calls, and batch requests.
PortalDomainUrlChangingEvent with its irreversible deny() and PortalDomainChangeRejectedException to veto portal redirects before credentials change or tokens are sent to the destination. This is a compliance/security feature, not a nice-to-have, for multi-tenant and marketplace apps.telephony/workflows). Note there are still unresolved undocumented endpoints explicitly excluded by the maintainers (e.g., log.comment.delete, Disk allowed-operation endpoints) — treat these as unsupported and don't build product features on them.Bitrix24Accounts, ApplicationInstallations) to manage auth tokens and installations — now with domain-change veto protection as a first-class safety net.getPullScope() facade enable Bitrix24's long-polling push model — a practical middle ground for near-real-time UX, though still not WebSocket.Adopt if:
Look elsewhere if:
log.comment.delete, certain Disk allowed-operation endpoints) — these are unsupported and may never land."This SDK lets us rapidly build Bitrix24 integrations without custom API wrappers, cutting development time by 40%+ for CRM, task, or IM syncs. Release 3.7.0 significantly expands what we get for free: e-commerce (Sale) and Landing/site management now have batch support, we get incremental delta-sync for user history and field changes (cheaper, faster syncs), and a security control that vetoes portal domain changes before credentials leave — a real compliance requirement for multi-tenant apps. It's production-ready, MIT-licensed, actively maintained, and aligns with our PHP 8.2+ stack. For example, we could launch a Bitrix24 Marketplace app in 3 months instead of 6 by leveraging its pre-built auth contracts and typed methods — and now extend it into storefront or site-management features without new R&D."
*"The Bitrix24 PHP SDK (3.7.0) gives us:
$b24Service->crm()->leads()->add()).batch properties on Landing services (sites, pages, blocks, templates, roles, repos, demos) and Sale services (basket, payment, shipment, delivery, cashbox, property, status, trade platform). Landing batch supports offset pagination via params.limit/params.offset.PortalDomainUrlChangingEvent with irreversible deny() + PortalDomainChangeRejectedException lets us reject portal redirects before credentials/tokens are sent onward.getPullScope() facade, plus Pull application config, event, push and watch wrappers — near-real-time UX without WebSockets.voximplant.callback.start, all nine remaining timeman methods (networkRange(), timeControl()), SonetGroup membership/roles, Disk file/folder search and folder sharing, and seven legacy log endpoints for feed posts/comments.Tradeoffs and watch items:
log.comment.delete, some Disk allowed-operation endpoints) — don't design features around them.Next steps:
PortalDomainUrlChangingEvent::deny() in the marketplace app as a security gate.How can I help you explore Laravel packages today?