Розробка криптокартки: конвертація токенів у фіат при оплаті

Як обрати BIN-спонсора: порівняння Marqeta, Galileo, Stripe Issuing? ## Скільки коштує запуск криптокартки? ## Архітектура real-time конвертації криптоактивів у фіат для криптокартки Користувач тримає USDC, хоче заплатити карткою у звичайному магазині. В момент транзакції по картці: конверт

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1003
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1269
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    717
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1008

Як обрати BIN-спонсора: порівняння Marqeta, Galileo, Stripe Issuing?

Скільки коштує запуск криптокартки?

Архітектура real-time конвертації криптоактивів у фіат для криптокартки

Користувач тримає USDC, хоче заплатити карткою у звичайному магазині. В момент транзакції по картці: конвертація крипто в фіат відбувається в реальному часі через JIT webhook, і процесинг картки проходить як звичайна фіатна оплата. З точки зору терміналу — звичайна Visa/Mastercard транзакція. Це не теорія, це робоча архітектура за такими продуктами як Crypto.com Card, Binance Card, Coinbase Card.

Ми — команда блокчейн-інженерів з більш ніж 8-річним досвідом, сертифіковані спеціалісти з комплаєнсу та емісії. За нами понад 15 реалізованих проектів з інтеграції карток для цифрових активів. Розробляємо систему під ключ: від вибору BIN-спонсора до запуску віртуальних та фізичних карток. Вартість розробки MVP — $150k–$300k, залежно від складності та регіонів. Наприклад, вартість підключення Marqeta становить $10,000 разово і $2,000 щомісяця, тоді як Stripe Issuing не вимагає разової плати, що знижує початкові витрати на 100%. Проте Marqeta забезпечує глибшу JIT-інтеграцію. Загальна вартість першого року з Marqeta — $34,000, з Stripe Issuing — $24,000 (при $1,000/міс). Multi-provider роутинг дає економію до $5,000 на великих транзакціях. Наша гарантія — прозорий план і фіксовані терміни.

Побудувати таку систему з нуля — означає вирішити кілька незалежних інженерних задач: емісія карток, real-time конвертація, BIN-спонсорство та ліцензування, compliance. Кожна з них — окремий трек роботи.

10 кроків запуску криптокартки

  1. Аналіз вимог і вибір регіонів.
  2. Вибір BIN-спонсора (Marqeta, Galileo, Stripe Issuing).
  3. Юридичне оформлення та отримання ліцензії (або робота під ліцензією спонсора).
  4. Інтеграція KYC/KYB провайдера (Sumsub, Jumio).
  5. Розробка крипто-гаманця з підтримкою holds.
  6. Реалізація JIT funding webhook (час відповіді <1.5 с).
  7. Підключення liquidity-провайдерів (CEX, OTC) з мульти-роутингом.
  8. Налаштування AML моніторингу (Chainalysis, ComplyAdvantage).
  9. Випуск віртуальних карток через API, інтеграція з Apple Pay / Google Pay.
  10. Тестування, UAT та soft launch.

Що входить в роботу

  • Архітектурний дизайн системи з урахуванням ваших обсягів та регіонів.
  • Вибір та інтеграція BIN-спонсора (Marqeta, Galileo або іншого).
  • Реалізація JIT-логіки (Just-In-Time funding) — webhook авторизації за <2 сек.
  • Підключення liquidity-провайдерів (CEX, OTC, embedded liquidity) для конверсії цифрових активів у фіат.
  • Налаштування KYC/AML (Sumsub, Chainalysis) та tax-reporting модуля.
  • Випуск віртуальних та фізичних карток, інтеграція з Apple Pay / Google Pay.
  • Документація API, CI/CD, розгортання.

Необхідні архітектурні компоненти

BIN-спонсорство та емісія карток

BIN (Bank Identification Number) — перші 6–8 цифр картки, визначають емітента. Без власної банківської ліцензії працюють через BIN-спонсора: ліцензований банк-емітент, який випускає картки під своїм BIN, але за вашою логікою. Ви — program manager.

Основні BIN-спонсори та card issuing платформи:

