API ДОКУМЕНТАЦИЯ

Полное руководство по интеграции Callback API

Подробная техническая документация для разработчиков. Все необходимые эндпоинты, параметры и примеры запросов для бесшовной интеграции с платформой Soprano Exchange.

Обзор Callback API

Данный документ описывает единый HTTP callback endpoint, который наша система использует для обработки создания обменов и проверки статусов. Дифференциация выполняется через параметр action в теле запроса.

Важно: Все запросы должны содержать заголовок авторизации с вашим токеном доступа.

API Endpoint

POST <yourCallbackUrl>

Заголовки запроса

Content-Type: application/json
Authorization: Bearer <your_token>

Action: Create

Инициирует новый обмен криптовалюты.

Параметры запроса

Поле Тип Описание
action string "create"
payment_method string "card" / "sbp" / "sbp_trans" / "alpha_sbp" / "sim" / "qr_sbp" / "nspk"
cryptocurrency string "BTC" или "LTC"
amount_crypto number Количество криптовалюты для обмена
address string Крипто-адрес для отправки средств
clientHash string Уникальный хеш клиента для предотвращения мошенничества

Пример запроса

{
  "action": "create",
  "payment_method": "card",
  "cryptocurrency": "LTC",
  "amount_crypto": 0.5,
  "address": "LcHKj...",
  "clientHash": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
}

Успешный ответ

При успешном выполнении, тело ответа JSON содержит:

Поле Тип Описание
invoice_id string|number Уникальный идентификатор обмена
amount_fiat number Сумма в фиатной валюте (RUB) к оплате
commission_percent number Процент комиссии
requisites string Реквизиты для оплаты (номер карты или телефона)
status string Текущий статус обмена
bank_name string|null Опционально: название банка для СБП
card_name string|null Опционально: имя держателя карты для СБП
bank_country string|null Опционально: страна банка для СБП

Пример ответа

{
  "status": "success",
  "body": {
    "invoice_id": "12345",
    "amount_fiat": 5685,
    "commission_percent": 26,
    "requisites": "+788005553535",
    "status": "created",
    "bank_name": "Международный банк Таджикистана",
    "card_name": "Иванов Иван Иванович",
    "bank_country": "Таджикистан"
  }
}

Ответ с ошибкой

{
  "status": "error",
  "error": "Description of the error"
}

Action: Check

Проверяет статус существующего обмена.

Параметры запроса

Поле Тип Описание
action string "check"
invoice_id string Идентификатор обмена для проверки

Пример запроса

{
  "action": "check",
  "invoice_id": "12345"
}

Успешный ответ

Поле Тип Описание
status string Текущий статус обмена
txid string|null Опционально: ID транзакции, если доступен

Пример ответа

{
  "status": "success",
  "body": {
    "status": "completed",
    "txid": "67b19b16611d1bad96321680c6acad7a81c7309ffa02b3644e4d1c74b62ed542"
  }
}

Ответ с ошибкой

{
  "status": "error",
  "error": "Description of the error"
}

Action: Info

Получает текущие курсы обмена и лимиты для каждой криптовалюты и метода оплаты.

Параметры запроса

{
  "action": "info"
}

Успешный ответ

При успешном выполнении, тело ответа JSON содержит информацию о всех доступных методах оплаты:

{
  "status": "success",
  "body": {
    "payment_methods": {
      "card": {
        "min_amount_fiat": 3000,
        "max_amount_fiat": 200000,
        "commission_percent": 25,
        "coins": [
          {
            "cryptocurrency": "BTC",
            "exchange_rate": 8801217.9618284
          },
          {
            "cryptocurrency": "LTC",
            "exchange_rate": 7802.4850877755
          }
        ]
      },
      "sbp": {
        "min_amount_fiat": 1000,
        "max_amount_fiat": 100000,
        "commission_percent": 25,
        "coins": [
          {
            "cryptocurrency": "BTC",
            "exchange_rate": 8801217.9618284
          },
          {
            "cryptocurrency": "LTC",
            "exchange_rate": 7802.4850877755
          }
        ]
      },
      "sbp_trans": {
        "min_amount_fiat": 2000,
        "max_amount_fiat": 100000,
        "commission_percent": 25,
        "coins": [
          {
            "cryptocurrency": "BTC",
            "exchange_rate": 8801217.9618284
          },
          {
            "cryptocurrency": "LTC",
            "exchange_rate": 7802.4850877755
          }
        ]
      }
    }
  }
}

Примечание: Курсы обмена обновляются в режиме реального времени и могут изменяться в зависимости от рыночных условий.

Action: Cancel

Отменяет статус обмена.

Параметры запроса

Поле Тип Описание
action string "cancel"
invoice_id string Идентификатор обмена для отмены

Пример запроса

{
  "action": "cancel",
  "invoice_id": "12345"
}

Успешный ответ

{
  "status": "success",
  "body": {}
}

Ответ с ошибкой

{
  "status": "error",
  "error": "Description of the error"
}

Определения статусов обмена

Поле status в теле ответа может иметь следующие значения:

Статус Описание
created Запрос на обмен получен и ожидает обработки
processing Запрос на обмен находится в процессе обработки
expired Временное окно для завершения обмена истекло, запрос больше не действителен
cancelled Запрос на обмен был отменен пользователем или системой до завершения
completed Обмен успешно обработан, средства переведены

Важно: Рекомендуется регулярно проверять статус обмена с помощью действия "check" для отслеживания прогресса транзакции.