Уведомления
Самый простой способ получать информацию о переводах — подключить уведомления по электронной почте в настройках кошелька ЮMoney. Сообщения будут приходить на адрес, привязанный к кошельку.
Если вы хотите мгновенно узнавать о поступлении денег и сразу идентифицировать каждый перевод, включите HTTP-уведомления. Сервис будет передавать данные о сумме, значении поля label, а также контактные данные отправителя (контактные данные отправителя передаются только по HTTPS-соединению.)
HTTP-уведомления можно получать только на один адрес сервера. Если у вас несколько сайтов и разные формы, с помощью которых вы собираете переводы на один кошелек ЮMoney, на сервере нужно настроить разбор поля
label
. Например:
label=XXyyyyyy
, где
ХХ
 — ID магазина, а 
уууууу
 — номер транзакции.
 
HTTP-уведомления
Уведомление отправляется при получении перевода из кошелька или с банковской карты.
Уведомление не отправляется при пополнении с баланса мобильного.
 
Формат запроса
Уведомление отправляется как HTTP-запрос на адрес, указанный в настройках кошелька, в следующем формате:
  • метод — POST;
  • каждый параметр уведомления указывается в виде пары «ключ=значение» в виде параметра POST-запроса;
  • MIME-тип — application/x-www-form-urlencoded;
  • кодировка символов — UTF‑8.
 
Прием уведомления
ЮMoney делают три попытки доставить уведомление: сразу при получении перевода, затем — через 10 минут, последняя — через час.
Для приема уведомлений рекомендуется использовать протокол HTTPS (получение контактной информации об отправителе в уведомлениях возможно только по этому протоколу; по HTTP контакты не передаются).
Если уведомления не приходят, проверьте настройки: правильно ли указан адрес вашего сервера и доступен ли сервер сейчас (используйте кнопку Протестировать). При этом запись о входящем переводе сохранится в истории кошелька (при отправке тестовых уведомлений запись в истории не сохраняется).
 
Параметры уведомления
ПараметрТипОписание
Передаются по HTTP
notification_typestringДля переводов из кошелька —
p2p-incoming
. Для переводов с произвольной карты —
card-incoming
.
operation_idstringИдентификатор операции в истории счета получателя.
amountamountСумма, которая зачислена на счет получателя.
withdraw_amountamountСумма, которая списана со счета отправителя.
currencystringКод валюты — всегда
643
(рубль РФ согласно ISO 4217).
datetimedatetimeДата и время совершения перевода.
senderstringДля переводов из кошелька — номер кошелька отправителя. Для переводов с произвольной карты — параметр содержит пустую строку.
codeprobooleanДля переводов из кошелька — перевод защищен кодом протекции. Для переводов с произвольной карты — всегда
false
.
labelstringМетка платежа. Если ее нет, параметр содержит пустую строку.
sha1_hashstringSHA-1 hash параметров уведомления.
unacceptedbooleanПеревод еще не зачислен. Получателю нужно освободить место в кошельке или использовать код протекции (если
codepro=true
).
Передаются только по HTTPS
ФИО и контакты отправителя перевода (указывает отправитель, если не запрашивались, параметры содержат пустую строку)
lastnamestringФамилия.
firstnamestringИмя.
fathersnamestringОтчество.
emailstringАдрес электронной почты отправителя перевода. Если почта не запрашивалась, параметр содержит пустую строку.
phonestringТелефон отправителя перевода. Если телефон не запрашивался, параметр содержит пустую строку.
Адрес доставки (указывает отправитель, если адрес не запрашивался, параметры содержат пустую строку)
citystringГород.
streetstringУлица.
buildingstringДом.
suitestringКорпус.
flatstringКвартира.
zipstringИндекс.
 
Формат ответа
Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200 OK.
 
Удостоверение подлинности и целостности уведомления
Один из параметров уведомления,
sha1_hash
, содержит значение хэш-функции SHA-1 от свертки параметров уведомления совместно с секретным словом.
Секретное слово для проверки уведомлений используется как разделяемый секрет между ЮMoney и разработчиком приложения. Благодаря этому подделать уведомление невозможно. Секретное слово можно получить в настройках HTTP-уведомлений для вашего кошелька.
Всегда проверяйте значение параметра
sha1_hash
. Это нужно, чтобы удостовериться:
  • в целостности данных уведомления;
  • в том, что уведомление отправили ЮMoney.
Чтобы проверить целостность и подлинность уведомления, рассчитайте хэш по алгоритму, приведенному ниже. Сравните полученные данные со значением параметра
sha1_hash
в уведомлении.
 
Расчет хэша
Шаг 1. Сформируйте строку из параметров уведомления в кодировке UTF‑8 (где
notification_secret
 — это секретное слово для проверки уведомлений).
Формат строки
notification_type&operation_id&amount&currency&datetime&sender&codepro&notification_secret&label
Пример строки параметров
p2p-incoming&1234567&300.00&643&2011-07-01T09:00:00.000+04:00&41001XXXXXXXX&false&01234567890ABCDEF01234567890&
Пример строки параметров с меткой платежа
p2p-incoming&1234567&300.00&643&2011-07-01T09:00:00.000+04:00&41001XXXXXXXX&false&01234567890ABCDEF01234567890&YM.label.12345
Шаг 2. Вычислите значение хэш-функции SHA-1 от полученной строки.
Шаг 3. Отформатируйте полученный результат в HEX-кодированном виде.
Пример рассчитанного значения параметра
sha1_hash
:
090a8e7ebb6982a7ad76f4c0f0fa5665d741aafa
 
Примеры уведомлений
Уведомление о переводе с карты с запросом ФИО и адреса отправителя (по HTTPS)
operation_id = 441361714955017004
notification_type = card-incoming
datetime = 2013-12-26T08:28:34Z
sha1_hash = ac13833bd6ba9eff1fa9e4bed76f3d6ebb57f6c0
sender =
codepro = false
currency = 643
amount = 98.00
withdraw_amount = 100.00
label = ML23045
lastname = Иванов
firstname = Петр
fathersname = Сидорович
zip = 195123
city = Санкт-Петербург
street = Денежная
building = 12
suite = 12
flat = 12
phone =
email =
Пример того же уведомления по HTTP
operation_id = 441361714955017004
notification_type = card-incoming
datetime = 2013-12-26T08:28:34Z
sha1_hash = ac13833bd6ba9eff1fa9e4bed76f3d6ebb57f6c0 sender =
codepro = false
currency = 643
amount = 98.00
withdraw_amount = 100.00
label = ML23045
 
Что почитать еще
Настройки HTTP-уведомленийУведомление по электронной почте и смс