Подключить ЮKassa к сайту: пошаговая инструкция для бизнеса

подключить юкассу к сайту — Подключить ЮKassa к сайту можно через готовый модуль CMS, платёжную ссылку, форму или API. Результат правильного запуска — покупатель оплачивает удобным способом, заказ получает верный статус, а вы видите один и тот же идентификатор платежа в ЮKassa, CRM и кассовой системе.

Не запускайте приём платежей, пока не настроена цепочка «заказ → платёж → финальный статус → чек или выдача». Страница «Спасибо» нужна для покупателя, но не подтверждает оплату: статус заказа меняет только сервер после обработки данных платёжного сервиса.

Когда подключать ЮKassa и кому это подходит

Выбирайте способ подключения по тому, как создаётся заказ и что происходит после оплаты. Не начинайте с дизайна платёжной кнопки: сначала определите, кто рассчитывает сумму, где хранится заказ и в какой момент клиент получает товар или доступ.

  • Интернет-магазин с корзиной. Берите готовый модуль, если CMS поддерживается, а скидки, доставка и статусы типовые. Для нестандартной корзины, нескольких складов или глубокой связи с CRM выбирайте API. Нужны создание платежа из заказа, обработка финальных статусов и передача состава заказа в кассу.
  • Лендинг с предоплатой. Используйте ссылку или кнопку, если продаёте одну фиксированную услугу. Когда сумму согласует менеджер, создавайте отдельную ссылку после фиксации заказа в CRM и записывайте в карточку заказа идентификатор платежа.
  • Сервис с разовыми платежами или подпиской. Закладывайте API, серверную логику повторных запросов и журнал операций. Для регулярных списаний заранее спроектируйте согласие клиента, отмену подписки, неуспешные списания и правила выдачи доступа.

Для выбора архитектуры сайта посмотрите материал «Сайт с онлайн-оплатой и кассой: лендинг, каталог или интернет-магазин». Базовую схему приёма платежей разбирает статья «Что такое онлайн-эквайринг и как принимать оплату на сайте».

Что подготовить до подключения

До заявки опубликуйте на сайте реквизиты продавца, контакты, описание товаров или услуг, цены, условия оплаты, доставки и возврата. Продаёте предоплату за услугу — так и назовите её на странице, а не маскируйте под продажу готового товара.

Соберите доступы к CMS, хостингу, домену, корпоративной почте, CRM и кассовому сервису. Назначьте одного человека, который принимает запуск: он должен видеть заказ, данные платежа и кассовый документ по одному номеру заказа.

Отдельно зафиксируйте кассовую схему до первой оплаты: какое событие запускает чек, какая ККТ или облачная фискализация его формирует, как проводится возврат. Информацию о применении ККТ и сервисах ФНС публикует сайт ФНС России.

Какой способ интеграции выбрать

Вариант Берите, когда Что настроить Главный риск
Готовый модуль CMS Типовой магазин на поддерживаемой CMS Создание платежа, webhook, статусы заказа, возврат Оставить настройки по умолчанию и не проверить уведомления
Платёжная ссылка Лендинг или заказ, который оформляет менеджер Связь ссылки с номером заказа в CRM Потерять, к какому заказу относится оплата
Кнопка или форма Одна услуга с фиксированной суммой Серверное подтверждение платежа и выдачу после него Считать редирект подтверждением оплаты
API Кастомная корзина, CRM, персональные цены, подписки Ключи на сервере, идемпотентность, webhook, журнал платежей и возвраты Не обработать повторный запрос или повторное уведомление

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

До выбора метода уточните в документации и кабинете ЮKassa, поддерживает ли нужный сценарий: конкретные способы оплаты, возвраты, уведомления, сохранение способа оплаты или повторные списания. Не обещайте покупателям подписку или оплату конкретным методом, пока не подтвердили его доступность для вашего подключённого магазина и схемы.

