Интеграция ЮKassa в мобильное приложение: гайд по токенизации

Интеграция платежного шлюза ЮKassa в мобильное приложение При интеграции платежей в мобильное приложение ключевая сложность — соблюдение требования безопасности. Прямая передача банковских реквизитов требует сертификации PCI DSS Level 1, которая стоит в миллионы рублей и проходит ежегодный аудит.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция ЮKassa в мобильное приложение: гайд по токенизации
Средний
~2-3 дня

Наши компетенции:

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

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Интеграция платежного шлюза ЮKassa в мобильное приложение

При интеграции платежей в мобильное приложение ключевая сложность — соблюдение требования безопасности. Прямая передача банковских реквизитов требует сертификации PCI DSS Level 1, которая стоит в миллионы рублей и проходит ежегодный аудит. Мы, команда с 7-летним опытом в мобильной разработке, предлагаем решение через токенизацию ЮKassa: клиентский SDK создаёт одноразовый платёжный токен, который сервер использует для завершения платежа. Никакие карточные данные не покидают устройство пользователя. Так вы принимаете платежи без собственной PCI-сертификации, сокращая затраты на инфраструктуру безопасности.

Как работает токенизация ЮKassa?

SDK ЮKassa на стороне клиента (iOS или Android) принимает данные карты, шифрует их и отправляет напрямую в платёжный шлюз ЮKassa. В ответ SDK возвращает вашему приложению токен — уникальный идентификатор, привязанный к конкретному магазину и сумме. Этот токен передаётся на ваш бэкенд, который создаёт платёж через API ЮKassa. Ваш сервер никогда не видит реальных реквизитов — только токен. Это снимает ответственность за PCI DSS с вашей команды и ускоряет интеграцию до 2–3 дней. Для тестирования используйте test_ ключ и карту с номером 5555555555554444.

Почему токенизация — единственный безопасный способ?

Прямая передача реквизитов требует сертификации PCI DSS Level 1, которая обходится в миллионы рублей и ежегодного аудита. Токенизация ЮKassa снижает эту нагрузку: вы не касаетесь карточных данных. SDK берёт на себя шифрование и передачу в ЮKassa. Даже при компрометации сервера злоумышленник не получит реквизиты. По статистике, токенизация снижает риск утечки данных на 90% по сравнению с хранением данных на сервере.

Какие сценарии оплаты поддерживаются?

Способ оплаты Требуется ли дополнительная настройка Комментарий
Банковские карты Нет, включены по умолчанию Всегда доступны
SberPay Да, нужно настроить в кабинете ЮKassa Только для клиентов Сбербанка
СБП Да, требуется привязка к СБП Поддерживается большинством банков
Apple Pay Да, нужно настроить Merchant ID и загрузить сертификат Только на iOS
Google Pay Да, настроить в консоли Google Pay Только на Android
ЮMoney Нет, доступен по умолчанию Популярен среди пользователей

iOS: YooKassaPayments SDK

Подключаем SDK через CocoaPods или SPM (подробнее в документации). Запуск платёжного экрана:

import YooKassaPayments let inputData = TokenizationModuleInputData( clientApplicationKey: "live_your_client_key", title: "Your Company", subtitle: "Заказ №1234", amount: Amount(value: 1500, currency: .rub), paymentTypes: [.bankCard, .sberbank, .sbp, .applePay, .yooMoney], savePaymentMethod: .on, isLoggingEnabled: false ) let viewController = TokenizationAssembly.makeModule( inputData: inputData, moduleOutput: self ) present(viewController, animated: true) 

Обработка результата:

extension PaymentViewController: TokenizationModuleOutput { func tokenizationModule( _ module: TokenizationModuleInput, didTokenize token: Tokens, paymentMethodType: PaymentMethodType ) { dismiss(animated: true) sendTokenToBackend(token.paymentToken, paymentMethodType: paymentMethodType.rawValue) } func didFinish(on module: TokenizationModuleInput, with error: YooKassaPaymentsError?) { dismiss(animated: true) if let error = error { print("YooKassa error: \(error)") } } } 

Android: YooKassa Payments SDK

Добавьте зависимость (актуальную версию см. в документации):

