Kommo + Stripe: автоматические платёжные ссылки из воронки без ручного ввода

Kommo + Stripe: автоматические платёжные ссылки из воронки без ручного ввода

Нативной интеграции между Kommo и Stripe не существует. Marketplace Kommo не содержит официального Stripe-коннектора, а сам Stripe не интегрируется с Kommo через свой App Marketplace. На практике менеджеры либо создают платёжные ссылки вручную в Stripe Dashboard и вставляют их в сообщение клиенту, либо переносят сумму сделки вручную в другой инструмент. Обе схемы — источник ошибок и задержек.

Кастомная интеграция решает это иначе: при переходе сделки на этап «Выставлен счёт» Stripe Payment Link создаётся автоматически с суммой из поля сделки, ссылка появляется в карточке и уходит клиенту, а статус оплаты обновляется в Kommo через webhook.

Почему нет нативной интеграции

Stripe строит экосистему вокруг разработчиков: их App Marketplace содержит коннекторы для ecommerce-платформ (Shopify, WooCommerce), SaaS-инструментов (Salesforce, HubSpot) и бухгалтерских систем. CRM-интеграции с небольшими платформами Stripe не приоритизирует — слишком разные use case.

Kommo, в свою очередь, имеет marketplace-интеграции с платёжными системами в основном для постсоветского рынка (TBC Bank, PayU). Stripe в их приоритетах отсутствует.

Zapier/Make дают частичный обходной путь: триггер на смену этапа -> создание Payment Link через Stripe API action. Но у этой схемы конкретные ограничения:
— Zapier не умеет читать кастомные поля сделки для суммы платежа
— Webhook от Stripe при успешной оплате Zapier может пропустить при нестабильном соединении
— Нет механизма обновления конкретного поля в карточке Kommo при получении события payment_intent.succeeded

Что умеет кастомная интеграция

Создание Payment Link по триггеру:
— Менеджер переводит сделку на этап «Ожидает оплаты»
— Digital Pipeline запускает webhook на кастомный backend
— Backend читает сумму из поля сделки (price), имя клиента из контакта
— Создаёт Stripe Payment Link через POST /v1/payment_links с нужной суммой и метаданными (kommo_lead_id)
— Записывает URL платёжной ссылки в кастомное поле сделки
— Опционально: отправляет ссылку клиенту через WhatsApp или email из Kommo

Обработка webhook от Stripe:
— При успешной оплате Stripe отправляет payment_intent.succeeded
— Backend верифицирует подпись (Stripe-Signature header + webhook secret)
— По kommo_lead_id из метаданных находит сделку в Kommo
— Обновляет поле «Статус оплаты» -> «Оплачено», записывает дату и сумму
— Опционально: переводит сделку на следующий этап автоматически

Частичные оплаты и подписки:
— Stripe поддерживает payment_link с subscription_data — для рекуррентных платежей
— При каждом успешном списании (invoice.payment_succeeded) — обновление поля в Kommo
— Просрочка (invoice.payment_failed) — задача менеджеру в Kommo

Техническая схема

Kommo Digital Pipeline (этап -> webhook)

Backend (Node.js / Python)
  -> Kommo API: GET /api/v4/leads/{id}  (читаем сумму, контакт)
  -> Stripe API: POST /v1/payment_links
     { line_items: [{ price_data: { unit_amount, currency }, quantity: 1 }],
       metadata: { kommo_lead_id: "...", kommo_contact_id: "..." },
       after_completion: { type: "redirect", redirect: { url: "..." } } }
  -> Kommo API: PATCH /api/v4/leads/{id}  (записываем URL ссылки)

Stripe Webhook -> Backend
  event: payment_intent.succeeded
  -> verify Stripe-Signature
  -> extract kommo_lead_id from metadata
  -> Kommo API: PATCH /api/v4/leads/{id}  (статус оплаты, дата, сумма)

Идемпотентность: при повторном вызове webhook (Stripe гарантирует at-least-once доставку) — проверяем payment_intent.id в кастомном поле. Если уже есть — пропускаем.

Ошибки создания ссылки: если Stripe вернул ошибку (нет продукта, неверная валюта) — задача менеджеру в Kommo с текстом ошибки, не молчим.

Кастомные поля в Kommo для интеграции

Для работы схемы нужно создать несколько полей в сделке:

ПолеТипНазначение
Stripe Payment LinkURLСсылка для оплаты
Статус оплатыСписокНе выставлен / Ожидает / Оплачено / Просрочено
Дата оплатыДатаЗаполняется автоматически
Stripe Payment Intent IDТекстДля идемпотентности
Сумма к оплатеЧислоЕсли отличается от суммы сделки

Поле «Сумма к оплате» нужно если Payment Link создаётся на другую сумму, чем price сделки (например, предоплата 50%).

Реальный кейс

В кейсе для ecommerce-агентства (продажа услуг по разработке, 6 менеджеров):
— Сделки со средним чеком $2,000–15,000
— До интеграции: менеджер создавал ссылку вручную в Stripe, копировал в сообщение клиенту -> 5–10 минут на каждый счёт, частые ошибки в сумме
— После: при переводе в «Ожидает оплаты» — ссылка в карточке через 3 секунды, менеджер нажимает «Отправить» -> WhatsApp с готовым сообщением
— Статус оплаты обновляется автоматически -> менеджер видит «Оплачено» без захода в Stripe Dashboard

Время на выставление счёта: с 5–10 минут до 30 секунд. Ошибки в сумме: ноль (поле берётся из сделки, не вводится вручную).

Для кого актуально

Интеграция Kommo + Stripe имеет смысл если:
— Компания принимает оплату в валюте (USD, EUR, GBP) от иностранных клиентов
— Чек от $500 — ручное создание ссылки каждый раз неоправдано
— Важно видеть статус оплаты прямо в CRM без перехода в Stripe
— Используется рекуррентная модель (подписки, ретейнеры)

Если оплата принимается в рублях — стоит рассмотреть интеграцию Kommo с платёжными системами локального рынка.

Для компаний на HubSpot аналогичная задача имеет свои подводные камни — подробнее в HubSpot + Stripe: скрытые комиссии и ограничения нативной интеграции.

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

Можно ли сделать интеграцию Kommo + Stripe через Zapier?

Частично. Zapier умеет создавать Payment Link при смене этапа — если сумма фиксирована или хранится в стандартном поле. Но Zapier не умеет надёжно обрабатывать Stripe webhooks как триггер для обновления Kommo: webhook-триггеры в Zapier нестабильны при высокой нагрузке, нет верификации подписи, нет логирования пропущенных событий. Для production-использования нужен собственный endpoint.

Stripe поддерживает несколько валют?

Да. При создании Payment Link можно указать любую валюту из поддерживаемых Stripe (200+ валют). При интеграции с Kommo: если в сделке есть поле «Валюта» — backend берёт её при создании ссылки. Если нет — используется валюта по умолчанию аккаунта Stripe.

Что происходит если клиент не оплатил ссылку?

Stripe Payment Links не имеют встроенного срока действия (но можно деактивировать вручную через API). В кастомной интеграции обычно добавляют задачу в Kommo через N дней после создания ссылки если статус оплаты не изменился: «Напомнить клиенту об оплате».

Как интеграция обрабатывает частичный возврат (refund)?

Stripe отправляет событие charge.refunded при возврате. Backend обрабатывает его так же, как payment_intent.succeeded — обновляет поле в Kommo: статус -> «Возврат», сумма возврата. Менеджер видит это в карточке сделки без захода в Stripe.

Нужна ли PCI-сертификация для такой интеграции?

Нет. Платёжные данные карты клиент вводит напрямую на Stripe-hosted странице — ваш backend не прикасается к данным карты. Stripe берёт на себя PCI DSS compliance. Ваша ответственность: хранить Stripe Secret Key в защищённом хранилище (env variables, AWS Secrets Manager) и не логировать его.

Итого

  • Нативной интеграции Kommo + Stripe нет и не планируется
  • Zapier даёт частичное решение, не подходит для production из-за ненадёжности webhook-обработки
  • Кастомная интеграция: Payment Link создаётся автоматически -> статус оплаты обновляется в Kommo через Stripe webhook
  • Ключевые технические моменты: верификация Stripe-Signature, идемпотентность, обработка ошибок с задачей в Kommo
  • Типовой срок реализации — 2–3 недели

Если вы принимаете оплату через Stripe и ведёте сделки в Kommo — опишите схему работы и объём. Exceltic.dev оценит сложность и предложит конкретное решение.

Ещё статьи

Все →