Как движутся деньги
Клуб в easygym продаёт абонементы на своём сайте и на ресепшене. Клиент платит на странице оплаты Stripe — картой, Apple Pay или Google Pay, — и абонемент включается сам, как только Stripe подтвердит оплату.
- Деньги идут на собственный Stripe-аккаунт клуба, а Stripe выплачивает их на банковский счёт клуба.
- Не нужны ни разработчик, ни отдельный сайт, ни сертификаты: страницу оплаты показывает Stripe, а easygym даёт сайт клуба с тарифами, офертой, условиями возврата и контактами.
- Персонал видит онлайн-оплаты и оплаты, которые нужно вернуть, — на вкладке «Платежи» и в карточке каждого клиента.
Две отдельные денежные линии
Линия 1
Оплата абонементов
Клиент клуба→Stripe-аккаунт клуба
Клуб сам открывает аккаунт Stripe и сам вводит его ключи в настройках, а Stripe выплачивает деньги на банковский счёт клуба. Возвраты, спорные платежи и чеки — тоже на клубе как на продавце.
Линия 2
Плата за easygym
Владелец клуба→easygym
Отдельный платёж на сайте платформы. С оплатами клиентов клуба он не связан и из них не удерживается.
Принцип
Деньги клиентов клуба идут напрямую на собственный Stripe-аккаунт клуба, а Stripe выплачивает их на банковский счёт клуба. easygym не получает, не хранит и не распределяет эти средства. Ключом Stripe клуба он создаёт оплаты и проверяет их состояние, а по действию владельца или администратора клуба может вернуть оплату — деньги тогда возвращаются на карту, с которой платили. Получить или перевести средства клуба easygym не может. Плата за сам easygym — отдельно, на сайте платформы.
Почему у клуба собственный аккаунт, а не общий аккаунт easygym: принимать деньги за других и передавать их дальше — регулируемая финансовая услуга. С собственным Stripe-аккаунтом клуба easygym не стоит между клиентом и клубом: деньги не проходят через easygym, и получить или перевести средства клуба он не может. Ключ клуба easygym использует только чтобы создавать оплаты, проверять их, списывать сохранённые карты с согласия клиента и возвращать оплаты.
Оплаты в ОАЭ
Числа ниже — для аккаунта Stripe, открытого в ОАЭ. У аккаунта в другой стране свои тарифы и свои правила выплат: страницы, откуда взяты эти числа, стоят в конце раздела, а дата сверки — вверху страницы.
Чем платит клиент
Visa и Mastercard — те же карты через Apple Pay, Google Pay и Link. American Express в списке Stripe для аккаунтов в ОАЭ нет. Tabby и Tamara через Stripe не проходят вовсе: клуб, который продаёт годовой абонемент в рассрочку, договаривается с ними отдельно, мимо easygym.
Что удерживает Stripe
Stripe удерживает 2,9 % + 1,00 AED успешной оплаты картой, выпущенной в ОАЭ. Карта другой страны — турист или гость на отдыхе — добавляет 1 %, а оплата, которую Stripe конвертирует, — ещё 1 %.
На абонементе 300,00 AED это примерно 9,70 AED. Меньше 2,00 AED Stripe не спишет — такую оплату принимают наличными или на собственном терминале клуба.
Свою комиссию Stripe удерживает из оплаты до выплаты, а easygym из денег клиентов не удерживает ничего.
Когда деньги доходят до клуба
Stripe выплачивает в дирхамах и только на банковский счёт в ОАЭ. Первая выплата уходит примерно через 7 дней после первой оплаты, дальше деньги за оплату приходят за 5 рабочих дней. Выплаты приходят по рабочим дням — не в выходной и не в праздник, — а меньше 20,00 AED Stripe не выплачивает.
Скажите об этом клубу до запуска: деньги за первые проданные абонементы не задержались, они просто ещё в пути.
Налог и квитанции
Фискальное устройство в ОАЭ не нужно, а налог к цене Stripe не добавляет: клиент платит ровно ту сумму, что на сайте, и easygym отправляет ему квитанцию на неё. Поэтому клуб, зарегистрированный по VAT, закладывает налог в цену тарифа и указывает свой TRN в реквизитах продавца — оттуда он попадает и в квитанцию, и на страницу оферты сайта.
Шаг 1
Аккаунт Stripe
Клубу нужен собственный аккаунт Stripe: на него и поступают деньги клиентов. Открывайте его на тот бизнес, который продаёт клиентам абонементы, — тот, что указан продавцом в оферте на сайте клуба.
Что просит Stripe
Прежде чем аккаунт начнёт принимать настоящие деньги, Stripe проверяет бизнес. Что именно он попросит, зависит от страны и вида бизнеса, — список Stripe показывает при активации аккаунта.
- В ОАЭ аккаунт открывают на бизнес с торговой лицензией (trade licence).
- В США — на компанию или индивидуального предпринимателя, с теми данными о бизнесе, которые попросит Stripe.
- В других странах сначала проверьте, что Stripe там работает: список стран — на его сайте.
- Везде Stripe спрашивает о бизнесе и о людях, которые за ним стоят, и просит банковский счёт для выплат.
Как открыть аккаунт
- Зарегистрируйтесь на stripe.com с рабочей почтой клуба.
- Активируйте приём платежей: данные бизнеса, его владелец и банковский счёт для выплат. До этого аккаунт работает только в тестовом режиме — а пройти весь мастер можно уже сейчас, с тестовыми ключами.
- Заполните публичные данные: название бизнеса, сайт — укажите сайт клуба в easygym — и контакты поддержки. Клиенты видят их на странице оплаты, в квитанциях Stripe и в выписке по карте.
- Там же задайте statement descriptor — короткое название, которое стоит рядом со списанием в банковском приложении клиента. Впишите в него название клуба: строка, которую через месяц после покупки никто не узнаёт, и отправляет людей оспаривать платёж в банк вместо звонка в клуб.
- В Settings → Branding задайте логотип и цвета клуба — страница оплаты будет выглядеть как клуб.
Страну аккаунта после активации не поменять: бизнесу в другой стране нужен свой аккаунт.
В мастере easygym
Отметьте «Аккаунт создан», когда аккаунт открыт: о новых аккаунтах Stripe easygym не сообщает. Когда ключи подключены, шаг отмечается сам.
Шаг 2
Ключи API и вебхук
easygym работает со Stripe-аккаунтом клуба через ключ API. В кабинете Stripe откройте Developers → API keys. Подойдёт и секретный ключ (sk_…), но мы советуем ограниченный (rk_…): он умеет только то, что вы разрешили, и если когда-нибудь утечёт, ни для чего другого его не использовать.
Ограниченный ключ для easygym
- На странице API keys выберите «Create restricted key» и назовите ключ, например, «easygym».
- Выставьте права из таблицы ниже, всё остальное оставьте «None».
- Создайте ключ и сразу скопируйте: Stripe показывает его только один раз.
Какие права нужны ключу
| Ресурс | Доступ | Зачем он easygym |
|---|---|---|
| Checkout Sessions | Write — запись | Открывает страницы оплаты — для покупок на сайте и оплаты по QR на ресепшене, — закрывает неоплаченные и проверяет их состояние. |
| PaymentIntents | Write — запись | Проверяет оплаты и списывает сохранённую карту при автопродлении. |
| PaymentMethods | Write — запись | Показывает маску сохранённой карты и отвязывает карту, когда клиент её удаляет. |
| Customers | Write — запись | Сохранённая карта принадлежит покупателю в Stripe: страница оплаты его создаёт, а автопродление списывает карту с него. |
| Refunds | Write — запись | Возвращает оплату, когда персонал нажимает «Вернуть деньги» в easygym, и читает возвраты оплаты, когда Stripe о них сообщает, — чтобы записать возврат из easygym или тот, который банк клиента не принял. |
| Charges | Read — чтение | Читает списание, когда Stripe сообщает о возврате, сделанном в кабинете Stripe. |
| Webhook Endpoints | Write — запись | Создаёт вебхук в аккаунте клуба при подключении ключа и убирает его при отключении платежей. |
| Account | Read — по желанию | Только чтобы показать название аккаунта в админке. Без этого права ключ подключается так же. |
Право на запись включает чтение. Если ключу не хватает права, Stripe отказывает в запросе, а журнал запросов ключа в кабинете Stripe показывает, какой запрос не прошёл, — добавьте право через «Edit key».
Куда вставить ключ
- В админке откройте Настройки → Платежи — шаг 2 мастера.
- Вставьте ключ в поле «Секретный ключ». Публичный ключ (pk_…) — по желанию: страницы оплаты работают и без него.
- Нажмите «Проверить и подключить». easygym сначала проверяет ключ у Stripe и создаёт вебхук и только потом сохраняет ключ — в зашифрованном виде.
Сохранённый ключ больше не показывается никому, даже владельцу клуба. Чтобы заменить его, нажмите «Заменить ключи» и вставьте новый; «Отключить» удаляет его из easygym.
В мастере easygym
Шаг отмечается сам, как только Stripe примет ключ и вебхук будет на месте.
Шаг 3
Тестовая оплата
Прежде чем принимать настоящие деньги, пройдите путь клиента с тестовыми ключами: они работают как боевые, но деньги не двигаются. В Stripe это тестовый режим, он же песочница (sandbox), а его ключи начинаются с sk_test_ или rk_test_.
Как проверить
- Подключите тестовый ключ на шаге 2 — так же, как боевой.
- На шаге 3 создайте небольшую оплату в валюте клуба — 4,00 AED, 1,00 $ или 1,00 €. Сумма чуть выше минимума Stripe, чтобы платёж прошёл при любой валюте выплат аккаунта. Откройте страницу оплаты и заплатите тестовой картой.
- Нажмите «Проверить оплату»: easygym спросит у Stripe, пришла ли оплата.
- Верните оплату кнопкой на том же шаге — она вернётся тем же путём, что и настоящий возврат.
- Для полной картины купите тариф на сайте клуба: абонемент станет активным, придёт письмо, а покупка появится в кабинете клиента.
Тестовые карты
Карта 4242 4242 4242 4242 с любым будущим сроком и любым CVC всегда проходит. Карта 4000 0000 0000 0002 всегда отклоняется — так видно, что увидит клиент, если банк откажет.
Stripe принимает оплату в валюте клуба, если это AED, USD или EUR. Для другой валюты мастер тестовую оплату не создаёт — сначала смените валюту клуба.
В мастере easygym
Шаг отмечается сам, как только Stripe подтвердит тестовую оплату.
Боевой режим
Тестовый и боевой режимы в Stripe разделены: у каждого свои ключи, права и вебхуки. Поэтому после теста боевой ключ подключается точно так же.
Теперь деньги настоящие
Как только подключён боевой ключ, клиенты платят на счёт клуба по-настоящему, а тестовые карты больше не проходят.
Как перейти в боевой режим
- Дождитесь, пока Stripe активирует аккаунт: без этого боевые ключи оплат не принимают.
- В боевом режиме создайте такой же ограниченный ключ (rk_live_…) с теми же правами.
- На шаге 2 нажмите «Заменить ключи» и вставьте боевой ключ. easygym создаст для него новый вебхук и уберёт тот, что создал раньше.
- Проведите первую настоящую оплату: купите самый дешёвый тариф на сайте клуба своей картой или создайте оплату на шаге 3 и верните её.
Какой режим подключён, видно в админке: «Тестовый режим» или «Боевой режим».
«Отключить» удаляет ключи из easygym и убирает вебхук, который создал easygym, а сайт перестаёт открывать страницы оплаты. Страницу, которую клиент уже открыл, в Stripe ещё можно оплатить, но easygym эту оплату не увидит — такие оплаты проверяйте в кабинете Stripe.
Вебхук: как оплаты доходят до easygym
О каждой оплате Stripe сообщает easygym через вебхук — адрес в easygym, на который Stripe шлёт сообщение, когда с оплатой что-то происходит. Поэтому абонемент включается в момент оплаты, даже если клиент сразу закрыл страницу.
easygym создаёт его сам
При подключении ключа easygym сам создаёт вебхук в Stripe-аккаунте клуба: на собственный адрес этого клуба, только для нужных ему событий и с описанием «easygym». Секрет подписи вебхука он сохраняет и сверяет с ним каждое сообщение, поэтому поддельное отклоняется.
На какие события подписывается easygym
- payment_intent.succeeded
- payment_intent.processing
- payment_intent.payment_failed
- payment_intent.canceled
- checkout.session.completed
- checkout.session.expired
- charge.refunded
- charge.refund.updated
Другие события вашего аккаунта до easygym не доходят: аккаунт может и дальше обслуживать другие ваши сервисы.
Если easygym не может его создать
Ключ без права Webhook Endpoints или адрес, который Stripe не принимает, останавливают мастер с объяснением. Тогда создайте вебхук вручную:
- В кабинете Stripe откройте Developers → Webhooks и добавьте endpoint.
- Endpoint URL — адрес из шага 2 мастера, в блоке «Как добавить вебхук вручную», с кнопкой копирования.
- Выберите события из списка выше.
- Откройте созданный endpoint, покажите его секрет подписи (whsec_…) и вставьте в поле «Секрет подписи вебхука (необязательно)» вместе с ключом.
Для локальной тестовой установки пересылайте события через Stripe CLI (stripe listen) и вставьте секрет подписи, который он напечатает.
Не удаляйте вебхук
Не удаляйте и не отключайте вебхук easygym в Stripe: оплаты будут проходить, но easygym узнает о них с опозданием. Если его удалили, подключите ключ заново — easygym создаст новый.
Выплаты
Оплаты собираются на балансе Stripe-аккаунта клуба, и Stripe выплачивает их на банковский счёт клуба по графику выплат этого аккаунта. Первая выплата обычно идёт дольше следующих.
easygym в выплатах не участвует и их не видит: каждая выплата и дата её поступления видны в кабинете Stripe.
Счёт для выплат добавляют и меняют в настройках выплат Stripe. Какие счета и валюты возможны, зависит от страны Stripe-аккаунта.
Для аккаунта в ОАЭ валюта, расписание и минимальная выплата — в разделе «Оплаты в ОАЭ».
Источники
Комиссии
Комиссию Stripe берёт по собственному договору клуба с ним. Ставки зависят от страны аккаунта, карты и способа оплаты и меняются — поэтому мы их здесь не приводим: актуальные — на странице тарифов Stripe.
Для аккаунта в ОАЭ — главном рынке — ставки указаны в разделе «Оплаты в ОАЭ».
easygym ничего не удерживает с оплат клиентов. Его собственная плата — отдельный платёж за платформу, а не доля выручки клуба.
Что происходит с комиссией Stripe при возврате и сколько стоит спорный платёж — тоже на странице тарифов Stripe.
Возвраты
Продавец — клуб, поэтому о возврате решает он — по условиям на странице возвратов своего сайта.
Возврат из easygym
- Откройте оплату в карточке клиента: Участники → Онлайн-оплаты → Вернуть деньги.
- Укажите сумму — всё, что осталось на платеже, или меньше, — напишите причину и подтвердите. easygym вернёт её на карту, с которой платил клиент. Возврат всего остатка сразу отменяет оплаченные платежом абонемент и доступ, частичный — оставляет их.
- Когда деньги дойдут до клиента, зависит от его банка. Пока Stripe не подтвердит возврат, у оплаты стоит «Возврат в обработке».
Возвращать оплаты может персонал, которому доступно управление деньгами клуба.
Возврат в кабинете Stripe
Вернуть оплату можно и в кабинете Stripe. О полном возврате easygym узнает и отметит оплату возвращённой, но абонемент оставит как есть — что с ним делать, решает клуб. Частичный возврат оплату в easygym не меняет.
Если деньги пришли за уже отменённую продажу — скажем, гость оплатил страницу по QR после того, как кассир её отменил, — easygym отметит оплату «Нужен возврат» на вкладке «Платежи»: верните её клиенту.
Изредка банк клиента не принимает возврат из easygym или полный возврат из кабинета Stripe — например, карта уже закрыта. Тогда Stripe возвращает деньги на баланс клуба, и это может занять до 30 дней. easygym отметит оплату «Нужен возврат» на вкладке «Платежи» с причиной от банка, а в карточке клиента у неё будет «Банк отклонил возврат». Верните её оттуда ещё раз или верните деньги клиенту другим способом. Абонемент, отменённый вместе с возвратом, остаётся отменённым. Если не прошёл частичный возврат из кабинета Stripe, в easygym ничего не меняется — как и от самого частичного возврата.
Спорные платежи (чарджбэки) разбираются в кабинете Stripe: easygym их не получает. Как на них отвечать, объясняет документация Stripe.
Сохранённые карты и автопродление
Чтобы абонемент продлевался сам, карту клиента нужно сохранить. Карта хранится в Stripe-аккаунте клуба: easygym держит только ссылку Stripe на неё и маску номера — ни полного номера, ни срока, ни CVC.
Как это работает
- Карта сохраняется только с отдельного согласия клиента на странице покупки — рядом с условиями автопродления: сумма, как часто и как отменить.
- Перед первым автоматическим списанием и перед списанием по новой цене клиент заранее получает письмо.
- В дату списания, за несколько дней до даты продления, easygym списывает сохранённую карту через Stripe-аккаунт клуба, без участия клиента.
- Если банк отказал или просит клиента подтвердить оплату, клиенту приходит письмо со ссылкой на оплату, а easygym пробует списать ещё несколько раз в следующие дни. Если все попытки не прошли, автопродление останавливается, а продление ещё можно оплатить по ссылке.
- После каждого списания клиенту приходит квитанция на почту.
- Клиент останавливает автопродление в кабинете: Мой кабинет → Абонементы → Остановить автопродление. Карта, удалённая там, отвязывается и в Stripe.
Оплата картой на ресепшене
Терминал для Stripe на ресепшене не нужен: гость платит со своего телефона, а деньги идут на тот же Stripe-аккаунт клуба, что и оплаты на сайте.
Как это проходит
- Кассир добавляет позиции в чек на кассе и выбирает «Карта (QR)».
- «Показать QR-код» открывает страницу оплаты Stripe на сумму чека и показывает её QR-код на экране.
- Гость сканирует код камерой телефона и платит картой, Apple Pay или Google Pay.
- Как только Stripe подтвердит оплату, касса показывает «Оплата получена»: продажа проведена, остатки обновлены.
Полезно знать
- Страница оплаты открыта ограниченное время — касса показывает, сколько осталось. Если гость передумал, «Отменить оплату» закрывает страницу, и чек можно оплатить иначе.
- Картой касса принимает чек от 2,00 AED, 0,60 $ или 0,60 € — не меньше минимума Stripe. Stripe считает свой минимум в валюте выплат аккаунта, после конвертации, поэтому для долларов и евро у кассы небольшой запас сверху. Чек поменьше оплачивают наличными или через терминал.
- Банковский терминал, если он есть у клуба, остаётся отдельным способом оплаты: такую оплату кассир отмечает вручную, а деньги идут туда, куда их выплачивает банк терминала.
- Если гость заплатил уже после отмены продажи, деньги всё равно придут на Stripe-аккаунт клуба, а easygym покажет оплату как требующую возврата.