API Документация
Полное руководство по интеграции GranumCash API для приема платежей на вашем сайте
Содержание
Начало работы
Базовый URL
Получение API ключа
- Зарегистрируйтесь в системе
- Войдите в личный кабинет
- Перейдите в раздел "Настройки"
- Скопируйте ваш API ключ
Важно
Никогда не размещайте API ключ в публично доступном коде. Используйте его только на серверной стороне.
Аутентификация
Все запросы к API должны содержать заголовок авторизации с вашим API ключом:
Authorization: Bearer YOUR_API_KEY
Возможные ошибки аутентификации:
401 Unauthorized
Неверный или отсутствующий API ключ
403 Forbidden
Аккаунт заблокирован
Лимиты запросов
При превышении лимитов:
429 Too Many Requests - Слишком много запросов, повторите позже
Методы API
/create-payment
Создание нового платежа
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| amount | number | Да | Сумма платежа в USD (мин. 5.00) |
| description | string | Нет | Описание платежа (макс. 500 символов) |
| webhook_url | string | Нет | URL для уведомлений о смене статуса |
Пример запроса:
curl -X POST https://granumpay.cc/api/create-payment \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 100.00,
"description": "Оплата заказа #123",
"webhook_url": "https://your-site.com/webhook"
}'
Успешный ответ (200 OK):
{
"success": true,
"payment_id": "abc123def456...",
"payment_url": "https://granumpay.cc/payment/abc123def456...",
"amount_usd": "100.00",
"expires_at": "2025-07-01 15:30:00"
}
Возможные ошибки:
{
"success": false,
"errors": {
"amount": "Field amount is required"
}
}
/payment/{id}
Получение детальной информации о платеже
Пример запроса:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://granumpay.cc/api/payment/abc123def456...
Успешный ответ (200 OK):
{
"success": true,
"payment": {
"id": "abc123def456...",
"amount_usd": "100.00",
"received_amount_usd": "103.00",
"currency": "USDT",
"network": "TRC20",
"payment_method": "crypto",
"status": "confirmed",
"description": "Оплата заказа #123",
"commission_usd": "3.00",
"created_at": "2025-07-01 14:30:00",
"confirmed_at": "2025-07-01 14:35:00",
"expires_at": "2025-07-01 15:30:00"
}
}
Статусы платежей:
/balance
Получение текущего баланса аккаунта
Пример ответа:
{
"success": true,
"balance_usd": "1234.567890"
}
/payments
Получение истории платежей с фильтрацией
Параметры запроса:
| Параметр | Тип | Описание |
|---|---|---|
| page | number | Номер страницы (по умолчанию: 1) |
| limit | number | Количество записей на странице (макс: 100) |
| status | string | Фильтр по статусу (pending, confirmed, expired, failed) |
| currency | string | Фильтр по валюте (USDT, UAH) |
| payment_method | string | Фильтр по методу (crypto, fiat) |
| date_from | string | Дата начала (YYYY-MM-DD) |
| date_to | string | Дата окончания (YYYY-MM-DD) |
Пример запроса:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://granumpay.cc/api/payments?page=1&limit=10&status=confirmed"
Пример ответа:
{
"success": true,
"payments": [
{
"id": "abc123...",
"amount_usd": "100.00",
"received_amount_usd": "103.00",
"currency": "USDT",
"network": "TRC20",
"payment_method": "crypto",
"status": "confirmed",
"commission_usd": "3.00",
"created_at": "2025-07-01 14:30:00",
"confirmed_at": "2025-07-01 14:35:00"
}
],
"pagination": {
"current_page": 1,
"total_pages": 5,
"total_count": 47,
"per_page": 10
}
}
/create-withdrawal
Создание заявки на вывод средств
Ограничение
Вывод доступен только в USDT через сеть TRC20
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| amount | number | Да | Сумма вывода в USD (мин. 10.00) |
| currency | string | Да | Валюта (только USDT) |
| network | string | Да | Сеть (только TRC20) |
| address | string | Да | Адрес кошелька для вывода |
Пример запроса:
curl -X POST https://granumpay.cc/api/create-withdrawal \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 100.00,
"currency": "USDT",
"network": "TRC20",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}'
Успешный ответ (200 OK):
{
"success": true,
"withdrawal_id": 123
}
/withdrawals
Получение истории выводов
Параметры запроса:
page и limit работают аналогично методу /payments
Статусы выводов:
Пример ответа:
{
"success": true,
"withdrawals": [
{
"id": 123,
"amount_usd": "100.00",
"amount_after_commission": "97.00",
"currency": "USDT",
"network": "TRC20",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"status": "completed",
"commission_usd": "3.00",
"tx_hash": "1a2b3c4d5e...",
"rejection_reason": null,
"created_at": "2025-07-01 14:30:00",
"processed_at": "2025-07-01 15:45:00"
}
],
"pagination": {
"current_page": 1,
"total_pages": 3,
"total_count": 25,
"per_page": 10
}
}
/currencies
PUBLIC
Получение списка поддерживаемых валют и методов оплаты
Примечание: Этот метод не требует авторизации
Пример ответа:
{
"success": true,
"currencies": [
{
"type": "crypto",
"currency": "USDT",
"name": "Tether USD",
"networks": [
{
"network": "TRC20",
"name": "TRON (TRC20)",
"commission_percent": 3,
"min_amount_usd": 5
}
]
},
{
"type": "fiat",
"currency": "UAH",
"name": "Украинская гривна",
"methods": [
{
"method": "card",
"name": "Банковская карта"
}
],
"commission_percent": 13,
"min_amount_usd": 10
}
]
}
/rates
PUBLIC
Получение актуальных курсов валют
Пример ответа:
{
"success": true,
"rates": {
"USD": 1,
"USDT": 1.00,
"UAH": 41.50
},
"base_currency": "USD",
"updated_at": "2025-07-01 14:30:00"
}
Коды ошибок
| HTTP Код | Описание | Причины | Решение |
|---|---|---|---|
| 400 | Bad Request | Неверные параметры запроса | Проверьте правильность данных |
| 401 | Unauthorized | Неверный или отсутствующий API ключ | Проверьте заголовок Authorization |
| 403 | Forbidden | Аккаунт заблокирован | Обратитесь в поддержку |
| 404 | Not Found | Ресурс не найден | Проверьте правильность URL и ID |
| 429 | Too Many Requests | Превышен лимит запросов | Уменьшите частоту запросов |
| 500 | Internal Server Error | Ошибка сервера | Повторите запрос позже |
Формат ошибок
Все ошибки возвращаются в JSON формате:
{
"success": false,
"error": "Описание ошибки"
}
Для ошибок валидации (400 Bad Request):
{
"success": false,
"errors": {
"amount": "Field amount is required",
"address": "Invalid address format"
}
}
Webhook уведомления
Система автоматически отправляет уведомления о смене статуса платежа на указанный webhook URL.
Настройка webhook
Webhook URL можно указать при создании платежа или настроить в профиле как URL по умолчанию.
Структура уведомления
{
"payment_id": "abc123def456...",
"status": "confirmed",
"payment_method": "crypto",
"amount_usd": "100.00",
"received_amount_usd": "103.00",
"currency": "USDT",
"commission_usd": "3.00",
"description": "Оплата заказа #123",
"confirmed_at": "2025-07-01 14:35:00"
}
Подписание запросов
Все webhook запросы содержат заголовок X-Webhook-Signature с HMAC-SHA256 подписью.
Проверка подписи (PHP):
$receivedSignature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'];
$payload = file_get_contents('php://input');
$expectedSignature = hash_hmac('sha256', $payload, $secretKey);
if (hash_equals($expectedSignature, $receivedSignature)) {
// Подпись верна, обрабатываем уведомление
$data = json_decode($payload, true);
}
Важно: Всегда проверяйте подпись для обеспечения безопасности. В качестве секретного ключа используйте ваш API ключ.
Примеры cURL
# Создание платежа
curl -X POST https://granumpay.cc/api/create-payment \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 100.00,
"description": "Оплата заказа #123",
"webhook_url": "https://your-site.com/webhook"
}'
# Проверка статуса платежа
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://granumpay.cc/api/payment/abc123def456...
# Получение баланса
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://granumpay.cc/api/balance
# Список платежей с фильтрацией
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://granumpay.cc/api/payments?status=confirmed&limit=10"
# Создание заявки на вывод
curl -X POST https://granumpay.cc/api/create-withdrawal \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 50.00,
"currency": "USDT",
"network": "TRC20",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}'
# Курсы валют (без авторизации)
curl https://granumpay.cc/api/rates
# Список валют (без авторизации)
curl https://granumpay.cc/api/currencies