Интеграция ЮKassa в 1С-Битрикс: кастомные обработчики и 54-ФЗ

Прием платежей через ЮKassa в 1С-Битрикс Представьте: клиент оформляет заказ, переходит на оплату — а после успешного платежа webhook не долетает, статус заказа не меняется, и деньги повисают в неизвестности. ЮKassa (бывший Яндекс.Касса) — один из самых популярных платежных агрегаторов в России,
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция ЮKassa в 1С-Битрикс: кастомные обработчики и 54-ФЗ
Средний
~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
    733
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1134

Прием платежей через ЮKassa в 1С-Битрикс

Представьте: клиент оформляет заказ, переходит на оплату — а после успешного платежа webhook не долетает, статус заказа не меняется, и деньги повисают в неизвестности. ЮKassa (бывший Яндекс.Касса) — один из самых популярных платежных агрегаторов в России, но стандартный модуль из Маркетплейса справляется не со всеми сценариями. Мы сталкивались с ситуациями, когда не приходили уведомления, возвраты падали с ошибкой, а фискализация выдавала невалидный чек. Согласно официальной документации ЮKassa, REST API версии 3 позволяет гибко управлять транзакциями, но требует аккуратной настройки. За пять лет мы выполнили более 50 интеграций — от простых магазинов до B2B-платформ с десятками тысяч транзакций ежемесячно. Ниже разберем технические детали и покажем, как избежать типовых ошибок.

Как работает ЮKassa технически

ЮKassa предоставляет REST API (api.yookassa.ru/v3/). Схема классического платежа:

  1. Магазин отправляет POST /payments с суммой, валютой и confirmation.type=redirect — ЮKassa возвращает payment.id и confirmation.confirmation_url
  2. Покупатель редиректируется на страницу оплаты ЮKassa
  3. После оплаты ЮKassa отправляет webhook-уведомление на return_url магазина и POST на настроенный URL уведомлений
  4. Магазин вызывает GET /payments/{id} для финальной проверки статуса

Аутентификация — HTTP Basic: shopId:secretKey или OAuth-токен.

Поддерживаемые методы оплаты: банковские карты, SBP, ЮMoney, SberPay, Тинькофф, QIWI (с ограничениями), наличные через терминалы. Метод передаётся в payment_method_type или выбирается покупателем на форме ЮKassa.

Почему стоит выбрать кастомную интеграцию

Официальный модуль ЮKassa для Битрикс доступен бесплатно и подходит для стандартных магазинов. Но он имеет ограничения: жёсткая привязка к стандартным компонентам, сложность кастомизации статусов заказов, отсутствие гибкой фискализации. Кастомный обработчик решает эти проблемы и позволяет интегрировать ЮKassa с любыми нестандартными сущностями. Наш опыт показывает, что кастомная интеграция в 2-3 раза быстрее справляется с нестандартными задачами по сравнению с доработкой готового модуля. Мы — сертифицированные специалисты с опытом более 5 лет, гарантируем корректную работу всех сценариев. Свяжитесь с нами для оценки вашего проекта — получите консультацию по интеграции и точные сроки для вашего случая.

Как настроить webhook для ЮKassa

ЮKassa отправляет POST на настроенный URL при каждой смене статуса платежа. В Битрикс стандартный URL обработчика: /bitrix/tools/sale_ps_result.php. Критически важные моменты:

  • Проверяйте IP-адрес источника. ЮKassa публикует список своих IP: 185.71.76.0/27, 185.71.77.0/27, 77.75.153.0/25, 77.75.156.11, 77.75.156.35. Без фильтрации вы рискуете получить поддельные уведомления.
  • Верифицируйте статус через API. Не доверяйте данным из webhook напрямую — сделайте GET /payments/{id} для двойной проверки.
  • Обрабатывайте только терминальные статусы. pending и waiting_for_capture не требуют изменения заказа.
// Пример обработки $body = file_get_contents('php://input'); $notification = json_decode($body, true); $payment = $client->getPaymentInfo($notification['object']['id']); switch ($payment->getStatus()) { case 'succeeded': $bitrixPayment->setPaid('Y'); $bitrixPayment->save(); break; case 'canceled': // Записываем причину отмены break; } 

