Skip to content

Обзор API ​

Криптоплатежный шлюз предоставляет RESTful API для интеграции с вашими приложениями. API позволяет управлять адресами, обрабатывать платежи, отслеживать транзакции и выполнять выводы средств.

Интерактивное тестирование API

На этой странице обзора представлены интерактивные примеры, которые вы можете тестировать в реальном времени! Введите ваш API ключ в поля ниже и нажимайте кнопки "Тест" для отправки запросов на сервер https://cp-merch-dev.wsdemo.online/api.

При возникновении CORS ошибок:

  • Используйте кнопки "📋 Копировать curl" для получения готовых команд
  • Выполняйте команды в терминале или используйте Postman
  • Установите расширение для браузера, отключающее CORS (например, "CORS Unblock")

Базовая информация ​

Базовый URL ​

Продакшн:

https://api.your-gateway.com/api/v1

Демо/Тестирование:

https://cp-merch-dev.wsdemo.online/api

Демо-окружение

Используйте демо-окружение для тестирования и разработки. Демо API содержит тестовые данные и не обрабатывает реальные транзакции.

OpenAPI Документация: https://cp-merch-dev.wsdemo.online/api/openapi/

Версионирование ​

API использует версионирование через URL. Текущая версия: v1

Формат данных ​

  • Запросы: JSON
  • Ответы: JSON
  • Кодировка: UTF-8
  • Даты: ISO 8601 (UTC)

Аутентификация ​

API ключи ​

Все запросы к API должны включать заголовок аутентификации:

http
X-Api-Key: YOUR_API_KEY
Content-Type: application/json

Получение API ключа ​

  1. Зарегистрируйтесь в панели управления
  2. Создайте новый API ключ
  3. Настройте разрешения и ограничения
  4. Сохраните ключ в безопасном месте

Типы ключей ​

  • Только чтение: Просмотр данных
  • Запись: Создание и изменение данных
  • Полный доступ: Все операции включая выводы

Ограничения скорости ​

Лимиты по умолчанию ​

  • Общие запросы: 1000 запросов/час
  • Создание адресов: 100 запросов/час
  • Выводы средств: 50 запросов/час

Заголовки ответа ​

http
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

Превышение лимитов ​

При превышении лимитов API возвращает статус 429 Too Many Requests:

json
{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Превышен лимит запросов",
    "details": {
      "limit": 1000,
      "reset_at": "2024-01-15T12:00:00Z"
    }
  }
}

Структура ответов ​

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

json
{
  "success": true,
  "data": {
    // Данные ответа
  },
  "meta": {
    "timestamp": "2024-01-15T10:30:00Z",
    "request_id": "req_123456789"
  }
}

Ошибки ​

json
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Ошибка валидации данных",
    "details": {
      "field": "network",
      "reason": "Неподдерживаемая сеть"
    }
  },
  "meta": {
    "timestamp": "2024-01-15T10:30:00Z",
    "request_id": "req_123456789"
  }
}

HTTP статус коды ​

КодОписаниеИспользование
200OKУспешный запрос
201CreatedРесурс создан
400Bad RequestНеверный запрос
401UnauthorizedНе авторизован
403ForbiddenДоступ запрещен
404Not FoundРесурс не найден
429Too Many RequestsПревышен лимит
500Internal Server ErrorВнутренняя ошибка

Основные эндпоинты ​

Конфигурация API

Быстрые тесты API ​

Адреса ​

http
GET    /api/v1/addresses           # Список адресов
POST   /api/v1/addresses           # Создать адрес
GET    /api/v1/addresses/{id}      # Получить адрес
PUT    /api/v1/addresses/{id}      # Обновить адрес
DELETE /api/v1/addresses/{id}      # Удалить адрес

Сети ​

http
GET    /api/v1/networks            # Список сетей
GET    /api/v1/networks/{slug}     # Информация о сети
PUT    /api/v1/networks/{slug}     # Обновить сеть

Монеты ​

http
GET    /api/v1/coins               # Список монет
GET    /api/v1/coins/{slug}        # Информация о монете
POST   /api/v1/coins               # Добавить монету
PUT    /api/v1/coins/{slug}        # Обновить монету

Транзакции ​

