# Интеграция со Stripe

<Aside type="caution" icon="setting" title="Требуется помощь разработчика">
Вам понадобится помощь вашей команды разработчиков для передачи метаданных (journey, user, device) при создании сессий Stripe Checkout. Поделитесь с ними этим руководством.
</Aside>

[Stripe](https://stripe.com/) — это платежная платформа, которая позволяет принимать платежи и управлять подписками. Интеграция Stripe с Pushwoosh позволяет отслеживать платежи и подписки в [кампаниях](/ru/product/customer-journey/pushwoosh-journey-overview/), анализировать доходы по journey и продуктам, [сегментировать пользователей](/ru/product/audience-data-and-segmentation/segmentation/) по платежным событиям и использовать [ManyMoney AI](/ru/product/pushwoosh-ai/ai-assistant/) для анализа доходов.

## Обзор интеграции

### Тип интеграции

**Источник:** События о платежах и подписках отправляются из Stripe в Pushwoosh.

### Предварительные требования

Для настройки интеграции Stripe с Pushwoosh убедитесь в следующем:

*   У вас есть активный аккаунт Pushwoosh.
*   У вас есть аккаунт Stripe.

### Глоссарий (соответствие названий сущностей, если они различаются)

В таблице ниже показано, как сущности Stripe соотносятся с сущностями Pushwoosh. Это сопоставление достигается путем передачи соответствующих полей в качестве метаданных при создании сессии Checkout (см. [Настройка метаданных](#metadata-configuration)).

| Stripe | Pushwoosh |
| --- | --- |
| Customer | `user_id` (обязательно), `device_id` (необязательно) в метаданных |
| Payment / Charge | Событие **StripePaymentSucceeded** (`charge.succeeded`) |
| Invoice (paid) | Событие **StripeInvoicePaid** (`invoice.paid`) |
| Subscription | **StripeSubscriptionCreated** + атрибуты в **StripeInvoicePaid** |
| Product / Price | `product_id`, `product_name` в метаданных и атрибутах события |
| Campaign (journey) | `journey_uuids` в метаданных |

### Синхронизируемые сущности

*   События платежей (разовые платежи, счета по подписке)
*   События подписок (подписка создана, счет по подписке оплачен)

### Как работает интеграция?

После подключения вашего аккаунта Stripe к Pushwoosh через **Stripe Connect**, Pushwoosh получает данные о платежах и подписках из Stripe. Вы можете связать каждую транзакцию с кампанией и пользователем или устройством, передавая метаданные при создании сессии Checkout (см. [Настройка метаданных](#metadata-configuration)).

Pushwoosh создает события, которые вы можете использовать для [сегментации](/ru/product/audience-data-and-segmentation/segmentation/) и аналитики.

##### Поток данных

1.  Вы один раз подключаете свой аккаунт Stripe к Pushwoosh через **Stripe Connect** в разделе **Settings** → **3rd-party integrations**.
2.  При создании сессии Checkout вы передаете метаданные, чтобы платеж можно было атрибутировать позже (см. [Настройка метаданных](#metadata-configuration)).
3.  Когда в Stripe происходит событие платежа или подписки (например, `charge.succeeded` для разового платежа, `invoice.paid` для подписки), Stripe отправляет данные в Pushwoosh.
4.  Pushwoosh создает соответствующие события и использует метаданные для атрибуции. Эти данные появляются в Finance Overview, Audience → Events и ManyMoney.

### Сценарии использования

##### Отслеживание платежей

Автоматически получайте информацию обо всех успешных платежах и подписках.

##### Связывание платежей с кампаниями

Связывайте транзакции с конкретными [customer journeys](/ru/product/customer-journey/pushwoosh-journey-overview/), передавая метаданные (см. [Настройка метаданных](#metadata-configuration)).

##### Анализ доходов

Просматривайте доходы по кампаниям, продуктам, пользователям и устройствам.

##### Сегментация аудитории

[Создавайте сегменты](/ru/product/audience-data-and-segmentation/segmentation/create-segments/by-events/) на основе платежных событий.

##### Аналитика с помощью ИИ

Ассистент [ManyMoney AI](/ru/product/pushwoosh-ai/ai-assistant/) автоматически получает статистику по платежам и подпискам и может принимать решения на основе этих данных.

## Настройка интеграции

### Подключение Stripe к Pushwoosh

1.  Откройте любое приложение Pushwoosh (аккаунт Stripe привязывается ко всему вашему аккаунту, а не к конкретному приложению) и перейдите в **Settings** → **3rd-party integrations**.
2.  Найдите карточку **Stripe** и нажмите кнопку **LOGIN PAGE**.

![Страница настроек с разделом сторонних интеграций и карточкой Stripe с кнопкой LOGIN PAGE](/integrations-stripe-integration-1.webp)

3.  Вы будете перенаправлены на страницу авторизации Stripe.

![Страница авторизации Stripe с выбором аккаунта и кнопкой Connect](/integrations-stripe-integration-2.webp)

4.  На странице Stripe введите свой email и нажмите **Continue**.
5.  Войдите в свой аккаунт Stripe (или создайте новый). Если у вас несколько аккаунтов, выберите тот, который хотите подключить.
6.  Нажмите **Connect** для подтверждения.
7.  После успешной авторизации вы будете перенаправлены обратно в Pushwoosh. Статус интеграции изменится на **Connected**.

![Страница сторонних интеграций, показывающая карточку Stripe со статусом Connected](/integrations-stripe-integration-3.webp)

### Отключение интеграции

##### Способ 1. Через Pushwoosh

1.  Перейдите в **Settings** → **3rd-party integrations**.
2.  Найдите карточку **Stripe** и нажмите кнопку **SETTINGS**.
3.  Во всплывающем окне нажмите кнопку **Disconnect**.

![Всплывающее окно SETTINGS карточки Stripe с кнопкой Disconnect в разделе сторонних интеграций](/integrations-stripe-integration-4.webp)

##### Способ 2. Через Stripe Dashboard

1.  Войдите в [Stripe Dashboard](https://dashboard.stripe.com).
2.  Перейдите в **Settings** → **Team and security** → **Installed apps**.
3.  Найдите приложение в разделе **Connect Extensions**.

![Stripe Dashboard, Settings, Team and security, Installed apps, раздел Connect Extensions](/integrations-stripe-integration-5.webp)

Когда вы отключаете интеграцию через Stripe, Pushwoosh автоматически получает уведомление и удаляет интеграцию.

## Настройка метаданных

Stripe отправляет события о платежах в Pushwoosh, но без дополнительных данных Pushwoosh не может определить, к какой кампании или какому пользователю относится платеж. Когда вы передаете метаданные при создании сессии Checkout (ID кампаний, ID пользователя или устройства, продукт), каждый платеж атрибутируется правильному journey и пользователю.

После этого вы сможете видеть доход по кампаниям в Finance Overview, создавать сегменты по плательщикам и использовать ManyMoney с корректной атрибуцией.

### Доступные поля метаданных

| Поле | Описание | Обязательно | Пример |
| --- | --- | --- | --- |
| `journey_uuids` | ID кампаний (journey), разделенные точкой с запятой | Нет | `bfab4bc0-b0a5-414b-befc-4aaddc429b0e;a2bff710-6b49-44d1-96a7-3232feeca6e9` |
| `user_id` | Идентификатор пользователя. Обязателен для сбора событий и для применения `device_id` | Да | `user_12345` или `email@example.com` |
| `device_id` | Аппаратный ID устройства (HWID). | Нет | `hwid_abc123` |
| `product_id` | ID продукта | Нет | `prod_premium` |
| `product_name` | Название продукта | Нет | `Premium Plan` |

<Aside type="caution" title="Важно">

*   Без `user_id` события не собираются, а `device_id` игнорируется. Для всесторонней аналитики также предоставляйте `journey_uuids` и `device_id`.
*   `journey_uuids` является необязательным и может быть установлен только через метаданные. Stripe не предоставляет данные о кампаниях или journey, поэтому передавайте их при создании сессии Checkout, если хотите, чтобы доход был атрибутирован к journey.
*   `product_id` и `product_name` необязательны. Pushwoosh в первую очередь использует метаданные. Если какое-либо из этих полей отсутствует в метаданных, оно берется из Stripe, если доступно. Если ни один из источников не имеет значения, поле не сохраняется.

</Aside>

### Передача метаданных через сессию Checkout

Метаданные передаются при создании сессии Checkout в зависимости от типа платежа:

| Тип платежа | Параметр | Событие Stripe |
| --- | --- | --- |
| Разовый платеж (`mode=payment`) | `payment_intent_data[metadata]` | `charge.succeeded` |
| Подписка (`mode=subscription`) | `subscription_data[metadata]` | `invoice.paid` |

### Приоритет метаданных при обработке

**Для подписок** (событие `invoice.paid`):

```text
Метаданные счета → если пусто → Метаданные подписки
```

**Для разовых платежей** (событие `charge.succeeded`):

```text
Метаданные платежа (из payment_intent_data)
```

## Создание сессии checkout через Stripe API (curl)

##### Разовый платеж (`mode=payment`)

```bash
curl https://api.stripe.com/v1/checkout/sessions \
  -u sk_live_YOUR_SECRET_KEY: \
  -d "mode=payment" \
  -d "success_url=https://example.com/success" \
  -d "cancel_url=https://example.com/cancel" \
  -d "line_items[0][price]=price_1234567890" \
  -d "line_items[0][quantity]=1" \
  -d "payment_intent_data[metadata][journey_uuids]=bfab4bc0-b0a5-414b-befc-4aaddc429b0e" \
  -d "payment_intent_data[metadata][user_id]=user_12345" \
  -d "payment_intent_data[metadata][device_id]=hwid_abc123" \
  -d "payment_intent_data[metadata][product_id]=prod_premium" \
  -d "payment_intent_data[metadata][product_name]=Premium Plan"
```

##### Подписка (`mode=subscription`)

```bash
curl https://api.stripe.com/v1/checkout/sessions \
  -u sk_live_YOUR_SECRET_KEY: \
  -d "mode=subscription" \
  -d "success_url=https://example.com/success" \
  -d "cancel_url=https://example.com/cancel" \
  -d "line_items[0][price]=price_monthly_premium" \
  -d "line_items[0][quantity]=1" \
  -d "subscription_data[metadata][journey_uuids]=bfab4bc0-b0a5-414b-befc-4aaddc429b0e" \
  -d "subscription_data[metadata][user_id]=user_12345" \
  -d "subscription_data[metadata][device_id]=hwid_abc123" \
  -d "subscription_data[metadata][product_name]=Monthly Premium"
```

## Просмотр данных

После успешной интеграции в разделе [Dashboards](/ru/product/statistics-and-analytics/dashboards/) появится новая панель **Finance Overview**. Там вы сможете просматривать статистику по валовому доходу (Gross Revenue) и новым подпискам (New Subscriptions) в разбивке по кампаниям (journey).

![Панель Finance Overview в разделе Statistics с валовым доходом и новыми подписками по кампаниям](/integrations-stripe-integration-6.webp)

Для получения более подробной информации посетите ваш Stripe Dashboard.

## Создание сегментов на основе платежей

Используйте события Stripe для создания сегментов пользователей:

1.  Откройте **Audience** → **Segments**.
2.  Нажмите **Create Segment** → **Build Segment**.
3.  В **Add filter by** нажмите **Event**.
4.  Выберите событие Stripe из выпадающего списка (доступные события см. в таблице ниже).
    <Aside type="note">
    События Stripe появляются в списке после подключения интеграции и получения данных о платежах.
    </Aside>
5.  Установите условие: сколько раз произошло событие и за какой промежуток времени (например, за последние 30 дней, между датами).
6.  При необходимости сузьте сегмент по атрибутам события. В таблице ниже перечислены атрибуты, доступные для каждого события.

| Событие | Описание | Атрибуты |
| --- | --- | --- |
| `StripePaymentSucceeded` | Успешный платеж | \_\_amount, \_\_currency, invoice\_id, journey\_uuids, product\_id, product\_name, stripe\_customer\_id, subscription\_id |
| `StripeInvoicePaid` | Счет по подписке оплачен | \_\_amount, \_\_currency, journey\_uuids, product\_id, product\_name, stripe\_customer\_id, transaction\_id, transaction\_type |
| `StripeSubscriptionCreated` | Подписка создана | \_\_amount, \_\_currency, interval, journey\_uuids, product\_id, product\_name, status, stripe\_customer\_id, subscription\_id |

![Страница Audience Segments с опциями Create Segment и Build Segment](/integrations-stripe-integration-7.webp)

7.  Чтобы добавить больше событий, добавьте еще один фильтр Event и выберите оператор (AND или OR) между условиями.

[Узнайте больше о создании сегментов](/ru/product/audience-data-and-segmentation/segmentation/create-segments/by-events/).

## Ассистент ManyMoney AI

После успешной интеграции со Stripe ассистент [**ManyMoney**](/ru/product/pushwoosh-ai/ai-assistant/) AI автоматически получает доступ к статистике по платежам и подпискам.

ManyMoney доступен в интерфейсе Dashboard. После подключения Stripe данные о платежах становятся доступными для анализа автоматически. Дополнительная настройка не требуется.

### Что может ManyMoney

*   **Анализировать доход:** отвечает на вопросы о доходах, конверсиях и эффективности кампаний.
*   **Сравнивать периоды:** показывает динамику платежей и подписок за разные временные интервалы.
*   **Выявлять тенденции:** обнаруживает растущие и падающие продукты и сегменты аудитории.
*   **Предоставлять рекомендации:** предлагает оптимизации на основе данных о платежах.

<Aside type="tip" title="Примеры запросов">

*   Какой доход принесла кампания в прошлом месяце?
*   Сравните коэффициенты конверсии подписок за январь и февраль
*   Покажите статистику по возвратам

</Aside>