VangardPay — Merchant Portal 1.0

Единый портал для мерчантов VangardPay — руководство по работе с платформой, управлению балансом и разрешению апелляций.

menu_book VangardPay — Merchant Portal
├── rocket_launch Быстрый старт
├── work Личный кабинет
│ ├── Депозит (ввод USDT)
│ ├── История операций
│ ├── Финансовая отчётность
│ └── Портал апелляций
├── balance Апелляции
│ ├── Типы апелляций
│ ├── Требования к доказательствам
│ ├── Процедура рассмотрения
│ └── Сроки (SLA)
├── currency_exchange Расчёты и конвертация
│ ├── Курсообразование
│ └── Формула начислений
├── gavel Правила и ответственность
│ ├── Условия сотрудничества
│ ├── Комплаенс-требования
│ └── Защита от парсинга
├── integration_instructions API Reference
│ ├── Аутентификация
│ ├── Баланс
│ ├── Pay-In
│ ├── Pay-Out
│ ├── Апелляции
│ └── Справочники
└── edit_note Changelog


rocket_launch Быстрый старт

Добро пожаловать в VangardPay. Ниже — пять шагов, чтобы начать принимать платежи.

Шаг Действие Где
1 Получите доступ к Merchant Dashboard от вашего менеджера
2 Настройте вебхуки и получите API-ключи Dashboard → Настройки → API
3 Выполните тестовый платёж в Sandbox-среде API Reference → Pay-In
4 Переключитесь на Production и начните приём платежей Dashboard → Настройки

work Merchant Dashboard

Вывод средств

Доступный баланс отображается на главном экране Dashboard. Для вывода нажмите «Вывести».

Параметр Значение
Комиссия за вывод 3.5 USDT за операцию
Время обработки до 60 минут в рабочие часы (10:00–00:00 МСК)
Допустимые адреса Только верифицированные кошельки. При использовании нескольких адресов — предварительно согласуйте с финансовым отделом
block
Вывод на площадки, находящиеся под санкциями, запрещён. Такие транзакции будут отклонены.

История операций(CTO, переделай под наши поля)

Раздел отображает полную историю движения средств по вашему балансу.

Доступные фильтры:

Данные в таблице:

Столбец Описание
ID Уникальный идентификатор операции
Дата Дата и время создания
Баланс до Состояние баланса до операции
Сумма Сумма операции в USDT
Баланс после Состояние баланса после операции
Описание Тип и номер связанной транзакции

Финансовая отчётность (экспорт)

Выгрузка статистики в формате Excel за произвольный период.

Как выгрузить:

  1. Откройте Dashboard → Отчётность
  2. Укажите период (начальная и конечная дата)
  3. Нажмите «Экспорт»

Состав отчёта:


История транзакций

Раздел содержит все транзакции в финальном статусе: Успешно или Отклонено.

Типичные причины отклонения:

Доступные фильтры: дата, статус, способ оплаты, внешний ID (ExtID), внутренний ID.

Данные в таблице:

Столбец Описание
Статус Успешно / Отклонено
Баланс (USDT) Баланс после операции
Сумма (USDT) Эквивалент в USDT
Курс Курс конвертации
Сумма (фиат) Сумма в локальной валюте
Реквизиты Маскированные данные получателя
Дата Дата и время создания
Метод Способ оплаты (Card / SBP / QR)
#ID Уникальный идентификатор транзакции

balance Апелляции

Если плательщик выполнил перевод корректно (верная сумма, верные реквизиты, в установленный срок), транзакция закрывается автоматически. В остальных случаях требуется ручное разбирательство — апелляция.

Классификация апелляций

Категория A. Ошибка плательщика

Качество информирования плательщика на платёжной форме напрямую влияет на количество апелляций. Рекомендуем максимально проработать UX вашей платёжной страницы.

