Битрикс24 — самая распространённая CRM в российском B2B и SMB-сегменте. Если менеджер вручную ищет реквизиты контрагента на сайте ФНС и переносит их в карточку — это те же 5 минут на лид, что и в любой другой CRM, только помноженные на десятки тысяч компаний, использующих Битрикс24.
Этот гайд — как настроить автообогащение карточек компании/контакта в Битрикс24 через открытый API 2BASE.
Что даст интеграция
Когда в Битрикс24 создаётся новая компания или контакт с заполненным ИНН — вебхук автоматически:
- Ищет компанию в 2BASE по ИНН
- Получает реквизиты, ОКВЭД, регион, статус
- Заполняет соответствующие поля карточки в Битрикс24
Менеджер видит в карточке: полное название, юр.адрес, ОКВЭД, статус (действующая/ликвидирована), регион — без ручного переноса.
Шаг 1: доступ к API 2BASE
API 2BASE — открытый JSON-эндпоинт, отдельного токена получать не нужно:
GET /api/v1/search?q={ИНН}— поиск компании по ИНН, возвращает список совпадений со слагом (slug) каждой компанииGET /api/v1/companies/{slug}— полная карточка по слагу: название, ОКВЭД, регион, статус, адрес
Лимит — 30 запросов в минуту с одного IP. Контакты (телефон, email) в бесплатном API замаскированы — это платный доступ через сайт, как и для обычных посетителей. Для интеграции CRM обычно достаточно открытых полей (реквизиты, ОКВЭД, статус) — само наличие verified-контрагента в реестре важнее его телефона на этапе заведения карточки.
Шаг 2: исходящий вебхук в Битрикс24
В Битрикс24:
- Перейдите: Разработчикам → Другое → Исходящий вебхук
- Событие:
ONCRMCOMPANYADD(при создании компании) и/илиONCRMCONTACTADD - Укажите URL вашего мидлвара — сервера, который будет дёргать API 2BASE
Для обновления по изменению ИНН — аналогично подписаться на ONCRMCOMPANYUPDATE.
Шаг 3: мидлвар (минимальный код)
Простейший мидлвар на Python (Flask):
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
BITRIX_WEBHOOK = "https://your-domain.bitrix24.ru/rest/USER_ID/WEBHOOK_CODE"
@app.route('/webhook/company', methods=['POST'])
def company_added():
data = request.form
company_id = data.get('data[FIELDS][ID]')
if not company_id:
return jsonify({"status": "no_id"})
# Получаем ИНН из карточки компании в Битрикс24
b24 = requests.post(f"{BITRIX_WEBHOOK}/crm.company.get.json",
json={"id": company_id}, timeout=10).json()
inn = (b24.get('result') or {}).get('UF_CRM_INN')
if not inn:
return jsonify({"status": "no_inn"})
# Ищем компанию в 2BASE по ИНН
search = requests.get("https://2base.ru/api/v1/search",
params={"q": inn}, timeout=10).json()
hits = search.get('data') or []
if not hits:
return jsonify({"status": "not_found"})
slug = hits[0]['slug']
company = requests.get(f"https://2base.ru/api/v1/companies/{slug}", timeout=10).json().get('data', {})
# Обновляем карточку компании в Битрикс24
requests.post(f"{BITRIX_WEBHOOK}/crm.company.update.json", json={
"id": company_id,
"fields": {
"TITLE": company.get('name'),
"ADDRESS": company.get('address'),
"UF_CRM_OKVED": company.get('okved_name'),
"UF_CRM_STATUS": company.get('status'),
}
})
return jsonify({"status": "enriched"})
if __name__ == '__main__':
app.run(port=8080)
~ 40 строк кода. Сервер хостится где угодно — своя VPS, Railway, любой облачный хостинг.
Шаг 4: кастомные поля в Битрикс24
Для обогащения понадобятся пользовательские поля компании (создаются через Разработчикам → Пользовательские поля → Компании):
UF_CRM_INN— ИНН (если ещё не заведено стандартное поле)UF_CRM_OKVED— ОКВЭД / вид деятельностиUF_CRM_STATUS— статус контрагента (действующая/ликвидирована)
Шаг 5: тестирование
Создайте тестовую компанию в Битрикс24 с заполненным ИНН реальной действующей организации. Вебхук должен сработать в течение нескольких секунд, поля карточки — заполниться.
Если не срабатывает — проверьте:
- Права исходящего вебхука (нужен доступ crm)
- Формат ИНН (10 цифр для ЮЛ, 12 — для ИП)
- Лимит 30 запросов/минуту — при массовом импорте компаний делайте паузы между вызовами
Что ещё можно автоматизировать
Проверка контрагента перед сделкой
При переводе сделки в стадию согласования — мидлвар проверяет актуальный статус контрагента в 2BASE. Если компания «ликвидирована» — уведомление менеджеру до подписания договора.
Массовый импорт свежих лидов
Периодический скрипт: выгрузка новых ИП/ООО по региону и ОКВЭД через конструктор 2BASE → импорт пачкой в Битрикс24 как лиды (crm.lead.add).
FAQ
Нужен ли платный тариф 2BASE для интеграции?
Для базового обогащения (реквизиты, ОКВЭД, статус) — нет, эти поля открыты через API. Телефон и email конкретной компании — платный анлок, как и в веб-интерфейсе.
Работает ли это с коробочной версией Битрикс24 (не облаком)?
Да, REST API идентичен для облака и коробки — отличается только базовый URL вебхука.
А если у меня amoCRM, а не Битрикс24?
Логика та же, отличаются только REST-методы CRM. См. отдельный гайд по интеграции с amoCRM.
Связанные: API 2BASE · Интеграция с amoCRM · Bulk-проверка ИНН