Настройка API и автоматизация: 1С-Битрикс + Контур.Эльба

Автоматизация счетов: Битрикс + Контур.Эльба Эльба — облачный сервис налогового учёта для ИП на УСН и патенте. В отличие от МоёДело и Контур.Бухгалтерии, Эльба заточена под микробизнес с упрощёнными операциями. API Эльбы даёт доступ к документам (счета, акты) и контрагентам, но не к управлению пл
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка API и автоматизация: 1С-Битрикс + Контур.Эльба
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1428
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1008
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    745
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    869
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    782
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1149

Автоматизация счетов: Битрикс + Контур.Эльба

Эльба — облачный сервис налогового учёта для ИП на УСН и патенте. В отличие от МоёДело и Контур.Бухгалтерии, Эльба заточена под микробизнес с упрощёнными операциями. API Эльбы даёт доступ к документам (счета, акты) и контрагентам, но не к управлению платежами. Это определяет возможности и ограничения интеграции с Битрикс.

Мы — команда с 10-летним опытом разработки на 1С-Битрикс и сертификатами «1С-Битрикс». Наша интеграция решает задачу автоматического выставления счетов и актов из заказов интернет-магазина напрямую в Эльбу. Закажите интеграцию под ключ — мы учтём все особенности вашего бизнеса.

Проблемы, которые решаем

Ручной ввод счетов. Без интеграции менеджер вручную копирует данные из Битрикс в Эльбу — ошибки, задержки, потеря клиентов. Наше решение исключает человеческий фактор, экономя до 15 часов в неделю на вводе данных.

OAuth 2.0 без ошибок. Неправильное кеширование токенов приводит к блокировкам API. Мы реализуем корректный Client Credentials flow с превентивным обновлением.

Ограниченное API Эльбы. Отсутствие API платежей и лимиты запросов — мы предлагаем обходные пути: вебхуки от платёжных систем, очередь через агентов Битрикса. Благодаря этому обрабатываем до 1000 заказов в день без блокировок.

Как настроить OAuth 2.0 для Эльбы

Авторизация выполняется по протоколу OAuth 2.0 (Client Credentials). Для серверной интеграции достаточно получить client_id и client_secret в личном кабинете Эльбы.

