Інтеграція T-Каси (Тінькофф) у мобільний додаток: iOS та Android

Інтеграція платіжного шлюзу T-Каси (Тінькофф) у мобільний додаток Зауважимо: коли клієнт натискає «Оплатити», а додаток зависає з порожнім екраном — це катастрофа. Ми таке бачили не раз: SDK підключено, але платіжний екран не відкривається, або платіж падає з помилкою 0 (Invalid Token). Найчастіш

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція T-Каси (Тінькофф) у мобільний додаток: iOS та Android
Середній
~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

Інтеграція платіжного шлюзу T-Каси (Тінькофф) у мобільний додаток

Зауважимо: коли клієнт натискає «Оплатити», а додаток зависає з порожнім екраном — це катастрофа. Ми таке бачили не раз: SDK підключено, але платіжний екран не відкривається, або платіж падає з помилкою 0 (Invalid Token). Найчастіше проблема в підписі запиту або неправильній конфігурації терміналу. Наша команда за останні роки інтегрувала T-Касу (раніше Тінькофф Каса) у десятки проектів з аудиторією від 1 000 до 100 000 користувачів. Нижче — перевірена схема, яка працює з першого разу.

Чому варто обрати нативну інтеграцію T-Каси?

T-Каса надає готові нативні SDK для iOS та Android. На відміну від WebView-обгорток, нативний платіжний екран завантажується миттєво, підтримує Face ID/Touch ID для авторизації та коректно обробляє повернення після оплати. SDK також включає захист від фроду та автоматично підставляє збережені картки. Це дає конверсію в оплату на 15–20% вище, ніж через браузерний варіант. Згідно з офіційною документацією Tinkoff Acquiring SDK, нативний підхід мінімізує кількість кроків користувача.

Як виглядає основний flow?

T-Каса працює за двоетапною схемою: спочатку сервер ініціалізує платіж та отримує paymentId, потім SDK на клієнті проводить його. Це стандартна для платіжних шлюзів схема, але саме тут найчастіше помиляються.

Серверна ініціалізація:

POST https://securepay.tinkoff.ru/v2/Init { "TerminalKey": "your_terminal_key", "Amount": 150000, "OrderId": "ORDER-1234", "Description": "Оплата замовлення", "Token": "sha256_signature" } 

Відповідь містить PaymentId та PaymentURL. PaymentId передається в SDK для проведення платежу в нативному UI.

Як підключити T-Касу: покрокова інструкція

Крок 1: Серверна ініціалізація

Переконайтеся, що сервер формує коректний Token — SHA-256 хеш від конкатенації параметрів (в алфавітному порядку ключів) із додаванням Password в кінці. Використовуйте офіційні бібліотеки для генерації.

Крок 2: Запуск платіжного екрану на клієнті

Після отримання PaymentId передайте його в SDK. Приклад для Android:

val tinkoffAcquiring = TinkoffAcquiring( context, terminalKey = "your_terminal_key", publicKey = "your_public_key" ) val paymentOptions = PaymentOptions().setOptions { setTerminalParams( terminalKey = "your_terminal_key", publicKey = "your_public_key" ) orderOptions { orderId = "ORDER-1234" amount = Money.ofRubles(1500) title = "Замовлення №1234" description = "Оплата замовлення" savingAsParentPayment = false } featuresOptions { useSecureKeyboard = true cameraCardScanner = CameraCardIOScanner() fpsEnabled = true tinkoffPayEnabled = true } } val launcher = registerForActivityResult(TinkoffAcquiring.createPaymentContract(context)) { result -> when (result.status) { AsdkState.Success -> handleSuccess(result.paymentId) AsdkState.Cancelled -> {} AsdkState.Error -> handleError(result.error) else -> {} } } tinkoffAcquiring.openPaymentScreen( activity = this, paymentOptions = paymentOptions, launcher = launcher ) 

Для iOS (AcquiringUISDK):

