Интеграция с Visa/Mastercard для крипто-карты

Вы запускаете криптоплатформу и хотите выпустить дебетовую карту, которая конвертирует BTC в USD за секунду до оплаты. Проблема: интеграция с Visa/Mastercard требует трёх уровней — principal member (банк с членством в сети), program manager (Marqeta/Stripe Issuing) и ваша платформа. Прямое членство

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

Часто задаваемые вопросы

Последние работы

  • 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

Вы запускаете криптоплатформу и хотите выпустить дебетовую карту, которая конвертирует BTC в USD за секунду до оплаты. Проблема: интеграция с Visa/Mastercard требует трёх уровней — principal member (банк с членством в сети), program manager (Marqeta/Stripe Issuing) и ваша платформа. Прямое членство — 12–24 месяца и капитал от $2M. Реалистичный путь для стартапа — работа через program manager, который уже имеет членство. Мы специализируемся на технической стороне такой интеграции под ключ: от выбора процессингового партнёра до запуска карточного продукта.

Наш опыт показывает, что большинство криптоплатформ выбирают Marqeta как card issuing API — это наиболее гибкое решение с поддержкой JIT Funding. Альтернатива — Stripe Issuing, но она требует предварительного фиатного резерва. Мы поможем оценить ваш проект и выбрать оптимального провайдера.

Чтобы понимать архитектуру, разберём структуру:

Visa/Mastercard Network ↓ Principal Member Bank (BIN owner) ↓ Card Program Manager (Marqeta, Stripe Issuing, Galileo) ↓ Your Crypto Platform ↓ End User 

Principal Member — банк с прямым членством в Visa/MC, выдаёт BIN-диапазоны. Program Manager — технологический посредник, предоставляет API для выдачи карт и процессинга авторизаций, берёт на себя технические и частично регуляторные обязательства. Ваша платформа обрабатывает крипто-сторону: хранение активов, конвертация, пользовательский интерфейс.

Как работает JIT Funding для крипто-карт?

Marqeta — лидирующий card issuing API, используемый Cash App, DoorDash, Coinbase Card. Работает как program manager: вы через их API выпускаете карты, они обрабатывают авторизации и через Just-In-Time (JIT) funding запрашивают у вас средства в момент каждой транзакции. Это делает Marqeta лучшим выбором для потребительских крипто-карт по сравнению со Stripe Issuing, которое требует предварительного финансирования.

JIT (Just-In-Time) Funding — механизм, при котором Marqeta не держит баланс пользователя у себя. Вместо этого в момент каждой карточной авторизации Marqeta делает webhook-запрос к вашему API, а вы отвечаете approve/decline с суммой. Это позволяет применить вашу бизнес-логику (проверить крипто-баланс, сконвертировать) в реальном времени.

// Ваш JIT Funding endpoint app.post("/marqeta/jit-funding", async (req, res) => { const { token, type, amount, currency_code, card_token } = req.body; const userId = await getUserByCardToken(card_token); const user = await getUser(userId); const cryptoAmount = await convertUSDToCrypto(amount, user.preferredAsset); const hasBalance = await reserveBalance(userId, cryptoAmount); if (!hasBalance) { return res.json({ jit_funding: { token: token, method: "pgfs.authorization", user_token: userId, amount: 0, }, }); } return res.json({ jit_funding: { token: token, method: "pgfs.authorization", user_token: userId, amount: amount, currency_code: "USD", }, }); }); 

Marqeta API — выдача карт

import Marqeta from "@marqeta/core-api"; const marqeta = new Marqeta({ applicationToken: process.env.MARQETA_APP_TOKEN, accessToken: process.env.MARQETA_ACCESS_TOKEN, baseUrl: "https://sandbox.marqeta.com/v3", }); async function createMarqetaUser(userId: string, userData: UserData) { const marqetaUser = await marqeta.users.create({ token: userId, first_name: userData.firstName, last_name: userData.lastName, email: userData.email, birth_date: userData.birthDate, address1: userData.address, city: userData.city, state: userData.state, country: userData.country, postal_code: userData.postalCode, }); return marqetaUser; } async function issueVirtualCard(userId: string) { const card = await marqeta.cards.create({ user_token: userId, card_product_token: process.env.CARD_PRODUCT_TOKEN, }); const cardDetails = await marqeta.cards.getShowPAN(card.token); return { cardToken: card.token, last4: card.last_four, expiration: card.expiration, pan: cardDetails.pan, cvv2: cardDetails.cvv_number, }; } 

Когда выбирать Stripe Issuing, а когда Marqeta?

Stripe Issuing проще в интеграции, доступен в 30+ странах. Не поддерживает JIT Funding в полной мере — баланс должен быть pre-funded на Stripe счёте, что требует держать фиатный резерв у Stripe. Это усложняет крипто-интеграцию. Подходит для B2B expense management карты, корпоративные карты с крипто-балансом. Не оптимален для consumer crypto debit cards.

Marqeta подходит для consumer карт в 2 раза лучше Stripe Issuing за счёт JIT Funding. Если ваш продукт — крипто-дебетовая карта для пользователей, выбирайте Marqeta. Для B2B expense management — Stripe Issuing.

