Уведомления

Самый простой способ получать информацию о переводах — подключить уведомления по электронной почте в настройках кошелька ЮMoney. Сообщения будут приходить на адрес, привязанный к кошельку.
Если вы хотите мгновенно узнавать о поступлении денег и сразу идентифицировать каждый перевод, включите HTTP-уведомления. Сервис будет передавать данные о сумме и значении поля label.

HTTP-уведомления можно получать только на один адрес сервера. Если у вас несколько сайтов и разные формы, с помощью которых вы собираете переводы на один кошелек ЮMoney, на сервере нужно настроить разбор поля label. Например: label=XXyyyyyy, где ХХ — ID магазина, а уууууу — номер транзакции.

HTTP-уведомления
Уведомление отправляется при получении перевода из кошелька или с банковской карты.
Формат уведомления
Уведомление отправляется как HTTP-запрос на адрес, указанный в настройках кошелька, в следующем формате:
  • метод — POST;
  • каждый параметр уведомления указывается в виде пары «ключ=значение» в виде параметра POST-запроса;
  • MIME-тип — application/x-www-form-urlencoded;
  • кодировка символов — UTF‑8.
Параметры уведомления
ПараметрТипОписание
notification_type
string
Для переводов из кошелька — p2p-incoming.
Для переводов с произвольной карты — card-incoming.
operation_idstringИдентификатор операции в истории вашего кошелька.
amountamountСумма, которая зачислена на баланс вашего кошелька.
withdraw_amountamountСумма, которую перевел отправитель и которую списали с баланса его кошелька или с карты.
currencystringКод валюты — всегда 643 (рубль РФ согласно ISO 4217).
datetimedatetimeДата и время совершения перевода.
sender
string
Для переводов из кошелька — номер кошелька отправителя.
Для переводов с произвольной карты — параметр содержит пустую строку.
codepro
boolean
Признак того, что перевод защищен кодом протекции.
В ЮMoney больше нельзя делать переводы с кодом протекции, поэтому параметр всегда имеет значение false.
labelstringМетка платежа. Если ее нет, параметр содержит пустую строку.
unaccepted
boolean
Признак того, что кошелек достиг лимита доступного остатка, перевод захолдирован (заморожен) до тех пор, пока пользователь не освободит место в кошельке.
В ЮMoney больше нельзя делать переводы с холдированием, поэтому параметр всегда имеет значение false.
signstring
Подпись уведомления. Используется для проверки целостности и подлинности уведомлений. Подробнее о параметре sign и его использовании.
sha1_hash
string

Параметр устарел. Перестанет приходить в уведомлениях с 18 мая 2026 года. Для проверки подлинности и целостности уведомлений используйте параметр sign.

SHA-1 hash параметров уведомления.
Примеры уведомлений
Пример тела уведомления о переводе из кошелька
{notification_type=p2p-incoming, operation_id=441361714955017004, amount=98.00, withdraw_amount=100.00, currency=643, datetime=2013-12-26T08:28:34Z, sender=41000000000, codepro=false, label=ML23045, unaccepted=false, sha1_hash=ac13833bd6ba9eff1fa9e4bed76f3d6ebb57f6c0, sign=a452af731650e2c5b39abcdc7c28dd27db7b3b654c2230ad2c386e64afb98605}
Прием уведомления
ЮMoney делают три попытки доставить уведомление: сразу при получении перевода, затем — через 10 минут, последняя — через час.
Если уведомления не приходят, проверьте настройки: правильно ли указан адрес вашего сервера и доступен ли сервер сейчас (используйте кнопку Протестировать). При этом запись о входящем переводе сохранится в истории кошелька (при отправке тестовых уведомлений запись в истории не сохраняется).
Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200 OK.

После получения уведомления проверьте его подлинность и целостность с помощью подписи. Подробнее о подписи уведомления

Удостоверение подлинности и целостности уведомления
Чтобы вы могли проверить подлинность и целостность полученного уведомления, в параметре sign возвращается подпись уведомления. Это HMAC-SHA256 в HEX-представлении, который рассчитывается от URL-кодированной строки всех параметров уведомления, кроме sign. Параметры в строке отсортированы по алфавиту.
Для вычисления подписи используется секретный ключ из ваших настроек HTTP-уведомлений. Он служит разделяемым секретом между ЮMoney и разработчиком приложения.

Храните секретный ключ в защищенном месте и не публикуйте на сторонних ресурсах (например, вместе с примерами кода).

Чтобы проверить подлинность и целостность уведомления, вычислите подпись по алгоритму, приведенному ниже, и сравниите ее со значением параметра sign.
Вычисление подписи уведомления
Шаг 1. Сформируйте строку для вычисления подписи:
  1. Извлеките параметры уведомления.
  2. Удалите параметр sign — он не участвует в формировании подписи.
  3. Отсортируйте оставшиеся параметры по алфавиту (A-Z).
  4. Примените URL-кодирование к значениям каждого параметра (в кодировке UTF-8, RFC 3986).
  5. Объедините параметры в строку формата ключ=значение, разделяя их символом &. Пустые значения оставьте как key= (без пробелов).
Пример параметров в уведомлении
{notification_type=p2p-incoming, operation_id=441361714955017004, amount=98.00, withdraw_amount=100.00, currency=643, datetime=2013-12-26T08:28:34Z, sender=41000000000, codepro=false, label=ML23045, unaccepted=false, sha1_hash=ac13833bd6ba9eff1fa9e4bed76f3d6ebb57f6c0, sign=a452af731650e2c5b39abcdc7c28dd27db7b3b654c2230ad2c386e64afb98605}
Пример подготовленной строки для вычисления подписи
amount=98.00&codepro=false&currency=643&datetime=2013-12-26T08%3A28%3A34Z&label=ML23045&notification_type=p2p-incoming&operation_id=441361714955017004&sender=41000000000&sha1_hash=ac13833bd6ba9eff1fa9e4bed76f3d6ebb57f6c0&unaccepted=false&withdraw_amount=100.00
Шаг 2. Вычислите HMAC-SHA256 от полученной строки, используя секретный ключ из настроек HTTP-уведомлений. Представьте результат в HEX (нижний регистр).
Пример подписи для строки из примера выше и ключа secret123
a452af731650e2c5b39abcdc7c28dd27db7b3b654c2230ad2c386e64afb98605
Шаг 3. Сравните результат со значением параметра sign:
  • Если подписи совпадают — уведомление подлинное и не изменялось.
  • Если подписи не совпадают — уведомление было изменено или отправлено с неверным секретом.
Готово!
Что почитать еще
© 2026, ООО НКО «ЮМани»