Код Тип Описание
A-1 Неполная оплата Плательщик перевёл сумму меньше указанной в ордере. Распространённые причины: удержание комиссии банком, невнимательность, ошибка ввода
A-2 Избыточная оплата Перечислена сумма больше указанной. При значительном превышении (например, реквизиты на 5 000, оплата 500 000) существует высокий риск, что средства не будут зачислены
A-3 Просроченная оплата Перевод выполнен после истечения срока действия ордера. Платформа не несёт ответственности за такие переводы
A-4 Устаревшие реквизиты Плательщик использовал реквизиты из предыдущего ордера для оплаты нового
A-5 Неверный банк-получатель При оплате через СБП указан конкретный банк, но перевод направлен в другой. Средства могут поступить на заблокированный счёт
A-6 Дробление платежа Оплата одного ордера несколькими переводами. Автоматическое сопоставление невозможно — требуется ручная обработка

Категория B. Фрод

Код Тип Описание
B-1 Поддельное подтверждение Предоставлен сфальсифицированный чек или скриншот
B-2 Повторное использование чека Один чек используется для подтверждения нескольких разных ордеров
B-3 Прочее Иные случаи мошенничества. Детали предоставляются в рамках индивидуального разбора

Категория C. Техническая ошибка

В редких случаях автоматика платформы может не обработать корректный платёж. Причины: сбой на стороне банка, задержка SMS-подтверждения, проблемы со связью. VangardPay постоянно совершенствует систему для минимизации таких случаев.


Требования к доказательствам

Для успешного рассмотрения апелляции необходимо предоставить подтверждающие документы в одном из следующих форматов:

Банковский чек (PDF)

Видеозапись экрана

Банковская выписка

Аудиозапись звонка в банк


Процедура рассмотрения апелляций

analytics Диаграмма процесса (см. описание ниже)

Подача апелляции

Мерчант создаёт апелляцию через API (рекомендуется) или через Портал апелляций. Апелляция поступает трейдеру на рассмотрение.

lightbulb
**Рекомендация:** прикладывайте видеозапись экрана сразу при создании апелляции. Это ускоряет рассмотрение и позволяет закрыть спор на первом этапе — без промежуточных запросов.

Рассмотрение трейдером

Вторичная апелляция (2 этапа)

Вторичная апелляция возможна только при отклонении по причине «Платёж не обнаружен». Следующие причины отклонения являются окончательными и не подлежат вторичной апелляции:

warning
**Максимальное количество раундов по одной транзакции — 2** (первичная апелляция → вторичная апелляция). После этого вопрос закрыт.

Иерархия веса доказательств (от слабого к сильному):

Приоритет Тип доказательства
1 (низший) Чек плательщика (PDF)
2 Банковская выписка (трейдера или плательщика)
3 Видеозапись плательщика
4 (высший) Видеозапись трейдера

Этап 1. Первичная апелляция

Мерчант создаёт апелляцию и прикладывает чек плательщика. Апелляция поступает трейдеру.

Действия трейдера:

warning
**Важно:** при отклонении трейдер **обязан** приложить банковскую выписку, подтверждающую отсутствие поступления. Отклонение без выписки не принимается системой.

После отклонения апелляция передаётся саппорту — саппорт проверяет документы трейдера и пересылает их мерчанту с запросом дополнительных доказательств (видео).

Действия мерчанта (ожидание ответа):

lightbulb
**Шорткат:** если мерчант приложил **видеозапись** (а не чек) сразу при создании первичной апелляции, трейдер может отклонить её **только** приложив встречное видео. Вторичная апелляция в этом случае **исключается** — вопрос решается сразу.

Этап 2. Вторичная апелляция

Трейдер получает вторичную апелляцию с видео плательщика.

Действия трейдера:

info
**Почему 3 банковских дня?**
  • Платёж может находиться на проверке службой безопасности банка
  • Банку требуется до 3 рабочих дней на рассмотрение
  • За это время платёж либо зачислится, либо вернётся отправителю
lightbulb
**Рекомендация:** прикладывайте видеозапись плательщика сразу при создании первичной апелляции. Это позволяет закрыть спорную ситуацию быстрее — без промежуточных этапов и дополнительных запросов.
warning
Апелляция считается активной только после того, как связанная транзакция перейдёт в финальный статус «Отклонено». До этого момента заявка не рассматривается.