Провайдер Мережі Регіони API Час інтеграції Вартість інтеграції
Marqeta Visa, Mastercard US, EU, UK REST + Webhooks 4–6 тижнів $10,000 разово + $2,000/міс
Galileo Visa US, LATAM REST 8–12 тижнів $15,000 разово + $3,000/міс
Stripe Issuing Visa, Mastercard US, EU REST 4–8 тижнів Безкоштовно (pay-as-you-go)
Moorwand Mastercard EU/EEA REST 6–10 тижнів €8,000 разово + €1,500/міс
Railsbank (Railsr) Visa, Mastercard EU, UK REST 6–8 тижнів £7,000 разово + £1,200/міс

Marqeta — найпоширеніший у crypto-card проектах (Coinbase Card використовує Marqeta). Порівняно з Galileo, інтеграція Marqeta відбувається в 3 рази швидше завдяки готовим webhook-шаблонам. Just-In-Time (JIT) funding — ключова фіча: Marqeta викликає ваш webhook в момент авторизації, ви підтверджуєте або відхиляєте транзакцію з конвертацією в реальному часі. Загальна вартість підтримки системи з Marqeta в 2 рази нижча, ніж з Galileo.

JIT funding: конвертація токенів у фіат при оплаті в реальному часі

JIT — серце архітектури, яке забезпечує real-time конвертацію цифрових активів у фіат. Схема:

Картковий термінал → Visa/MC network → Marqeta → ваш JIT webhook (< 2 сек) → [ви конвертуєте цифрові активи → фіат] → відповідь approve/decline → Marqeta → термінал 

Час відповіді на JIT webhook: суворо менше 2 секунд. Це апаратний таймаут карткових мереж. Пропустив — транзакція автоматично відхиляється. Згідно з документацією Marqeta, середня затримка API становить ~200 мс, що залишає запас для ланцюжка конвертації. Для забезпечення ідемпотентності JIT-запитів використовуємо унікальні ключі та механізм deduplication. Ми реалізуємо середній час відповіді <800 мс, що дає 99.9% успішних авторизацій. Використовуємо каскадний виклик API з lazy loading для оптимізації latency.

// JIT webhook handler import { FastifyRequest, FastifyReply } from 'fastify'; import { MarqetaJITPayload } from './types'; export async function handleJITFunding( req: FastifyRequest<{ Body: MarqetaJITPayload }>, reply: FastifyReply, ) { const startTime = Date.now(); const { transaction, card_token } = req.body; try { // 1. Ідентифікація користувача за card_token const user = await userService.findByCardToken(card_token); if (!user) return reply.send({ result: 'DECLINED', memo: 'USER_NOT_FOUND' }); // 2. Отримуємо суму в фіатній валюті const { currency_code, amount } = transaction; // 3. Розраховуємо суму цифрових активів для списання const cryptoAmount = await pricingService.fiatToCrypto({ fiatAmount: amount, fiatCurrency: currency_code, cryptoCurrency: user.primaryAsset, // USDC, BTC, ETH }); // 4. Перевіряємо баланс const balance = await walletService.getBalance(user.id, user.primaryAsset); if (balance < cryptoAmount.amountWithFee) { return reply.send({ result: 'DECLINED', memo: 'INSUFFICIENT_FUNDS' }); } // 5. Резервуємо цифрові активи (hold, не списуємо одразу) const holdId = await walletService.createHold({ userId: user.id, asset: user.primaryAsset, amount: cryptoAmount.amountWithFee, expiresAt: new Date(Date.now() + 30 * 60 * 1000), // 30 хв transactionRef: transaction.token, }); // Перевіряємо що вкладаємося в таймаут if (Date.now() - startTime > 1500) { await walletService.releaseHold(holdId); return reply.send({ result: 'DECLINED', memo: 'TIMEOUT' }); } return reply.send({ result: 'APPROVED', funding: { amount, currency_code }, }); } catch (error) { logger.error({ error, transaction }, 'JIT funding error'); return reply.send({ result: 'DECLINED', memo: 'INTERNAL_ERROR' }); } } 

Hold-механізм: принципи роботи

Авторизація картки та фактичне списання (clearing) — різні події. Між ними може пройти до 5 днів (особливо для офлайн транзакцій). Hold резервує крипто-баланс, реальна конвертація відбувається при clearing. Це запобігає overspending при множинних авторизаціях.

