Мгновенные уведомления о платеже

Система Velespay в фоновом процессе производит отправку сообщений по указанному вами URL-адресу обо всех успешных транзакциях. Эти уведомления содержат данные о платеже, а также персональную информацию о клиенте.

Активация - IPN

Перед началом работы, необходимо выполнить нижеперечисленные действия:

  • Зайти в личный кабинет;
  • Меню Профиль -> Кошельки;
  • Выбрать Кошелек;
  • Открыть вкладку "Мерчант";
  • Верифицировать ваш бизнес;
  • Раздел "Уведомление об оплате (IPN):"
  • Активировать данный функционал;
  • Укажите URL на который будет направляться запрос о статусе платежа, после успешной оплаты;
  • Укажите метод отправки параметров;
  • Укажите Пароль;

Параметры которые передает платформа Velespay на ваш сервер при успешной оплате:

vm_txn = <ID транзакции в системе Velespay (целое число)>;
vm_invoice = <Номер счета-фактуры, в соответствии с вашей системой ведения учета>;
vm_wallet = <Кошелек на который зачислена оплата (Ваш). Пример: VM123456789>;
vm_who_fee = <кто оплачивал комиссию false = покупатель, true = продавец>;

vm_amount[gross] = <Сумма счета-фактуры. Данную сумму необходимо проверять, если комиссию оплачивал продавец.>;
vm_amount[fee] = <Комиссия>;
vm_amount[net] = <Сумма зачисления. Данную сумму необходимо проверять, если комиссию оплачивал покупатель.>;

vm_currency[id] = <Цифровой код валюты по стандарту ISO 4217. Пример: 0840>;
vm_currency[code] = <Код валюты по стандарту ISO 4217. Пример: USD>;

vm_ps[system] = <Код платежной системы, через которую был оплачен счет, поле code раздела "Информационные данные" -> "Платежные системы/банки">;
vm_ps[code] = <Код электронной валюты, с помощью которой был оплачен счет, поле code раздела "Информационные данные" -> "Электронные валюты">;
vm_ps[currency] = <Код национальной валюты (USD), поле code раздела "Информационные данные" -> "Валюты">;
vm_ps[gross] = <Сколько заплатил покупатель">;
vm_ps[fee] = <Комиссия в валюте оплаты>;
vm_ps[net] = <Разница суммы оплаты и комиссии>;
vm_ps[rate] = <Обменный Курс, если валюта счета и валюта оплаты отличается>;

vm_buyer[wallet] = <Внутренний кошелек. Пример: VM123456789> или <Номер карты/счета/кошелька в сторонней системе>;
vm_buyer[account] = <Аккаунт (целое число), если плательщик из системы>;
vm_buyer[email] = <E-mail плательщика>;
vm_buyer[phone] = <Телефон плательщика>;
vm_buyer[name] = <Имя плательщика (Имя и Фамилия или название компании)>;
vm_buyer[country] = <Страна (Цифровой код страны ISO 3166-1), если плательщик из системы>;
vm_buyer[lang] = <Язык плательщика>;
vm_buyer[status] = <Статус аккаунта (целое число), если плательщик из системы>;
vm_buyer[ip] = <IP адрес при оплате>;
vm_buyer[bank_name] = <Название банка, если оплата SWIFT/SEPA/Картой>;
vm_buyer[bank_country] = <Страна банка, если оплата SWIFT/SEPA/Картой>;

vm_status = <Статус счета. Статус транзакции (целое число). Если счет полностью оплачен, статус = 7>;
vm_description = <Комментарий или сообщение продавца>;
vm_sign = <Контрольная подпись, которая используется для проверки подлинности полученной информации>;

Если покупатель не зарегистрирован в системе Velespay поле vm_buyer будет иметь только один параметр email.

Проверка vm_sign

Вы должны создать и сравнить полученную у вас подпись с полем vm_sign.

С помощью следующего алгоритма:

  • Сгенерировать URL-кодированную строку из всех полученных параметров кроме vm_sign;
  • Сгенерировать хеш-код на основе <Вашего Пароля IPN>, используя метод HMAC с алгоритмом sha512;

Пример на PHP:

//В зависимости какой метод передачи данных был выбран в настройках
$params = $_POST;//или $_GET
unset($params['vm_sign']);

//Формируем подпись
$secretKey = "Ваш Пароль от IPN";
$hash = hash_hmac('sha512', urldecode(http_build_query($params)), $secretKey);

//Если подписи совпадают и статус платежа = 7 (Completed)
if($_POST['vm_sign'] === $hash && $_POST['vm_status'] === 7){
	//Здесь производятся действия при успешной оплате счета-фактуры
	exit('true');
}

//Если платеж проверку не прошел
exit('false');//Или true, что бы система Velespay не повторяла запросы

Обработчик платежа должен обязательно вернуть true. В противном случае уведомление будет отправляться, пока не будет получен правильный ответ. Не более 10 попыток.


Для безопасности принимаемых уведомлений установите проверку по IP адресу сервера уведомлений Velespay. Наши IP-адреса серверов уведомлений: 95.163.67.176

Имейте введу, что IP адреса серверов уведомлений могут измениться.


Вы всегда можете посмотреть, что отвечает Ваш обработчик платежа на наше уведомление об оплате, если зайдете в Личном кабинете: Меню Профиль -> IPN - История.