Fast Integration with Bitrix24 Local Application
We often receive calls with the same pain: urgently need to connect Bitrix24 with an internal system — 1C, warehouse, or custom CRM — but publishing to Marketplace is unnecessary. The license is limited to one portal, external access partially restricted. We offer a solution: a Bitrix24 local application — it can be configured in 15 minutes and gives full REST API access without bureaucracy. Our engineers have 12+ years in the Bitrix ecosystem, having completed 50+ integration projects, guaranteeing reliability on heavily loaded portals. A local app integrates 50% faster than a Marketplace solution and costs from $1,000 for simple widgets. Saving on integration errors can reach $5,000 per project, and minimizing downtime saves $3,000 annually.
How to Develop a Local Application with OAuth?
- Register the application in portal settings (Applications → Developers → Other → Local Application).
- Choose authorization type: Server (OAuth) for backend or JavaScript (JS SDK) for UI-only.
- Set scopes (crm, task, user, etc.) – plan all rights in advance to avoid reinstallation.
- Develop the code: handle OAuth, implement REST calls, process events.
- Test and deploy: use ngrok for debugging, then move to production.
OAuth 2.0 Authorization Code flow: On first open, Bitrix24 passes AUTH_ID, REFRESH_ID, AUTH_EXPIRES in query string. The server saves the access token, and upon expiration (3600 seconds), refreshes it via POST to https://{domain}/oauth/token/. Refresh token lives 30 days, so cyclic refresh is essential. Libraries like bitrix24-api automate this. More details on Wikipedia. Additional information in official Bitrix24 docs.
How to Choose Between JavaScript and Server Application?
| Parameter | JavaScript Application | Server Application |
|---|---|---|
| Authorization | Token from URL params/postMessage | OAuth 2.0 Authorization Code |
| Server part | Not required | Required |
| Secret storage | No secret | client_secret on server |
| Background work | No | Yes (cron, queues) |
| Event subscription | Via BX24.js | Via event.bind REST |
| Use case | UI widgets, dashboards | Synchronization, automation |
JavaScript type builds an MVP in 1–3 days; server type takes 1–3 weeks for corporate integrations. A local app starts 2–3 times faster than a mass-market one due to no moderation.
Practical Code Examples
JavaScript-Type App minimal example:
<!DOCTYPE html> <html> <head> <script src="//api.bitrix24.com/api/v1/"></script> </head> <body> <div id="app"></div> <script> BX24.init(function() { var auth = BX24.getAuth(); // auth.domain — portal domain // auth.access_token — token for REST requests BX24.callMethod('user.current', {}, function(result) { if (result.error()) { document.getElementById('app').innerHTML = 'Error: ' + result.error(); return; } var user = result.data(); document.getElementById('app').innerHTML = 'Hello, ' + user.NAME + '!'; }); BX24.fitWindow(); }); </script> </body> </html> The JS SDK is loaded from Bitrix CDN; no direct portal connection needed. Server-Type App OAuth callback in Node.js:
const express = require('express'); const axios = require('axios'); const app = express(); app.get('/', (req, res) => { const { AUTH_ID, REFRESH_ID, AUTH_EXPIRES, DOMAIN, PLACEMENT } = req.query; saveTokens({ domain: DOMAIN, accessToken: AUTH_ID, refreshToken: REFRESH_ID, expiresIn: parseInt(AUTH_EXPIRES) }); res.sendFile(__dirname + '/public/index.html'); }); app.post('/refresh', async (req, res) => { const { refresh_token, domain } = req.body; const response = await axios.post( `https://${domain}/oauth/token/`, new URLSearchParams({ grant_type: 'refresh_token', client_id: process.env.CLIENT_ID, client_secret: process.env.CLIENT_SECRET, refresh_token }) ); res.json(response.data); }); Scope Selection and Limitations
Access scopes determine read/write permissions. Local apps request them at installation. Need new scope? User must reinstall (click update rights button). Plan rights in advance to avoid production disruption.
Expand full scope list
crm — deals, leads, contacts, companies task — tasks and projects user — portal users disk — files and folders calendar — calendar events sonet_group — groups and workspaces catalog — product catalog sale — store and orders telephony — calls and telephony
Limitations: Single-portal only, cannot be Marketplace published, portal domain change requires reconfig, no multiple redirect_uri support. For most internal integrations, these don't hinder. If scaling needed later, code transfers to mass-market version easily.
What's Included in Our Service
We deliver a turnkey local application with:
- Analysis: assessment of current processes and external systems
- Architecture: design (microservices or monolith) with performance targets (up to 1000 REST calls/min)
- Implementation: REST methods for sync, webhooks for event processing
- OAuth setup: secure token storage with auto-refresh
- Testing: live portal validation
- Documentation: API description, rights scheme, deployment guide
- Training: admin onboarding (2 hours session)
- Support: 3-month warranty, bug fixes within 24 hours
Pricing starts at $1,000 for simple widgets, $5,000–$15,000 for complex integrations. Average ROI: 200% within 6 months due to automation savings. A typical corporate integration costs around $7,500.
| Task | Duration | Cost Estimate |
|---|---|---|
| Local app setup + basic auth | 0.5–1 day | $500–$1,000 |
| Simple widget (CRM read-only) | 1–3 days | $1,000–$3,000 |
| Bi-directional system integration | 1–3 weeks | $5,000–$10,000 |
| Full corporate application | 1–2 months | $10,000–$20,000 |
Contact us for a free project assessment. We'll propose the optimal architecture and timeline. Our Bitrix24 developer team can also help with custom Bitrix24 applications and corporate Bitrix24 integrations.







