Интеграция с Simplex

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Интеграция с Simplex
Простой
от 1 дня до 3 дней
Часто задаваемые вопросы

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

Этапы блокчейн-разработки

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    902
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1122
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    860

Интеграция с Simplex

Simplex — платёжный процессор с фокусом на крипто-индустрию, специализирующийся на карточных платежах. В отличие от многих конкурентов, Simplex берёт на себя chargeback-риски — это ключевое преимущество для биржей и кошельков, которые иначе были бы уязвимы к картофодам.

Модель работы

Simplex использует модель "guaranteed payment": они одобряют транзакцию и гарантируют мерчанту оплату даже если пользователь впоследствии оспорит платёж. За это берётся повышенная комиссия (~3.5–5%) и проводится собственный fraud-скоринг.

Partner API интеграция

import httpx
import uuid

class SimplexClient:
    PRODUCTION_URL = "https://payments.simplexcc.com/payments/new"
    SANDBOX_URL = "https://sandbox.test-simplexcc.com/payments/new"

    def __init__(self, api_key: str, sandbox: bool = False):
        self.api_key = api_key
        self.base_url = self.SANDBOX_URL if sandbox else self.PRODUCTION_URL
        self.session = httpx.AsyncClient(
            headers={"Authorization": f"ApiKey {self.api_key}"}
        )

    async def create_payment_request(
        self,
        user_id: str,
        fiat_amount: float,
        fiat_currency: str,
        crypto_currency: str,
        wallet_address: str,
    ) -> dict:
        payment_id = str(uuid.uuid4())
        order_id = str(uuid.uuid4())

        payload = {
            "account_details": {
                "app_provider_id": "your_partner_id",
                "app_version_id": "1.0.0",
                "app_end_user_id": user_id,
                "signup_login": {"ip": "1.2.3.4"},  # IP пользователя
            },
            "transaction_details": {
                "payment_details": {
                    "quote_id": order_id,
                    "payment_id": payment_id,
                    "order_id": order_id,
                    "original_http_ref_url": "https://yourapp.com",
                    "requested_digital_amount": {
                        "currency": crypto_currency,
                        "amount": None  # рассчитывается из fiat
                    },
                    "requested_fiat_amount": {
                        "currency": fiat_currency,
                        "amount": fiat_amount
                    },
                    "destination_wallet": {
                        "currency": crypto_currency,
                        "address": wallet_address,
                    },
                }
            }
        }

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

Получение quote

Перед созданием платежа нужно получить актуальный курс:

async def get_quote(self, fiat_amount: float, fiat_currency: str,
                     crypto_currency: str) -> dict:
    resp = await self.session.get(
        "https://backend-wallet-api.simplexcc.com/wallet/merchant/v2/quote",
        params={
            "digital_currency": crypto_currency,
            "fiat_currency": fiat_currency,
            "requested_currency": fiat_currency,
            "requested_amount": fiat_amount,
            "client_ip": "1.2.3.4",
            "payment_methods": ["credit_debit_card"]
        }
    )
    data = resp.json()
    return {
        "payment_id": data["payment_id"],
        "crypto_amount": data["digital_money"]["amount"],
        "fiat_amount": data["fiat_money"]["base_amount"],
        "fee": data["fiat_money"]["total_amount"] - data["fiat_money"]["base_amount"],
    }

Webhook обработка

@app.post("/webhooks/simplex")
async def simplex_webhook(request: Request):
    data = await request.json()
    event_type = data.get("event")

    if event_type == "payment_simplexcc_approved":
        payment = data["payment"]
        # Пользователь прошёл fraud-check, можно отправлять крипто
        await initiate_crypto_delivery(
            payment_id=payment["id"],
            crypto_amount=payment["crypto_amount"],
            crypto_currency=payment["crypto_currency"],
            wallet_address=payment["destination_wallet"]["address"]
        )

    elif event_type == "payment_simplexcc_declined":
        payment = data["payment"]
        await handle_payment_declined(payment["id"])

Simplex хорошо подходит для бирж, которым нужна защита от chargebacks на карточные платежи. Покрытие: 160+ стран. Особенность: Simplex одобряет оплату, партнёр доставляет крипто — четкое разделение ответственности.