Казалось бы, задача простая: нужно принимать деньги — берёшь любой агрегатор и подключаешь. Но на практике выбор платёжной системы влияет на конверсию, скорость выплат, комиссии, набор доступных методов оплаты и процент отказов банка. Неправильный выбор на старте — это потерянные продажи и лишняя головная боль потом.
Сравним три самых популярных варианта: ЮKassa, Stripe и Тинькофф. Каждый из них подходит для разных ситуаций.
ЮKassa — главный выбор для российского рынка
ЮKassa (бывший ЮMoney / Яндекс.Касса) — фактически стандарт де-факто для российских магазинов и сервисов. Поддерживает всё, что нужно: карты Visa, Mastercard, МИР, СБП, ЮMoney, WebMoney, наличные через терминалы.
Комиссии: от 2,8% до 3,5% в зависимости от оборота и типа бизнеса. Чем больше оборот, тем лучше условия — при обороте от 1 млн ₽ в месяц реально договориться до 2% и ниже.
Что хорошо:
- Простая документация на русском языке
- Готовые SDK для PHP, Python, Node.js, Java, .NET
- Поддержка СБП — а это плюс 15–20% конверсии на мобильных
- Встроенная фискализация через облачную кассу (54-ФЗ)
- Время на подключение — от одного дня после подписания договора
Что плохо:
- Нет поддержки международных платежей
- Выплаты до трёх рабочих дней
- Служба поддержки работает только в рабочее время
Пример подключения через API (PHP):
$client = new \YooKassa\Client();
$client->setAuth('shop_id', 'secret_key');
$payment = $client->createPayment([
'amount' => ['value' => '1500.00', 'currency' => 'RUB'],
'confirmation' => [
'type' => 'redirect',
'return_url' => 'https://example.com/success'
],
'capture' => true,
'description' => 'Заказ №1234'
]);
header('Location: ' . $payment->getConfirmation()->getConfirmationUrl());
Несколько строк конфигурации — и пользователь уже на странице оплаты. Реально просто.
Для кого: интернет-магазины, сервисы подписки, маркетплейсы — всё, что работает с российскими пользователями.
Stripe — если планируешь выходить за рубеж
Stripe — лучший вариант для международных проектов. Компания из США, работает в 46+ странах. Принимает карты Visa, Mastercard, American Express, Apple Pay, Google Pay, SEPA, iDEAL и ещё десятки методов по всему миру.
После 2022 года Stripe официально ушёл из России — зарегистрированные в РФ юрлица подключить не получится. Но для проектов с иностранным юрлицом или ИП в другой юрисдикции — без проблем.
Комиссии: 1,4% + €0,25 для европейских карт, 2,9% + $0,30 для американских. За валютную конвертацию — ещё плюс 1,5%.
Что хорошо:
- Документация — одна из лучших в индустрии, с живыми примерами на всех языках
- Готовые компоненты Stripe Elements — вставляешь виджет, не пишешь форму с нуля
- Stripe Radar — антифрод на машинном обучении, обновляется постоянно
- Мгновенные выплаты на поддерживаемые карты (за дополнительную комиссию 1%)
- Webhook-система с автоматическими повторными попытками при ошибках
- Stripe Billing — мощный инструмент для подписок из коробки
Что плохо:
- Недоступен для российских юрлиц
- Высокие комиссии на некоторых рынках
- Поддержка только на английском
Пример создания платёжного намерения (Node.js):
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
const paymentIntent = await stripe.paymentIntents.create({
amount: 2000, // в центах
currency: 'usd',
payment_method_types: ['card'],
metadata: { order_id: '1234' }
});
// Возвращаем client_secret на фронтенд
res.json({ client_secret: paymentIntent.client_secret });
Фронтенд подтверждает платёж через Stripe.js — серверный ключ никогда не уходит на клиент. Безопасность встроена прямо в архитектуру.
Для кого: SaaS-продукты, международные магазины, стартапы с иностранным юрлицом.
Тинькофф (T-Bank) — альтернатива с конкурентной комиссией
Тинькофф Касса — платёжный шлюз от Т-Банка. Хорошая альтернатива ЮKassa, особенно если у бизнеса уже есть расчётный счёт там же.
Комиссии: от 2,19% до 3,5% — чуть ниже базовой ставки ЮKassa. При обороте от 1 млн ₽ в месяц можно договориться индивидуально.
Что хорошо:
- СБП из коробки
- Поддержка карт МИР, включая выпущенные после санкций
- Быстрые выплаты — можно настроить ежедневные
- Хорошая интеграция с эквайрингом Тинькофф
- Поддержка 54-ФЗ через встроенную онлайн-кассу
- API очень похоже на ЮKassa — удобно, если уже знаком с одним из них
Что плохо:
- Документация хуже, чем у ЮKassa и тем более Stripe
- Меньше готовых библиотек для нестандартных платформ
- Служба поддержки бывает медленной
Пример инициализации платежа (curl):
curl -X POST https://securepay.tinkoff.ru/v2/Init \
-H "Content-Type: application/json" \
-d '{
"TerminalKey": "YOUR_TERMINAL_KEY",
"Amount": 150000,
"OrderId": "order-1234",
"Description": "Оплата заказа",
"Token": "YOUR_TOKEN_HASH"
}'
Токен формируется SHA-256 хешем от конкатенации параметров с секретным паролем — стандартная практика для защиты запросов.
Для кого: малый и средний бизнес, который уже работает с Тинькофф, розничные магазины, сервисы с фокусом на российский рынок.
Как выбрать: короткая шпаргалка
| Критерий |
ЮKassa |
Stripe |
Тинькофф |
| Российское юрлицо |
Да |
Нет |
Да |
| Международные платежи |
Нет |
Да |
Нет |
| СБП |
Да |
Нет |
Да |
| Базовая комиссия |
от 2,8% |
от 1,4%+fix |
от 2,19% |
| Качество документации |
Хорошо |
Отлично |
Средне |
| Фискализация 54-ФЗ |
Да |
Нет |
Да |
Если работаете в России — берите ЮKassa или Тинькофф. Если уже есть расчётный счёт в Тинькоффе и важна низкая комиссия — склоняйтесь к Тинькоффу. Если нужен международный охват и работаете с иностранным юрлицом — Stripe без вариантов.
Технические нюансы, которые часто упускают
Вебхуки — настраивайте сразу. Все три системы отправляют уведомления о статусе платежа через webhook. Не надейтесь только на редирект пользователя — он может закрыть браузер до возврата на ваш сайт. Вебхук придёт независимо от этого.
Минимальный обработчик вебхука на Python (Flask):
@app.route('/webhook/yukassa', methods=['POST'])
def yukassa_webhook():
data = request.json
if data['event'] == 'payment.succeeded':
payment_id = data['object']['id']
# Проверяем идемпотентность
if not order_already_processed(payment_id):
update_order_status(payment_id, 'paid')
return '', 200
Идемпотентность — обязательно. Пользователь может нажать «оплатить» дважды, или вебхук придёт несколько раз (такое бывает). Всегда проверяйте, не обработан ли уже конкретный payment_id перед тем, как что-то делать с заказом.
Тестовая среда — используйте до запуска. У всех трёх есть тестовые терминалы с набором тестовых карт. ЮKassa и Тинькофф используют карту 4111 1111 1111 1111 для успешной оплаты, Stripe — 4242 4242 4242 4242. Не запускайте в продакшн без полного прохождения тестовых сценариев.
Хранение данных карты — не нужно. Ни в коем случае не храните CVV и полные данные карты у себя. Все три системы берут это на себя и предоставляют токен для повторных платежей. Самостоятельное хранение — это обязательная сертификация PCI DSS, которая обходится в десятки тысяч долларов в год.
HTTPS — это не опция. Все три платёжки требуют HTTPS на вашем домене. Без этого ни одна не запустит платёжную форму. Если сертификата ещё нет — это первый шаг перед интеграцией.
Рекуррентные платежи и подписки
Если ваш сервис работает по модели подписки — выбор платёжки становится ещё важнее.
Stripe Billing — лучший инструмент для подписок. Поддерживает пробные периоды, паузу подписки, пропорциональное списание при смене тарифа и дунинг — автоматические повторные попытки списания при неудаче с нарастающими интервалами.
ЮKassa поддерживает рекуррентные платежи через сохранённый метод оплаты. Работает, но логику повторных попыток придётся реализовывать самостоятельно.
Тинькофф — аналогично ЮKassa. Рекуррентные платежи есть, готовой системы управления подписками нет.
Если подписная модель — ключевая часть бизнеса, а юрисдикция позволяет, Stripe окупит разницу в комиссии экономией на разработке.
Сколько стоит интеграция
Если делать самому с нуля и опыт небольшой — закладывайте два-четыре дня на одну платёжку. Это с учётом тестирования, обработки всех статусов и настройки вебхуков.
Если нужно подключить сразу несколько платёжек или интегрировать их с CRM, складской системой или кастомной корзиной — задача усложняется. В REEXY (r3xy.ru) интеграция сервисов начинается от 1 500 ₽, и подключение платёжек — один из самых частых запросов при сдаче интернет-магазинов под ключ.
Частые ошибки при подключении
Не обрабатывать статус pending. Платёж может зависнуть на проверке антифрода. Если сразу выдавать пользователю доступ к товару без проверки финального статуса — получите кейсы с открытым доступом без реальной оплаты.
Не настраивать алерты на ошибки. Если платёжная система вернула ошибку или вебхук не дошёл — об этом нужно знать сразу, а не когда клиент позвонит. Настройте уведомления в Telegram или на почту.
Игнорировать UX при отказе. Если платёж не прошёл, пользователь должен понять почему и что делать дальше. Стандартные технические сообщения от платёжек часто пугают людей — адаптируйте их под человека.
Не тестировать сценарий двойной оплаты. Пользователь оплатил, нажал «назад», оплатил снова — у вас два платежа за один заказ. Или закрыл браузер до возврата на сайт — статус не обновился. Все эти сценарии нужно пройти руками ещё в тестовой среде.
Забыть про возвраты. Интерфейс возврата нужен сразу — не в следующем спринте. Все три платёжки поддерживают частичный и полный возврат через API, и это нужно реализовать до запуска.
Хорошая интеграция платёжки — это не просто вставить готовый виджет. Это правильно обработать все состояния платежа, настроить вебхуки, написать логику идемпотентности и убедиться, что ни один оплаченный заказ не потеряется. Один раз сделано правильно — работает годами без сюрпризов.