class ElbaOAuthService { private string $clientId; private string $clientSecret; private string $redirectUri; private string $tokenUrl = 'https://auth.kontur.ru/connect/token'; public function getClientCredentialsToken(): string { // Для серверной интеграции — Client Credentials flow $ch = curl_init($this->tokenUrl); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query([ 'grant_type' => 'client_credentials', 'client_id' => $this->clientId, 'client_secret' => $this->clientSecret, 'scope' => 'elba.api', ]), CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'], ]); $response = json_decode(curl_exec($ch), true); curl_close($ch); // Кешируем токен на (expires_in - 60) секунд $this->cacheToken($response['access_token'], $response['expires_in'] - 60); return $response['access_token']; } } 

Клиент API Эльбы на PHP

class ElbaApiClient { private ElbaOAuthService $auth; private string $baseUrl = 'https://api.e-kontur.ru/api/v1'; public function request(string $method, string $path, array $data = []): array { $token = $this->auth->getCachedToken(); $ch = curl_init($this->baseUrl . $path); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => $method, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', "Authorization: Bearer {$token}", ], CURLOPT_POSTFIELDS => in_array($method, ['POST', 'PUT']) ? json_encode($data) : null, ]); $json = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode >= 400) { throw new \RuntimeException("Elba API error {$httpCode}: {$json}"); } return json_decode($json, true) ?? []; } } 

Как автоматически выставлять счета из Битрикса?

Основной сценарий: при создании заказа автоматически формируем счёт в Эльбе и отправляем его покупателю по email. Для этого сначала находим или создаём контрагента по ИНН, затем формируем массив товарных позиций.

public function findOrCreateCounterparty(\Bitrix\Sale\Order $order): string { $props = $order->getPropertyCollection(); $inn = $props->getItemByOrderPropertyCode('INN')?->getValue(); $email = $props->getUserEmail(); if ($inn) { // Поиск по ИНН $list = $this->client->request('GET', '/counterparties?inn=' . urlencode($inn)); if (!empty($list)) { return $list[0]['id']; } } // Создание контрагента $isLegal = !empty($inn); $payload = $isLegal ? [ 'fullName' => $props->getItemByOrderPropertyCode('COMPANY')?->getValue() ?? '', 'inn' => $inn, 'kpp' => $props->getItemByOrderPropertyCode('KPP')?->getValue() ?? '', 'email' => $email, ] : [ 'fullName' => $props->getBuyerName(), 'email' => $email, 'type' => 'individual', ]; $created = $this->client->request('POST', '/counterparties', $payload); return $created['id']; } 
public function createInvoiceForOrder(\Bitrix\Sale\Order $order): array { $counterpartyId = $this->findOrCreateCounterparty($order); $items = []; foreach ($order->getBasket() as $item) { $items[] = [ 'name' => $item->getField('NAME'), 'count' => $item->getQuantity(), 'price' => $item->getPrice(), 'unit' => 'шт.', 'ndsRate' => 'NoNds', // УСН — без НДС. Варианты: Nds0, Nds10, Nds20 ]; } // Доставка как отдельная позиция $deliveryPrice = $order->getField('PRICE_DELIVERY'); if ($deliveryPrice > 0) { $items[] = [ 'name' => 'Доставка', 'count' => 1, 'price' => $deliveryPrice, 'unit' => 'усл.', 'ndsRate' => 'NoNds', ]; } $invoice = $this->client->request('POST', '/invoices', [ 'number' => $order->getField('ACCOUNT_NUMBER'), 'date' => date('Y-m-d'), 'counterpartyId' => $counterpartyId, 'items' => $items, 'comment' => 'Заказ с сайта #' . $order->getField('ACCOUNT_NUMBER'), 'paymentDueDate' => date('Y-m-d', strtotime('+3 days')), ]); return $invoice; } 

Какие ограничения API Эльбы и как их обойти?

Нет API для регистрации платежей. Когда заказ оплачен в Битрикс, автоматически отметить счёт оплаченным в Эльбе через API невозможно. Обход: webhook от платёжных систем → уведомление по email бухгалтеру с номером счёта. Или использовать банковскую интеграцию Эльбы — при поступлении денег на расчётный счёт Эльба сама сопоставляет платёж с выставленным счётом.

Лимиты API. У API Эльбы есть ограничения на количество запросов. Для магазина с большим числом заказов — очередь отправки через \Bitrix\Main\Agent или отдельный воркер.

Только счета и акты, не накладные. Для отгрузки товаров документ акта не вполне корректен юридически. Для ИП на УСН это обычно несущественно, но для ООО — рассмотрите Контур.Бухгалтерию.

Акт выполненных работ для услуг

Для услуг (не товаров) формируем акт вместо счёта:

public function createActForOrder(\Bitrix\Sale\Order $order, string $counterpartyId): array { // Аналогичная структура items return $this->client->request('POST', '/acts', [ 'date' => date('Y-m-d'), 'counterpartyId' => $counterpartyId, 'items' => $this->buildItems($order), 'comment' => 'Услуги по заказу #' . $order->getField('ACCOUNT_NUMBER'), ]); } 

Сравнение сервисов

Критерий Эльба (СКБ Контур) Контур.Бухгалтерия МоёДело
Ориентация ИП на УСН, патент ИП и ООО любые режимы ИП и ООО
API для счетов Есть Есть Есть
API для платежей Нет Есть Есть
Поддержка накладных Нет Есть Есть
Стоимость Низкая Средняя Средняя

Эльба лучше для микробизнеса, но уступает Контур.Бухгалтерии по функционалу — у той есть API платежей и накладных.

Маппинг полей Битрикс → Эльба

Поле в Битрикс Поле в Эльба (counterparty/invoice)
Свойство заказа INN counterparty.inn
Название компании (COMPANY) counterparty.fullName
Email покупателя counterparty.email
Название товара (Basket.NAME) invoice.items[].name
Количество (Basket.QUANTITY) invoice.items[].count
Цена (Basket.PRICE) invoice.items[].price
Стоимость доставки invoice.items (отдельная позиция)
Типичные ошибки интеграции
  • Истечение токена во время длительного сеанса — решается кешированием с запасом.
  • Неверный scope при запросе токена — используйте elba.api.
  • Ошибка 400 при создании контрагента — возможно, не указан ИНН или email.
  • Превышение лимита запросов — добавьте очередь через CAgent.

Что входит в работу

Мы предоставляем готовое решение под ключ:

  • OAuth 2.0 интеграция с кешированием токенов
  • PHP-клиент для API Эльбы
  • Поиск и создание контрагентов
  • Автоматическое выставление счетов при создании заказа
  • Обработка ошибок, логирование, повторные попытки
  • Документация и обучение персонала
  • Гарантия 3 месяца на корректную работу

Процесс работы

  1. Аналитика — изучаем вашу схему документооборота, выявляем точки интеграции.
  2. Проектирование — разрабатываем архитектуру, согласовываем стек (версии PHP, Битрикс).
  3. Разработка — пишем код, настраиваем агенты, тестируем на стенде.
  4. Тестирование — проверяем полный цикл: заказ → счёт → оплата → уведомление.
  5. Деплой — выкатываем на боевой сервер, мониторим первые дни.

Сроки и стоимость

Сроки: от 2 до 4 недель в зависимости от сложности (наличие нетиповых полей, нестандартные сценарии оплаты).

Интеграция окупается в среднем за 3 месяца за счёт экономии времени менеджера. Получите консультацию инженера — мы рассчитаем точную стоимость и сроки под ваш проект.

Официальная документация API Эльбы доступна по адресу https://api.e-kontur.ru.