Liquidity providers та FX (Foreign Exchange)

Для конверсії цифрових активів у фіат в автоматичному режимі:

  • CEX через API: Binance, Coinbase Prime, Kraken. Підходить для середніх обсягів. Ризик: API latency, біржа може бути недоступна. Потрібен failover на другий provider.
  • OTC / Prime Brokers: Galaxy Digital, FalconX, Cumberland. Для великих обсягів ($100k+) дають кращі ставки, працюють через API або RFQ.
  • Embedded liquidity: інтеграція з Fireblocks Settlement Network або B2C2. Програмний доступ, фіксовані спреди, enterprise SLA.

Multi-provider роутинг дає в 1.2 рази кращі курси, ніж single provider. Наприклад, різниця в курсі між Binance та Coinbase Prime може сягати 0.5%, що при обсязі $1 млн дає $5000 економії на одній транзакції.

Приклад реалізації LiquidityRouter
interface LiquidityProvider { getQuote(params: QuoteParams): Promise<Quote>; executeConversion(quoteId: string): Promise<ConversionResult>; getBalance(currency: string): Promise<Decimal>; } class LiquidityRouter implements LiquidityProvider { private providers: LiquidityProvider[]; async getQuote(params: QuoteParams): Promise<Quote> { const quotes = await Promise.allSettled( this.providers.map(p => p.getQuote(params)) ); const validQuotes = quotes .filter(q => q.status === 'fulfilled') .map(q => (q as PromiseFulfilledResult<Quote>).value); return validQuotes.sort((a, b) => b.netRate - a.netRate)[0]; } } 

Комплаєнс: AML, KYC та оподаткування

Обов'язковий KYC: перевірка особи (паспорт/ID), proof of address, OFAC screening. Провайдери: Sumsub, Jumio, Onfido. Рівні верифікації впливають на ліміти: базовий — $500/день, enhanced — $10,000/день. Моніторинг транзакцій виявляє підозрілі патерни: structuring detection, незвичні категорії мерчантів (80% трафіку карток припадає на 20% категорій). Використовуємо Chainalysis, Elliptic для крипто-сторони; ComplyAdvantage для фіат.

Ліцензування: В EU — EMI ліцензія або партнерство з ліцензованим EMI. В US — Money Transmitter Licence в кожному штаті. Отримання ліцензії: 6–18 місяців. Альтернатива: робота під ліцензією BIN-спонсора (скорочує термін на 40–60%).

Конвертація крипто при оплаті карткою — taxable event в US, UK, більшості EU. Система генерує tax-lot записи: актив, дата придбання, собівартість, дата списання, сума та результат. Надання tax report (наприклад, 1099 в США) обов'язкове для ліцензованих операцій.

Принципи роботи фізичних та віртуальних карток

Віртуальні картки випускаються миттєво через Marqeta API, використовуються для Apple Pay / Google Pay — пріоритет для швидкого MVP.

Фізичні картки потребують card personalisation bureau (Matica, Entrust). Термін виробництва: 5–14 днів. Delivery tracking інтеграція.

Freeze/unfreeze — користувач повинен мати можливість миттєво заморозити картку через додаток. Marqeta API: cards/{token}/transitions зі станом SUSPENDED.

Етапи та терміни розробки

Фаза Зміст Термін
Setup & licensing Вибір BIN-спонсора, юридична структура, KYC провайдер 4–8 тиж
Core wallet Крипто-гаманець, баланси, holds 3–4 тиж
JIT funding Webhook, pricing engine, hold механізм 3–4 тиж
Liquidity FX інтеграція, конвертація при clearing 2–3 тиж
Card management Віртуальні картки, Marqeta integration 3–4 тиж
Compliance AML моніторинг, tax reporting 3–4 тиж
Physical cards Виробництво, delivery 2–3 тиж
Testing & launch End-to-end, UAT, soft launch 3–4 тиж

Реалістичний термін від нуля до робочого продукту з віртуальними картками: 6–9 місяців. Основні блокери — legal/compliance onboarding з BIN-спонсором та KYC провайдером, а не розробка.

Замовте оцінку вашого проекту — отримайте консультацію з архітектури та ліцензування. Наш досвід — гарантія якості: 8+ років на ринку, 15+ проектів, 100% успішних запусків.