import Stripe from "stripe"; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!); const card = await stripe.issuing.cards.create({ cardholder: cardholderId, currency: "usd", type: "virtual", status: "active", spending_controls: { spending_limits: [{ amount: 50000, interval: "daily" }], }, }); 
Параметр Marqeta Stripe Issuing
JIT Funding Да Нет (pre-funded)
Крипто-карты Отлично подходит Ограниченно (B2B)
API Мощное, гибкое Проще, меньше настроек
География Глобально 30+ стран
Стоимость выпуска карты ~$2 ~$3

Marqeta взимает около $2 за выпуск виртуальной карты и $0.10 за авторизацию. При объёме 10 000 карт в месяц экономия на фиатном резерве может составить до $50 000 в год.

Авторизации, settlement и курсовой риск

Важно понимать разницу: Authorization — проверка и блокировка средств, происходит мгновенно, ваш JIT endpoint должен отвечать за 2-3 секунды. Clearing/Settlement — фактическое списание, происходит через 1-3 рабочих дня. Refund/Reversal — отмена транзакции, может прийти через несколько дней после authorization.

app.post("/marqeta/webhook", async (req, res) => { const event = req.body; switch (event.type) { case "authorization": await holdCrypto(event.card_token, event.amount); break; case "authorization.clearing": await settleTransaction(event.transaction.token, event.amount); break; case "authorization.reversal": await releaseHold(event.transaction.token); break; case "refund": await refundCrypto(event.card_token, event.amount); break; } res.status(200).send("OK"); }); 

Как управлять курсовым риском при JIT Funding?

При холде USD суммы в крипто-эквиваленте есть риск изменения курса между authorization (T+0) и settlement (T+1..3). Три подхода:

  • Стейблкоин по умолчанию (USDC/USDT). Нет курсового риска. Пользователи хранят в стейблкоинах, оплата прямолинейна. Минус — нет крипто-апсайда.
  • Over-reservation. При авторизации резервируем сумму с буфером (+2-3%). При settlement излишек возвращается. Простое решение для небольших объёмов.
  • FX hedge. При авторизации фиксируем курс через деривативы или быстрый CEX trade. Сложнее, дороже, но точнее. Нужен для крупных объёмов или волатильных активов.

PCI DSS и регуляторный путь

Работа с номерами карт (PAN) требует PCI DSS сертификации. Уровни: SAQ A — если не обрабатываете PAN напрямую (Marqeta хранит, вы только токены), минимальные требования; SAQ D — если храните/обрабатываете PAN, полный audit, дорого. Рекомендуем использовать card tokenization (Marqeta Token Vault) — ваша система оперирует только card_token, PAN никогда не проходит через ваши серверы.

Юрисдикция Требование Срок Особенности
EU EMI лицензия (Lithuania) 6-12 мес Требуется паспортизация, партнёрство с эмитентом
UK FCA EMI 9-18 мес Высокие регуляторные требования
USA MTL в каждом штате 12-24 мес Дорого, альтернатива — партнёрство с bank
Singapore MAS Major Payment Institution 12-18 мес Требуется локальное присутствие

Минимальный путь для EU: регистрация в Литве + паспортизация. Для остального мира — партнёрство с уже лицензированным эмитентом.

Пошаговый процесс интеграции

  1. Аналитика и выбор провайдера: оценка объёмов, выбор Marqeta или Stripe Issuing.
  2. Проектирование архитектуры: JIT Funding, схема конвертации, хранение ключей.
  3. Интеграция API: выпуск карт, вебхуки, 3DS.
  4. Подключение крипто-custody: кошелёк, конвертация, резервирование.
  5. KYC/AML: интеграция с сервисами верификации.
  6. Тестирование: сценарии авторизации, settlement, refund.
  7. Комплаенс: PCI DSS, лицензирование.

Что входит в интеграцию под ключ

  • Консультация по выбору card issuing провайдера (Marqeta/Stripe Issuing)
  • Настройка JIT Funding endpoint с проверкой крипто-баланса
  • Интеграция API выпуска виртуальных и физических карт
  • Внедрение 3D Secure (3DS) для защиты транзакций
  • Интеграция KYC/AML загрузки документов
  • Помощь с PCI DSS: рекомендации по токенизации, прохождение SAQ
  • Нагрузочное тестирование и мониторинг
  • Документация и обучение команды

Сроки и ориентировочная стоимость

  • Marqeta интеграция (JIT + card issuance + webhooks): 4-6 недель
  • 3DS интеграция: +2-3 недели
  • Crypto custody + конвертация: параллельно, 4-8 недель
  • KYC/AML: 2-4 недели
  • Mobile app: 8-12 недель
  • Compliance + тестирование: 4-6 недель
  • Итого (технически): 5-7 месяцев

Инвестиции в интеграцию — от $50 000 до $200 000 в зависимости от сложности стека и объёмов. Экономия на инфраструктуре за счёт JIT Funding — до 40% по сравнению с собственным фиатным резервом.

Получите консультацию по вашему проекту — оценим архитектуру и сроки за 1-2 дня.