История платежей
Методы для получения истории платежей пользователя и платёжных чеков.
Обзор
Модуль для получения истории платежей пользователя и нормализованных платёжных чеков.
GET /profile/payments-history
Получить историю платежей пользователя, отсортированную по дате создания по убыванию.
Rate Limit: глобальный (60 req/min)
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | Нет | Количество записей, от 1 до 1000. По умолчанию 100 |
offset | number | Нет | Смещение выборки (>= 0, по умолчанию 0) |
Пример запроса
curl -X GET "https://api.stealthsurf.net/profile/payments-history?limit=10&offset=0" \
-H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"Ответ
{
status: true,
statusCode: 200,
data: Array<{
id: number // Идентификатор записи
amount: string | null // Сумма платежа, decimal-строка
type: string | null // Тип операции из metadata.type: new_config | renewal | cloud_server | paid_option | balance_topup
method: string // Способ оплаты: sbp | card | ton | usdt | telegram_stars | balance | promocode | referral
days: number | null // Количество дней
is_paid: boolean // Оплачен ли платёж (наличие paid_at)
as_key?: boolean // Покупка ключа активации из metadata.as_key
created_at: number // Дата создания, Unix timestamp
}>
}Пример ответа
{
"status": true,
"statusCode": 200,
"data": [
{
"id": 1234,
"amount": "299.00",
"type": "new_config",
"method": "sbp",
"days": 30,
"is_paid": true,
"as_key": false,
"created_at": 1704067200
},
{
"id": 1235,
"amount": "199.00",
"type": "renewal",
"method": "card",
"days": 30,
"is_paid": true,
"as_key": false,
"created_at": 1706745600
}
]
}Поля type и as_key берутся из JSON-поля metadata платежа. Если metadata содержит некорректный JSON, они остаются значениями по умолчанию.
Для method: "promocode" поле as_key в ответе отсутствует, а type при пустом значении подставляется как new_config.
Типы платежей
| Тип | Описание |
|---|---|
new_config | Покупка новой конфигурации |
renewal | Продление конфигурации |
cloud_server | Покупка облачного сервера |
paid_option | Покупка платной опции |
balance_topup | Пополнение баланса |
Методы оплаты
| Метод | Описание |
|---|---|
sbp | Система быстрых платежей |
card | Банковская карта |
ton | TON криптовалюта |
usdt | USDT криптовалюта (также варианты usdt_* для разных сетей) |
telegram_stars | Telegram Stars |
balance | Баланс аккаунта |
promocode | Промокод |
referral | Реферальный баланс |
GET /profile/payments-history/:id/receipt
Получить нормализованный чек по записи истории платежей. Метод возвращает только платежи текущего пользователя и устанавливает заголовок Cache-Control: no-store.
Rate Limit: глобальный (60 req/min)
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | number | Да | ID записи истории платежей |
Пример запроса
curl -X GET "https://api.stealthsurf.net/profile/payments-history/1234/receipt" \
-H "Authorization: Bearer stlth_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYY"Ответ
{
status: true,
statusCode: 200,
data: {
id: number
status: "pending" | "paid"
amount: string | null
currency: string
payment_method: string
created_at: number
paid_at: number | null
service: {
type: "vpn_config" | "cloud_server" | "paid_option" | "balance" | "activation_key" | "custom" | "unknown"
action: "purchase" | "renewal" | "topup" | "transfer" | "payment" | "unknown"
title: string
details: Record<string, string | number | boolean>
}
}
}Поле service.details зависит от типа услуги:
| Тип услуги | Возможные поля details |
|---|---|
vpn_config | days, location, protocol, delivery |
cloud_server | days, location, tariff |
paid_option | days, option, location, delivery |
balance | credited_amount, credited_currency |
activation_key | days |
custom, unknown | Пустой объект или безопасные нормализованные поля |
Пример ответа
{
"status": true,
"statusCode": 200,
"data": {
"id": 1234,
"status": "paid",
"amount": "299.00",
"currency": "RUB",
"payment_method": "sbp",
"created_at": 1786356000,
"paid_at": 1786356060,
"service": {
"type": "vpn_config",
"action": "purchase",
"title": "VPN subscription",
"details": {
"days": 30,
"location": "🇩🇪 Германия",
"protocol": "vless",
"delivery": "account"
}
}
}
}Ошибки
| errorCode | message | Когда |
|---|---|---|
| 1 | not found | Платёж не найден или не принадлежит пользователю |
Помогла ли вам эта статья?