Интеграция с АТОЛ Онлайн для 1С-Битрикс в Гомеле

Интеграция с АТОЛ Онлайн для 1С-Битрикс
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция с АТОЛ Онлайн для 1С-Битрикс
Средний
~1-2 недели

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

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

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995
  • 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
    734
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    773
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1134

Почему интернет-магазинам нужна облачная фискализация

Каждый, кто принимает безналичные платежи от физлиц, обязан фискализировать чеки по 54-ФЗ. Покупать физическую кассу для онлайн-торговли часто невыгодно: оборудование стоит дорого, требует регистрации в ФНС и обслуживания. Облачная касса АТОЛ Онлайн решает эту проблему: вы платите только за подписку и количество чеков, а не за железо. Для магазина с потоком до 1000 заказов в месяц это в несколько раз дешевле собственной ККТ.

Наша команда имеет 10+ лет опыта в 1С-Битрикс и более 40 выполненных интеграций фискальных сервисов. Все проекты учитывают требования 54-ФЗ и локального законодательства о персональных данных.

Как облачная касса решает проблемы бизнеса

Типичная ситуация: предприятие запускает интернет-магазин. После первых оплат выясняется, что чеки не отправляются — физическая ККТ отсутствует. Если магазин уже работает, установка облачной кассы происходит без простоя. Мы настраиваем модуль АТОЛ за 1–2 дня, и все новые заказы фискализируются автоматически.

Другая частая проблема — ошибки при работе с маркированными товарами. Без корректной передачи номенклатурных кодов из «Честного ЗНАКА» чеки отклоняются. Наши специалисты добавляют в инфоблоки 1С-Битрикс обязательные поля для кодов маркировки и настраивают фоновую синхронизацию с API оператора.

Схема работы АТОЛ в цепочке оплаты

Процесс фискализации в наших проектах выглядит так:

  1. Покупатель оплачивает заказ через платежный агрегатор (например, ЮKassa или Тинькофф).
  2. Агрегатор сообщает Битриксу об успешной транзакции.
  3. Модуль интеграции формирует запрос к АТОЛ на создание чека.
  4. АТОЛ регистрирует чек на облачной кассе и передает его в ОФД за 1–3 секунды.
  5. Клиент получает электронный чек на email или SMS.
  6. Фискальные данные возвращаются в Битрикс через callback.

Мы всегда реализуем очередь повторов и логируем все события. Это критично для предприятий, где каждый чек должен быть сохранен.

Выбор и реализация интеграции

Официальный модуль vs кастомная интеграция

АТОЛ предлагает модуль atol.kkt54 для 1С-Битрикс. Он подходит для стандартных сценариев с одним налоговым режимом. Настройка проста:

Параметр Откуда взять
Login Личный кабинет АТОЛ
Password Там же
Group Code Идентификатор группы касс
INN ИНН организации
Payment Address URL сайта
Callback URL https://shop.ru/local/api/atol-callback.php

Однако для многих компаний требуется доработка: раздельный учет ОСН и УСН, обработка маркированных товаров, сценарии частичной отгрузки. Мы часто пишем кастомную интеграцию напрямую с REST API АТОЛ.

Техническая реализация: отправка чека

Вот как выглядит класс для отправки чека в АТОЛ на PHP:

// Отправка чека прихода в АТОЛ class AtolClient { private string $token; private const API = 'https://online.atol.ru/possystem/v4/'; public function getToken(): void { $resp = $this->post('getToken', [ 'login' => ATOL_LOGIN, 'pass' => ATOL_PASSWORD, ]); $this->token = $resp['token']; } public function sendReceipt(array $order): array { $items = []; foreach ($order['basket'] as $item) { $items[] = [ 'name' => mb_substr($item['name'], 0, 128), 'price' => (float)$item['price'], 'quantity' => (float)$item['quantity'], 'sum' => round($item['price'] * $item['quantity'], 2), 'payment_method'=> 'full_payment', 'payment_object'=> 'commodity', 'vat' => ['type' => 'none'], ]; } if ($order['delivery_price'] > 0) { $items[] = [ 'name' => 'Доставка', 'price' => (float)$order['delivery_price'], 'quantity' => 1.0, 'sum' => (float)$order['delivery_price'], 'payment_method' => 'full_payment', 'payment_object' => 'service', 'vat' => ['type' => 'none'], ]; } $payload = [ 'external_id' => 'BX-' . $order['id'] . '-' . time(), 'receipt' => [ 'client' => [ 'email' => $order['buyer_email'], 'phone' => $order['buyer_phone'] ?? null, ], 'company' => [ 'email' => ATOL_COMPANY_EMAIL, 'sno' => 'osn', 'inn' => ATOL_INN, 'payment_address' => ATOL_PAYMENT_ADDRESS, ], 'items' => $items, 'payments' => [ [ 'type' => 1, 'sum' => (float)$order['total'], ], ], 'total' => (float)$order['total'], ], 'service' => [ 'callback_url' => ATOL_CALLBACK_URL, ], 'timestamp' => date('d.m.Y H:i:s'), ]; return $this->post(ATOL_GROUP_CODE . '/sell', $payload); } private function post(string $endpoint, array $data): array { $ch = curl_init(self::API . $endpoint); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json; charset=utf-8', 'Token: ' . $this->token, ], ]); $response = curl_exec($ch); curl_close($ch); return json_decode($response, true) ?? []; } } 