Сроки рассмотрения (SLA)

Служба апелляций работает круглосуточно, 7 дней в неделю.

Возраст транзакции Время суток (МСК) Максимальный срок ответа
0–48 часов 10:00–23:59 45 минут
0–48 часов 00:00-10:00 До 10:00 утра
2–14 дней любое 5 банковских дней
Вторичная апелляция (срок ответа трейдера) любое 3 банковских дня
Ответ мерчанта на доказательства трейдера любое 24 часа
Старше 14 дней Не принимается

currency_exchange Расчёты и конвертация

Курсообразование

Все расчёты на платформе выполняются по рыночному курсу, сформированному на основе агрегированных данных P2P-площадок (ByBit, Rapira и др.). Курс обновляется в реальном времени.

Детальная методика курсообразования для каждой поддерживаемой валютной пары предоставляется по запросу через вашего менеджера.


Формула начислений

При зачислении средств на баланс мерчанта из суммы платежа удерживается комиссия. Расчёт производится в три этапа.

Исходные данные:

Все промежуточные значения округляются до 2 знаков после запятой по стандартным математическим правилам (≥ 0.005 → вверх).

Этап Формула Пример (amount=10 000₽, rate=95.53, fee=12%)
1. Конвертация в USDT usdt = round(amount / rate, 2) round(10000 / 95.53, 2) = 104.68
2. Расчёт комиссии commission = round(usdt × fee / 100, 2) round(104.68 × 12 / 100, 2) = 12.56
3. Зачисление на баланс credit = usdt − commission 104.68 − 12.56 = 92.12 USDT

gavel Правила и ответственность

Настоящий раздел определяет обязательства мерчанта при работе с платформой VangardPay. Нарушение условий может повлечь финансовую ответственность в соответствии с заключённым договором.

1. Соответствие согласованным параметрам трафика

Изменение типа или географии трафика без предварительного согласования с VangardPay не допускается. При выявлении несоответствия между фактическими параметрами трафика и условиями договора платформа вправе применить штрафные санкции.

2. Раскрытие информации об источниках трафика

Мерчант обязан предоставлять полные и достоверные сведения обо всех источниках трафика. Сокрытие информации или предоставление ложных данных влечёт ответственность согласно условиям договора.

3. Добросовестность транзакций

Мерчант несёт ответственность за качество предоставляемых заявок. Намеренная подача недобросовестных или фиктивных ордеров является грубым нарушением условий сотрудничества.

4. Комплаенс при обменных операциях

Использование платформы для приобретения плательщиком товаров, предметов или услуг, запрещённых законодательством соответствующей юрисдикции, строго запрещено.

5. Компенсация убытков

Если действия мерчанта или плательщиков, действующих от имени мерчанта, привели к материальному ущербу для трейдеров платформы, мерчант обязан возместить убытки в полном объёме. Возмещение производится путём списания средств с баланса после предоставления платформой обоснованных доказательств.

Ежемесячно (30-го числа) VangardPay направляет мерчанту акт сверки с детализацией всех случаев.

6. Информирование плательщиков

Мерчант обязан доводить до плательщиков правила совершения платежей и последствия их нарушения. Рекомендуется размещать краткую инструкцию непосредственно на платёжной форме.

7. Защита от автоматизированных атак

Мерчант обязан реализовать на своей стороне защиту от парсинга и перебора платёжных реквизитов (rate limiting, CAPTCHA, мониторинг аномалий).



API Reference

Полная техническая документация для интеграции с платёжной платформой VangardPay. Все запросы выполняются через HTTPS.

vpn_key

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

API-ключ выдаётся администратором. Передавайте его в заголовке X-API-Key

webhook

Вебхуки

POST-уведомления отправляются на ваш callbackUrl при каждом изменении статуса ордера

dns

Базовый URL

https://api.vangardpay.com

Быстрый старт

  1. Получите API-ключ у администратора VangardPay
  2. Добавьте X-API-Key заголовок ко всем запросам
  3. Создайте первый ордер через POST /api/orders/create
  4. Настройте вебхуки для получения уведомлений о статусах

