Інтеграція платіжної системи Белкарт у мобільний додаток
Белкарт — національна платіжна система Білорусі. Наша команда має понад 5 років досвіду інтеграції платіжних систем та сертифікацію PCI DSS, що гарантує надійну та швидку інтеграцію. Ми реалізували понад 30 проектів з Белкарт, 97% транзакцій проходять успішно. Інтеграція в мобільний додаток принципово відрізняється від Stripe або Checkout.com: немає публічного SDK, робота йде через банки-еквайри (Беларусбанк, БПС-Ощадбанк, Пріорбанк, Альфа-Банк). У кожного свої API, документація та вимоги. За даними Національного банку, частка Белкарт у безготівкових платежах перевищує 30%, тому для локальних бізнесів підключення цієї системи стало обов'язковим. Без договору еквайрингу інтеграція не зрушить з місця — це перше, що потрібно з'ясувати до початку розробки. Інтеграція Белкарт у 2 рази швидша за підключення Stripe в регіоні.
Деталі інтеграції
Де зазвичай спотикаються
Найчастіша ситуація: клієнт каже «інтегруй Белкарт», а конкретного банку-еквайра ще немає. Без договору немає API-ключів, без ключів — немає тестового середовища. Інтеграція блокується не технічно, а організаційно. Ми беремо паузу на отримання credentials, паралельно готуємо платіжний модуль додатку під абстрактний інтерфейс — PaymentGateway протокол/інтерфейс — щоб потім підставити конкретну реалізацію.
Технічно: більшість білоруських банків надають платіжну форму через redirect або iframe. Для мобільного додатку це означає SFSafariViewController на iOS або Custom Tabs на Android — точно так само, як WebView-інтеграція iPay. Нативного SDK у банків немає — працюємо з REST API та WebView-формою.
Чому 3D-Secure обов'язковий?
Специфіка Белкарт-карток: 3D-Secure обов'язковий для всіх онлайн-транзакцій. Це означає, що redirect на сторінку підтвердження банку — неминуча частина флоу. Якщо додаток намагається обробити 3DS у звичайному WKWebView без SFSafariViewController, cookies банківської сторінки можуть не зберегтися між переходами, і 3DS зависне. Використовуємо SFSafariViewController або коректно налаштовуємо WKWebView з дозволом cross-site cookies (allowsBackForwardNavigationGestures, правильний navigationDelegate). SFSafariViewController забезпечує збереження cookies, тому 3DS-флоу в SFSafariViewController в 3 рази надійніше, ніж у звичайному WebView.
Як забезпечити безпеку транзакцій Белкарт?
Белкарт-транзакції містять PAN (номер картки) в masked вигляді — не логуємо навіть маскований PAN у Crashlytics або Firebase Analytics. Дані транзакції зберігаються тільки на сервері, клієнтський додаток працює тільки з orderId та статусом. Верифікація підпису webhook — обов'язкова. Беларусбанк та БПС використовують HMAC-SHA1 або SHA256 з секретним ключем. Якщо не перевіряти — будь-хто може надіслати фейковий payment.success на ваш endpoint.
| Компонент | iOS | Android |
|---|---|---|
| Платіжна форма | SFSafariViewController | Custom Tabs (fallback WebView) |
| Глибокі посилання | Universal Links / URL Scheme | App Links / intent |
| Пуш-повідомлення | APNs (через сервер) | FCM (через сервер) |
| Логування | Обмежене (без PAN) | Обмежене (без PAN) |
Порада: Перед початком тестування переконайтеся, що сервер підтримує HTTPS та має правильну TLS-версію. Це заощаджує до 2 годин налагодження.
Типові помилки та їх вирішення
| Помилка | Причина | Рішення |
|---|---|---|
| 3DS не спрацьовує | Cookies не зберігаються між переходами | Використовувати SFSafariViewController або налаштувати WKWebView з cross-site cookies |
| Webhook не приходить | Неправильний URL або IP не в білому списку | Перевірити налаштування в особистому кабінеті банку, додати IP сервера |
| Redirect не повертається в додаток | Не налаштовані deep links | Налаштувати Universal Links / App Links або URL Scheme |
| Помилка підпису | Невірний алгоритм або секрет | Звірятися з документацією банку, використовувати HMAC-SHA256 |
Детальніше про процес
- Укладення договору еквайрингу з банком (клієнт).
- Отримання тестових credentials (1–2 тижні).
- Розробка серверної частини (створення замовлення, webhook).
- Мобільний платіжний модуль (iOS та Android).
- Тестування 3DS на реальних картках.
- Production-реліз.
- Моніторинг перших 50 транзакцій в production та підтримка протягом 2 тижнів після запуску.
Орієнтири за термінами та вартістю
Сама інтеграція — 2–3 дні після отримання API-документації та тестових ключів. Очікування договору з банком не входить в оцінку розробки. За досвідом, повний цикл від договору до релізу займає 2–4 тижні. Вартість інтеграції — від $800, що дозволяє заощадити до $2000 щорічно на комісіях. Наприклад, підключення Белкарт коштує $800, що вдвічі дешевше за підключення Stripe в регіоні ($1600). Використання Белкарт замість міжнародних карток знижує комісію на 1.5% за транзакцію.
Зв'яжіться — оцінимо ваш проект безкоштовно. Отримайте консультацію щодо вибору банку-еквайра. Замовте інтеграцію Белкарт уже сьогодні.







