Настройка вывода криптовалюты на банковскую карту

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Настройка вывода криптовалюты на банковскую карту
Средняя
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1062
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Настройка вывода криптовалюты на банковскую карту

Вывод крипто на банковскую карту — off-ramp сценарий, при котором пользователь продаёт криптовалюту и получает деньги на дебетовую карту. Технически сложнее, чем вывод банковским переводом: не все эквайеры поддерживают push-платежи на карты, а комиссии выше.

Push-to-card механизм

В отличие от pull-транзакций (списание с карты), push-to-card использует иной API — Visa Direct или Mastercard Send. Это прямой кредит на дебетовую карту через сеть платёжной системы.

Visa Direct — поддерживает мгновенные переводы на дебетовые карты Visa в 200+ странах. Средняя скорость зачисления: 30 минут в США, несколько часов в ЕС.

Mastercard Send — аналогичный сервис для карт Mastercard.

Доступ к этим API — только через авторизованных технологических партнёров (Marqeta, Stripe Issuing, Checkout.com Payouts, Modulr).

Интеграция через Checkout.com Payouts

import httpx
import uuid

class CheckoutPayoutsClient:
    BASE_URL = "https://api.checkout.com"

    def __init__(self, secret_key: str):
        self.session = httpx.AsyncClient(
            headers={"Authorization": f"Bearer {secret_key}"}
        )

    async def payout_to_card(
        self,
        card_token: str,      # токенизированная карта
        amount: int,           # в минорных единицах (центы)
        currency: str,
        reference: str,
        recipient_name: str,
    ) -> dict:
        payload = {
            "source": {
                "type": "currency_account",
                "id": "ca_xxx",  # ваш счёт в Checkout
            },
            "destination": {
                "type": "token",
                "token": card_token,
            },
            "amount": amount,
            "currency": currency,
            "reference": reference,
            "instruction": {
                "purpose": "CRYPTO_WITHDRAWAL",
                "charge_bearer": "CRED",
                "funds_transfer_type": "FD",  # Fund Disbursement
            },
            "sender": {
                "type": "instrument",
                "reference": str(uuid.uuid4()),
                "first_name": "Platform",
                "last_name": "Name",
            },
        }

        resp = await self.session.post(
            f"{self.BASE_URL}/transfers",
            json=payload
        )
        return resp.json()

Токенизация карты для вывода

Пользователь добавляет карту для вывода — храним только токен, без PAN:

@app.post("/api/withdrawal-cards")
async def add_withdrawal_card(
    card_data: CardData,
    user: User = Depends(get_current_user)
):
    # Токенизируем через Checkout.com
    token_resp = await checkout.tokenize_card({
        "type": "card",
        "number": card_data.number,
        "expiry_month": card_data.expiry_month,
        "expiry_year": card_data.expiry_year,
        "name": card_data.holder_name,
    })

    # Верифицируем карту: небольшой charge + return
    verify_result = await verify_card_ownership(
        token=token_resp["token"],
        user_id=user.id
    )

    if verify_result.verified:
        await db.save_withdrawal_card(
            user_id=user.id,
            token=token_resp["token"],
            last4=card_data.number[-4:],
            brand=token_resp["scheme"],
        )

Ограничения и лимиты

Visa Direct имеет ограничения, которые нужно учитывать:

Параметр Значение
Максимальная сумма / транзакция $50,000 (зависит от страны)
Скорость 30 мин – 2 часа
Поддерживаемые карты Дебетовые (кредитные — не везде)
Доступные валюты 160+

Некоторые банки отклоняют входящие push-платежи от криптовалютных компаний. Процент успешных транзакций для крипто off-ramp — обычно 85–95%, остальные отклоняются на стороне банка. Нужна система автоматических повторных попыток и fallback на банковский перевод.

Верификация карты

Перед добавлением карты для вывода важно убедиться, что карта принадлежит пользователю, а не украдена. Micro-deposit verification: списываем $0.01–$1.00 и просим пользователя подтвердить сумму из выписки. Для дебетовых карт это работает через Visa/Mastercard zero-value auth с BIN lookup.

Также проверяем соответствие имени держателя карты имени в KYC-профиле пользователя — несовпадение требует дополнительной верификации.