Формат ответов

Все ответы возвращаются в формате JSON. При ошибке возвращается объект:

{
  "statusCode": 400,
  "errorCode": "BAD_REQUEST",
  "message": "Описание ошибки",
  "timestamp": "2026-01-01T00:00:00.000Z"
}

Подпись вебхуков

Для верификации подлинности вебхуков проверяйте заголовок X-Signature:

signature = sha256(invId + status + amount + timestamp, callbackSecret)

Пример проверки на Node.js:

const crypto = require('crypto');
const expected = crypto
  .createHmac('sha256', callbackSecret)
  .update(invId + status + amount + timestamp)
  .digest('hex');
const isValid = expected === receivedSignature;

key Authentication

Авторизация и управление сессиями

POST /api/auth/login
Вход в систему
Пример запроса
curl -X POST https://api.vangardpay.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "merchant@example.com", "password": "your_password"}'
Параметры
ИмяТипМестоОбяз.Описание
requiredRolestringqueryда
Тело запроса LoginDto
ПолеТипОбяз.Описание
loginstringдаЛогин пользователяПример: "merchant1"
passwordstringдаПароль пользователяПример: "password123"
Ответы
200 Успешная авторизация
401 Неверные учетные данные
POST /api/auth/refresh
Обновление токена доступа
Тело запроса RefreshTokenDto
ПолеТипОбяз.Описание
refreshTokenstringдаRefresh token для обновления токена доступаПример: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
Ответы
200 Токен успешно обновлен
401 Недействительный refresh token
POST /api/auth/logout
Выход из системы
Ответы
200 Успешный выход
GET /api/auth/profile
Получение информации о текущем пользователе
Ответы
200 Информация о пользователе

currency_exchange Exchange Rates

Актуальные курсы и конвертация валют

GET /api/exchange-rates/rate
Получение курса валют для мерчанта
Пример запроса
curl -X GET "https://api.vangardpay.com/api/exchange-rates/rate?from=USDT&to=RUB" \
  -H "X-API-Key: YOUR_API_KEY"
Параметры
ИмяТипМестоОбяз.Описание
merchantIdstringqueryда
fromstringqueryда
tostringqueryда
Ответы
200 Курс валют
GET /api/exchange-rates/convert/rub-to-usdt
Конвертация RUB в USDT
Параметры
ИмяТипМестоОбяз.Описание
amountstringqueryда
Ответы
200 Результат конвертации
GET /api/exchange-rates/convert/usdt-to-rub
Конвертация USDT в RUB
Параметры
ИмяТипМестоОбяз.Описание
amountstringqueryда
Ответы
200 Результат конвертации

account_balance_wallet Balance

Баланс, пополнения, выводы и история операций

GET /api/balance
Получение баланса пользователя
Пример запроса
curl -X GET https://api.vangardpay.com/api/balance \
  -H "X-API-Key: YOUR_API_KEY"
Ответы
200 Баланс получен
POST /api/balance/deposit
Пополнение баланса
Ответы
200 Баланс пополнен
POST /api/balance/withdraw
Вывод средств
Ответы
200 Вывод создан
GET /api/balance/history
История баланса
Пример запроса
curl -X GET "https://api.vangardpay.com/api/balance/history?page=1&limit=20" \
  -H "X-API-Key: YOUR_API_KEY"
Параметры
ИмяТипМестоОбяз.Описание
pagestringqueryда
limitstringqueryда
typestringqueryда
Ответы
200 История получена

storefront Merchants

Профиль мерчанта

PATCH /api/merchants/profile
Обновление профиля текущего мерчанта
Ответы
200 Профиль обновлен

gavel Appeals

Создание и отслеживание апелляций

