💡 Зачем нужна эта интеграция
В бизнесе платежи и учёт обычно живут в разных местах: деньги приходят в ЮKassa, а менеджеры, бухгалтеры и аналитики работают в таблицах. Без связки между ними сотрудник каждый день выгружает отчёты, сверяет суммы и вручную переносит данные об оплатах в рабочий файл. Это отнимает время, и в процессе легко потерять платёж, продублировать строку или забыть отметить возврат. Интеграция ЮKassa с Яндекс Таблицами убирает эту рутину: каждый успешный платёж, отмена или возврат автоматически попадает в таблицу в виде новой или обновлённой строки.
Таблица с актуальными данными об оплатах становится лёгкой «мини-CRM» и источником для отчётности. В неё можно выводить номер заказа, сумму, валюту, статус, способ оплаты, описание, e-mail покупателя и дату операции. По этим данным удобно считать выручку по дням и продуктам, отслеживать долю возвратов, сверять оплаты с отгрузками и подписками. Менеджеры сразу видят, кто оплатил, и могут выдать доступ, запустить доставку или напомнить должникам. Руководитель получает прозрачную картину денежного потока без доступа к личному кабинету платёжной системы.
Важно понимать, что у этих сервисов нет простой нативной интеграции «в один клик». Связку настраивают через платформы-коннекторы, например Make, Zapier или APIX-Drive, либо через официальные виджеты и решения из маркетплейсов. Ещё один вариант: принимать HTTP-уведомления ЮKassa на промежуточном сервисе (n8n, облачная функция) и записывать данные в таблицу через API. Набор готовых модулей у коннекторов меняется, поэтому перед стартом проверьте, есть ли в выбранной платформе модули для ЮKassa и Яндекс Таблиц. Если готового модуля для таблиц нет, используйте универсальный HTTP-запрос к API или промежуточное хранилище.
🛠️ Как настроить интеграцию
- **Подготовьте таблицу и доступы.** Создайте в Яндекс Таблицах (Яндекс 360) файл для платежей и задайте заголовки в первой строке: «ID платежа», «Дата и время», «Номер заказа», «Сумма», «Валюта», «Статус», «Способ оплаты», «E-mail клиента», «Описание», «Сумма возврата». Колонка «ID платежа» станет уникальным ключом для поиска и обновления строк. Убедитесь, что у вас есть права администратора в личном кабинете ЮKassa и права редактирования файла. Затем выберите способ связи:
- платформа-коннектор (Make, Zapier, APIX-Drive), если в ней есть нужные модули;
- готовый виджет или решение из маркетплейса;
- собственный обработчик (n8n, облачная функция) с записью через API Яндекс 360.
- **Создайте сценарий и получите адрес для уведомлений.** Для примера возьмём Make. Создайте новый сценарий и добавьте первым модулем «Webhooks → Custom webhook». Платформа сгенерирует уникальный URL, скопируйте его. В Zapier аналогом будет триггер «Webhooks by Zapier → Catch Hook». В APIX-Drive источником данных выберите ЮKassa, если коннектор доступен, и пройдите авторизацию по инструкции сервиса. Для других вариантов подойдёт любой публичный HTTPS-адрес обработчика.
- **Подключите уведомления в ЮKassa.** В личном кабинете откройте раздел «Интеграция» → «HTTP-уведомления» (название может немного отличаться в новых версиях интерфейса). Вставьте URL из сценария и отметьте события:
- `payment.succeeded` — платёж успешно оплачен;
- `payment.canceled` — платёж отменён;
- `refund.succeeded` — возврат выполнен;
- при необходимости `payment.waiting_for_capture` для двухстадийных платежей.
Сохраните настройки. Затем запустите сценарий в режиме ожидания данных (в Make кнопка «Run once»), чтобы платформа распознала структуру входящего JSON после первого тестового уведомления.
- **Настройте запись в Яндекс Таблицы и защиту от дублей.** Добавьте в сценарий модуль записи в таблицу. Если готового модуля нет, используйте HTTP-запрос к API Яндекс 360 с OAuth-токеном приложения или виджет из маркетплейса. Сопоставьте поля из уведомления с колонками:
- `object.id` → «ID платежа»;
- `object.created_at` или `object.captured_at` → «Дата и время»;
- `object.amount.value` → «Сумма»;
- `object.amount.currency` → «Валюта»;
- `object.status` → «Статус»;
- `object.payment_method.type` → «Способ оплаты»;
- `object.description` и `object.metadata.order_id` → «Описание» и «Номер заказа».
Перед записью добавьте шаг поиска строки по ID платежа. Если строка найдена, обновите её, иначе добавьте новую. Так повторные уведомления не создадут дубли, а возврат обновит существующую запись. Для надёжности добавьте запрос `GET /v3/payments/{id}` к API ЮKassa (Shop ID и секретный ключ хранятся в защищённых полях коннектора). Он проверит реальный статус платежа, ведь