BINCORT Public API v1

Выгрузка заявок в вашу CRM, вебхуки о событиях и действия над заявками. Одна страница — всё, что нужно, чтобы подключиться.

OpenAPI (JSON) — импорт в Postman, Insomnia или генератор клиентов

1. Попробовать за 10 секунд — без аккаунта

Песочница отвечает на все методы фиктивными данными. Ключ публичный и постоянный, его можно вставить в любой HTTP-клиент прямо сейчас:

curl https://api.bincort.ru/v1/leads?limit=3 \
  -H "X-CRM-API-Key: bic_crm_sandbox_demo_key"

Песочница не касается данных ни одного бизнеса и ничего не сохраняет: методы записи (статус, заметка, вебхук) возвращают успешный ответ с пометкой "sandbox": true, но никуда не пишут. Фильтры since, status и limit работают — на них можно проверить логику инкрементального опроса.

2. Ключ и аутентификация

Боевой ключ создаётся в кабинете: Экспорт → API-ключ для автосинхронизации. Доступен на тарифах Standard и выше. Ключ показывается один раз; при повторной генерации старый отзывается.

Каждый запрос — с заголовком:

X-CRM-API-Key: bic_crm_…
curl "https://api.bincort.ru/v1/leads?since=2026-09-01T00:00:00Z&limit=100" \
  -H "X-CRM-API-Key: bic_crm_ВАШ_КЛЮЧ"

Все даты в API — UTC, ISO 8601. Ключ проверяется на каждый запрос вместе с тарифом и статусом подписки: при даунгрейде ниже Standard или приостановке за неоплату API отвечает 402, сам ключ при этом не удаляется.

3. Методы

МетодПутьЧто делаетПараметры
GET/v1/leadsВыгрузить заявки (инкрементально, по since)since, limit, status, mark_exported
POST/v1/webhooks/subscribeПодписаться на событиеJSON-тело
DELETE/v1/webhooks/{webhook_id}Отписаться
GET/v1/webhooksСписок подписок
POST/v1/leads/{lead_id}/statusСменить статус заявкиJSON-тело
POST/v1/leads/{lead_id}/noteДобавить внутреннюю заметкуJSON-тело
POST/v1/leads/{lead_id}/assignНазначить оператораJSON-тело

Таблица генерируется из спецификации — совпадает с кодом по построению. Точные схемы запросов и ответов — в OpenAPI.

GET /v1/leads — выгрузка заявок

Возвращает заявки бизнеса, отсортированные по времени создания (старые → новые). Параметры: since — ISO-дата, вернуть созданные ПОСЛЕ неё; limit — до 500 (по умолчанию 100); status — один из new, in_progress, completed, spam, duplicate; mark_exported=true — пометить полученные заявки как выгруженные в CRM (видно в кабинете).

Рекомендуемая схема опроса: раз в 5–15 минут, в since передавать created_at последней заявки из предыдущего ответа. Заявка с "locked": true — сверх лимита тарифа Free: сохранена, но контакты и текст скрыты до апгрейда.

Объект заявки:

{
  "id": 1001,
  "created_at": "2026-09-01T09:12:00Z",
  "channel": "Telegram",
  "channel_code": "telegram",
  "client_name": "Анна Петрова",
  "client_phone": "+79001234567",
  "client_email": "anna@example.com",
  "topic": "Доставка в область",
  "message": "Здравствуйте! Довозите ли вы до Подольска и сколько это стоит?",
  "locked": false,
  "status": "Новое",
  "status_code": "new",
  "priority": "Обычный",
  "ai_intent": "Вопрос",
  "ai_tags": ["question"],
  "is_repeat_client": false,
  "utm": {"source": "yandex", "medium": "cpc", "campaign": "dostavka"},
  "crm_exported": false
}

Действия над заявкой

POST /v1/leads/{id}/status с телом {"status": "completed"} — сменить статус (new, in_progress, completed, spam). POST /v1/leads/{id}/note с телом {"text": "…"} — добавить внутреннюю заметку (видна команде, не клиенту). POST /v1/leads/{id}/assign с телом {"operator_id": 7} (или null, чтобы снять) — назначить оператора.

4. Вебхуки — узнавать о событиях сразу

Вместо опроса: POST /v1/webhooks/subscribe с телом {"target_url": "https://…", "event_type": "lead.created"}. До 10 подписок на бизнес. События: lead.created — новая заявка; lead.status_changed — смена статуса любым способом (оператор, правило автоматизации, API, ответ оператора); lead.note_added — новая заметка.

Мы делаем POST на ваш адрес с Content-Type: application/json и User-Agent: BINCORT-Webhook/1.0, таймаут 5 секунд, без повторов. Статус последней доставки по каждой подписке виден в кабинете (Экспорт).

{
  "event": "lead.created",
  "business_id": 42,
  "lead_id": 1001,
  "created_at": "2026-09-01T09:12:00",
  "channel_code": "telegram",
  "client_name": "Анна П.",
  "topic": "Доставка в область",
  "status": "new",
  "priority": "normal"
}

Для lead.status_changed добавляются поля old_status и new_status; для lead.note_addednote_id, author_name, text. В вебхуке имя клиента — маскированное; полные данные забирайте через GET /v1/leads. Адрес должен быть публичным (внутренние и локальные адреса отклоняются).

5. Ошибки и лимиты

400Неверный параметр: формат since, недопустимый статус или событие, небезопасный URL вебхука.
401Нет заголовка ключа, неверный формат (не bic_crm_…) или ключ отозван.
402Тариф ниже Standard или подписка приостановлена за неоплату. Ключ сохранён, доступ вернётся после оплаты.
403Аккаунт приостановлен.
404Заявка, оператор или вебхук не найдены (или принадлежат другому бизнесу).
429Превышен лимит запросов или достигнуто максимальное число вебхуков.

Тело ошибки — JSON {"detail": "…"} с пояснением на русском.

Лимиты: 120 запросов в минуту на ключ; до 500 заявок за один запрос; до 10 вебхук-подписок на бизнес.

Вопросы по интеграции — через контакты на сайте. Версия API зафиксирована: изменения, ломающие совместимость, выйдут только как /v2.