Мы адаптируем этот класс под конкретные нужды заказчика: добавляем поддержку НДС, очереди повторов, логирование.

Как избежать типичных ошибок

Сумма позиций должна строго равняться total — расхождение даже на копейку вызывает ошибку. Мы решаем это так: последней позиции присваиваем сумму по остатку, алгоритм покрыт unit-тестами.

Название товара не длиннее 128 символов. Обрезаем, сохраняя суть.

Маркировка — обязательное поле для ряда товаров. Интегрируем проверку наличия кода в момент формирования чека.

Как обрабатывать callback от АТОЛ

Callback — ключевой элемент асинхронной фискализации. Вот минимальный обработчик:

// local/api/atol-callback.php $body = json_decode(file_get_contents('php://input'), true); $uuid = $body['uuid'] ?? ''; $status = $body['status'] ?? ''; // 'done' | 'fail' if ($status === 'done') { $fiscalData = $body['payload']['fiscal_receipt_number'] ?? ''; $fnNumber = $body['payload']['fn_number'] ?? ''; $fnDocument = $body['payload']['fiscal_document_number'] ?? ''; saveAtolReceiptData($uuid, [ 'fiscal_number' => $fiscalData, 'fn' => $fnNumber, 'fd' => $fnDocument, 'status' => 'done', ]); } elseif ($status === 'fail') { $error = $body['payload']['message'] ?? 'Unknown error'; logAtolError($uuid, $error); scheduleAtolRetry($uuid); } http_response_code(200); echo 'OK'; 

Мы гарантируем, что callback будет обработан даже при временных сбоях: ставим задачу в очередь на повтор, а после трех неудач отправляем алерт менеджеру.

Фискализация возвратов

При возврате средств отправляем чек возврата через sell_refund или sell_correction. Структура та же, но endpoint другой:

// Чек полного возврата $atol->post(ATOL_GROUP_CODE . '/sell_refund', $payload); // Чек частичного возврата — только возвращаемые позиции // total и items содержат только возвращаемую часть 

Для магазинов с частыми возвратами настраиваем ежедневную сверку реестра возвратов с данными АТОЛ, чтобы избежать штрафов от ФНС.

Кейс: машиностроительный завод

Один из клиентов — завод, производящий запчасти, — запустил интернет-магазин с маркированной продукцией. Поток — около 600 заказов в месяц. После старта начали приходить ошибки: чеки не фискализировались из-за отсутствия кодов маркировки. Мы добавили обязательное поле UF_MARKING_CODE в инфоблок, настроили автозагрузку кодов через API оператора и написали валидатор формата DataMatrix. Инциденты прекратились, время на обработку заказов увеличилось всего на 5–15 минут. Завод избежал штрафов за нарушение маркировки.

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

Наш стандартный пакет для интеграции АТОЛ в 1С-Битрикс включает:

  • Установку и настройку модуля atol.kkt54 или кастомную интеграцию через REST API.
  • Класс AtolClient с обработкой токена, повторами и логированием.
  • Обработчик callback с очередью повторов и dead-letter-логикой.
  • Реестр чеков (служебная таблица + админ-страница).
  • Скрипт ежедневной сверки с ОФД (cron).
  • Документацию и алерты в Telegram при ошибках.
  • Тестирование в тестовой среде АТОЛ.
  • Поддержку первого месяца после запуска.

Также при необходимости:

  • Интеграция с Честным ЗНАКОМ для маркированных товаров.
  • Раздельный учет налоговых режимов.
  • Поддержка сценариев частичной отгрузки.

Примерные сроки работ

Этап Срок
Установка официального модуля 1–2 дня
Кастомная интеграция через API 3–5 дней
Обработчик callback и очередь повторов 1–2 дня
Чеки возврата 1–2 дня
Интеграция с Честным ЗНАКОМ 2–3 дня
Тестирование 1–2 дня

Стоимость рассчитывается индивидуально после анализа ваших задач. Мы предоставляем бесплатную оценку за 1–2 дня. Свяжитесь с нами для получения консультации и точного расчета — поможем настроить фискализацию без простоев и штрафов.