Интеграция Transak для покупки крипты в мобильном приложении
Transak отличается от конкурентов более низкой комиссией (от 0.5% на банковский перевод), поддержкой both on-ramp и off-ramp в одном виджете, и относительно мягким KYC порогом для ряда стран. Официальный React Native SDK существует, но для нативных iOS/Android проектов интеграция идёт через WebView с кастомным URL.
Formирование URL для Transak Global
Базовый URL: https://global.transak.com
// Android — построение URL
val params = mapOf(
"apiKey" to transakApiKey,
"walletAddress" to userWalletAddress,
"network" to "ethereum", // ethereum, bsc, polygon, solana
"defaultCryptoCurrency" to "USDC",
"fiatCurrency" to "EUR",
"productsAvailed" to "BUY", // BUY, SELL, или BUY,SELL
"hideMenu" to "true", // убрать навигацию Transak
"themeColor" to "1A1A2E", // hex без #
"redirectURL" to "myapp://transak-callback",
"exchangeScreenTitle" to "Купить USDC"
)
val queryString = params.entries.joinToString("&") { (k, v) -> "$k=${URLEncoder.encode(v, Charsets.UTF_8)}" }
val widgetUrl = "https://global.transak.com/?$queryString"
Для production — API key из dashboard.transak.com. Staging ключ (STAGING_TRANSAK_API_KEY) для тестирования: тестовые карты Transak принимают 4111111111111111 с любым CVV.
Партнёрская интеграция: signature
На продакшн-аккаунте Transak требует подписанный JWT для авторизованных партнёров. Без этого виджет работает как публичный (с брендингом Transak). С партнёрской подписью — кастомный брендинг, пониженные комиссии.
// Серверная генерация JWT (Node.js)
const jwt = require('jsonwebtoken');
const payload = {
apiKey: process.env.TRANSAK_API_KEY,
walletAddress: userWalletAddress,
userData: { firstName, email } // опционально, для preKYC
};
const token = jwt.sign(payload, process.env.TRANSAK_SECRET, { expiresIn: '1h' });
// Передать token в приложение, добавить как &partnerOrderId={token}
Поддерживаемые сети и токены
Transak поддерживает 130+ стран и 90+ криптовалют. Проверить доступность для конкретной страны:
GET https://api.transak.com/api/v2/currencies?partnerApiKey={apiKey}&isBuyOrSell=BUY
Возвращает список криптовалют с доступными сетями, минимальными суммами и поддерживаемыми методами оплаты по странам. Актуальнее, чем документация.
Webhook события
Transak отправляет события через webhook на сервер. Ключевые:
-
ORDER_CREATED— пользователь инициировал покупку -
PAYMENT_DONE_MARKED_BY_USER— пользователь подтвердил оплату -
ORDER_COMPLETED— крипта отправлена на кошелёк -
ORDER_FAILED— покупка не прошла
Верификация webhook через хэш подписи — обязательна. Transak подписывает payload HMAC-SHA512 с секретным ключом.
Сроки: 2–3 дня: формирование и открытие виджета, deeplink-обработка возврата, webhook интеграция для финальных статусов, обновление баланса в приложении.