Ключевые параметры запроса

// Минимальный запрос на создание платежа через SDK use YooKassa\Client; $client = new Client(); $client->setAuth($shopId, $secretKey); $payment = $client->createPayment([ 'amount' => [ 'value' => number_format($order->getPrice(), 2, '.', ''), 'currency' => 'RUB', ], 'confirmation' => [ 'type' => 'redirect', 'return_url' => 'https://shop.ru/personal/order/detail/' . $order->getId() . '/', ], 'capture' => true, // false для двухстадийных платежей 'description' => 'Заказ №' . $order->getAccountNumber(), 'metadata' => ['bitrix_order_id' => $order->getId()], 'receipt' => $receiptData, // обязательно при подключённой кассе ], uniqid('', true)); // idempotency key 

capture: true — одностадийный платёж, деньги списываются сразу. capture: false — двухстадийный: ЮKassa холдирует сумму, магазин вызывает POST /payments/{id}/capture при отгрузке.

Ключ идемпотентности (третий параметр) — обязателен. Без него повторный запрос при сетевой ошибке создаст дублирующий платёж.

Фискализация (54-ФЗ) и почему она обязательна

Требования 54-ФЗ (о применении контрольно-кассовой техники) распространяются на все онлайн-платежи. ЮKassa выступает как фискальный регистратор, передавая данные в ОФД. Если в договоре с ЮKassa подключена передача чеков, объект receipt в запросе становится обязательным. Без него транзакция будет отклонена — это одна из самых частых проблем. Структура чека должна точно соответствовать требованиям 54-ФЗ. Мы используем проверенную схему с разбивкой по ставкам НДС и признакам предмета расчёта. Сумма всех позиций в чеке должна точно совпадать с суммой платежа — ЮKassa проверяет это на своей стороне. При возврате также необходим чек, зеркально отражающий позиции. В официальной документации ЮKassa приведены примеры структуры чека, но мы адаптируем их под вашу специфику.

Статусы платежа и возвраты

Статус Значение Действие
pending Ожидает действий покупателя Ничего
waiting_for_capture Ожидает подтверждения магазина Вызвать capture или отменить
succeeded Оплачен Подтвердить в Битрикс
canceled Отменён Проанализировать cancellation_details

ЮKassa поддерживает частичный и полный возврат через POST /refunds. При подключённой кассе возврат без чека отклоняется. Чек возврата зеркально дублирует позиции оригинального чека с типом refund. Мы реализовали более 50 успешных интеграций с возвратами, гарантируем корректное отражение в бухгалтерии.

Распространённые ошибки при интеграции
  • Неверный ключ идемпотентности — дублирование платежей
  • Пропущенная проверка IP webhook — риск поддельных уведомлений
  • Отсутствие объекта receipt при активной кассе — транзакция отклоняется
  • Несоответствие суммы чека и платежа — ошибка фискализации
  • Не обработан статус canceled — заказ остается в неопределенном состоянии

Тестирование

ЮKassa предоставляет тестовую среду с теми же endpoints. В тестовом режиме (shopId=test_...) платежи проходят с тестовыми картами:

  • 5555555555554477 — успешная оплата
  • 5555555555554444 — отказ

Обязательно протестируйте: успешный платёж, отмену, webhook с задержкой (покупатель закрыл браузер до редиректа), частичный возврат. Это поможет избежать проблем на боевом сайте.

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

  • Аудит текущей конфигурации Битрикс и торгового каталога
  • Разработка или доработка платёжного обработчика (с учётом 54-ФЗ)
  • Настройка webhook и обработка уведомлений
  • Тестирование всех сценариев в тестовой среде
  • Документация по интеграции и инструкция для операторов
  • Гарантийная поддержка 30 дней после ввода в эксплуатацию

Сроки и как начать

Конфигурация Срок
Готовый модуль, без кассы 1–2 дня
Готовый модуль + 54-ФЗ 2–4 дня
Кастомный обработчик + касса + двухстадийные платежи 5–8 дней

Свяжитесь с нами для оценки вашего проекта. Получите консультацию по интеграции и точные сроки для вашего случая. Более подробную информацию о платёжном API можно найти в официальной документации ЮKassa. О требованиях 54-ФЗ читайте в Википедии.