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 Link | URL | Ссылка для оплаты |
| Статус оплаты | Список | Не выставлен / Ожидает / Оплачено / Просрочено |
| Дата оплаты | Дата | Заполняется автоматически |
| 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 оценит сложность и предложит конкретное решение.