Пошаговый запуск подключения на сайте

  1. Опишите карту заказа. Зафиксируйте статусы: «создан», «ожидает оплаты», «оплачен», «отменён», «возвращён». Отдельно определите, какой из них открывает отгрузку, доступ к курсу или запись на услугу.
  2. Подготовьте сайт и заявку. Разместите обязательные для клиента страницы, оформите подключение и выберите модуль, ссылку, форму или API.
  3. Храните секреты на сервере. Ключи API не размещайте в JavaScript, HTML, репозитории с открытым доступом и настройках, которые видит покупатель. Используйте переменные окружения или защищённое хранилище на сервере.
  4. Создавайте платёж из заказа на сервере. Передавайте сумму и описание из финальной карточки заказа. Не принимайте цену из браузера: её можно изменить до отправки запроса.
  5. Защититесь от двойного клика. При создании платежа используйте уникальный ключ идемпотентности для одной попытки оплаты и сохраняйте его вместе с номером заказа. Если браузер повторит запрос из-за двойного клика или сбоя сети, сервер должен вернуть уже созданный платёж, а не создать второй.
  6. Сохраните связку идентификаторов. Запишите в CRM или базе номер заказа, payment_id, сумму, валюту, время создания и текущий статус. Эта запись нужна для поддержки, возвратов и ежедневной сверки.
  7. Настройте webhook. Укажите HTTPS-адрес обработчика в настройках ЮKassa. На сервере проверяйте подлинность и источник уведомления способом, который указан в документации ЮKassa; затем получайте актуальные сведения о платеже, сопоставляйте payment_id с заказом и фиксируйте результат в журнале.
  8. Сделайте обработку повторяемой. Одно уведомление может прийти повторно. Обработчик должен распознать уже обработанный payment_id, вернуть успешный ответ без повторной смены статуса, повторной отгрузки, выдачи доступа или повторного чека.
  9. Выдавайте заказ по финальному успеху. При ожидании подтверждения оставляйте заказ в статусе ожидания. При отмене не передавайте его в работу. При возврате блокируйте выдачу по правилам вашего бизнеса и отражайте возврат в CRM и кассе.
  10. Проведите контрольные тесты. Проверьте успешную оплату, отмену, повторную отправку webhook, двойной клик, полный и частичный возврат. После этого сделайте один контрольный боевой заказ и сверьте записи во всех системах.

Как связать оплату, чеки и фискализацию

ЮKassa принимает платёж, но не заменяет кассу. Если по операции нужен кассовый чек по Закону № 54-ФЗ, подключите зарегистрированную ККТ или облачную фискализацию и передавайте в неё данные из подтверждённого заказа.

  • Интернет-магазин. Передавайте в кассу состав заказа, сумму и данные покупателя, необходимые в вашей схеме. Сверяйте, что чек соответствует оплаченной корзине, а не содержит техническую строку вместо товаров.
  • Предоплата за услугу. До запуска согласуйте схему чека по виду расчёта и моменту зачёта аванса: это нужно настроить в связке сайта, CRM и кассы до первой оплаты. Практический разбор ищите в статье «Когда пробивать кассовый чек при оплате и отгрузке».
  • Возврат. После подтверждённого возврата обновите статус заказа и проведите кассовое действие, которое предусмотрено вашей схемой. Не закрывайте вопрос одной записью менеджера в CRM.

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

Ошибки, которые останавливают запуск

  • Заказ выдают после редиректа. Исправьте условие выдачи: выдавайте товар или доступ только после подтверждённого финального успешного статуса на сервере.
  • Создаются два платежа на один заказ. Добавьте ключ идемпотентности, блокировку повторного запроса и сохранение уже созданного payment_id.
  • Webhook обработан дважды. Храните факт обработки события и payment_id. Повторное уведомление должно завершаться без повторной отгрузки, письма, чека или изменения суммы.
  • Платёж оплачен, а заказ остался неоплаченным. Проверьте HTTPS-адрес webhook, доступность обработчика, логи сервера, сопоставление payment_id с заказом и ошибки записи в CRM.
  • В CRM стоит «оплачен», но платёж отменён. Разделите ожидание, успех, отмену и возврат. Не используйте один статус «обработан» для разных результатов платежа.
  • Возврат сделали на неверную сумму. Перед полным или частичным возвратом сверяйте сумму с исходным платежом и уже проведёнными возвратами. После операции дождитесь подтверждённого статуса возврата через API или уведомление, а не меняйте статус только вручную в CRM.
  • Чек не соответствует заказу. Проверьте передачу номенклатуры, суммы, признака расчёта, контакта покупателя и ответ кассового сервиса.

Контрольный чеклист перед запуском

  • На сайте опубликованы реквизиты, контакты, условия оплаты, доставки и возврата.
  • Выбран сценарий: модуль, ссылка, форма или API.
  • Секретные ключи хранятся только на сервере.
  • Платёж создаётся по финальной сумме заказа на сервере и защищён от повторного создания.
  • В CRM сохраняются номер заказа, payment_id, сумма и статус.
  • Webhook проверяет подлинность по документации ЮKassa, сопоставляет платёж с заказом и не дублирует действия при повторе.
  • Выдача товара или доступа запускается только по финальному успешному статусу.
  • Пройдены успешная оплата, отмена, двойной клик, повторное уведомление, полный и частичный возврат.
  • По контрольному заказу совпали платёж, статус заказа и кассовый документ.
  • Назначен ответственный за сверку, сбои и возвраты.

Нужна схема подключения под ваш сайт?

Получите первичный разбор CMS, CRM и кассы: определим способ интеграции, точки передачи статусов, требования к webhook и список тестов перед запуском. На выходе вы получите понятную схему работ — что настраивается модулем, что требует разработчика и где возможны ошибки с чеками или возвратами.

Оставьте заявку в Интернет Касса, чтобы разобрать вашу текущую оплату или подготовить запуск ЮKassa до приёма первых заказов.