Обзор 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 должны включать заголовок аутентификации:
X-Api-Key: YOUR_API_KEY
Content-Type: application/json
Получение API ключа
- Зарегистрируйтесь в панели управления
- Создайте новый API ключ
- Настройте разрешения и ограничения
- Сохраните ключ в безопасном месте
Типы ключей
- Только чтение: Просмотр данных
- Запись: Создание и изменение данных
- Полный доступ: Все операции включая выводы
Ограничения скорости
Лимиты по умолчанию
- Общие запросы: 1000 запросов/час
- Создание адресов: 100 запросов/час
- Выводы средств: 50 запросов/час
Заголовки ответа
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200
Превышение лимитов
При превышении лимитов API возвращает статус 429 Too Many Requests
:
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Превышен лимит запросов",
"details": {
"limit": 1000,
"reset_at": "2024-01-15T12:00:00Z"
}
}
}
Структура ответов
Успешные ответы
{
"success": true,
"data": {
// Данные ответа
},
"meta": {
"timestamp": "2024-01-15T10:30:00Z",
"request_id": "req_123456789"
}
}
Ошибки
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Ошибка валидации данных",
"details": {
"field": "network",
"reason": "Неподдерживаемая сеть"
}
},
"meta": {
"timestamp": "2024-01-15T10:30:00Z",
"request_id": "req_123456789"
}
}
HTTP статус коды
Код | Описание | Использование |
---|---|---|
200 | OK | Успешный запрос |
201 | Created | Ресурс создан |
400 | Bad Request | Неверный запрос |
401 | Unauthorized | Не авторизован |
403 | Forbidden | Доступ запрещен |
404 | Not Found | Ресурс не найден |
429 | Too Many Requests | Превышен лимит |
500 | Internal Server Error | Внутренняя ошибка |
Основные эндпоинты
Конфигурация API
Быстрые тесты API
Адреса
GET /api/v1/addresses # Список адресов
POST /api/v1/addresses # Создать адрес
GET /api/v1/addresses/{id} # Получить адрес
PUT /api/v1/addresses/{id} # Обновить адрес
DELETE /api/v1/addresses/{id} # Удалить адрес
Сети
GET /api/v1/networks # Список сетей
GET /api/v1/networks/{slug} # Информация о сети
PUT /api/v1/networks/{slug} # Обновить сеть
Монеты
GET /api/v1/coins # Список монет
GET /api/v1/coins/{slug} # Информация о монете
POST /api/v1/coins # Добавить монету
PUT /api/v1/coins/{slug} # Обновить монету
Транзакции
GET /api/v1/transactions # Список транзакций
GET /api/v1/transactions/{id} # Детали транзакции
Выводы
POST /api/v1/withdrawals # Создать вывод
GET /api/v1/withdrawals # Список выводов
GET /api/v1/withdrawals/{id} # Статус вывода
Балансы
GET /api/v1/balances # Общие балансы
GET /api/v1/addresses/{id}/balances # Балансы адреса
Пагинация
Параметры запроса
GET /api/v1/addresses?page=1&limit=50&sort=created_at&order=desc
Параметры
page
: Номер страницы (по умолчанию: 1)limit
: Количество записей (по умолчанию: 20, максимум: 100)sort
: Поле для сортировкиorder
: Порядок сортировки (asc
илиdesc
)
Ответ с пагинацией
{
"success": true,
"data": [
// Массив данных
],
"meta": {
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"pages": 8,
"has_next": true,
"has_prev": false
}
}
}
Фильтрация
Общие фильтры
GET /api/v1/addresses?network=ethereum&type=hot&created_after=2024-01-01
Поддерживаемые операторы
eq
: Равно (по умолчанию)ne
: Не равноgt
: Большеgte
: Больше или равноlt
: Меньшеlte
: Меньше или равноin
: В спискеlike
: Содержит (для строк)
Примеры
# Адреса созданные после определенной даты
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
Вебхуки
Настройка вебхуков
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
: Баланс обновлен
Формат вебхука
{
"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
import "github.com/your-org/gateway-go"
client := gateway.NewClient("your-api-key")
address, err := client.CreateAddress(gateway.CreateAddressRequest{
Network: "ethereum",
Coin: "usdt",
})
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
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: Подробное описание всех эндпоинтов
- Руководства: Пошаговые инструкции
- Примеры: Готовые примеры кода
Техническая поддержка
- Email: support@your-gateway.com
- Документация: https://docs.your-gateway.com
- GitHub: https://github.com/your-org/gateway-issues
Статус сервиса
Проверьте текущий статус API:
https://status.your-gateway.com