GET /api/appeals
Получение списка апелляций
Параметры
ИмяТипМестоОбяз.Описание
pagenumberqueryда
limitnumberqueryда
statusstringqueryда
orderIdstringqueryда
Ответы
200 Список апелляций
POST /api/appeals
Создание новой апелляции
Пример запроса
curl -X POST https://api.vangardpay.com/api/appeals \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"orderId": "ORDER_ID", "reason": "Описание проблемы"}'
Тело запроса CreateAppealDto
ПолеТипОбяз.Описание
orderIdstringнетВнутренний ID заказа (UUID)Пример: "550e8400-e29b-41d4-a716-446655440000"
invIdstringнетПубличный ID заказа (который вы передавали при создании)Пример: "INV-12345"
reasonstringдаПричина апелляции (короткая фраза)Пример: "Платёж не зачислен"
commentstringнетПодробный комментарий к ситуацииПример: "Клиент отправил деньги, приложил чек, но заказ отменился по таймауту."
imagesarrayнетМассив ссылок на изображения чеков (предварительно загруженных)Пример: ["http://109.172.47.69:3001/uploads/appeals/appeal-123.jpg"]
videosarrayнетМассив ссылок на видео (доказательства)Пример: []
documentsarrayнетМассив ссылок на документы (pdf, zip и т.д.)Пример: []
requireClientInvoicebooleanнетТребуется ли чек от клиента
requireTraderInvoicebooleanнетТребуется ли чек от трейдера
Ответы
201 Апелляция создана
GET /api/appeals/{id}
Получение апелляции по ID
Параметры
ИмяТипМестоОбяз.Описание
idstringpathда
Ответы
200 Детали апелляции
POST /api/appeals/upload
Загрузка файлов для апелляции
Ответы
201 Файлы загружены

payments Currencies

Справочник поддерживаемых валют

GET /api/currencies/active
Получить активные валюты
Ответы
200 Список активных валют получен

account_balance Banks

Справочник доступных банков

GET /api/banks/active
Получить активные банки
Ответы
200 Список активных банков

receipt_long Orders

Создание и управление платёжными ордерами

GET /api/orders
Получение всех ордеров
Параметры
ИмяТипМестоОбяз.Описание
pagestringqueryда
limitstringqueryда
statusstringqueryда
merchantIdstringqueryда
providerIdstringqueryда
geoLocationIdstringqueryда
dateFromstringqueryда
dateTostringqueryда
searchstringqueryда
bankstringqueryда
methodstringqueryда
amountMinstringqueryда
amountMaxstringqueryда
usdtMinstringqueryда
usdtMaxstringqueryда
Ответы
200 Список ордеров
GET /api/orders/{id}
Получение ордера по ID
Пример запроса
curl -X GET https://api.vangardpay.com/api/orders/ORDER_ID \
  -H "X-API-Key: YOUR_API_KEY"
Параметры
ИмяТипМестоОбяз.Описание
idstringpathда
Ответы
200 Ордер найден
PATCH /api/orders/{id}/status
Обновление статуса ордера
Параметры
ИмяТипМестоОбяз.Описание
idstringpathда
Тело запроса UpdateOrderStatusDto
ПолеТипОбяз.Описание
statusstring (PENDING | COMPLETED | CANCELLED | FAILED | EXPIRED | AWAITING_PAYMENT | PARTIALLY_FILLED)даНовый статус заказаПример: "COMPLETED"
factAmountnumberнетФактическая сумма операцииПример: 995.5
txHashstringнетХэш транзакции (для криптовалютных операций)Пример: "0x1234567890abcdef"
commentstringнетКомментарий к изменению статусаПример: "Операция выполнена успешно"
Ответы
200 Статус обновлен
PATCH /api/orders/{id}/cancel
Отмена ордера
Параметры
ИмяТипМестоОбяз.Описание
idstringpathда
Ответы
200 Ордер отменен
POST /api/orders/create
Создание ордера для мерчанта
Пример запроса
curl -X POST https://api.vangardpay.com/api/orders/create \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "DEPOSIT",
    "currency": "RUB",
    "amount": 5000,
    "method": "SBP",
    "bank": "SBERBANK",
    "callbackUrl": "https://your-site.com/webhook"
  }'
Ответы
201 Ордер создан
POST /api/orders/webhook
Webhook для обновления статуса ордера
Ответы
200 Webhook обработан