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 МСК) |
| Допустимые адреса | Только верифицированные кошельки. При использовании нескольких адресов — предварительно согласуйте с финансовым отделом |
История операций(CTO, переделай под наши поля)
Раздел отображает полную историю движения средств по вашему балансу.
Доступные фильтры:
- Тип операции: все / входящие / исходящие
- Сортировка: по ID, дате, сумме
Данные в таблице:
| Столбец | Описание |
|---|---|
| ID | Уникальный идентификатор операции |
| Дата | Дата и время создания |
| Баланс до | Состояние баланса до операции |
| Сумма | Сумма операции в USDT |
| Баланс после | Состояние баланса после операции |
| Описание | Тип и номер связанной транзакции |
Финансовая отчётность (экспорт)
Выгрузка статистики в формате Excel за произвольный период.
Как выгрузить:
- Откройте Dashboard → Отчётность
- Укажите период (начальная и конечная дата)
- Нажмите «Экспорт»
Состав отчёта:
- Сводка по аккаунту за выбранный период
- Входящие платежи (Pay-In) — все успешные операции приёма
- Исходящие платежи (Pay-Out) — все успешные операции отправки
- Депозиты — успешные пополнения баланса
- Выводы — успешные операции вывода средств
История транзакций
Раздел содержит все транзакции в финальном статусе: Успешно или Отклонено.
Типичные причины отклонения:
- Сумма платежа не совпала с суммой в ордере — это может привести к потере средств
- Плательщик использовал неверные реквизиты (при оплате через СБП возврат практически невозможен)
- Истекло время ожидания оплаты — транзакция закрыта автоматически
Доступные фильтры: дата, статус, способ оплаты, внешний 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)
- Финальный статус перевода — «Успешно» или «Исполнено»
- Данные получателя — видно, на чей счёт поступил перевод
- Точная сумма перевода
- Дата и время операции
- Без посторонних персональных данных
Видеозапись экрана
- Начало записи — с момента входа в интернет-банк (после ввода пароля)
- Видна операция с подтверждённым статусом
- Чётко отображены: сумма, дата, реквизиты получателя
- Отсутствует информация, не относящаяся к платежу
Банковская выписка
- Чётко разделены приходные и расходные операции
- Видны суммы, даты и время каждой транзакции
- Указан номер карты, счёта или привязанного телефона
Аудиозапись звонка в банк
- Запись ведётся с отдельного устройства — в кадре виден номер телефона горячей линии
- Оператор банка озвучивает название кредитной организации
- В ходе разговора уточняются: реквизиты, дата, время и сумма перевода
- Запрашивается информация о статусе перевода и возможных задержках
Процедура рассмотрения апелляций
Подача апелляции
Мерчант создаёт апелляцию через API (рекомендуется) или через Портал апелляций. Апелляция поступает трейдеру на рассмотрение.
Рассмотрение трейдером
- Платёж найден и не привязан к другому ордеру → трейдер подтверждает → апелляция одобрена
- Платёж не найден → трейдер отклоняет с банковской выпиской → апелляция передаётся на проверку саппорту → возможна вторичная апелляция (см. ниже)
- Платёж зачтён по другому ордеру → окончательное отклонение, вторичная апелляция невозможна
Вторичная апелляция (2 этапа)
Вторичная апелляция возможна только при отклонении по причине «Платёж не обнаружен». Следующие причины отклонения являются окончательными и не подлежат вторичной апелляции:
- Зачтён по другому ордеру — платёж уже привязан к другой операции
- Фрод (категория B) — повторные попытки могут привести к блокировке
Иерархия веса доказательств (от слабого к сильному):
| Приоритет | Тип доказательства |
|---|---|
| 1 (низший) | Чек плательщика (PDF) |
| 2 | Банковская выписка (трейдера или плательщика) |
| 3 | Видеозапись плательщика |
| 4 (высший) | Видеозапись трейдера |
Этап 1. Первичная апелляция
Мерчант создаёт апелляцию и прикладывает чек плательщика. Апелляция поступает трейдеру.
Действия трейдера:
- Платёж найден, не зачислен по другому ордеру → трейдер подтверждает → апелляция одобрена
- Платёж не найден → трейдер отклоняет с приложением банковской выписки → апелляция передаётся на проверку саппорту
После отклонения апелляция передаётся саппорту — саппорт проверяет документы трейдера и пересылает их мерчанту с запросом дополнительных доказательств (видео).
Действия мерчанта (ожидание ответа):
- Мерчант не отправляет документы в течение 24 часов → апелляция отклонена
- Мерчант не согласен и плательщик прикладывает видео списания → апелляция переходит на вторичное рассмотрение
Этап 2. Вторичная апелляция
Трейдер получает вторичную апелляцию с видео плательщика.
Действия трейдера:
- Трейдер предоставляет встречное видео → решение в пользу трейдера → апелляция отклонена (видео трейдера имеет наибольший вес)
- Трейдер не предоставляет видео в течение 3 банковских дней или вручную подтверждает апелляцию → апелляция закрывается в пользу мерчанта
- Платёж может находиться на проверке службой безопасности банка
- Банку требуется до 3 рабочих дней на рассмотрение
- За это время платёж либо зачислится, либо вернётся отправителю
Сроки рассмотрения (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 и др.). Курс обновляется в реальном времени.
Детальная методика курсообразования для каждой поддерживаемой валютной пары предоставляется по запросу через вашего менеджера.
Формула начислений
При зачислении средств на баланс мерчанта из суммы платежа удерживается комиссия. Расчёт производится в три этапа.
Исходные данные:
- fee — ваша комиссия (%)
- rate — текущий курс фиатной валюты к USDT
- amount — сумма платежа в фиатной валюте
Все промежуточные значения округляются до 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.
Аутентификация
API-ключ выдаётся администратором. Передавайте его в заголовке X-API-Key
Вебхуки
POST-уведомления отправляются на ваш callbackUrl при каждом изменении статуса ордера
Базовый URL
https://api.vangardpay.com
Быстрый старт
- Получите API-ключ у администратора VangardPay
- Добавьте
X-API-Keyзаголовок ко всем запросам - Создайте первый ордер через POST /api/orders/create
- Настройте вебхуки для получения уведомлений о статусах
Формат ответов
Все ответы возвращаются в формате 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
Авторизация и управление сессиями
/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"}'| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
requiredRole | string | query | да | — |
LoginDto| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
login | string | да | Логин пользователяПример: "merchant1" |
password | string | да | Пароль пользователяПример: "password123" |
/api/auth/refresh
RefreshTokenDto| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
refreshToken | string | да | Refresh token для обновления токена доступаПример: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." |
/api/auth/logout
/api/auth/profile
currency_exchange Exchange Rates
Актуальные курсы и конвертация валют
/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"| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
merchantId | string | query | да | — |
from | string | query | да | — |
to | string | query | да | — |
/api/exchange-rates/convert/rub-to-usdt
| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
amount | string | query | да | — |
/api/exchange-rates/convert/usdt-to-rub
| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
amount | string | query | да | — |
account_balance_wallet Balance
Баланс, пополнения, выводы и история операций
/api/balance
curl -X GET https://api.vangardpay.com/api/balance \
-H "X-API-Key: YOUR_API_KEY"/api/balance/deposit
/api/balance/withdraw
/api/balance/history
curl -X GET "https://api.vangardpay.com/api/balance/history?page=1&limit=20" \
-H "X-API-Key: YOUR_API_KEY"| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
page | string | query | да | — |
limit | string | query | да | — |
type | string | query | да | — |
storefront Merchants
Профиль мерчанта
/api/merchants/profile
gavel Appeals
Создание и отслеживание апелляций
/api/appeals
| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
page | number | query | да | — |
limit | number | query | да | — |
status | string | query | да | — |
orderId | string | query | да | — |
/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| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
orderId | string | нет | Внутренний ID заказа (UUID)Пример: "550e8400-e29b-41d4-a716-446655440000" |
invId | string | нет | Публичный ID заказа (который вы передавали при создании)Пример: "INV-12345" |
reason | string | да | Причина апелляции (короткая фраза)Пример: "Платёж не зачислен" |
comment | string | нет | Подробный комментарий к ситуацииПример: "Клиент отправил деньги, приложил чек, но заказ отменился по таймауту." |
images | array | нет | Массив ссылок на изображения чеков (предварительно загруженных)Пример: ["http://109.172.47.69:3001/uploads/appeals/appeal-123.jpg"] |
videos | array | нет | Массив ссылок на видео (доказательства)Пример: [] |
documents | array | нет | Массив ссылок на документы (pdf, zip и т.д.)Пример: [] |
requireClientInvoice | boolean | нет | Требуется ли чек от клиента |
requireTraderInvoice | boolean | нет | Требуется ли чек от трейдера |
/api/appeals/{id}
| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
id | string | path | да | — |
/api/appeals/upload
payments Currencies
Справочник поддерживаемых валют
/api/currencies/active
account_balance Banks
Справочник доступных банков
/api/banks/active
receipt_long Orders
Создание и управление платёжными ордерами
/api/orders
| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
page | string | query | да | — |
limit | string | query | да | — |
status | string | query | да | — |
merchantId | string | query | да | — |
providerId | string | query | да | — |
geoLocationId | string | query | да | — |
dateFrom | string | query | да | — |
dateTo | string | query | да | — |
search | string | query | да | — |
bank | string | query | да | — |
method | string | query | да | — |
amountMin | string | query | да | — |
amountMax | string | query | да | — |
usdtMin | string | query | да | — |
usdtMax | string | query | да | — |
/api/orders/{id}
curl -X GET https://api.vangardpay.com/api/orders/ORDER_ID \
-H "X-API-Key: YOUR_API_KEY"| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
id | string | path | да | — |
/api/orders/{id}/status
| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
id | string | path | да | — |
UpdateOrderStatusDto| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
status | string (PENDING | COMPLETED | CANCELLED | FAILED | EXPIRED | AWAITING_PAYMENT | PARTIALLY_FILLED) | да | Новый статус заказаПример: "COMPLETED" |
factAmount | number | нет | Фактическая сумма операцииПример: 995.5 |
txHash | string | нет | Хэш транзакции (для криптовалютных операций)Пример: "0x1234567890abcdef" |
comment | string | нет | Комментарий к изменению статусаПример: "Операция выполнена успешно" |
/api/orders/{id}/cancel
| Имя | Тип | Место | Обяз. | Описание |
|---|---|---|---|---|
id | string | path | да | — |
/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"
}'/api/orders/webhook