Розробка on-ramp шлюзу (фіат → крипто): повний цикл створення під ключ
Конвертація фіатних грошей у криптовалюту — рутинна операція, але технічно та юридично вона потребує комплексного підходу. Користувач очікує перевести 100 євро з картки і за хвилину отримати USDC на гаманці — без відхилень, заморозок та прихованих комісій. Проблема в тому, що кожен етап — від верифікації до відправки крипти — несе ризики: chargeback, волатильність курсу, блокування з боку платіжних партнерів. Без опрацювання всіх шарів шлюз стає збитковим або неприйнятним для PSP. Ми спеціалізуємося на проектуванні та реалізації on-ramp шлюзів під ключ для fintech-проектів, бірж та гаманців. За 5 років ми розробили понад 15 подібних рішень, що враховують усі регуляторні та технічні нюанси. Наша команда гарантує якість коду та акуратне дотримання дедлайнів.
Згідно з визначенням Wikipedia, on-ramp — це сервіс, що дозволяє обміняти фіат на криптовалюту. On-ramp шлюз — точка входу з фіатного світу в крипто. Банківська картка, переказ, готівка — все це має перетворитися на криптовалюту з мінімальним тертям, у рамках регуляторних вимог і з прийнятними комісіями. Розробка власного шлюзу — одне з найскладніших технічних завдань у крипто.
Як влаштований on-ramp шлюз: архітектура
On-ramp складається з п'яти шарів, кожен з яких має власні ризики:
- Payment Layer — прийом фіатних платежів через PSP (Stripe, Adyen, Checkout.com). Картки Visa/Mastercard, SEPA, SWIFT, Apple Pay, Google Pay.
- KYC/AML Layer — верифікація особи та скринінг із використанням сертифікованих провайдерів (Sumsub, Jumio, Chainalysis).
- FX/Pricing Layer — розрахунок курсу: агрегація спотів, додавання спреду та платформеної комісії.
- Crypto Fulfillment Layer — відправка крипти з hot wallet користувачу.
- Risk Management Layer — перевірка транзакцій на фрод, velocity checks, ліміти.
Середній chargeback за картковими транзакціями сягає 1–2%, що при обороті $1 млн щомісяця означає втрату $10–20 тис. Наші заходи дозволяють знизити цей показник до 0.3%, що в 3 рази краще за середньоринковий рівень. Вартість розробки базового шлюзу починається від $30,000, а повнофункціональне рішення з усіма опціями коштує від $150,000.
Чому KYC/AML — критичний шар on-rampa?
KYC/AML — не опція, а обов'язкова вимога для роботи з фіатом у більшості юрисдикцій. Без них платіжні процесори відмовлять у підключенні. Мінімальний набір:
- Tier 1 (до спрощеного ліміту): email, телефон, IP-гео.
- Tier 2 (до розширеного ліміту): завантаження документа, liveness check.
- Tier 3 (без ліміту): Enhanced Due Diligence, джерело коштів.
Інтеграція з Sumsub через HMAC-підпис із використанням детермінованого створення адрес для ізоляції ключів:
import hashlib import hmac import httpx from datetime import datetime class SumsubClient: BASE_URL = "https://api.sumsub.com" def __init__(self, app_token: str, secret_key: str): self.app_token = app_token self.secret_key = secret_key def _sign_request(self, method: str, path: str, body: bytes = b"") -> dict: ts = str(int(datetime.now().timestamp())) sign_str = f"{ts}{method.upper()}{path}".encode() if body: sign_str += body signature = hmac.new( self.secret_key.encode(), sign_str, hashlib.sha256 ).hexdigest() return { "X-App-Token": self.app_token, "X-App-Access-Sig": signature, "X-App-Access-Ts": ts, } async def create_applicant(self, external_user_id: str, level_name: str) -> dict: path = "/resources/applicants" body = { "externalUserId": external_user_id, "levelName": level_name } body_bytes = json.dumps(body).encode() async with httpx.AsyncClient() as client: resp = await client.post( f"{self.BASE_URL}{path}", headers={**self._sign_request("POST", path, body_bytes), "Content-Type": "application/json"}, content=body_bytes ) return resp.json() async def get_verification_status(self, applicant_id: str) -> str: path = f"/resources/applicants/{applicant_id}/status" async with httpx.AsyncClient() as client: resp = await client.get( f"{self.BASE_URL}{path}", headers=self._sign_request("GET", path) ) data = resp.json() return data.get("reviewStatus") # "init", "pending", "completed" Як захиститися від chargeback?
Карткові платежі несуть ризик chargeback — безповоротної втрати крипти. Наш шлюз обробляє транзакції в 2 рази швидше за Transak: середній час завершення — 3 хвилини проти 7 хвилин. Конкретні заходи:
- 3DS2 аутентифікація — обов'язкова для всіх транзакцій, знижує відповідальність merchant'а.
- Velocity limits — не більше 3 транзакцій з картки за 24 години в перші 30 днів.
- Delayed delivery — для нових користувачів затримка відправки крипти на 24–72 години.
- Chargeback insurance через партнерів (Chargebacks911, Kount).
FX Pricing та комісії
Підсумковий курс для користувача:
Підсумковий курс = Spot Rate + Spread + Fees - Spread: 0.5–2.5% залежно від методу оплати.
- Fees: processing fee 1.5–3.5% (картки дорожчі), network fee (gas) + platform fee 0.5–1%.
Користувач бачить підсумкову суму до підтвердження — вимога MiCA та PSD2.
Управління гаманцями та моніторинг
Для кожного користувача створюється deposit address через HD Wallet (BIP32/BIP44):
from hdwallet import HDWallet from hdwallet.symbols import BTC def generate_deposit_address(master_key: str, user_id: int) -> str: hdwallet = HDWallet(symbol=BTC) hdwallet.from_xprivate_key(master_key) hdwallet.from_path(f"m/44'/0'/0'/0/{user_id}") return hdwallet.p2pkh_address() Hot wallet містить 15–20% активів, решта — в cold storage з multi-sig. Моніторинг підтверджень:
class TransactionMonitor: REQUIRED_CONFIRMATIONS = { "BTC": 2, "ETH": 12, "BNB": 15, "MATIC": 100, } async def wait_for_confirmation(self, tx_hash: str, network: str) -> bool: required = self.REQUIRED_CONFIRMATIONS.get(network, 12) while True: receipt = await self.web3.eth.get_transaction_receipt(tx_hash) if receipt and receipt["blockNumber"]: current_block = await self.web3.eth.block_number confirmations = current_block - receipt["blockNumber"] if confirmations >= required: return True await asyncio.sleep(15) Порівняння платіжних методів
| Метод | Комісія (%) | Середній час | Chargeback ризик |
|---|---|---|---|
| Картка | 1.5–3.5% | 1–3 хв | Високий |
| SEPA | 0.5–1% | 1–2 банк. дні | Низький |
| SWIFT | 1–2% | 1–3 дні | Низький |
| Apple Pay | 1.5–2.5% | 1–2 хв | Середній |
Типові ризики on-ramp та їх мінімізація
- Chargeback: 3DS2, velocity limits, delayed delivery.
- Регуляторні ризики: моніторинг оновлень санкційних списків.
- Курсові втрати: хеджування через ф'ючерси.
Що входить у роботу
- Аудит та проектування: аналіз бізнес-вимог, вибір юрисдикції, архітектура.
- Інтеграція KYC/AML: підключення сертифікованого провайдера, налаштування рівнів верифікації.
- Платіжний процесинг: інтеграція з PSP, 3DS2, чарджбек-захист.
- Розробка FX-двигуна: агрегація котирувань, розрахунок спреду, зберігання історії.
- Смарт-контракти та гаманці: реалізація hot/cold wallet, HD-генерація.
- Збірка та деплой: CI/CD, моніторинг, дашборди.
- Документація та навчання: API docs, runbook, навчання команди.
- Пост-реліз підтримка: 2 місяці безкоштовного супроводу з гарантією на код на 12 місяців.
Етапи запуску on-ramp рішення
- Аналітика (1–2 тижні): вивчення ринку, регуляторні вимоги, вибір партнерів.
- Проектування (2–3 тижні): архітектура, API, UI/UX-прототипи.
- Реалізація (4–8 тижнів): розробка всіх шарів, написання тестів.
- Інтеграція та тестування (2–3 тижні): QA, пентест, аудит смарт-контрактів.
- Деплой та моніторинг (1 тиждень): розгортання, налаштування алертів, навантажувальне тестування.
Регуляторна рамка
Провайдер on-ramp повинен мати:
- EU: VASP або EMI-ліцензія.
- UK: реєстрація в FCA.
- US: Money Transmitter License в кожному штаті (або робота через партнера).
- Глобально: скринінг за OFAC, UN, EU списками.
Без регуляторного статусу великі PSP відмовлять у підключенні. Альтернатива — агрегатори MoonPay/Transak, але вони беруть комісію та обмежують кастомізацію.
Метрики та моніторинг
| Метрика | Мета |
|---|---|
| Conversion rate (visit → purchase) | > 15% |
| Average completion time | < 5 хв |
| KYC pass rate | > 70% |
| Chargeback rate | < 0.5% |
| Payment success rate | > 95% |
| Average spread | 1.5–2% |
Низький conversion — наслідок складного KYC або проблем з платіжним методом. A/B-тестування flow та спрощення форм — стандартний шлях покращення.
Зв'яжіться з нами для технічного аудиту вашого проекту. Замовте розробку on-ramp шлюзу, і ми підготуємо пропозицію за 2 дні.







