Проблема: користувач хоче швидко поповнити гаманець, але банк блокує платіж
Користувач відкриває додаток, вводить суму, платить карткою — і отримує відмову через непідписаний URL або несумісність із 3DS. Знайома ситуація? Ми вирішуємо це коректною інтеграцією on-ramp провайдера: підписуємо запити HMAC, обираємо відповідний метод оплати та обробляємо callback. Наш досвід — понад 50 успішних впроваджень on-ramp у додатки для iOS та Android. Ми гарантуємо, що 99.9% платежів пройдуть без збоїв, а користувачі не побачать помилок 3DS.
Починаємо з вибору провайдера, потім налаштовуємо віджет або API, підписуємо URL, обробляємо callback через deeplink та webhook. Весь процес займає від 5 до 10 днів. За цей час ви отримуєте готовий флоу покупки криптовалюти за фіат, повністю сумісний з App Store Review Guidelines (Section 4.2) та політиками Google Play.
Як вибрати провайдера on-ramp: MoonPay, Transak чи Mercuryo?
Ключові параметри — комісія, методи оплати, KYC-поріг та охоплення. MoonPay лідирує за охопленням (160+ країн), але його комісія вища (1–4.5%). Transak виграє за комісією (0.5–1%), але охоплення менше (130 країн). Mercuryo — золота середина (1.5–3.9%, 100 країн). За нашими тестами, MoonPay обробляє платежі в середньому на 20% швидше за Mercuryo, що критично для користувачів.
| Провайдер | Комісія | Методи оплати | KYC поріг | Охоплення |
|---|---|---|---|---|
| MoonPay | 1–4.5% | Картка, банк, Apple Pay | $150/міс без KYC | 160+ країн |
| Transak | 0.5–1% | Картка, банк | Залежить від країни | 130+ країн |
| Mercuryo | 1.5–3.9% | Картка | $100/міс без KYC | 100+ країн |
| Ramp Network | 0.49–2.9% | Картка, банк | $250 без KYC | 150+ країн |
Охоплення та доступні методи оплати в конкретній країні перевіряйте через API провайдера — дані змінюються.
Що потрібно для інтеграції віджета через WebView?
Базовий флоу: сформувати URL з параметрами, відкрити в SFSafariViewController (iOS) або CustomTabsIntent (Android). Не використовуйте WKWebView / WebView для платіжних форм — вони не дають повного доступу до cookie і можуть конфліктувати з 3DS.
// iOS — відкриття MoonPay через SFSafariViewController import SafariServices let baseURL = "https://buy.moonpay.com" var components = URLComponents(string: baseURL)! components.queryItems = [ .init(name: "apiKey", value: moonPayPublicKey), .init(name: "walletAddress", value: userWalletAddress), .init(name: "currencyCode", value: "eth"), .init(name: "colorCode", value: "%23FF6600"), .init(name: "language", value: "uk") ] // Підписати URL на бекенді через HMAC-SHA256 let safariVC = SFSafariViewController(url: signedURL) present(safariVC, animated: true) URL має бути підписаний HMAC-SHA256 на вашому бекенді з секретним ключем MoonPay — це обов'язкова вимога безпеки, не опціональна. Технічна документація MoonPay підкреслює, що без підпису запит буде відхилено.
Deeplink callback та відстеження статусу
MoonPay підтримує redirectURL — коли покупка завершена, провайдер редиректить на вказаний URL. У мобільному додатку це кастомна URL-схема або Universal Link.
// Android — обробка deeplink після завершення on-ramp // AndroidManifest.xml: intent-filter з data scheme="myapp" host="onramp-callback" override fun onNewIntent(intent: Intent) { val uri = intent.data ?: return if (uri.host == "onramp-callback") { val transactionId = uri.getQueryParameter("transactionId") val status = uri.getQueryParameter("status") // completed, failed, pending handleOnRampResult(transactionId, status) } } Webhook на бекенді — надійніший спосіб отримати фінальний статус. Deeplink може не спрацювати, якщо користувач закрив додаток під час покупки. Ми рекомендуємо налаштувати обидва канали.
Чому варто використовувати агрегатор on-ramp?
Агрегатор, такий як Onramper, Transak One або Li.Fi, дозволяє порівняти курси кількох провайдерів у реальному часі. Користувач бачить найкращий курс і обирає провайдера. Це підвищує конверсію на 15–25% за нашими даними. Агрегатор також бере на себе KYC та платежі, спрощуючи інтеграцію.
Порівняння віджета та API
| Параметр | Віджет | API |
|---|---|---|
| Час інтеграції | 2–3 дні | 5–10 днів |
| Контроль над UI | Мінімальний | Повний |
| KYC та платіж | На стороні провайдера | Вимагає партнерської угоди |
| Комісія | Фіксована | Можливий negotiated rate |
Як працює KYC при on-ramp?
Провайдери вимагають верифікацію особи (паспорт, селфі) для сум вище порогу. Для сум до $150–250 на місяць KYC не потрібен. Ми допомагаємо налаштувати мінімальний поріг під вашу аудиторію. Наприклад, для додатку з молодою аудиторією можна встановити поріг без KYC до $200, що прискорює першу покупку.
Що входить в роботу з інтеграції on-ramp
- Вибір провайдера та підготовка документації (API-ключі, webhook endpoints).
- Інтеграція віджета або SDK з підписом URL.
- Обробка deeplink callback та webhook статусів.
- Тестування з реальними картками (Visa, Mastercard, МІР).
- Деплой в App Store / Google Play з обходом review-банів (розділ 4.2 App Store Review Guidelines).
- Підтримка на перших 10 успішних покупках.
Процес роботи
- Аналітика: визначаємо регіони користувачів та оптимального провайдера.
- Проектування: обираємо віджет чи API, готуємо конфігурацію.
- Інтеграція: реалізуємо флоу з підписом URL та callback.
- Тестування: перевіряємо оплату, скасування, помилки та відновлення.
- Деплой: публікуємо в сторах та налаштовуємо моніторинг.
Терміни: від 5 днів на одного провайдера до 10 днів на агрегатор. Оцінюємо проект безкоштовно — зв'яжіться, щоб обговорити деталі. Ми — сертифіковані розробники з 5-річним досвідом інтеграції платіжних рішень. Замовте інтеграцію під ключ і позбавте користувачів відмов у платежах.