implementation("ru.yoomoney.sdk.kassa.payments:yookassa-android-sdk:7.x.x") 

Запуск платёжного экрана:

private val tokenizeLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { result -> if (result.resultCode == Activity.RESULT_OK) { val token = Checkout.createTokenizationResult(result.data!!) sendTokenToBackend( token.paymentToken, token.paymentMethodType.name ) } } fun startPayment() { val paymentParameters = PaymentParameters( amount = Amount(BigDecimal.valueOf(1500), Currency.getInstance("RUB")), title = "Your Company", subtitle = "Заказ №1234", clientApplicationKey = "live_your_client_key", shopId = "your_shop_id", savePaymentMethod = SavePaymentMethod.ON, paymentMethodTypes = setOf( PaymentMethodType.BANK_CARD, PaymentMethodType.SBERBANK, PaymentMethodType.SBP, PaymentMethodType.GOOGLE_PAY, PaymentMethodType.YOO_MONEY ) ) val intent = Checkout.createTokenizeIntent(this, paymentParameters) tokenizeLauncher.launch(intent) } 

Как автоматически обрабатывать 3D Secure?

При создании платежа через API, если требуется 3D Secure, в ответе приходит confirmation.type: redirect и confirmation_url. В мобильном приложении нужно открыть этот URL в веб-вью (SFSafariViewController на iOS, Custom Tabs на Android) и дождаться возврата по return_url. Мы рекомендуем использовать автоматическую обработку SDK, но при прямой интеграции следуйте этому алгоритму.

Серверное подтверждение платежа

Токен с клиента передаётся на сервер, сервер создаёт платёж через API:

POST https://api.yookassa.ru/v3/payments Authorization: Basic base64(shopId:secretKey) Content-Type: application/json Idempotence-Key: unique-uuid { "amount": { "value": "1500.00", "currency": "RUB" }, "capture": true, "payment_method_data": { "type": "bank_card" }, "confirmation": { "type": "mobile_application", "return_url": "yourapp://payment/result" }, "payment_token": "token_from_client", "description": "Заказ №1234" } 

Если ответ содержит status: pending и confirmation.type: redirect — требуется 3DS подтверждение. SDK обрабатывает это автоматически, но при прямой интеграции нужно открыть confirmation_url в SFSafariViewController / Custom Tabs.

Сравнение ЮKassa с прямым приёмом карт

Критерий ЮKassa Прямой приём карт
PCI DSS Не нужна сертификация Требуется Level 1, ежегодный аудит
Время интеграции 2–3 дня 1–2 месяца
Поддержка 3D Secure Автоматически (SDK / redirect) Реализация вручную
Стоимость запуска Относительно низкая Высокая (сертификация + комиссии)
Способы оплаты 10+ (карты, SberPay, СБП, кошельки) Только карты

ЮKassa отлично подходит для быстрого запуска: вы экономите значительные средства на сертификации и получаете широкий набор платёжных методов. Токенизация снижает время интеграции в 10 раз по сравнению с прямым приёмом карт (2–3 дня против 1–2 месяцев).

Что входит в работу

  • Подключение YooKassa SDK (iOS / Android / Flutter) под ключ
  • Настройка paymentTypes под задачи проекта
  • Серверный endpoint для создания и подтверждения платежа
  • Настройка Webhook для финального статуса
  • Тестирование в тестовом магазине ЮKassa
  • Помощь в публикации в App Store и Google Play (проверка на соответствие правилам)

Сроки и стоимость

Базовая интеграция занимает 2–3 дня. Стоимость рассчитывается индивидуально — оценим проект после знакомства с вашим приложением и платёжными сценариями. Наши инженеры имеют более 7 лет опыта в мобильной разработке и реализовали 30+ проектов с ЮKassa. Мы гарантируем корректную обработку 3D Secure, возврат при ошибках и соблюдение App Store Review Guidelines Section 4.2/5.1. Если нужна консультация или оценка — свяжитесь с нами, чтобы обсудить детали.

Получите консультацию наших инженеров — мы проведём аудит вашего приложения и предложим оптимальное решение. Закажите интеграцию, и мы настроим платёжный шлюз за 2 дня.