http
GET    /api/v1/transactions        # Список транзакций
GET    /api/v1/transactions/{id}   # Детали транзакции

Выводы ​

http
POST   /api/v1/withdrawals         # Создать вывод
GET    /api/v1/withdrawals         # Список выводов
GET    /api/v1/withdrawals/{id}    # Статус вывода

Балансы ​

http
GET    /api/v1/balances            # Общие балансы
GET    /api/v1/addresses/{id}/balances  # Балансы адреса

Пагинация ​

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

http
GET /api/v1/addresses?page=1&limit=50&sort=created_at&order=desc

Параметры ​

  • page: Номер страницы (по умолчанию: 1)
  • limit: Количество записей (по умолчанию: 20, максимум: 100)
  • sort: Поле для сортировки
  • order: Порядок сортировки (asc или desc)

Ответ с пагинацией ​

json
{
  "success": true,
  "data": [
    // Массив данных
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "pages": 8,
      "has_next": true,
      "has_prev": false
    }
  }
}

Фильтрация ​

Общие фильтры ​

http
GET /api/v1/addresses?network=ethereum&type=hot&created_after=2024-01-01

Поддерживаемые операторы ​

  • eq: Равно (по умолчанию)
  • ne: Не равно
  • gt: Больше
  • gte: Больше или равно
  • lt: Меньше
  • lte: Меньше или равно
  • in: В списке
  • like: Содержит (для строк)

Примеры ​

http
# Адреса созданные после определенной даты
GET /api/v1/addresses?created_at[gte]=2024-01-01

# Транзакции с суммой больше 100
GET /api/v1/transactions?amount[gt]=100

# Адреса определенных типов
GET /api/v1/addresses?type[in]=hot,cold

Вебхуки ​

Настройка вебхуков ​

http
POST /api/v1/webhooks
{
  "url": "https://your-app.com/webhooks/crypto",
  "events": ["transaction.confirmed", "withdrawal.completed"],
  "secret": "your_webhook_secret"
}

События ​

  • transaction.detected: Транзакция обнаружена
  • transaction.confirmed: Транзакция подтверждена
  • withdrawal.created: Вывод создан
  • withdrawal.completed: Вывод завершен
  • balance.updated: Баланс обновлен

Формат вебхука ​

json
{
  "event": "transaction.confirmed",
  "data": {
    "id": "tx_123456789",
    "hash": "0xabc123...",
    "amount": "100.50",
    "coin": "usdt",
    "network": "ethereum",
    "address": "0x742d35...",
    "confirmations": 12
  },
  "timestamp": "2024-01-15T10:30:00Z"
}

SDK и библиотеки ​

Официальные SDK ​

  • Go: go get github.com/your-org/gateway-go
  • TypeScript/JavaScript: npm install @your-org/gateway-js
  • Python: pip install gateway-python

Примеры использования ​

Go ​

go
import "github.com/your-org/gateway-go"

client := gateway.NewClient("your-api-key")
address, err := client.CreateAddress(gateway.CreateAddressRequest{
    Network: "ethereum",
    Coin:    "usdt",
})

TypeScript ​

typescript
import { GatewayClient } from '@your-org/gateway-js';

const client = new GatewayClient('your-api-key');
const address = await client.createAddress({
  network: 'ethereum',
  coin: 'usdt'
});

Python ​

python
from gateway_python import GatewayClient

client = GatewayClient('your-api-key')
address = client.create_address(
    network='ethereum',
    coin='usdt'
)

Тестирование ​

Тестовая среда ​

https://api-testnet.your-gateway.com/api/v1

Тестовые данные ​

  • Используйте тестовые сети (testnet)
  • Тестовые API ключи имеют префикс test_
  • Тестовые транзакции не требуют реальных средств

Postman коллекция ​

Загрузите готовую коллекцию Postman для тестирования API:

https://api.your-gateway.com/postman/collection.json

Поддержка ​

Документация ​

  • API Reference: Подробное описание всех эндпоинтов
  • Руководства: Пошаговые инструкции
  • Примеры: Готовые примеры кода

Техническая поддержка ​

Статус сервиса ​

Проверьте текущий статус API:

https://status.your-gateway.com

Released under the MIT License.