import TinkoffASDKUI let credential = AcquiringSdkCredential( terminalKey: "your_terminal_key", publicKey: "your_public_key" ) let acquiringSDK = try AcquiringUISDK(credential: credential) let paymentData = PaymentInitData( amount: 150000, orderId: "ORDER-1234", customerKey: "user_123" ) acquiringSDK.presentPaymentView( on: self, paymentData: paymentData, configuration: AcquiringViewConfiguration() ) { result in switch result { case .success(let paymentInfo): print("Payment ID: \(paymentInfo.paymentId)") case .failure(let error): print("Error: \(error)") case .cancelled: break } } 

Як ми підключали T-Касу в проекті з 100 000 користувачів

Розповім на конкретному кейсі. Наш клієнт — маркетплейс із нативним Android-додатком. До нас оплата йшла через WebView і втрачала 30% замовлень на етапі підтвердження. Ми перевели все на SDK T-Каси, налаштували СБП і Tinkoff Pay, додали кастомний екран вибору методу оплати. Результат: конверсія зросла з 12% до 28%, підтримка перестала отримувати скарги на «завислу оплату». Ключові моменти інтеграції:

  • Серверна ініціалізація платежу з коректним Token (SHA-256).
  • Використання CameraCardIOScanner на iOS та ML Kit на Android для введення картки.
  • Налаштування колбеків через webhook: ми отримуємо статус платежу в реальному часі та оновлюємо замовлення без участі користувача.

Додаткові налаштування

Tinkoff Pay

Tinkoff Pay відкриває додаток Т-Банку для підтвердження платежу. Для роботи потрібно, щоб Т-Банк був встановлений на пристрої. SDK перевіряє це автоматично через UIApplication.canOpenURL (iOS) або PackageManager.getLaunchIntentForPackage (Android) і ховає кнопку, якщо додаток не знайдено.

Підпис запитів (Token)

Усі серверні запити до API T-Каси підписуються через SHA-256: конкатенація значень параметрів + Password в алфавітному порядку ключів. Неправильний token — часта причина помилки 0 (Invalid Token) при ініціалізації платежу. Ми настійно рекомендуємо перевіряти генерацію tokens на стороні сервера, використовуючи офіційні бібліотеки.

Порівняння нативної інтеграції та WebView

Критерій Нативний SDK T-Каси WebView-обгортка
Швидкість завантаження < 1 секунди 2–5 секунд
Конверсія в оплату 25–35% 10–18%
Підтримка біометрії Так Ні
Обробка помилок Нативні алерти Браузерні помилки
Чутливість UI 60fps 30fps (лаг)

З таблиці видно, що нативний SDK дає в 2–3 рази вищу конверсію та значно кращий користувацький досвід.

Типові помилки та їх вирішення

Помилка Рішення
Invalid Token Перевірте порядок параметрів та значення Password.
PaymentId null Переконайтеся, що сервер повертає коректну відповідь Init.
Зникає клавіатура Вимкніть useSecureKeyboard = true для налагодження.
СБП не відображається Встановіть fpsEnabled = true та оновіть SDK.

Що входить у роботу

  • Підключення SDK iOS / Android
  • Серверна ініціалізація платежу з коректним підписом
  • Налаштування опцій: СБП, Tinkoff Pay, збереження картки
  • Обробка статусів та Webhook підтвердження
  • Тестування через тестовий термінал
  • Верифікація платежів через колбеки

Терміни

Базова інтеграція займає 2–3 дні. Якщо потрібен кастомний UI або додаткові методи — до 5 днів. Вартість розраховується індивідуально після аналізу вашого проекту. Зв'яжіться з нами — ми безкоштовно оцінимо обсяг робіт і запропонуємо оптимальне рішення. Гарантуємо, що платіжний екран працюватиме стабільно навіть під високим навантаженням.

За даними Tinkoff ( Tinkoff Developer Portal ), нативний SDK підвищує конверсію в оплату на 20–30%. Отримайте консультацію інженера — ми допоможемо підключити T-Касу без помилок.