On/off-ramp через Ramp Network: покрокове керівництво
Уявіть: ви запускаєте крипто-додаток, користувачі масово реєструються, але застрягли на етапі введення фіату. Банківські картки дають високі комісії, а QIWI та PayPal — сірі схеми. Ми стикалися з цим не раз. Рішення — інтеграція Ramp Network, спеціалізованого on/off-ramp сервісу з фокусом на Open Banking. Їх особливість — пряме підключення до банківських акаунтів користувачів через Open Banking API в ЄС та UK, що дає комісію від 0.49% замість 2.9% у карткових гігантів. За більш ніж 5 років на ринку ми реалізували понад 50 подібних інтеграцій, і Ramp — один з найгнучкіших інструментів. Цей фіатний шлюз дозволяє купувати криптовалюту (включаючи ERC-20 токени) та виводити фіат назад, що критично для багатьох додатків.
Як інтегрувати Ramp Network у крипто-додаток?
Інтеграція ділиться на три рівні: клієнтський SDK, серверна логіка та webhook-сповіщення. Розглянемо кожен на практичних прикладах.
SDK інтеграція — для фронтенду. Підключаєте пакет @ramp-network/ramp-instant-sdk, передаєте ключ, адресу гаманця та суму. Ramp сам відмальовує віджет покупки. Ми рекомендуємо використовувати swapAmount в wei та fiatValue для прив'язки до фіатної суми. Це знижує slippage в умовах волатильності.
import { RampInstantSDK } from '@ramp-network/ramp-instant-sdk'; const ramp = new RampInstantSDK({ hostAppName: 'Your App Name', hostLogoUrl: 'https://yourapp.com/logo.png', hostApiKey: process.env.RAMP_API_KEY, swapAsset: 'ETH_ETH,MATIC_POLYGON', userAddress: walletAddress, swapAmount: '50000000000000000', fiatCurrency: 'EUR', fiatValue: 100, userEmailAddress: user.email, }); ramp.on('PURCHASE_CREATED', (purchase, _purchaseViewToken, apiUrl) => { console.log('Purchase created:', purchase); }); ramp.on('PURCHASE_SUCCESSFUL', (purchase) => { handleSuccess(purchase); }); ramp.show(); Server-side API — для перевірки статусів та отримання списку активів. Використовуємо JWT-аутентифікацію з короткоживучими токенами. Приклад на Python з httpx:
import httpx import jwt from datetime import datetime, timedelta class RampClient: BASE_URL = "https://api.ramp.network/api" def __init__(self, api_key: str, secret: str): self.api_key = api_key self.secret = secret async def get_purchase(self, purchase_id: str) -> dict: token = jwt.encode( {"iss": self.api_key, "exp": datetime.utcnow() + timedelta(minutes=5)}, self.secret, algorithm="HS256" ) async with httpx.AsyncClient() as client: resp = await client.get( f"{self.BASE_URL}/purchases/{purchase_id}", headers={"Authorization": f"Bearer {token}"} ) return resp.json() async def get_supported_assets(self) -> list: async with httpx.AsyncClient() as client: resp = await client.get(f"{self.BASE_URL}/host-api/assets", params={"hostApiKey": self.api_key}) return resp.json()["assets"] Webhook — для отримання подій у реальному часі. Ramp підписує запити JWT з публічним ключем. Обов'язково перевіряйте підпис:
@app.post("/webhooks/ramp") async def ramp_webhook(request: Request): auth = request.headers.get("Authorization", "").replace("Bearer ", "") try: payload = jwt.decode(auth, RAMP_PUBLIC_KEY, algorithms=["RS256"]) except jwt.InvalidTokenError: raise HTTPException(403) event = await request.json() if event["type"] == "CREATED" and event["purchase"]["status"] == "RELEASING": await process_pending_purchase(event["purchase"]) Чому Ramp Network — оптимальний вибір для on-ramp?
Порівняємо з іншими популярними провайдерами за ключовими параметрами:
| Параметр | Ramp Network | MoonPay | Transak |
|---|---|---|---|
| Комісія Open Banking | 0.49% | 1.0% | 1.5% |
| Комісія картки | 2.9% | 4.5% | 3.5% |
| Прямий банківський переказ | Так (SEPA) | Ні | Ні |
| Off-ramp | Так | Так | Так |
| KYC на стороні провайдера | Так | Так | Так |
| Кастомізація UI | SDK + iframe | iframe | iframe |
Виграш у комісіях при Open Banking — у 6 разів краще MoonPay. Для проєктів з європейськими користувачами це критично. При обсязі €100 000 на місяць ви заощадите до €2 500 на комісіях.
Що входить в процес інтеграції?
Процес складається з етапів: аналітика → налаштування SDK → серверна логіка → тестування → деплой. Ми готуємо повний комплект для запуску on/off-ramp:
| Етап | Тривалість | Опис |
|---|---|---|
| Аналітика | 1-2 дні | Вивчаємо архітектуру вашого додатку, визначаємо точки інтеграції. |
| Налаштування SDK | 2-3 дні | Підключаємо фронтенд, налаштовуємо параметри віджету. |
| Серверна логіка | 2-4 дні | Реалізуємо вебхуки, перевірку підписів, обробку статусів покупок. |
| Тестування | 2-3 дні | Перевіряємо всі сценарії: успішна покупка, помилки, повернення. |
| Деплой | 1 день | Розгортаємо в продакшн, налаштовуємо моніторинг. |
Додатково ми надаємо:
- Документацію: опис інтеграції, специфікація webhook, схеми обробки помилок.
- Доступи: налаштування API-ключів, вебхуків, тестового середовища.
- Кастомний UI: віджет, адаптований під ваш дизайн, з підтримкою темної теми.
- Навчання команди: воркшоп з моніторингу та обробки повернень.
- Підтримка: 2 тижні технічного супроводу після деплою.
Налаштування webhook: ендпоінт повинен бути доступний за HTTPS і повертати 200 OK. Ramp повторює запити до 3 разів з експоненціальною затримкою. Обов'язково логуйте всі події для налагодження.
Які типові помилки допускають при інтеграції Ramp?
- Закінчення JWT — токен живе 5 хвилин, налаштуйте автоматичне оновлення.
- Невірний swapAsset — перевіряйте формат:
ASSET_NETWORK. Наприклад,ETH_ETHабоMATIC_POLYGON. - Пропущений webhook — обов'язково реалізуйте повторну обробку після успішної верифікації KYC.
- Некорректний fiatValue — передавайте суму з двома знаками після коми, інакше можливий slippage.
Терміни та вартість
Орієнтовні терміни: від 5 до 14 робочих днів залежно від складності. Вартість розраховується індивідуально — зв'яжіться з нами для безкоштовної оцінки. Ми гарантуємо прозорість та фіксацію ціни на старті.
Додаткова інформація
Згідно з Ramp Network API documentation, ви можете інтегрувати як on-ramp, так і off-ramp, використовуючи єдиний SDK. Детальніше про можливості сервісу можна прочитати на Wikipedia.
Отримайте консультацію з інтеграції — обговоримо деталі вашого проєкту. Замовте інтеграцію сьогодні і почніть приймати фіат вже через тиждень.







