Последние новости и обновления.
Подразделы Монета
Общая информация
Подразделы Общая информация
Последние изменения
2023.12.13
- Мигрирована документация из старых систем
Термины и определения
Монета / НКО / Система
НКО «МОНЕТА» (ООО) - оператор по переводу электронных денежных средств в соответствии с Федеральным законом от 27.06.2011 № 161-ФЗ “О национальной платежной системе”.
Лицензия на осуществление банковских операций № 3508-К от 29 ноября 2017 г.
Монета - совокупность программных и аппаратных средств, обеспечивающих информационное и технологическое взаимодействие между НКО, Плательщиком, Получателем и Эмитентом при совершении Переводов с использованием сети интернет.
Маркетплейс / Торговая Площадка / Платформа
Юридическое лицо, физическое лицо или лицо, зарегистрированное в качестве индивидуального предпринимателя, которое выступает технологическим партнером дочерней организации для взаимодействия с Монетой по приему платежей в рамках Договора об информационно-технологическом взаимодействии НКО «МОНЕТА» (ООО) и ПЛАТФОРМ.
Получатель платежей / продавец
Юридическое лицо, физическое лицо или лицо, зарегистрированное в качестве индивидуального предпринимателя, для которого маркетплейс обеспечивает взаимодействие с Монетой по приёму платежей в рамках Договора о переводах без открытия счетов в Системе МОНЕТА.РУ и осуществления информационно-технологического взаимодействия для юридических лиц и индивидуальных предпринимателей - резидентов РФ.
API
Программный интерфейс для взаимодействия с системой.
Интерфейс MerchantAPI
Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Безопасность передачи информации обеспечивается использованием протокола Hypertext Transfer Protocol over Secure Sockets Layer (HTTPS).
Авторизация отправителя запросов производится по уникальной комбинации имени пользователя (API username) и пароля (API password).
Описание интерфейса MerchantAPI.
Договор
Набор всех технологических возможностей Монеты. Пункты, не применимые к проекту, будут указаны в дополнительном соглашении.
Оферта
Адресованное Монете письменное безусловное предложение Платформы заключить Договор об информационно-технологическом взаимодействии со всеми его приложениями на условиях, изложенных в настоящем Договоре.
ТСП
Торгово-сервисное предприятие, работающее с системой.
ЛК
Личный кабинет ТСП в Монете.
Карта
Банковская карта платежных систем Visa, MasterCard или МИР.
Эквайер
Расчётный банк.
Эмитент
Банк, выпустивший карту.
Держатель
Физическое лицо, которому эмитент выдал карту в пользование.
3-D Secure
Протокол проверки держателя эмитентом.
Виды операций
Система предполагает два вида операций: оплата и возврат.
При оплате деньги перечисляются со счета держателя в пользу ТСП. В случае возврата — наоборот.
Возврат выполняет ТСП, если покупатель хочет вернуть товар.
Возврат всегда связан с операцией оплаты, сумма средств с которой будет возвращена держателю. Возвращать можно как всю сумму оплаты, так и ее часть. Деньги обычно возвращаются на карту держателя в тот же день, но иногда, в зависимости от банка-эмитента, могут идти до 3-х дней.
Операцию оплаты, в отличие от возврата, можно отменить.
Отмену оплаты выполняет ТСП в случае, если платеж был совершен с ошибкой: неверная сумма, технический сбой и т.д. Есть ограничение — отменить операцию можно только в случае использования двухстадийной схемы оплаты. Деньги при этом будут разблокированы на карте держателя практически мгновенно.
Справочники
Подразделы Справочники
Коды ошибок
Формат ответа
Если во время работы сервиса произойдет ошибка, то ответ будет содержать элемент detail
в котором будет элемент faultDetail
с кодом ошибки.
Для дополнительной информации смотрите http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507
Например, в SOAP ответ выглядит так:
<Fault>
<faultcode>Client</faultcode>
<faultstring>Операция не найдена</faultstring>
<detail>
<faultDetail>500.1.5</faultDetail>
</detail>
</Fault>
В JSON ответ выглядит так:
{
"fault": {
"detail": {
"faultDetail": "500.1.5"
},
"faultcode": "Client",
"faultstring": "Операция не найдена"
}
}
Коды ошибок
Поиск ошибки на странице можно осуществить двумя способами:
- с помощью сочетания клавиш
Ctrl+F
- через оглавление / поиск вверху страницы ( )
100
100
Описание ошибки: Сервис временно недоступен.
Сообщение для плательщика: Сервис временно недоступен.
100.1
Описание ошибки: Указанные данные уже существуют.
Сообщение для плательщика: Указанные данные уже существуют.
100.2
Описание ошибки: Вы работаете с устаревшими данными.
Сообщение для плательщика: Вы работаете с устаревшими данными.
100.3
Описание ошибки: Ошибки в профиле данной учетной единицы: unitId.
Сообщение для плательщика: Ошибки в профиле данной учетной единицы: unitId.
100.4
Описание ошибки: Ошибки в счетах данной учетной единицы: unitId.
Сообщение для плательщика: Ошибки в счетах данной учетной единицы: unitId.
100.5
Описание ошибки: Ошибки в структуре данной учетной единицы: unitId.
Сообщение для плательщика: Ошибки в структуре данной учетной единицы: unitId.
200
200
Описание ошибки: Ошибка валидации XSD схемы.
Сообщение для плательщика: Ошибка валидации XSD схемы.
300
300.1
Описание ошибки: Неверное имя пользователя и пароль.
Сообщение для плательщика: Неверное имя пользователя и пароль.
300.1.1
Описание ошибки: Неверный одноразовый пароль.
Сообщение для плательщика: Неверный одноразовый пароль.
300.1.2
Описание ошибки: Неизвестное устройство.
Сообщение для плательщика: Неизвестное устройство.
300.1.3
Описание ошибки: Учетная запись заблокирована.
Сообщение для плательщика: Учетная запись заблокирована.
300.2
Описание ошибки: В доступе отказано.
Сообщение для плательщика: В доступе отказано.
300.3
Описание ошибки: В доступе отказано.
Сообщение для плательщика: В доступе отказано.
300.4.1
Описание ошибки: У Вас нет доступа к указанному шаблону.
Сообщение для плательщика: У Вас нет доступа к указанному шаблону.
300.4.2
Описание ошибки: Доступ к заказу запрещён.
Сообщение для плательщика: Доступ к заказу запрещён.
300.4.3
Описание ошибки: Доступ к операции запрещён.
Сообщение для плательщика: Доступ к операции запрещён.
300.4.4
Описание ошибки: Данный счет нельзя редактировать.
Сообщение для плательщика: Данный счет нельзя редактировать.
300.4.5
Описание ошибки: Запрещено создавать профиль с указанным типом.
Сообщение для плательщика: Запрещено создавать профиль с указанным типом.
300.5
Описание ошибки: Пользователь не найден.
Сообщение для плательщика: Пользователь не найден.
300.6
Описание ошибки: Нельзя изменять подтвержденные данные. Одно из значений, которое Вы пытаетесь изменить, имеет статус 'подтвержденное'.
Сообщение для плательщика: Нельзя изменять подтвержденные данные. Одно из значений, которое Вы пытаетесь изменить, имеет статус 'подтвержденное'.
300.7
Описание ошибки: Вход с текущего IP запрещён.
Сообщение для плательщика: Вход с текущего IP запрещён.
400
400.1
400.1.1
Описание ошибки: Проведение операции невозможно.
Сообщение для плательщика: Проведение операции невозможно.
400.1.2
Описание ошибки: Операция ожидает подтверждения.
Сообщение для плательщика: Операция ожидает подтверждения.
400.1.3
Описание ошибки: Операция в процессе обработки.
Сообщение для плательщика: Операция в процессе обработки.
400.1.4
Описание ошибки: Операция в обработке.
Сообщение для плательщика: Операция в обработке.
400.1.5
Описание ошибки: Оплата отменена.
Сообщение для плательщика: Оплата отменена.
400.1.6
Описание ошибки: Данная операция уже оплачена.
Сообщение для плательщика: Данная операция уже оплачена.
400.1.7
Описание ошибки: Проведение операции невозможно.
Сообщение для плательщика: Проведение операции невозможно.
400.1.8.1
Описание ошибки: Невозможно сделать возврат так как операция не завершена.
Сообщение для плательщика: Невозможно сделать возврат так как операция не завершена.
400.1.8.2
Описание ошибки: Невозможно сделать возврат операции. Получатель не принимает платежи.
Сообщение для плательщика: Невозможно сделать возврат операции. Получатель не принимает платежи.
400.1.8.3
Описание ошибки: Невозможно сделать возврат операции.
Сообщение для плательщика: Невозможно сделать возврат операции.
400.1.8.4
Описание ошибки: Невозможно сделать возврат операции.
Сообщение для плательщика: Невозможно сделать возврат операции.
400.1.8.5
Описание ошибки: Невозможно сделать chargeback так как операция не завершена.
Сообщение для плательщика: Невозможно сделать chargeback так как операция не завершена.
400.1.9
Описание ошибки: Ошибка при взаимодействии с внешней системой получателя платежа.
Сообщение для плательщика: Ошибка при взаимодействии с внешней системой получателя платежа.
400.1.10
Описание ошибки: Перечисление на заданный счёт получателя невозможно либо указана неверная сумма.
Сообщение для плательщика: Перечисление на заданный счёт получателя невозможно либо указана неверная сумма.
400.1.10.1
Описание ошибки: Для проведения операции необходимо пройти упрощённую идентификацию на сайте MONETA.RU. Для прохождения упрощенной идентификации укажите в личном кабинете: ФИО, паспортные данные, ИНН, СНИЛС, номер мобильного телефона.
Сообщение для плательщика: Для проведения операции необходимо пройти упрощённую идентификацию на сайте MONETA.RU. Для прохождения упрощенной идентификации укажите в личном кабинете: ФИО, паспортные данные, ИНН, СНИЛС, номер мобильного телефона.
400.1.10.2
Описание ошибки: Счёт получателя анонимный. На основании 161-ФЗ "О национальной платежной системе" от 27.06.2011 ст.7 ч.2.1. пополнение ЭСП невозможно.
Сообщение для плательщика: Счёт получателя анонимный. На основании 161-ФЗ "О национальной платежной системе" от 27.06.2011 ст.7 ч.2.1. пополнение ЭСП невозможно.
400.1.11
Описание ошибки: Счет заблокирован.
Сообщение для плательщика: Счет заблокирован.
400.1.12
Описание ошибки: Недостаточно средств для перевода.
Сообщение для плательщика: Недостаточно средств для перевода.
400.1.13
Описание ошибки: Нельзя отменить данную операцию.
Сообщение для плательщика: Нельзя отменить данную операцию.
400.1.14
Описание ошибки: Последний платежный пароль зарезервирован для получения новой последовательности платежных паролей.
Сообщение для плательщика: Последний платежный пароль зарезервирован для получения новой последовательности платежных паролей.
400.1.15
Описание ошибки: Закончился срок действия кода протекции.
Сообщение для плательщика: Закончился срок действия кода протекции.
400.1.16
Описание ошибки: Сумма в запросе не должна быть больше суммы в операции.
Сообщение для плательщика: Сумма в запросе не должна быть больше суммы в операции.
400.1.17
Описание ошибки: Ошибка при взаимодействии с внешней системой плательщика.
Сообщение для плательщика: Ошибка при взаимодействии с внешней системой плательщика.
400.1.18
Описание ошибки: Сумма в заказе не совпадает с проверочной суммой.
Сообщение для плательщика: Сумма в заказе не совпадает с проверочной суммой.
400.1.19
Описание ошибки: Операция с таким внешним идентификатором находится в обработке или выполнена. Проведение еще одной операции с таким внешним идентификатором невозможно.
Сообщение для плательщика: Операция с таким внешним идентификатором находится в обработке или выполнена. Проведение еще одной операции с таким внешним идентификатором невозможно.
400.1.20
Описание ошибки: Нет прав на проведение операции.
Сообщение для плательщика: Нет прав на проведение операции.
400.1.21
Описание ошибки: Операция заморожена.
Сообщение для плательщика: Операция заморожена.
400.1.22
Описание ошибки: Выставленный счет к оплате недействителен.
Сообщение для плательщика: Выставленный счет к оплате недействителен.
400.1.23
Описание ошибки: Срок действия платежного пароля истек.
Сообщение для плательщика: Срок действия платежного пароля истек.
400.1.24
Описание ошибки: Рекуррентный платеж невозможен.
Сообщение для плательщика: Рекуррентный платеж невозможен.
400.1.25
Описание ошибки: Повторная попытка оплаты с другим номером карты невозможна, транзакция отменена, вы можете оплатить еще раз, будет создана другая транзакция.
Сообщение для плательщика: Повторная попытка оплаты с другим номером карты невозможна, транзакция отменена, вы можете оплатить еще раз, будет создана другая транзакция.
400.1.26
Описание ошибки: Операции с данным счётом невозможны. Обратитесь в коммерческий отдел.
Сообщение для плательщика: Операции с данным счётом невозможны. Обратитесь в коммерческий отдел.
400.1.26.1
Описание ошибки: Вывод средств со счёта невозможен. Обратитесь в коммерческий отдел.
Сообщение для плательщика: Вывод средств со счёта невозможен. Обратитесь в коммерческий отдел.
400.1.26.2
Описание ошибки: Приём средств на счёт невозможен. Обратитесь в коммерческий отдел.
Сообщение для плательщика: Приём средств на счёт невозможен. Обратитесь в коммерческий отдел.
400.2
400.2
Описание ошибки: Операция поставлена в обработку.
Сообщение для плательщика: Операция поставлена в обработку.
400.2.1
Описание ошибки: Операция поставлена в очередь на обработку.
Сообщение для плательщика: Операция поставлена в очередь на обработку.
400.2.1.1
Описание ошибки: Проведение операции невозможно.
Сообщение для плательщика: Проведение операции невозможно.
400.2.2
Описание ошибки: Операция поставлена в очередь на обработку.
Сообщение для плательщика: Операция поставлена в очередь на обработку.
400.2.2.1
Описание ошибки: Проведение операции невозможно.
Сообщение для плательщика: Проведение операции невозможно.
400.2.3
Описание ошибки: Операция поставлена в очередь на обработку.
Сообщение для плательщика: Операция поставлена в очередь на обработку.
400.2.3.1
Описание ошибки: Проведение операции невозможно.
Сообщение для плательщика: Проведение операции невозможно.
400.2.3.2
Описание ошибки: Списание денежных средств со счетов приостановлено до актуализации данных.
Сообщение для плательщика: Списание денежных средств со счетов приостановлено до актуализации данных.
400.2.4
Описание ошибки: Превышены ограничения по сумме перечислений.
Сообщение для плательщика: Превышены ограничения по сумме перечислений.
400.2.4.1
Описание ошибки: Превышены ограничения по сумме перечислений.
Сообщение для плательщика: Превышены ограничения по сумме перечислений.
400.2.5
Описание ошибки: Операция поставлена в очередь на обработку.
Сообщение для плательщика: Операция поставлена в очередь на обработку.
400.2.5.1
Описание ошибки: Проведение операции невозможно.
Сообщение для плательщика: Проведение операции невозможно.
400.2.5.2
Описание ошибки: Перевод возможен только на карту, с которой было пополнение.
Сообщение для плательщика: Перевод возможен только на карту, с которой было пополнение.
400.2.6
Описание ошибки: Превышены ограничения по сумме перечислений.
Сообщение для плательщика: Превышены ограничения по сумме перечислений.
400.2.6.1
Описание ошибки: Превышены ограничения по сумме перечислений.
Сообщение для плательщика: Превышены ограничения по сумме перечислений.
400.2.7
Описание ошибки: Операция поставлена в очередь на обработку.
Сообщение для плательщика: Операция поставлена в очередь на обработку.
400.2.7.1
Описание ошибки: Проведение операции невозможно.
Сообщение для плательщика: Проведение операции невозможно.
400.2.7.2
Описание ошибки: Недопустимое назначение платежа.
Сообщение для плательщика: Недопустимое назначение платежа.
400.2.7.3
Описание ошибки: Недопустимое описание операции.
Сообщение для плательщика: Недопустимое описание операции.
400.2.7.4
Описание ошибки: Оплата возможна только с российских карт с поддержкой 3DSecure.
Сообщение для плательщика: Оплата возможна только с российских карт с поддержкой 3DSecure.
400.2.7.5
Описание ошибки: Оплата возможна только с российских или 3DSecure карт.
Сообщение для плательщика: Оплата возможна только с российских или 3DSecure карт.
400.2.7.6
Описание ошибки: Оплата возможна только с карт с поддержкой 3DSecure.
Сообщение для плательщика: Оплата возможна только с карт с поддержкой 3DSecure.
400.2.7.7
Описание ошибки: Данную операцию могут совершать только идентифицированные пользователи MONETA.RU. Для прохождения упрощенной идентификации укажите в личном кабинете: ФИО, паспортные данные, ИНН, СНИЛС, номер мобильного телефона.
Сообщение для плательщика: Данную операцию могут совершать только идентифицированные пользователи MONETA.RU. Для прохождения упрощенной идентификации укажите в личном кабинете: ФИО, паспортные данные, ИНН, СНИЛС, номер мобильного телефона.
400.2.7.8
Описание ошибки: Оплата с данной карты невозможна. Действует ограничение по стране, банк которой выпустил данную карту.
Сообщение для плательщика: Оплата с данной карты невозможна. Действует ограничение по стране, банк которой выпустил данную карту.
400.2.8.1
Описание ошибки: Ошибка во время шифрования данных.
Сообщение для плательщика: Ошибка во время шифрования данных.
400.2.8.2
Описание ошибки: Ошибка во время расшифровки данных.
Сообщение для плательщика: Ошибка во время расшифровки данных.
500
Описание ошибки: Ошибки при валидации данных.
Сообщение для плательщика: Ошибки при валидации данных.
500.1
500.1
Описание ошибки: Обработка невозможна. Не найдены необходимые объекты.
Сообщение для плательщика: Обработка невозможна. Не найдены необходимые объекты.
500.1.1
Описание ошибки: Указанный счет не существует.
Сообщение для плательщика: Указанный счет не существует.
500.1.2
Описание ошибки: Не найден счет с псевдонимом: alias.
Сообщение для плательщика: Не найден счет с псевдонимом: alias.
500.1.3
Описание ошибки: Не найден счет с номером: "accountId".
Сообщение для плательщика: Не найден счет с номером: "accountId".
500.1.4
Описание ошибки: Счет не найден.
Сообщение для плательщика: Счет не найден.
500.1.5
Описание ошибки: Операция не найдена.
Сообщение для плательщика: Операция не найдена.
500.1.6
Описание ошибки: Не найден счет плательщика.
Сообщение для плательщика: Не найден счет плательщика.
500.1.7
Описание ошибки: Не найден счет получателя.
Сообщение для плательщика: Не найден счет получателя.
500.1.8
Описание ошибки: Документ не найден.
Сообщение для плательщика: Документ не найден.
500.1.8.1
Описание ошибки: Недопустимое имя файла. Поддерживаемые форматы: jpg,png,bmp,pdf,doc,odt.
Сообщение для плательщика: Недопустимое имя файла. Поддерживаемые форматы: jpg,png,bmp,pdf,doc,odt.
500.1.9
Описание ошибки: Данные пользователя не найдены.
Сообщение для плательщика: Данные пользователя не найдены.
500.1.10
Описание ошибки: Неверный ID заказа.
Сообщение для плательщика: Неверный ID заказа.
500.1.11
Описание ошибки: Неверный ID операции.
Сообщение для плательщика: Неверный ID операции.
500.1.12
Описание ошибки: Шаблон с указанным ID не найден.
Сообщение для плательщика: Шаблон с указанным ID не найден.
500.1.13
Описание ошибки: В указанном шаблоне нет таких параметров.
Сообщение для плательщика: В указанном шаблоне нет таких параметров.
500.1.14
Описание ошибки: Пользователь не найден.
Сообщение для плательщика: Пользователь не найден.
500.1.15
Описание ошибки: Неверный идентификатор структуры.
Сообщение для плательщика: Неверный идентификатор структуры.
500.1.16
Описание ошибки: Значение параметра SOURCEACCOUNTID должно быть равно номеру счета, к которому есть доступ.
Сообщение для плательщика: Значение параметра SOURCEACCOUNTID должно быть равно номеру счета, к которому есть доступ.
500.1.17
Описание ошибки: Значение параметра SOURCEACCOUNTID должно быть равно либо {TARGETACCOUNTID}, либо номеру счета, к которому есть доступ.
Сообщение для плательщика: Значение параметра SOURCEACCOUNTID должно быть равно либо {TARGETACCOUNTID}, либо номеру счета, к которому есть доступ.
500.1.18
Описание ошибки: Данные находятся в архиве и не могут быть получены в данный момент.
Сообщение для плательщика: Данные находятся в архиве и не могут быть получены в данный момент.
500.1.18.1
Описание ошибки: Данные находятся в архиве и не могут быть получены в данный момент. Укажите дату позднее dd.mm.yyyy.
Сообщение для плательщика: Данные находятся в архиве и не могут быть получены в данный момент. Укажите дату позднее dd.mm.yyyy.
500.1.19
Описание ошибки: Банковские реквизиты не найдены.
Сообщение для плательщика: Банковские реквизиты не найдены.
500.1.20
Описание ошибки: Не указан ID банковских реквизитов.
Сообщение для плательщика: Не указан ID банковских реквизитов.
500.1.21
Описание ошибки: У пользователя не установлен Публичный идентификатор.
Сообщение для плательщика: У пользователя не установлен Публичный идентификатор.
500.1.22
Описание ошибки: Данные Secure Token не найдены.
Сообщение для плательщика: Данные Secure Token не найдены.
500.1.23
Описание ошибки: Обработка невозможна. Не найдены необходимые свойства объекта.
Сообщение для плательщика: Обработка невозможна. Не найдены необходимые свойства объекта.
500.2
500.2
Описание ошибки: Неверное значение передаваемого параметра.
Сообщение для плательщика: Неверное значение передаваемого параметра.
500.2.1
Описание ошибки: Элемент element_name обязателен для заполнения.
Сообщение для плательщика: Элемент element_name обязателен для заполнения.
500.2.1.1
Описание ошибки: Элемент * задан неверно.
Сообщение для плательщика: Элемент * задан неверно.
500.2.2
Описание ошибки: Обязательное поле.
Сообщение для плательщика: Обязательное поле.
500.2.3
Описание ошибки: The element_name element is required.
Сообщение для плательщика: The element_name element is required.
500.2.4
Описание ошибки: The element_name element must be null.
Сообщение для плательщика: The element_name element must be null.
500.2.5
Описание ошибки: The element_name element must be null or empty.
Сообщение для плательщика: The element_name element must be null or empty.
500.2.6
Описание ошибки: The element_name and element_name values do not match in the request and response.
Сообщение для плательщика: The element_name and element_name values do not match in the request and response.
500.2.7
Описание ошибки: Неверный формат.
Сообщение для плательщика: Неверный формат.
500.2.7.1
Описание ошибки: Неверный формат логической переменной: *.
Сообщение для плательщика: Неверный формат логической переменной: *.
500.2.7.2
Описание ошибки: Неверный формат числа: *.
Сообщение для плательщика: Неверный формат числа: *.
500.2.8
Описание ошибки: Переданы не все необходимые параметры для дальнейшей обработки данных.
Сообщение для плательщика: Переданы не все необходимые параметры для дальнейшей обработки данных.
500.3
500.3.1.1
Описание ошибки: Неверный платежный пароль.
Сообщение для плательщика: Неверный платежный пароль.
500.3.1.2
Описание ошибки: Указанная сумма некорректна.
Сообщение для плательщика: Указанная сумма некорректна.
500.3.1.3
Описание ошибки: Счет плательщика задан неправильно.
Сообщение для плательщика: Счет плательщика задан неправильно.
500.3.1.4
Описание ошибки: Счет получателя задан неправильно.
Сообщение для плательщика: Счет получателя задан неправильно.
500.3.1.5
Описание ошибки: Сумма плательщика задана неправильно.
Сообщение для плательщика: Сумма плательщика задана неправильно.
500.3.1.6
Описание ошибки: Сумма получателя задана неправильно.
Сообщение для плательщика: Сумма получателя задана неправильно.
500.3.1.7
Описание ошибки: Сумма не должна превышать amountcurrency.
Сообщение для плательщика: Сумма не должна превышать amountcurrency.
500.3.1.8
Описание ошибки: Сумма должна быть больше amountcurrency.
Сообщение для плательщика: Сумма должна быть больше amountcurrency.
500.3.1.9
Описание ошибки: Невозможно определить - является ли переданная сумма суммой плательщика или получателя.
Сообщение для плательщика: Невозможно определить - является ли переданная сумма суммой плательщика или получателя.
500.3.1.10
Описание ошибки: Нельзя использовать поле transactionId, если transactional = true.
Сообщение для плательщика: Нельзя использовать поле transactionId, если transactional = true.
500.3.1.11
Описание ошибки: Введен неверный код протекции.
Сообщение для плательщика: Введен неверный код протекции.
500.3.1.12
Описание ошибки: TransactionId не сходится с OperationInfo.ID.
Сообщение для плательщика: TransactionId не сходится с OperationInfo.ID.
500.3.1.13
Описание ошибки: Сумма должна быть больше нуля.
Сообщение для плательщика: Сумма должна быть больше нуля.
500.3.1.17
Описание ошибки: Необходимо указать сумму. Сумма должна быть положительным числом.
Сообщение для плательщика: Необходимо указать сумму. Сумма должна быть положительным числом.
500.3.1.18
Описание ошибки: Данный идентификатор операции уже существует.
Сообщение для плательщика: Данный идентификатор операции уже существует.
500.3.1.19
Описание ошибки: Слишком много транзакций.
Сообщение для плательщика: Слишком много транзакций.
500.3.1.20
Описание ошибки: В пакетном режиме нельзя проводить операции с внешними платежными системами.
Сообщение для плательщика: В пакетном режиме нельзя проводить операции с внешними платежными системами.
500.3.1.21
Описание ошибки: Не задана сумма заказа.
Сообщение для плательщика: Не задана сумма заказа.
500.3.1.22
Описание ошибки: Не задан внутренний идентификатор заказа.
Сообщение для плательщика: Не задан внутренний идентификатор заказа.
500.3.1.23
Описание ошибки: В операции указан другой внешний идентификатор плательщика.
Сообщение для плательщика: В операции указан другой внешний идентификатор плательщика.
500.3.1.24
Описание ошибки: В операции указан другой внешний идентификатор получателя.
Сообщение для плательщика: В операции указан другой внешний идентификатор получателя.
500.3.1.25
Описание ошибки: Необходимо ввести номер карты.
Сообщение для плательщика: Необходимо ввести номер карты.
500.3.1.26
Описание ошибки: Необходимо ввести срок действия карты.
Сообщение для плательщика: Необходимо ввести срок действия карты.
500.3.1.27
Описание ошибки: Необходимо ввести код CVV2/CVC2.
Сообщение для плательщика: Необходимо ввести код CVV2/CVC2.
500.3.1.28
Описание ошибки: Неверный формат номера карты.
Сообщение для плательщика: Неверный формат номера карты.
500.3.1.29
Описание ошибки: Неверный формат срока действия карты (MM/YYYY).
Сообщение для плательщика: Неверный формат срока действия карты (MM/YYYY).
500.3.1.30
Описание ошибки: Неверный формат кода CVV2/CVC2 (3 цифры).
Сообщение для плательщика: Неверный формат кода CVV2/CVC2 (3 цифры).
500.3.1.31
Описание ошибки: В одном пакетном запросе нельзя выполнить проведение новой операции и подтверждение существующей операции.
Сообщение для плательщика: В одном пакетном запросе нельзя выполнить проведение новой операции и подтверждение существующей операции.
500.3.1.32
Описание ошибки: Нельзя установить код CVV2/CVC2 при создании инвойса.
Сообщение для плательщика: Нельзя установить код CVV2/CVC2 при создании инвойса.
500.3.1.33
Описание ошибки: Неверный формат имени владельца карты (латинские буквы, имя и фамилия через пробел).
Сообщение для плательщика: Неверный формат имени владельца карты (латинские буквы, имя и фамилия через пробел).
500.3.1.34
Описание ошибки: Данный запрос не поддерживает работу в одной транзакции (transactional = true). Используйте transactional = false.
Сообщение для плательщика: Данный запрос не поддерживает работу в одной транзакции (transactional = true). Используйте transactional = false.
500.3.1.35
Описание ошибки: Необходимо ввести владельца карты.
Сообщение для плательщика: Необходимо ввести владельца карты.
500.3.1.36
Описание ошибки: Для работы с данными полями необходима PCI DSS сертификация.
Сообщение для плательщика: Для работы с данными полями необходима PCI DSS сертификация.
500.3.1.37
Описание ошибки: Карта с истекшим сроком действия.
Сообщение для плательщика: Карта с истекшим сроком действия.
500.3.1.38
Описание ошибки: Слишком длинное имя владельца карты (максимум кол-во символов: *).
Сообщение для плательщика: Слишком длинное имя владельца карты (максимум кол-во символов: *).
500.3.1.39.1
Описание ошибки: Платежная сессия завершена либо был изменен IP-адрес клиента.
Сообщение для плательщика: Платежная сессия завершена либо был изменен IP-адрес клиента.
500.3.1.39.2
Описание ошибки: Задан неверный идентификатор получателя.
Сообщение для плательщика: Задан неверный идентификатор получателя.
500.3.1.39.3
Описание ошибки: Получатель временно не может принимать платежи.
Сообщение для плательщика: Получатель временно не может принимать платежи.
500.3.1.39.4
Описание ошибки: Данный идентификатор заказа уже существует.
Сообщение для плательщика: Данный идентификатор заказа уже существует.
500.3.1.39.5
Описание ошибки: Сумма заказа должна быть положительным числом.
Сообщение для плательщика: Сумма заказа должна быть положительным числом.
500.3.1.39.6
Описание ошибки: Сумма заказа не совпадает с той суммой, которая была указана первоначально. Следует указать либо начальную сумму, либо создать операцию с новым внешним идентификатором.
Сообщение для плательщика: Сумма заказа не совпадает с той суммой, которая была указана первоначально. Следует указать либо начальную сумму, либо создать операцию с новым внешним идентификатором.
500.3.1.39.7
Описание ошибки: Код валюты не соответствует коду валюты получателя.
Сообщение для плательщика: Код валюты не соответствует коду валюты получателя.
500.3.1.39.8
Описание ошибки: Неизвестный код валюты.
Сообщение для плательщика: Неизвестный код валюты.
500.3.1.39.9
Описание ошибки: Не задан Success URL.
Сообщение для плательщика: Не задан Success URL.
500.3.1.39.10
Описание ошибки: Не задан Fail URL.
Сообщение для плательщика: Не задан Fail URL.
500.3.1.39.11
Описание ошибки: Поля произвольных параметров превышают допустимый размер (1.5КБ).
Сообщение для плательщика: Поля произвольных параметров превышают допустимый размер (1.5КБ).
500.3.1.39.12
Описание ошибки: Неверно указаны параметры для обработки.
Сообщение для плательщика: Неверно указаны параметры для обработки.
500.3.1.39.13
Описание ошибки: Не включен тестовый режим на счете.
Сообщение для плательщика: Не включен тестовый режим на счете.
500.3.1.39.14
Описание ошибки: Включен тестовый режим на счете.
Сообщение для плательщика: Включен тестовый режим на счете.
500.3.1.39.15
Описание ошибки: Не указана платежная система.
Сообщение для плательщика: Не указана платежная система.
500.3.1.39.16
Описание ошибки: Не указан счет платежной системы.
Сообщение для плательщика: Не указан счет платежной системы.
500.3.1.39.17
Описание ошибки: Нет доступных платежных систем для оплаты.
Сообщение для плательщика: Нет доступных платежных систем для оплаты.
500.3.1.39.18
Описание ошибки: Операция с таким внешним идентификатором была отменена.
Сообщение для плательщика: Операция с таким внешним идентификатором была отменена.
500.3.1.39.19
Описание ошибки: Данная операция уже в обработке или оплачена. Вам необходимо вернуться в магазин и создать новую оплату.
Сообщение для плательщика: Данная операция уже в обработке или оплачена. Вам необходимо вернуться в магазин и создать новую оплату.
500.3.1.39.20
Описание ошибки: Данная операция не принадлежит указанному получателю.
Сообщение для плательщика: Данная операция не принадлежит указанному получателю.
500.3.1.39.21
Описание ошибки: Проведение этой операции невозможно. Вам необходимо вернуться в магазин и создать новую оплату.
Сообщение для плательщика: Проведение этой операции невозможно. Вам необходимо вернуться в магазин и создать новую оплату.
500.3.1.39.22
Описание ошибки: Неверный ID подписчика.
Сообщение для плательщика: Неверный ID подписчика.
500.3.1.39.23
Описание ошибки: Неверный ID поставщика.
Сообщение для плательщика: Неверный ID поставщика.
500.3.1.39.24
Описание ошибки: Запрос на возврат сделан слишком поздно.
Сообщение для плательщика: Запрос на возврат сделан слишком поздно.
500.3.1.39.25
Описание ошибки: Не получены данные о браузере.
Сообщение для плательщика: Не получены данные о браузере.
500.3.2.1
Описание ошибки: Неверный предыдущий платёжный пароль, поэтому вы не можете сохранить новый пароль.
Сообщение для плательщика: Неверный предыдущий платёжный пароль, поэтому вы не можете сохранить новый пароль.
500.3.2.2
Описание ошибки: Не указан псевдоним счета.
Сообщение для плательщика: Не указан псевдоним счета.
500.3.2.3
Описание ошибки: Неверно задан тип удостоверения личности.
Сообщение для плательщика: Неверно задан тип удостоверения личности.
500.3.2.4
Описание ошибки: Неизвестный тип профиля.
Сообщение для плательщика: Неизвестный тип профиля.
500.3.2.5
Описание ошибки: Неверная дата рождения.
Сообщение для плательщика: Неверная дата рождения.
500.3.2.6
Описание ошибки: Неверное значение пола.
Сообщение для плательщика: Неверное значение пола.
500.3.2.7
Описание ошибки: Неверный формат номера телефона.
Сообщение для плательщика: Неверный формат номера телефона.
500.3.2.8
Описание ошибки: Неверный формат e-mail.
Сообщение для плательщика: Неверный формат e-mail.
500.3.2.9
Описание ошибки: Длина платежного пароля меньше 5 символов.
Сообщение для плательщика: Длина платежного пароля меньше 5 символов.
500.3.2.10
Описание ошибки: Платёжный пароль больше 32 символов.
Сообщение для плательщика: Платёжный пароль больше 32 символов.
500.3.2.11
Описание ошибки: Платежный пароль должен состоять только из цифр.
Сообщение для плательщика: Платежный пароль должен состоять только из цифр.
500.3.2.12
Описание ошибки: Неверно задан URL.
Сообщение для плательщика: Неверно задан URL.
500.3.2.13
Описание ошибки: URL должен начинаться с http[s]:// или template://.
Сообщение для плательщика: URL должен начинаться с http[s]:// или template://.
500.3.2.14
Описание ошибки: Псевдоним счета должен быть уникальным. У вас уже есть другой счет с таким псевдонимом: *.
Сообщение для плательщика: Псевдоним счета должен быть уникальным. У вас уже есть другой счет с таким псевдонимом: *.
500.3.2.15
Описание ошибки: Ошибки при валидации полей документа.
Сообщение для плательщика: Ошибки при валидации полей документа.
500.3.2.15.1
Описание ошибки: Указанная дата ещё не наступила. Введите корректную дату. Поле "*".
Сообщение для плательщика: Указанная дата ещё не наступила. Введите корректную дату. Поле "*".
500.3.2.15.2.1
Описание ошибки: Серия документа - обязательное поле.
Сообщение для плательщика: Серия документа - обязательное поле.
500.3.2.15.3.1
Описание ошибки: Номер документа - обязательное поле.
Сообщение для плательщика: Номер документа - обязательное поле.
500.3.2.16
Описание ошибки: Фамилия - обязательное поле.
Сообщение для плательщика: Фамилия - обязательное поле.
500.3.2.17
Описание ошибки: Имя - обязательное поле.
Сообщение для плательщика: Имя - обязательное поле.
500.3.2.18
Описание ошибки: Слишком длинный Псевдоним. Максимальная длина 64 символа.
Сообщение для плательщика: Слишком длинный Псевдоним. Максимальная длина 64 символа.
500.3.2.19
Описание ошибки: Пользователи системы не должны быть моложе 14 лет.
Сообщение для плательщика: Пользователи системы не должны быть моложе 14 лет.
500.3.2.20
Описание ошибки: Дата рождения должна быть больше 1900 года.
Сообщение для плательщика: Дата рождения должна быть больше 1900 года.
500.3.2.21
Описание ошибки: Требуется корректный 10-значный или 12-значный ИНН.
Сообщение для плательщика: Требуется корректный 10-значный или 12-значный ИНН.
500.3.2.21.1
Описание ошибки: Требуется корректный 10-значный ИНН.
Сообщение для плательщика: Требуется корректный 10-значный ИНН.
500.3.2.21.2
Описание ошибки: Требуется корректный 12-значный ИНН.
Сообщение для плательщика: Требуется корректный 12-значный ИНН.
500.3.2.21.3
Описание ошибки: Необходимо заполнить одно из полей: ИНН или СНИЛС.
Сообщение для плательщика: Необходимо заполнить одно из полей: ИНН или СНИЛС.
500.3.2.22
Описание ошибки: Неверно указана страна для региона.
Сообщение для плательщика: Неверно указана страна для региона.
500.3.2.23
Описание ошибки: Неверно указан регион для города.
Сообщение для плательщика: Неверно указан регион для города.
500.3.2.24
Описание ошибки: Укажите номер телефона в международном формате (например, 71234567890).
Сообщение для плательщика: Укажите номер телефона в международном формате (например, 71234567890).
500.3.2.25
Описание ошибки: Неверный адрес сайта. Пример правильного написания: http://www.site.com или http://site.com.
Сообщение для плательщика: Неверный адрес сайта. Пример правильного написания: http://www.site.com или http://site.com.
500.3.2.26
Описание ошибки: Неверно задан email. Пример правильного написания: email@company.ru.
Сообщение для плательщика: Неверно задан email. Пример правильного написания: email@company.ru.
500.3.2.27
Описание ошибки: Название организации - обязательное поле.
Сообщение для плательщика: Название организации - обязательное поле.
500.3.2.28
Описание ошибки: ФИО руководителя - обязательное поле.
Сообщение для плательщика: ФИО руководителя - обязательное поле.
500.3.2.29
Описание ошибки: Нельзя создать запрещающее правило для данного пользователя.
Сообщение для плательщика: Нельзя создать запрещающее правило для данного пользователя.
500.3.2.30
Описание ошибки: Неверный идентификатор статуса.
Сообщение для плательщика: Неверный идентификатор статуса.
500.3.2.31
Описание ошибки: Такой псевдоним уже существует.
Сообщение для плательщика: Такой псевдоним уже существует.
500.3.2.32
Описание ошибки: 'Баланс меньше' указан неверно.
Сообщение для плательщика: 'Баланс меньше' указан неверно.
500.3.2.33
Описание ошибки: Не установлен ни один из прав доступа.
Сообщение для плательщика: Не установлен ни один из прав доступа.
500.3.2.34
Описание ошибки: Укажите другой счет в качестве прототипа.
Сообщение для плательщика: Укажите другой счет в качестве прототипа.
500.3.2.35
Описание ошибки: Указанный счет ссылается на другой счет-прототип. Укажите другой счет.
Сообщение для плательщика: Указанный счет ссылается на другой счет-прототип. Укажите другой счет.
500.3.2.36
Описание ошибки: Нельзя создать счет в данной валюте или с данным типом.
Сообщение для плательщика: Нельзя создать счет в данной валюте или с данным типом.
500.3.2.36.1
Описание ошибки: Ваша заявка на открытие расчётного счёта в НКО «МОНЕТА» (ООО) принята.
Сообщение для плательщика: Ваша заявка на открытие расчётного счёта в НКО «МОНЕТА» (ООО) принята.
500.3.2.37
Описание ошибки: Можно использовать только для счетов со статическим платежным паролем.
Сообщение для плательщика: Можно использовать только для счетов со статическим платежным паролем.
500.3.2.38
Описание ошибки: Неверный формат шаблона. Шаблон должен быть в формате: template://template_id?param_name=param_value.
Сообщение для плательщика: Неверный формат шаблона. Шаблон должен быть в формате: template://template_id?param_name=param_value.
500.3.2.39
Описание ошибки: Указанный счет имеет другой тип. Укажите другой счет.
Сообщение для плательщика: Указанный счет имеет другой тип. Укажите другой счет.
500.3.2.40
Описание ошибки: Нельзя перенести структуру в саму себя.
Сообщение для плательщика: Нельзя перенести структуру в саму себя.
500.3.2.40.1
Описание ошибки: Нельзя перенести данную структуру, так как она может содержать счета с номерами договоров, которые не будут актуальны в новой ветке.
Сообщение для плательщика: Нельзя перенести данную структуру, так как она может содержать счета с номерами договоров, которые не будут актуальны в новой ветке.
500.3.2.41
Описание ошибки: Невозможно провести идентификацию.
Сообщение для плательщика: Невозможно провести идентификацию.
500.3.2.42
Описание ошибки: Неверный код идентификации.
Сообщение для плательщика: Неверный код идентификации.
500.3.2.43
Описание ошибки: Адрес регистрации - обязательное поле.
Сообщение для плательщика: Адрес регистрации - обязательное поле.
500.3.2.44
Описание ошибки: Дата рождения - обязательное поле.
Сообщение для плательщика: Дата рождения - обязательное поле.
500.3.2.45
Описание ошибки: Нельзя изменять подтвержденное свойство.
Сообщение для плательщика: Нельзя изменять подтвержденное свойство.
500.3.2.46
Описание ошибки: Неверно указан СНИЛС.
Сообщение для плательщика: Неверно указан СНИЛС.
500.3.2.47
Описание ошибки: Не указан сотовый телефон.
Сообщение для плательщика: Не указан сотовый телефон.
500.3.2.48
Описание ошибки: Телефон уже подтвержден.
Сообщение для плательщика: Телефон уже подтвержден.
500.3.2.48.1
Описание ошибки: Подтверждение телефона уже отменено.
Сообщение для плательщика: Подтверждение телефона уже отменено.
500.3.2.49
Описание ошибки: Сообщение не содержит подстановки {CODE}.
Сообщение для плательщика: Сообщение не содержит подстановки {CODE}.
500.3.2.50
Описание ошибки: Слишком большая длина sms сообщения.
Сообщение для плательщика: Слишком большая длина sms сообщения.
500.3.2.51
Описание ошибки: Неверный код подтверждения.
Сообщение для плательщика: Неверный код подтверждения.
500.3.2.51.1
Описание ошибки: Неверный код отмены подтверждения.
Сообщение для плательщика: Неверный код отмены подтверждения.
500.3.2.52.1
Описание ошибки: Необходим корректный БИК (9 цифр) в поле "*".
Сообщение для плательщика: Необходим корректный БИК (9 цифр) в поле "*".
500.3.2.52.2
Описание ошибки: Номер расчётного счёта некорректный в поле "*". Введите правильный номер.
Сообщение для плательщика: Номер расчётного счёта некорректный в поле "*". Введите правильный номер.
500.3.2.52.3
Описание ошибки: Указанный счёт предназначен для обслуживания физического лица в поле "*". Нельзя использовать его в целях приёма платежей.
Сообщение для плательщика: Указанный счёт предназначен для обслуживания физического лица в поле "*". Нельзя использовать его в целях приёма платежей.
500.3.2.52.4
Описание ошибки: Введён БИК, соответствующий РКЦ Банка России. В этом случае поле "Корреспондентский счёт" не заполняется.
Сообщение для плательщика: Введён БИК, соответствующий РКЦ Банка России. В этом случае поле "Корреспондентский счёт" не заполняется.
500.3.2.52.5
Описание ошибки: Номер корреспондентского счёта не корректный. Введите правильный номер.
Сообщение для плательщика: Номер корреспондентского счёта не корректный. Введите правильный номер.
500.3.2.52.6
Описание ошибки: Необходим корректный КБК в поле "*".
Сообщение для плательщика: Необходим корректный КБК в поле "*".
500.3.2.52.7
Описание ошибки: Необходим корректный ОКТМО в поле "*".
Сообщение для плательщика: Необходим корректный ОКТМО в поле "*".
500.3.2.52.8
Описание ошибки: Необходим корректный КПП (9-значное число) в поле "*".
Сообщение для плательщика: Необходим корректный КПП (9-значное число) в поле "*".
500.3.2.52.9
Описание ошибки: Укажите SWIFT в корректном формате (8 или 11 символов - заглавные латинские буквы и цифры).
Сообщение для плательщика: Укажите SWIFT в корректном формате (8 или 11 символов - заглавные латинские буквы и цифры).
500.3.2.52.10
Описание ошибки: Укажите IBAN в корректном формате в поле "*" (от 5 до 40 символов - заглавные латинские буквы и цифры).
Сообщение для плательщика: Укажите IBAN в корректном формате в поле "*" (от 5 до 40 символов - заглавные латинские буквы и цифры).
500.3.2.53
Описание ошибки: Нельзя выбрать данный тип платежного пароля.
Сообщение для плательщика: Нельзя выбрать данный тип платежного пароля.
500.3.2.54
Описание ошибки: Запрещено использовать квадратные скобки в псевдониме.
Сообщение для плательщика: Запрещено использовать квадратные скобки в псевдониме.
500.3.2.55
Описание ошибки: Слишком длинное значение в поле "element_name". Предел: "length".
Сообщение для плательщика: Слишком длинное значение в поле "element_name". Предел: "length".
500.3.2.57
Описание ошибки: Неверный формат Secure Token.
Сообщение для плательщика: Неверный формат Secure Token.
500.3.2.58
Описание ошибки: Закончился срок действия Secure Token.
Сообщение для плательщика: Закончился срок действия Secure Token.
500.3.2.59.1
Описание ошибки: Неправильная подпись формы оплаты.
Сообщение для плательщика: Неправильная подпись формы оплаты.
500.3.2.59.2
Описание ошибки: Подпись на форме оплаты обязательна.
Сообщение для плательщика: Подпись на форме оплаты обязательна.
500.3.2.60
Описание ошибки: Нельзя менять тип учетных единиц у записей данного вида.
Сообщение для плательщика: Нельзя менять тип учетных единиц у записей данного вида.
500.3.2.61
Описание ошибки: Неверный тип счета.
Сообщение для плательщика: Неверный тип счета.
500.3.2.61.1
Описание ошибки: Неверно указан подтип счёта.
Сообщение для плательщика: Неверно указан подтип счёта.
500.3.2.62.1
Описание ошибки: Данный счет нельзя заблокировать, потому что он не является активным.
Сообщение для плательщика: Данный счет нельзя заблокировать, потому что он не является активным.
500.3.2.63.1
Описание ошибки: Данный счет нельзя разблокировать, потому что он не заблокирован.
Сообщение для плательщика: Данный счет нельзя разблокировать, потому что он не заблокирован.
500.3.2.63.2
Описание ошибки: Разблокировать счет невозможно, так как ранее Вами не был указан секретный вопрос. Обратитесь в службу поддержки.
Сообщение для плательщика: Разблокировать счет невозможно, так как ранее Вами не был указан секретный вопрос. Обратитесь в службу поддержки.
500.3.2.63.3
Описание ошибки: Разблокировать счет невозможно, так как ранее Вами не был указан ответ на секретный вопрос. Обратитесь в службу поддержки.
Сообщение для плательщика: Разблокировать счет невозможно, так как ранее Вами не был указан ответ на секретный вопрос. Обратитесь в службу поддержки.
500.3.2.63.4
Описание ошибки: Данный счет не является заблокированным.
Сообщение для плательщика: Данный счет не является заблокированным.
500.3.2.63.5
Описание ошибки: Данный счет не может быть автоматически разблокирован. Обратитесь в службу поддержки.
Сообщение для плательщика: Данный счет не может быть автоматически разблокирован. Обратитесь в службу поддержки.
500.3.2.63.6
Описание ошибки: Возможность использовать ответ на секретный вопрос заблокирована на один час. Попробуйте позднее или обратитесь в службу поддержки.
Сообщение для плательщика: Возможность использовать ответ на секретный вопрос заблокирована на один час. Попробуйте позднее или обратитесь в службу поддержки.
500.3.2.63.7
Описание ошибки: Возможность использовать платежный пароль для активации счета заблокирована на один час. Попробуйте позднее или обратитесь в службу поддержки.
Сообщение для плательщика: Возможность использовать платежный пароль для активации счета заблокирована на один час. Попробуйте позднее или обратитесь в службу поддержки.
500.3.2.63.8
Описание ошибки: Неправильный ответ на вопрос.
Сообщение для плательщика: Неправильный ответ на вопрос.
500.3.2.63.9
Описание ошибки: Учетная запись не заблокирована.
Сообщение для плательщика: Учетная запись не заблокирована.
500.3.2.63.10
Описание ошибки: Разблокировать учетную запись невозможно, так как для пользователя с данным e-mail или телефоном не был указан секретный вопрос. Обратитесь в службу поддержки.
Сообщение для плательщика: Разблокировать учетную запись невозможно, так как для пользователя с данным e-mail или телефоном не был указан секретный вопрос. Обратитесь в службу поддержки.
500.3.2.63.11
Описание ошибки: Разблокировать учетную запись невозможно, так как ранее Вами не был указан ответ на секретный вопрос. Обратитесь в службу поддержки.
Сообщение для плательщика: Разблокировать учетную запись невозможно, так как ранее Вами не был указан ответ на секретный вопрос. Обратитесь в службу поддержки.
500.3.2.63.12
Описание ошибки: Данная учетная запись не может быть автоматически разблокирована. Обратитесь в службу поддержки.
Сообщение для плательщика: Данная учетная запись не может быть автоматически разблокирована. Обратитесь в службу поддержки.
500.3.2.63.13
Описание ошибки: Необходим ответ на секретный вопрос.
Сообщение для плательщика: Необходим ответ на секретный вопрос.
500.3.2.64.1
Описание ошибки: Неверно указан Тип интерфейса.
Сообщение для плательщика: Неверно указан Тип интерфейса.
500.3.2.64.2
Описание ошибки: Неверно указан список платежных систем.
Сообщение для плательщика: Неверно указан список платежных систем.
500.3.2.64.3
Описание ошибки: Неверно задана платежная система по умолчанию.
Сообщение для плательщика: Неверно задана платежная система по умолчанию.
500.3.2.64.4
Описание ошибки: Неверно указан HTTP метод.
Сообщение для плательщика: Неверно указан HTTP метод.
500.3.2.64.5
Описание ошибки: Неверно указан Target.
Сообщение для плательщика: Неверно указан Target.
500.3.2.64.6
Описание ошибки: Превышено допустимое количество символов.
Сообщение для плательщика: Превышено допустимое количество символов.
500.3.2.64.7
Описание ошибки: Запрещено использовать квадратные скобки в псевдониме.
Сообщение для плательщика: Запрещено использовать квадратные скобки в псевдониме.
500.3.2.65.1
Описание ошибки: Неверный формат URL.
Сообщение для плательщика: Неверный формат URL.
500.3.2.65.2
Описание ошибки: Ошибка установки соединения.
Сообщение для плательщика: Ошибка установки соединения.
500.3.2.65.3
Описание ошибки: Срок действия серверного сертификата истек.
Сообщение для плательщика: Срок действия серверного сертификата истек.
500.3.2.65.4
Описание ошибки: Ошибка проверки центра сертификации серверного сертификата.
Сообщение для плательщика: Ошибка проверки центра сертификации серверного сертификата.
500.3.2.65.5
Описание ошибки: Срок действия серверного сертификата еще не начался.
Сообщение для плательщика: Срок действия серверного сертификата еще не начался.
500.3.2.66.1
Описание ошибки: Нет прав на смену платежного пароля.
Сообщение для плательщика: Нет прав на смену платежного пароля.
500.3.2.66.2
Описание ошибки: Не указан новый тип платежного пароля.
Сообщение для плательщика: Не указан новый тип платежного пароля.
500.3.2.66.3
Описание ошибки: Счета принадлежат разным пользователям.
Сообщение для плательщика: Счета принадлежат разным пользователям.
500.3.2.66.4
Описание ошибки: Выбраны счета с разными платежными паролями.
Сообщение для плательщика: Выбраны счета с разными платежными паролями.
500.3.2.66.5
Описание ошибки: Неверный код введен много раз. Попробуйте заполнить форму еще раз и получить код в новом SMS сообщении.
Сообщение для плательщика: Неверный код введен много раз. Попробуйте заполнить форму еще раз и получить код в новом SMS сообщении.
500.3.2.66.6
Описание ошибки: Можно выбрать только один счет с типом платежного пароля "SMS пароль".
Сообщение для плательщика: Можно выбрать только один счет с типом платежного пароля "SMS пароль".
500.3.2.66.7
Описание ошибки: Неверный одноразовый платежный пароль. Проверьте еще раз секретный ключ (он указан в формате base32), период времени (30 сек.), длину платежного пароля (6 символов), хеширование (SHA-1). Также проверьте текущее время на Вашем устройстве, и если нужно, то синхронизируйте его.
Сообщение для плательщика: Неверный одноразовый платежный пароль. Проверьте еще раз секретный ключ (он указан в формате base32), период времени (30 сек.), длину платежного пароля (6 символов), хеширование (SHA-1). Также проверьте текущее время на Вашем устройстве, и если нужно, то синхронизируйте его.
500.3.2.66.8
Описание ошибки: Можно выбрать только один счет.
Сообщение для плательщика: Можно выбрать только один счет.
500.3.2.67
Описание ошибки: Счет не выбран.
Сообщение для плательщика: Счет не выбран.
500.3.2.68.1
Описание ошибки: Неверный код проверки запроса.
Сообщение для плательщика: Неверный код проверки запроса.
500.3.2.69
Описание ошибки: Некорректный CSS. Обратитесь в службу поддержки.
Сообщение для плательщика: Некорректный CSS. Обратитесь в службу поддержки.
500.3.3.1
Описание ошибки: Сумма "от" больше суммы "до".
Сообщение для плательщика: Сумма "от" больше суммы "до".
500.3.3.2
Описание ошибки: Дата "от" больше даты "до".
Сообщение для плательщика: Дата "от" больше даты "до".
500.3.3.3
Описание ошибки: Максимальный интервал просмотра истории операций составляет 30 дней. Измените дату начала или конца периода просмотра.
Сообщение для плательщика: Максимальный интервал просмотра истории операций составляет 30 дней. Измените дату начала или конца периода просмотра.
500.3.3.4
Описание ошибки: Сумма не может быть отрицательной.
Сообщение для плательщика: Сумма не может быть отрицательной.
500.3.3.5
Описание ошибки: Если задана сумма, то следует указать валюту.
Сообщение для плательщика: Если задана сумма, то следует указать валюту.
500.3.3.6
Описание ошибки: Неверно задан тип суммы операции.
Сообщение для плательщика: Неверно задан тип суммы операции.
500.3.3.7
Описание ошибки: Неверно задан код валюты.
Сообщение для плательщика: Неверно задан код валюты.
500.3.3.8
Описание ошибки: Не указан период.
Сообщение для плательщика: Не указан период.
500.3.3.9
Описание ошибки: Указан неверный период.
Сообщение для плательщика: Указан неверный период.
500.3.3.10
Описание ошибки: Указан неверный тип операции.
Сообщение для плательщика: Указан неверный тип операции.
500.3.3.11
Описание ошибки: Период просмотра финансовых потоков не может быть больше 3 месяцев.
Сообщение для плательщика: Период просмотра финансовых потоков не может быть больше 3 месяцев.
500.3.3.12
Описание ошибки: Дата "начала периода" больше даты "конца периода".
Сообщение для плательщика: Дата "начала периода" больше даты "конца периода".
500.3.3.13
Описание ошибки: Период просмотра Итогов по месяцам с "деталями по дням" не может быть больше месяца.
Сообщение для плательщика: Период просмотра Итогов по месяцам с "деталями по дням" не может быть больше месяца.
500.3.3.14
Описание ошибки: Период просмотра финансовых потоков с "деталями по дням" не может быть больше месяца.
Сообщение для плательщика: Период просмотра финансовых потоков с "деталями по дням" не может быть больше месяца.
500.3.3.15
Описание ошибки: Период просмотра операций не может быть больше одного года.
Сообщение для плательщика: Период просмотра операций не может быть больше одного года.
500.3.3.16
Описание ошибки: Платеж с идентичного счета невозможен.
Сообщение для плательщика: Платеж с идентичного счета невозможен.
500.4
500.4.1.1
Описание ошибки: Указанный вами лицевой счет не найден в реестре начислений. Проверьте корректность лицевого счета или обратитесь к поставщику услуг.
Сообщение для плательщика: Указанный вами лицевой счет не найден в реестре начислений. Проверьте корректность лицевого счета или обратитесь к поставщику услуг.
500.4.1.2
Описание ошибки: Некорректный формат поля "*".
Сообщение для плательщика: Некорректный формат поля "*".
500.4.1.3
Описание ошибки: Список оплачиваемых услуг отличен от начисленных.
Сообщение для плательщика: Список оплачиваемых услуг отличен от начисленных.
500.4.1.4
Описание ошибки: Указанный месяц не совпадает с месяцем указанным в начислении.
Сообщение для плательщика: Указанный месяц не совпадает с месяцем указанным в начислении.
500.4.1.5
Описание ошибки: Для оплаты услуг данного поставщика используйте провайдера Единый платежный документ *.
Сообщение для плательщика: Для оплаты услуг данного поставщика используйте провайдера Единый платежный документ *.
500.4.1.6
Описание ошибки: Данный провайдер не поддерживает оплату услуги * IdPU=*.
Сообщение для плательщика: Данный провайдер не поддерживает оплату услуги * IdPU=*.
500.4.1.7
Описание ошибки: Не найден провайдер товаров или услуг.
Сообщение для плательщика: Не найден провайдер товаров или услуг.
500.4.2.1
Описание ошибки: Не указана сумма.
Сообщение для плательщика: Не указана сумма.
500.4.2.2
Описание ошибки: Сумма платежа должна быть в пределах от * до *.
Сообщение для плательщика: Сумма платежа должна быть в пределах от * до *.
500.4.2.3
Описание ошибки: Данное начисление уже оплачено.
Сообщение для плательщика: Данное начисление уже оплачено.
500.4.2.4
Описание ошибки: Начислений по данному запросу не обнаружено.
Сообщение для плательщика: Начислений по данному запросу не обнаружено.
500.4.2.5
Описание ошибки: Ошибка контрольной суммы, проверьте правильность ввода УИН *.
Сообщение для плательщика: Ошибка контрольной суммы, проверьте правильность ввода УИН *.
500.4.2.6
Описание ошибки: Ошибка поиска начисления.
Сообщение для плательщика: Ошибка поиска начисления.
500.4.2.7
Описание ошибки: Отсутствует назначение платежа в начислении.
Сообщение для плательщика: Отсутствует назначение платежа в начислении.
500.4.2.8
Описание ошибки: Неверно указана сигнатура начисления.
Сообщение для плательщика: Неверно указана сигнатура начисления.
500.4.2.9
Описание ошибки: Идентификатор плательщика * сформирован неверно, проверьте правильность ввода.
Сообщение для плательщика: Идентификатор плательщика * сформирован неверно, проверьте правильность ввода.
500.4.2.10
Описание ошибки: Начисление не найдено.
Сообщение для плательщика: Начисление не найдено.
500.4.2.11
Описание ошибки: Данные начисления устарели. Необходимо заново запросить данные по начислению.
Сообщение для плательщика: Данные начисления устарели. Необходимо заново запросить данные по начислению.
500.4.2.12
Описание ошибки: Ответ от внешней системы не был получен. Повторите запрос.
Сообщение для плательщика: Ответ от внешней системы не был получен. Повторите запрос.
500.4.2.13
Описание ошибки: Не указан УИН.
Сообщение для плательщика: Не указан УИН.
500.4.2.14
Описание ошибки: Не указан идентификатор платежного документа.
Сообщение для плательщика: Не указан идентификатор платежного документа.
500.4.2.15
Описание ошибки: Данное начисление аннулировано.
Сообщение для плательщика: Данное начисление аннулировано.
500.4.2.16
Описание ошибки: УИН найденного начисления (*) не совпадает с указанным *.
Сообщение для плательщика: УИН найденного начисления (*) не совпадает с указанным *.
500.4.4.1
Описание ошибки: Внимание! Государственная информационная система о государственных и муниципальных платежах (ГИС ГМП) не отвечает на запрос. Просим Вас повторить запрос позже.
Сообщение для плательщика: Внимание! Государственная информационная система о государственных и муниципальных платежах (ГИС ГМП) не отвечает на запрос. Просим Вас повторить запрос позже.
500.4.4.2
Описание ошибки: Данный провайдер отключен.
Сообщение для плательщика: Данный провайдер отключен.
500.4.4.4
Описание ошибки: Провайдер "*" не поддерживает данный способ вызова.
Сообщение для плательщика: Провайдер "*" не поддерживает данный способ вызова.
500.4.4.5
Описание ошибки: Произошла ошибка в системе расчёта стоимости ОСАГО. Просим Вас повторить запрос позже.
Сообщение для плательщика: Произошла ошибка в системе расчёта стоимости ОСАГО. Просим Вас повторить запрос позже.
500.4.4.6
Описание ошибки: Оформление электронного полиса для указанных параметров недоступно.
Сообщение для плательщика: Оформление электронного полиса для указанных параметров недоступно.
500.4.4.7
Описание ошибки: Ошибка внешнего сервиса при предварительном расчёте стоимости договора.
Сообщение для плательщика: Ошибка внешнего сервиса при предварительном расчёте стоимости договора.
500.4.4.8
Описание ошибки: Ошибка внешнего сервиса при сохранении договора.
Сообщение для плательщика: Ошибка внешнего сервиса при сохранении договора.
500.4.4.9
Описание ошибки: Ошибка внешнего сервиса при получении статуса договора.
Сообщение для плательщика: Ошибка внешнего сервиса при получении статуса договора.
500.4.4.10
Описание ошибки: Нет доступа к провайдеру.
Сообщение для плательщика: Нет доступа к провайдеру.
500.4.4.11
Описание ошибки: Неверно указан провайдер для данного лицевого счета.
Сообщение для плательщика: Неверно указан провайдер для данного лицевого счета.
500.4.4.12
Описание ошибки: Внимание! Государственная информационная система о государственных и муниципальных платежах (ГИС ГМП) не отвечает на запрос за допустимое время. Просим Вас повторить запрос позже.
Сообщение для плательщика: Внимание! Государственная информационная система о государственных и муниципальных платежах (ГИС ГМП) не отвечает на запрос за допустимое время. Просим Вас повторить запрос позже.
500.5
500.5.1
Описание ошибки: Счёт к списанию и счёт к зачислению не должны совпадать.
Сообщение для плательщика: Счёт к списанию и счёт к зачислению не должны совпадать.
500.5.2
Описание ошибки: Вы не имеете доступ ни к одному из счетов.
Сообщение для плательщика: Вы не имеете доступ ни к одному из счетов.
500.5.3
Описание ошибки: Создание шаблона операции невозможно.
Сообщение для плательщика: Создание шаблона операции невозможно.
500.5.4
Описание ошибки: Название не должно превышать * символов.
Сообщение для плательщика: Название не должно превышать * символов.
500.5.5
Описание ошибки: Метки могут содержать слова, цифры, символы "_" и "-", пробел.
Сообщение для плательщика: Метки могут содержать слова, цифры, символы "_" и "-", пробел.
500.5.6
Описание ошибки: Превышено допустимое количество символов в одной из меток.
Сообщение для плательщика: Превышено допустимое количество символов в одной из меток.
500.5.7
Описание ошибки: Сумма должна быть больше нуля.
Сообщение для плательщика: Сумма должна быть больше нуля.
500.5.8
Описание ошибки: Шаблон не может быть регулярным платежом.
Сообщение для плательщика: Шаблон не может быть регулярным платежом.
500.5.9
Описание ошибки: Дата и время выполнения указаны раньше текущего времени.
Сообщение для плательщика: Дата и время выполнения указаны раньше текущего времени.
500.5.10
Описание ошибки: Дата не соответствует последнему дню месяца.
Сообщение для плательщика: Дата не соответствует последнему дню месяца.
500.5.11
Описание ошибки: Дата окончания выполнения указана раньше даты начала.
Сообщение для плательщика: Дата окончания выполнения указана раньше даты начала.
500.5.12
Описание ошибки: Дата окончания выполнения указана раньше текущего времени.
Сообщение для плательщика: Дата окончания выполнения указана раньше текущего времени.
500.5.13
Описание ошибки: Количество часов в уведомлении о статусе платежа должно быть больше нуля.
Сообщение для плательщика: Количество часов в уведомлении о статусе платежа должно быть больше нуля.
500.5.14
Описание ошибки: Неверный тип суммы.
Сообщение для плательщика: Неверный тип суммы.
500.5.15
Описание ошибки: Минимальное значение суммы должно быть положительным числом.
Сообщение для плательщика: Минимальное значение суммы должно быть положительным числом.
500.5.16
Описание ошибки: Максимальное значение суммы должно быть больше нуля.
Сообщение для плательщика: Максимальное значение суммы должно быть больше нуля.
500.5.17
Описание ошибки: Максимальное значение суммы должно быть больше её минимального значения.
Сообщение для плательщика: Максимальное значение суммы должно быть больше её минимального значения.
500.5.18
Описание ошибки: Значение остатка баланса должно быть больше нуля.
Сообщение для плательщика: Значение остатка баланса должно быть больше нуля.
500.5.19
Описание ошибки: Определите, как минимум, одну из границ интервала.
Сообщение для плательщика: Определите, как минимум, одну из границ интервала.
500.5.20
Описание ошибки: Неправильный ID шаблона.
Сообщение для плательщика: Неправильный ID шаблона.
500.6
500.6.1.1
Описание ошибки: Отсутствуют банковские реквизиты.
Сообщение для плательщика: Отсутствуют банковские реквизиты.
500.6.1.2
Описание ошибки: Отсутствуют подтвержденные банковские реквизиты.
Сообщение для плательщика: Отсутствуют подтвержденные банковские реквизиты.
500.6.1.3
Описание ошибки: Неверные банковские реквизиты.
Сообщение для плательщика: Неверные банковские реквизиты.
500.6.1.3.1
Описание ошибки: Наименование получателя не соответствует введенному расчетному счету.
Сообщение для плательщика: Наименование получателя не соответствует введенному расчетному счету.
500.6.1.4
Описание ошибки: Укажите расчетный счет, на который хотите перевести средства.
Сообщение для плательщика: Укажите расчетный счет, на который хотите перевести средства.
500.6.1.5
Описание ошибки: Укажите наименование банка, в котором находится Ваш расчетный счет.
Сообщение для плательщика: Укажите наименование банка, в котором находится Ваш расчетный счет.
500.6.1.6
Описание ошибки: Укажите БИК банка, в котором находится Ваш расчетный счет.
Сообщение для плательщика: Укажите БИК банка, в котором находится Ваш расчетный счет.
500.6.1.7
Описание ошибки: Укажите корреспондентский счет банка, в котором находится Ваш расчетный счет.
Сообщение для плательщика: Укажите корреспондентский счет банка, в котором находится Ваш расчетный счет.
500.6.1.8
Описание ошибки: Укажите получателя.
Сообщение для плательщика: Укажите получателя.
500.6.1.9
Описание ошибки: Неверный индекс документа. Укажите в корректном формате.
Сообщение для плательщика: Неверный индекс документа. Укажите в корректном формате.
500.6.1.10
Описание ошибки: Неверный идентификатор плательщика. Укажите в корректном формате.
Сообщение для плательщика: Неверный идентификатор плательщика. Укажите в корректном формате.
500.6.1.11
Описание ошибки: Должен быть указан УИН (индекс документа) или идентификатор плательщика.
Сообщение для плательщика: Должен быть указан УИН (индекс документа) или идентификатор плательщика.
500.6.1.12
Описание ошибки: Укажите ИНН получателя или ИНН банка.
Сообщение для плательщика: Укажите ИНН получателя или ИНН банка.
500.6.1.13
Описание ошибки: Укажите номер договора.
Сообщение для плательщика: Укажите номер договора.
500.6.1.14
Описание ошибки: Неверный номер расчетного счета. Укажите номер в корректном формате (20 цифр).
Сообщение для плательщика: Неверный номер расчетного счета. Укажите номер в корректном формате (20 цифр).
500.6.1.15
Описание ошибки: Перевод на указанный расчетный счет невозможен. Пожалуйста, укажите другой счет получателя.
Сообщение для плательщика: Перевод на указанный расчетный счет невозможен. Пожалуйста, укажите другой счет получателя.
500.6.1.16
Описание ошибки: Неверный БИК банка. Укажите БИК в корректном формате (9 цифр).
Сообщение для плательщика: Неверный БИК банка. Укажите БИК в корректном формате (9 цифр).
500.6.1.17
Описание ошибки: Указанный БИК банка отсутствует в справочнике.
Сообщение для плательщика: Указанный БИК банка отсутствует в справочнике.
500.6.1.17.1
Описание ошибки: Заполните поле Корреспондентский счет.
Сообщение для плательщика: Заполните поле Корреспондентский счет.
500.6.1.18
Описание ошибки: Указанные БИК банка и счет не соответствуют друг другу.
Сообщение для плательщика: Указанные БИК банка и счет не соответствуют друг другу.
500.6.1.19
Описание ошибки: Неверный корреспондентский счет банка. Укажите счет в корректном формате (20 цифр).
Сообщение для плательщика: Неверный корреспондентский счет банка. Укажите счет в корректном формате (20 цифр).
500.6.1.20
Описание ошибки: Неверный КПП. Укажите в корректном формате (9 цифр).
Сообщение для плательщика: Неверный КПП. Укажите в корректном формате (9 цифр).
500.6.1.21
Описание ошибки: Неверный КБК. Укажите в корректном формате.
Сообщение для плательщика: Неверный КБК. Укажите в корректном формате.
500.6.1.22
Описание ошибки: Неверный OKTMO. Укажите в корректном формате.
Сообщение для плательщика: Неверный OKTMO. Укажите в корректном формате.
500.6.1.23
Описание ошибки: Поля КПП, КБК и ОКТМО обязательны к заполнению при платежах в бюджет.
Сообщение для плательщика: Поля КПП, КБК и ОКТМО обязательны к заполнению при платежах в бюджет.
500.6.1.24
Описание ошибки: Неверное наименование получателя. Укажите в корректном формате.
Сообщение для плательщика: Неверное наименование получателя. Укажите в корректном формате.
500.6.1.25
Описание ошибки: Неверный ИНН. Укажите ИНН получателя (12 цифр) или ИНН банка (10 цифр).
Сообщение для плательщика: Неверный ИНН. Укажите ИНН получателя (12 цифр) или ИНН банка (10 цифр).
500.6.1.26
Описание ошибки: Количество символов в наименовании получателя (*) превышает максимальное (*).
Сообщение для плательщика: Количество символов в наименовании получателя (*) превышает максимальное (*).
500.6.1.27
Описание ошибки: Количество символов в поле (*) превышает максимальное (*).
Сообщение для плательщика: Количество символов в поле (*) превышает максимальное (*).
500.6.1.28
Описание ошибки: Количество символов в назначении платежа (*) превышает максимальное (*) для указанной валюты вывода.
Сообщение для плательщика: Количество символов в назначении платежа (*) превышает максимальное (*) для указанной валюты вывода.
500.6.1.29
Описание ошибки: Неверный формат назначения платежа.
Сообщение для плательщика: Неверный формат назначения платежа.
500.6.1.30
Описание ошибки: Укажите номер карты.
Сообщение для плательщика: Укажите номер карты.
500.6.1.31
Описание ошибки: Нельзя использовать латинские буквы.
Сообщение для плательщика: Нельзя использовать латинские буквы.
500.6.1.32
Описание ошибки: Поле "Наименование получателя" или "Назначение платежа" должно содержать "*".
Сообщение для плательщика: Поле "Наименование получателя" или "Назначение платежа" должно содержать "*".
500.6.1.33
Описание ошибки: Вывод на данный счет запрещен для анонимных пользователей.
Сообщение для плательщика: Вывод на данный счет запрещен для анонимных пользователей.
500.6.1.34
Описание ошибки: Неверный SWIFT банка. Укажите в корректном формате (8 цифр или латинских букв).
Сообщение для плательщика: Неверный SWIFT банка. Укажите в корректном формате (8 цифр или латинских букв).
500.6.1.35
Описание ошибки: Неверный IBAN банка. Укажите в корректном формате (5..40 цифр и/или заглавных латинских букв).
Сообщение для плательщика: Неверный IBAN банка. Укажите в корректном формате (5..40 цифр и/или заглавных латинских букв).
500.6.1.36
Описание ошибки: Указанный SWIFT банка отсутствует в справочнике.
Сообщение для плательщика: Указанный SWIFT банка отсутствует в справочнике.
500.6.1.37
Описание ошибки: Указанный БИК российского банка посредника отсутствует в справочнике.
Сообщение для плательщика: Указанный БИК российского банка посредника отсутствует в справочнике.
500.6.1.38
Описание ошибки: Неверный SWIFT международного банка посредника. Укажите в корректном формате (8 цифр или латинских букв).
Сообщение для плательщика: Неверный SWIFT международного банка посредника. Укажите в корректном формате (8 цифр или латинских букв).
500.6.1.39
Описание ошибки: Указанный SWIFT международного банка посредника отсутствует в справочнике.
Сообщение для плательщика: Указанный SWIFT международного банка посредника отсутствует в справочнике.
500.6.1.40
Описание ошибки: Неверный номер платежного поручения. Укажите в корректном формате (число от 1 до 999 999).
Сообщение для плательщика: Неверный номер платежного поручения. Укажите в корректном формате (число от 1 до 999 999).
500.6.1.41
Описание ошибки: Укажите дату платежного поручения.
Сообщение для плательщика: Укажите дату платежного поручения.
500.6.1.42
Описание ошибки: Номер платежного поручения не должен заканчиваться тремя нулями.
Сообщение для плательщика: Номер платежного поручения не должен заканчиваться тремя нулями.
500.6.1.43
Описание ошибки: Данный БИК изменен. Уточните банковские реквизиты.
Сообщение для плательщика: Данный БИК изменен. Уточните банковские реквизиты.
500.6.1.44
Описание ошибки: Для указанного БИК банка прекращены расчеты.
Сообщение для плательщика: Для указанного БИК банка прекращены расчеты.
500.6.1.45
Описание ошибки: Отсутствует назначение платежа.
Сообщение для плательщика: Отсутствует назначение платежа.
500.6.1.46
Описание ошибки: Неверное наименование плательщика. Укажите в корректном формате.
Сообщение для плательщика: Неверное наименование плательщика. Укажите в корректном формате.
500.6.1.47
Описание ошибки: Количество символов в наименовании плательщика (*) превышает максимальное (*).
Сообщение для плательщика: Количество символов в наименовании плательщика (*) превышает максимальное (*).
500.6.1.48
Описание ошибки: Неверная Очередность платежа.
Сообщение для плательщика: Неверная Очередность платежа.
500.6.1.49
Описание ошибки: ИНН отправителя не задана в персональных данных или не подтвержден. Для осуществления перевода необходимо указать ИНН в разделе "Персональные данные".
Сообщение для плательщика: ИНН отправителя не задана в персональных данных или не подтвержден. Для осуществления перевода необходимо указать ИНН в разделе "Персональные данные".
500.6.1.50
Описание ошибки: Должен быть указан УИН (индекс документа) или ИНН плательщика ФЛ.
Сообщение для плательщика: Должен быть указан УИН (индекс документа) или ИНН плательщика ФЛ.
500.6.1.51
Описание ошибки: Код нормативного-правового акта указан неверно.
Сообщение для плательщика: Код нормативного-правового акта указан неверно.
500.6.1.131
Описание ошибки: Неверный номер договора.
Сообщение для плательщика: Неверный номер договора.
500.6.1.331
Описание ошибки: Введите корректное значение поля "Статус плательщика".
Сообщение для плательщика: Введите корректное значение поля "Статус плательщика".
500.6.2.1
Описание ошибки: Укажите номер счета, на который вы хотите перечислить средства.
Сообщение для плательщика: Укажите номер счета, на который вы хотите перечислить средства.
500.6.2.2
Описание ошибки: Неверный номер счета. Укажите номер счета в QIWI (11 или 12 цифр).
Сообщение для плательщика: Неверный номер счета. Укажите номер счета в QIWI (11 или 12 цифр).
500.6.3.1.1
Описание ошибки: Ошибка взаимодействия с СБП: *.
Сообщение для плательщика: Ошибка взаимодействия с СБП: *.
500.6.3.1.2
Описание ошибки: Общая сумма возвратов превышает сумму исходной операции.
Сообщение для плательщика: Общая сумма возвратов превышает сумму исходной операции.
500.6.3.1.3
Описание ошибки: Нарушены ограничения по сумме вывода для данного типа пользователя.
Сообщение для плательщика: Нарушены ограничения по сумме вывода для данного типа пользователя.
500.6.3.1.4
Описание ошибки: Начать сначала.
Сообщение для плательщика: Начать сначала.
500.6.3.1.5
Описание ошибки: Превышено время ожидания, повторите операцию позже.
Сообщение для плательщика: Превышено время ожидания, повторите операцию позже.
500.6.3.1.6
Описание ошибки: Необходим корректный номер счета.
Сообщение для плательщика: Необходим корректный номер счета.
500.6.3.1.7
Описание ошибки: Счет для списания должен быть зарегистрирован в СБП.
Сообщение для плательщика: Счет для списания должен быть зарегистрирован в СБП.
500.6.3.1.8
Описание ошибки: Не заполнено поле *.
Сообщение для плательщика: Не заполнено поле *.
500.6.3.1.9
Описание ошибки: Ошибка получения данных из СБП.
Сообщение для плательщика: Ошибка получения данных из СБП.
500.6.3.1.10
Описание ошибки: Нет данных по запросу A02.
Сообщение для плательщика: Нет данных по запросу A02.
500.6.3.1.11
Описание ошибки: Нет данных по запросу C02.
Сообщение для плательщика: Нет данных по запросу C02.
500.6.3.1.12
Описание ошибки: Нет данных по запросу C05.
Сообщение для плательщика: Нет данных по запросу C05.
500.6.3.1.13
Описание ошибки: Нет данных по запросу C06.
Сообщение для плательщика: Нет данных по запросу C06.
500.6.3.1.14
Описание ошибки: Нет данных по запросу C11.
Сообщение для плательщика: Нет данных по запросу C11.
500.6.3.1.15
Описание ошибки: Нет данных по запросу C12.
Сообщение для плательщика: Нет данных по запросу C12.
500.6.3.1.16
Описание ошибки: Нет данных по запросу C21.
Сообщение для плательщика: Нет данных по запросу C21.
500.6.3.1.17
Описание ошибки: Нет данных по запросу B05.
Сообщение для плательщика: Нет данных по запросу B05.
500.6.3.1.18
Описание ошибки: Нет данных по запросу B06.
Сообщение для плательщика: Нет данных по запросу B06.
500.6.3.1.19
Описание ошибки: Нет данных по запросу B11.
Сообщение для плательщика: Нет данных по запросу B11.
500.6.3.1.20
Описание ошибки: Нет данных по запросу B12.
Сообщение для плательщика: Нет данных по запросу B12.
500.6.3.1.21
Описание ошибки: Нет данных по запросу B21.
Сообщение для плательщика: Нет данных по запросу B21.
500.6.3.1.22
Описание ошибки: Ошибка получения данных для оплаты.
Сообщение для плательщика: Ошибка получения данных для оплаты.
500.6.3.1.23
Описание ошибки: Значение поля отсутствует, должно быть получено на шаге C02.
Сообщение для плательщика: Значение поля отсутствует, должно быть получено на шаге C02.
500.6.3.1.24
Описание ошибки: Неверный статус операции.
Сообщение для плательщика: Неверный статус операции.
500.6.3.1.25
Описание ошибки: Укажите корректный банк получателя.
Сообщение для плательщика: Укажите корректный банк получателя.
500.6.3.1.25.1
Описание ошибки: Необходим идентификатор получателя.
Сообщение для плательщика: Необходим идентификатор получателя.
500.6.3.1.26
Описание ошибки: Недействительный QR-payload.
Сообщение для плательщика: Недействительный QR-payload.
500.6.3.1.27
Описание ошибки: Недействительный QR-payload (*).
Сообщение для плательщика: Недействительный QR-payload (*).
500.6.3.1.28
Описание ошибки: Необходим ИНН в профиле пользователя.
Сообщение для плательщика: Необходим ИНН в профиле пользователя.
500.6.3.1.29
Описание ошибки: Необходимо имя пользователя в профиле.
Сообщение для плательщика: Необходимо имя пользователя в профиле.
500.6.3.1.30
Описание ошибки: Неверный тип юнита.
Сообщение для плательщика: Неверный тип юнита.
500.6.3.1.31
Описание ошибки: Требуется номер телефона отправителя (указывается в профиле ЛК).
Сообщение для плательщика: Требуется номер телефона отправителя (указывается в профиле ЛК).
500.6.3.1.32
Описание ошибки: Требуется корректное ФИО отправителя (указывается в профиле ЛК).
Сообщение для плательщика: Требуется корректное ФИО отправителя (указывается в профиле ЛК).
500.6.3.1.33
Описание ошибки: Превышена длина назначения платежа 140 символов.
Сообщение для плательщика: Превышена длина назначения платежа 140 символов.
500.6.3.1.34
Описание ошибки: Неверное назначение платежа.
Сообщение для плательщика: Неверное назначение платежа.
500.6.3.1.35
Описание ошибки: Требуется назначение платежа.
Сообщение для плательщика: Требуется назначение платежа.
500.6.3.1.36
Описание ошибки: Требуется сумма получателя в операции отправителя.
Сообщение для плательщика: Требуется сумма получателя в операции отправителя.
500.6.3.1.37
Описание ошибки: PAM получателя и отправителя для упрощенно-идентифицированных пользоватей не совпали.
Сообщение для плательщика: PAM получателя и отправителя для упрощенно-идентифицированных пользоватей не совпали.
500.6.3.1.38
Описание ошибки: Неверное значение параметра QR кода.
Сообщение для плательщика: Неверное значение параметра QR кода.
500.6.3.1.39
Описание ошибки: Укажите номер телефона, по которому вы хотите перечислить средства.
Сообщение для плательщика: Укажите номер телефона, по которому вы хотите перечислить средства.
500.6.3.1.40
Описание ошибки: Неверный российский номер телефона (код страны 7, содержит 11 или 12 цифр).
Сообщение для плательщика: Неверный российский номер телефона (код страны 7, содержит 11 или 12 цифр).
500.6.3.1.41
Описание ошибки: Недействительный или оплаченный QR-код.
Сообщение для плательщика: Недействительный или оплаченный QR-код.
500.6.3.1.42
Описание ошибки: Cумма для оплаты не соответствует QR-коду.
Сообщение для плательщика: Cумма для оплаты не соответствует QR-коду.
500.6.3.1.43
Описание ошибки: Валюта для оплаты не соответствует QR-коду.
Сообщение для плательщика: Валюта для оплаты не соответствует QR-коду.
500.6.3.1.44
Описание ошибки: Пользователям этого типа не разрешен вывод на СБП.
Сообщение для плательщика: Пользователям этого типа не разрешен вывод на СБП.
500.6.3.1.44.1
Описание ошибки: Номер телефона в профиле пользователя должен быть российским.
Сообщение для плательщика: Номер телефона в профиле пользователя должен быть российским.
500.6.3.1.44.2
Описание ошибки: Перевод возможен только на Ваш номер телефона.
Сообщение для плательщика: Перевод возможен только на Ваш номер телефона.
500.6.3.1.45
Описание ошибки: Ошибка в процессе оплаты. Проверьте последовательность и своевременность выполнения шагов оплаты, а так же корректность данных для перевода.
Сообщение для плательщика: Ошибка в процессе оплаты. Проверьте последовательность и своевременность выполнения шагов оплаты, а так же корректность данных для перевода.
500.6.3.1.46
Описание ошибки: Ошибка при получении данных ответа из СБП (A02). Выполните шаг 1.
Сообщение для плательщика: Ошибка при получении данных ответа из СБП (A02). Выполните шаг 1.
500.6.3.1.46.1
Описание ошибки: Ошибка при получении данных запроса A01. Убедитесь, что шаг 1 выполнен корректно.
Сообщение для плательщика: Ошибка при получении данных запроса A01. Убедитесь, что шаг 1 выполнен корректно.
500.6.3.1.47
Описание ошибки: Неожиданный запрос Партнера. Выполните шаг 4.
Сообщение для плательщика: Неожиданный запрос Партнера. Выполните шаг 4.
500.6.3.1.48
Описание ошибки: Слишком поздний запрос после получения *. Время истечения: *.
Сообщение для плательщика: Слишком поздний запрос после получения *. Время истечения: *.
500.6.3.1.48.1
Описание ошибки: Предыдущий запрос в СБП * отсутствует. Проверьте попадание вашего запроса во временной фрейм (параметры 996, 997).
Сообщение для плательщика: Предыдущий запрос в СБП * отсутствует. Проверьте попадание вашего запроса во временной фрейм (параметры 996, 997).
500.6.3.1.48.2
Описание ошибки: Слишком ранний запрос, ожидаемое время: *.
Сообщение для плательщика: Слишком ранний запрос, ожидаемое время: *.
500.6.3.1.49
Описание ошибки: Должна присутствовать операция для возврата, либо счет списания.
Сообщение для плательщика: Должна присутствовать операция для возврата, либо счет списания.
500.6.3.1.50
Описание ошибки: Cумма для оплаты не соответствует QR-коду.
Сообщение для плательщика: Cумма для оплаты не соответствует QR-коду.
500.6.3.1.51
Описание ошибки: Неверная сумма для возврата.
Сообщение для плательщика: Неверная сумма для возврата.
500.6.3.1.52
Описание ошибки: Не найдена операция для возврата.
Сообщение для плательщика: Не найдена операция для возврата.
500.6.3.1.53
Описание ошибки: Недостаточно параметров.
Сообщение для плательщика: Недостаточно параметров.
500.6.3.1.54
Описание ошибки: 22 Идентификатор Банка Отправителя неверный.
Сообщение для плательщика: 22 Идентификатор Банка Отправителя неверный.
500.6.3.1.55
Описание ошибки: 22 Идентификатор Банка Отправителя неверный (блок Rltd).
Сообщение для плательщика: 22 Идентификатор Банка Отправителя неверный (блок Rltd).
500.6.3.1.56
Описание ошибки: 23 Идентификатор ОПКЦ СБП неверный.
Сообщение для плательщика: 23 Идентификатор ОПКЦ СБП неверный.
500.6.3.1.57
Описание ошибки: 23 Идентификатор ОПКЦ СБП неверный (блок Rltd).
Сообщение для плательщика: 23 Идентификатор ОПКЦ СБП неверный (блок Rltd).
500.6.3.1.58
Описание ошибки: 27 Номер операции СБП неверный.
Сообщение для плательщика: 27 Номер операции СБП неверный.
500.6.3.1.59
Описание ошибки: 79 Уникальный Номер Сообщения от Банка Отправителя неверный.
Сообщение для плательщика: 79 Уникальный Номер Сообщения от Банка Отправителя неверный.
500.6.3.1.60
Описание ошибки: 81 Уникальный Номер Сообщения от ОПКЦ СБП неверный.
Сообщение для плательщика: 81 Уникальный Номер Сообщения от ОПКЦ СБП неверный.
500.6.3.1.61
Описание ошибки: Формат поля * неверный, pattern: *, value: *.
Сообщение для плательщика: Формат поля * неверный, pattern: *, value: *.
500.6.3.1.63
Описание ошибки: Значение поля * в запросе должны быть одинаковы *.
Сообщение для плательщика: Значение поля * в запросе должны быть одинаковы *.
500.6.3.1.64
Описание ошибки: Ошибка разбора сообщения СБП.
Сообщение для плательщика: Ошибка разбора сообщения СБП.
500.6.3.1.65
Описание ошибки: Неверный тип запроса: *.
Сообщение для плательщика: Неверный тип запроса: *.
500.6.3.1.66
Описание ошибки: *.
Сообщение для плательщика: *.
500.6.3.1.67
Описание ошибки: Операция по данному QR уже обработана, текущий статус: "*".
Сообщение для плательщика: Операция по данному QR уже обработана, текущий статус: "*".
500.6.3.1.68
Описание ошибки: Отказ, операция завершена.
Сообщение для плательщика: Отказ, операция завершена.
500.6.3.1.69
Описание ошибки: Платёж невозможен. Проверьте настройки счёта, для работы с СБП.
Сообщение для плательщика: Платёж невозможен. Проверьте настройки счёта, для работы с СБП.
500.6.3.1.70
Описание ошибки: Операция отклонена на стороне СБП.
Сообщение для плательщика: Операция отклонена на стороне СБП.
500.6.3.1.71
Описание ошибки: Ошибка обработки запроса на стороне СБП *.
Сообщение для плательщика: Ошибка обработки запроса на стороне СБП *.
500.6.3.1.72
Описание ошибки: Ошибка при разборе сообщения.
Сообщение для плательщика: Ошибка при разборе сообщения.
500.6.3.1.73
Описание ошибки: Ошибка аутентификации.
Сообщение для плательщика: Ошибка аутентификации.
500.6.3.1.74
Описание ошибки: Ошибка криптографии.
Сообщение для плательщика: Ошибка криптографии.
500.6.3.1.75
Описание ошибки: Некорректные данные в URL сообщения.
Сообщение для плательщика: Некорректные данные в URL сообщения.
500.6.3.1.76
Описание ошибки: Некорректный тип данных в заголовке Accept.
Сообщение для плательщика: Некорректный тип данных в заголовке Accept.
500.6.3.1.77
Описание ошибки: Некорректный тип запроса.
Сообщение для плательщика: Некорректный тип запроса.
500.6.3.1.78
Описание ошибки: Необходим элемент (*).
Сообщение для плательщика: Необходим элемент (*).
500.6.3.1.79
Описание ошибки: Недопустимое значение поля (*).
Сообщение для плательщика: Недопустимое значение поля (*).
500.6.3.1.80
Описание ошибки: Сервис временно недоступен.
Сообщение для плательщика: Сервис временно недоступен.
500.6.3.1.81
Описание ошибки: Оплата через СБП временно недоступна. Попробуйте позднее.
Сообщение для плательщика: Оплата через СБП временно недоступна. Попробуйте позднее.
500.6.3.1.82
Описание ошибки: Ошибка соответствия параметров исходной и операции возврата (*), для анонимного пользователя.
Сообщение для плательщика: Ошибка соответствия параметров исходной и операции возврата (*), для анонимного пользователя.
500.6.3.1.90
Описание ошибки: Создание операции невозможно. Найдены операции *, с уже активированной кассовой ссылкой *.
Сообщение для плательщика: Создание операции невозможно. Найдены операции *, с уже активированной кассовой ссылкой *.
500.6.3.1.91
Описание ошибки: Настройки для работы с СБП для счета * отсутствуют или не активны.
Сообщение для плательщика: Настройки для работы с СБП для счета * отсутствуют или не активны.
500.6.3.1.92
Описание ошибки: Кассовая ссылка * не принадлежит счету *.
Сообщение для плательщика: Кассовая ссылка * не принадлежит счету *.
500.6.3.1.93
Описание ошибки: Неверный формат QrTtl.
Сообщение для плательщика: Неверный формат QrTtl.
500.6.3.1.94
Описание ошибки: Значение QrTtl должно быть в интервале 1 до *.
Сообщение для плательщика: Значение QrTtl должно быть в интервале 1 до *.
500.6.3.1.95
Описание ошибки: Поле DESCRIPTION обязательно, при регистрации QR кода, в сценарии "Привязка счета".
Сообщение для плательщика: Поле DESCRIPTION обязательно, при регистрации QR кода, в сценарии "Привязка счета".
500.6.3.1.96
Описание ошибки: Неверные параметры запроса: Неверный рекуррентный токен.
Сообщение для плательщика: Неверные параметры запроса: Неверный рекуррентный токен.
500.6.3.1.97
Описание ошибки: Неверные параметры запроса: Попытка сделать рекуррентный платеж по данным, для которых не был успешно завершен оригинальный платеж.
Сообщение для плательщика: Неверные параметры запроса: Попытка сделать рекуррентный платеж по данным, для которых не был успешно завершен оригинальный платеж.
500.6.3.1.98
Описание ошибки: Ошибка взаимодействия с агентом СБП.
Сообщение для плательщика: Ошибка взаимодействия с агентом СБП.
500.6.3.1.99
Описание ошибки: Рекуррентные платежи СБП не доступны для указанного счета.
Сообщение для плательщика: Рекуррентные платежи СБП не доступны для указанного счета.
500.6.3.2.1
Описание ошибки: Сообщение СБП обработано успешно.
Сообщение для плательщика: Сообщение СБП обработано успешно.
500.6.3.2.1.18
Описание ошибки: Некорректный формат subscriptionPurpose.
Сообщение для плательщика: Некорректный формат subscriptionPurpose.
500.6.3.2.1.19
Описание ошибки: Отсутствует amount при активации Кассовой ссылки СБП.
Сообщение для плательщика: Отсутствует amount при активации Кассовой ссылки СБП.
500.6.3.2.1.21
Описание ошибки: Некорректный формат subscriptionToken.
Сообщение для плательщика: Некорректный формат subscriptionToken.
500.6.3.2.1.22
Описание ошибки: Невозможно деактивировать Кассовую ссылку СБП.
Сообщение для плательщика: Невозможно деактивировать Кассовую ссылку СБП.
500.6.3.2.1.23
Описание ошибки: qrTtl для Кассовой ссылки СБП выходит за допустимый диапазон.
Сообщение для плательщика: qrTtl для Кассовой ссылки СБП выходит за допустимый диапазон.
500.6.3.2.1.24
Описание ошибки: Некорректный формат redirectUrl.
Сообщение для плательщика: Некорректный формат redirectUrl.
500.6.3.2.1.25
Описание ошибки: Отказ в смене счета ЮЛ, ИП или самозанятого. Кассовая ссылка СБП не деактивирована.
Сообщение для плательщика: Отказ в смене счета ЮЛ, ИП или самозанятого. Кассовая ссылка СБП не деактивирована.
500.6.3.2.1.30
Описание ошибки: Отказ Банка Плательщика. Плательщик отказался от привязки счета.
Сообщение для плательщика: Отказ Банка Плательщика. Плательщик отказался от привязки счета.
500.6.3.2.1.31
Описание ошибки: Отказ Банка Плательщика. Привязка счета не найдена.
Сообщение для плательщика: Отказ Банка Плательщика. Привязка счета не найдена.
500.6.3.2.1.32
Описание ошибки: Отказ Банка Плательщика в выполнении платежа.
Сообщение для плательщика: Отказ Банка Плательщика в выполнении платежа.
500.6.3.2.1.33
Описание ошибки: Отказ в повторном платеже.
Сообщение для плательщика: Отказ в повторном платеже.
500.6.3.2.1.34
Описание ошибки: Сценарий не поддерживается Банком Плательщика.
Сообщение для плательщика: Сценарий не поддерживается Банком Плательщика.
500.6.3.2.1.35
Описание ошибки: Истекло время ожидания уведомления от Банка Плательщика.
Сообщение для плательщика: Истекло время ожидания уведомления от Банка Плательщика.
500.6.3.2.1.36
Описание ошибки: Дублирование идентификатора запроса, назначаемого ТСП или Агентом ТСП, - agentRefundRequestId.
Сообщение для плательщика: Дублирование идентификатора запроса, назначаемого ТСП или Агентом ТСП, - agentRefundRequestId.
500.6.3.2.1.37
Описание ошибки: Предыдущий запрос на возврат по Операции СБП C2B еще не обработан.
Сообщение для плательщика: Предыдущий запрос на возврат по Операции СБП C2B еще не обработан.
500.6.3.2.1.38
Описание ошибки: Параметры запроса отличаются от параметров исходной Операции СБП C2B.
Сообщение для плательщика: Параметры запроса отличаются от параметров исходной Операции СБП C2B.
500.6.3.2.1.39
Описание ошибки: Не найдена исходная Операция СБП C2B.
Сообщение для плательщика: Не найдена исходная Операция СБП C2B.
500.6.3.2.1.40
Описание ошибки: Отказ от Банка Плательщика. Сумма возврата превышает сумму исходной Операции СБП C2B.
Сообщение для плательщика: Отказ от Банка Плательщика. Сумма возврата превышает сумму исходной Операции СБП C2B.
500.6.3.2.1.41
Описание ошибки: Запрос на возврат по операции C2B не найден.
Сообщение для плательщика: Запрос на возврат по операции C2B не найден.
500.6.3.2.1.42
Описание ошибки: Некорректный формат или отсутствует amount.
Сообщение для плательщика: Некорректный формат или отсутствует amount.
500.6.3.2.1.43
Описание ошибки: Некорректный формат или отсутствует takeTax.
Сообщение для плательщика: Некорректный формат или отсутствует takeTax.
500.6.3.2.1.44
Описание ошибки: Некорректный формат или отсутствует totalTaxAmount.
Сообщение для плательщика: Некорректный формат или отсутствует totalTaxAmount.
500.6.3.2.1.45
Описание ошибки: Некорректный формат uip.
Сообщение для плательщика: Некорректный формат uip.
500.6.3.2.1.46
Описание ошибки: Неверный тип платежной ссылки.
Сообщение для плательщика: Неверный тип платежной ссылки.
500.6.3.2.1.47
Описание ошибки: Запрос на возврат с указанным идентификатором не найден.
Сообщение для плательщика: Запрос на возврат с указанным идентификатором не найден.
500.6.3.2.1.144
Описание ошибки: Период использования динамической платежной ссылки выходит за допустимый диапазон от 1 до 129 600 минут (90 дней).
Сообщение для плательщика: Период использования динамической платежной ссылки выходит за допустимый диапазон от 1 до 129 600 минут (90 дней).
500.6.3.2.2
Описание ошибки: Сообщение СБП обработано успешно.
Сообщение для плательщика: Сообщение СБП обработано успешно.
500.6.3.2.3
Описание ошибки: Сообщение СБП обработано успешно.
Сообщение для плательщика: Сообщение СБП обработано успешно.
500.6.3.2.4
Описание ошибки: Отсутствует ответ от банка Получателя. Повторите операцию.
Сообщение для плательщика: Отсутствует ответ от банка Получателя. Повторите операцию.
500.6.3.2.5
Описание ошибки: Превышено время ожидания, повторите операцию.
Сообщение для плательщика: Превышено время ожидания, повторите операцию.
500.6.3.2.6
Описание ошибки: СБП: Несовпадение даты-времени (один из: [13], [14], [15]) в <AppHdr> и в <Document>.
Сообщение для плательщика: СБП: Несовпадение даты-времени (один из: [13], [14], [15]) в <AppHdr> и в <Document>.
500.6.3.2.7
Описание ошибки: СБП: Несовпадение [27] Идентификатор Операции ОПКЦ СБП (ИО ОПКЦ СБП) в <AppHdr> и в <Document>.
Сообщение для плательщика: СБП: Несовпадение [27] Идентификатор Операции ОПКЦ СБП (ИО ОПКЦ СБП) в <AppHdr> и в <Document>.
500.6.3.2.8
Описание ошибки: СБП: Несовпадение идентификатора отправителя сообщения (один из: [22], [23], [24]) даты-времени в <AppHdr> и в <Document>.
Сообщение для плательщика: СБП: Несовпадение идентификатора отправителя сообщения (один из: [22], [23], [24]) даты-времени в <AppHdr> и в <Document>.
500.6.3.2.9
Описание ошибки: СБП: Несовпадение идентификатора получателя сообщения (один из: [22], [23], [24]) даты-времени в <AppHdr> и в <Document>.
Сообщение для плательщика: СБП: Несовпадение идентификатора получателя сообщения (один из: [22], [23], [24]) даты-времени в <AppHdr> и в <Document>.
500.6.3.2.10
Описание ошибки: Запрещен перевод в тот же самый банк.
Сообщение для плательщика: Запрещен перевод в тот же самый банк.
500.6.3.2.11
Описание ошибки: СБП: Ошибка валидации (семантическая).
Сообщение для плательщика: СБП: Ошибка валидации (семантическая).
500.6.3.2.12
Описание ошибки: СБП: Ошибка валидации (формат).
Сообщение для плательщика: СБП: Ошибка валидации (формат).
500.6.3.2.13
Описание ошибки: СБП: БИК Банка Отправителя отсутствует в Справочнике.
Сообщение для плательщика: СБП: БИК Банка Отправителя отсутствует в Справочнике.
500.6.3.2.14
Описание ошибки: СБП: БИК Банка Получателя отсутствует в Справочнике.
Сообщение для плательщика: СБП: БИК Банка Получателя отсутствует в Справочнике.
500.6.3.2.15
Описание ошибки: СБП: Коррсчет Банка Отправителя не соответствует БИК.
Сообщение для плательщика: СБП: Коррсчет Банка Отправителя не соответствует БИК.
500.6.3.2.16
Описание ошибки: СБП: Коррсчет Банка Получателя не соответствует БИК.
Сообщение для плательщика: СБП: Коррсчет Банка Получателя не соответствует БИК.
500.6.3.2.17
Описание ошибки: СБП: Недостаточно средств на счете Банка Отправителя.
Сообщение для плательщика: СБП: Недостаточно средств на счете Банка Отправителя.
500.6.3.2.18
Описание ошибки: СБП: Банку Отправителя недоступен сервис быстрых платежей.
Сообщение для плательщика: СБП: Банку Отправителя недоступен сервис быстрых платежей.
500.6.3.2.19
Описание ошибки: СБП: Банку Получателя недоступен сервис быстрых платежей.
Сообщение для плательщика: СБП: Банку Получателя недоступен сервис быстрых платежей.
500.6.3.2.20
Описание ошибки: СБП: На счет Банка Отправителя установлено ограничение предоставления сервиса быстрых платежей.
Сообщение для плательщика: СБП: На счет Банка Отправителя установлено ограничение предоставления сервиса быстрых платежей.
500.6.3.2.21
Описание ошибки: СБП: На счет Банка Получателя установлено ограничение предоставления сервиса быстрых платежей.
Сообщение для плательщика: СБП: На счет Банка Получателя установлено ограничение предоставления сервиса быстрых платежей.
500.6.3.2.22
Описание ошибки: СБП: Отказ ПС БР. Операция завершена.
Сообщение для плательщика: СБП: Отказ ПС БР. Операция завершена.
500.6.3.2.23
Описание ошибки: СБП: Недостаточно данных об Отправителе или Получателе.
Сообщение для плательщика: СБП: Недостаточно данных об Отправителе или Получателе.
500.6.3.2.24
Описание ошибки: Невозможно зачислить сумму перевода на счет Получателя.
Сообщение для плательщика: Невозможно зачислить сумму перевода на счет Получателя.
500.6.3.2.25
Описание ошибки: СБП: Невозможно зачислить сумму перевода на счет Получателя.
Сообщение для плательщика: СБП: Невозможно зачислить сумму перевода на счет Получателя.
500.6.3.2.26
Описание ошибки: СБП: Нет такого значения ЭБД [99] Метка времени операции СБП (МВО СБП) в ЭД <AccptncDtTm>.
Сообщение для плательщика: СБП: Нет такого значения ЭБД [99] Метка времени операции СБП (МВО СБП) в ЭД <AccptncDtTm>.
500.6.3.2.27
Описание ошибки: СБП: Нет такого значения ЭБД [27] Идентификатор Операции ОПКЦ СБП (ИО ОПКЦ СБП).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [27] Идентификатор Операции ОПКЦ СБП (ИО ОПКЦ СБП).
500.6.3.2.28
Описание ошибки: СБП: Нет такого значения ЭБД [22] Идентификатор Банка Отправителя (ИД БО).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [22] Идентификатор Банка Отправителя (ИД БО).
500.6.3.2.29
Описание ошибки: СБП: Нет такого значения ЭБД [24] Идентификатор Банка Получателя (ИД БП).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [24] Идентификатор Банка Получателя (ИД БП).
500.6.3.2.30
Описание ошибки: СБП: Нет такого значения ЭБД [9] Валюта операции СБП (ВЛТ ОП СБП).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [9] Валюта операции СБП (ВЛТ ОП СБП).
500.6.3.2.31
Описание ошибки: СБП: Нет такого значения ЭБД [48] Тип Операции СБП (ТО СБП).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [48] Тип Операции СБП (ТО СБП).
500.6.3.2.32
Описание ошибки: СБП: Нет такого значения ЭБД [90] Тип документа Отправителя (ДОК ТП ОТ).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [90] Тип документа Отправителя (ДОК ТП ОТ).
500.6.3.2.33
Описание ошибки: СБП: Нет такого значения ЭБД [92] Тип документа Получателя (ДОК ТП ПО).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [92] Тип документа Получателя (ДОК ТП ПО).
500.6.3.2.34
Описание ошибки: СБП: Нет такого значения ЭБД [46] Тип Идентификатора Отправителя (ТИД ОТ).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [46] Тип Идентификатора Отправителя (ТИД ОТ).
500.6.3.2.35
Описание ошибки: СБП: Нет такого значения ЭБД [47] Тип Идентификатора Получателя (ТИД ПО).
Сообщение для плательщика: СБП: Нет такого значения ЭБД [47] Тип Идентификатора Получателя (ТИД ПО).
500.6.3.2.36
Описание ошибки: СБП: Недопустимое значение ЭБД [27] Идентификатор Операции ОПКЦ СБП (ИО ОПКЦ СБП).
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [27] Идентификатор Операции ОПКЦ СБП (ИО ОПКЦ СБП).
500.6.3.2.37
Описание ошибки: СБП: Сообщение недопустимо для данного типа операции.
Сообщение для плательщика: СБП: Сообщение недопустимо для данного типа операции.
500.6.3.2.38
Описание ошибки: СБП: Ошибка.
Сообщение для плательщика: СБП: Ошибка.
500.6.3.2.39
Описание ошибки: Ошибка.
Сообщение для плательщика: Ошибка.
500.6.3.2.40
Описание ошибки: СБП: Ошибка.
Сообщение для плательщика: СБП: Ошибка.
500.6.3.2.41
Описание ошибки: СБП: КЗО не соответствует данным операции СБП.
Сообщение для плательщика: СБП: КЗО не соответствует данным операции СБП.
500.6.3.2.42
Описание ошибки: Ошибка.
Сообщение для плательщика: Ошибка.
500.6.3.2.43
Описание ошибки: СБП: Ошибка.
Сообщение для плательщика: СБП: Ошибка.
500.6.3.2.44
Описание ошибки: Ошибка.
Сообщение для плательщика: Ошибка.
500.6.3.2.45
Описание ошибки: Ошибка обработки C23.
Сообщение для плательщика: Ошибка обработки C23.
500.6.3.2.46
Описание ошибки: Ошибка обработки C21.
Сообщение для плательщика: Ошибка обработки C21.
500.6.3.2.47
Описание ошибки: СБП: Ошибка обработки сообщения.
Сообщение для плательщика: СБП: Ошибка обработки сообщения.
500.6.3.2.48
Описание ошибки: СБП: Дубликат ранее полученного сообщения.
Сообщение для плательщика: СБП: Дубликат ранее полученного сообщения.
500.6.3.2.49
Описание ошибки: Дубликат ранее полученного сообщения.
Сообщение для плательщика: Дубликат ранее полученного сообщения.
500.6.3.2.50
Описание ошибки: Дубликат ранее полученного сообщения.
Сообщение для плательщика: Дубликат ранее полученного сообщения.
500.6.3.2.51
Описание ошибки: СБП: Получение позднего сообщения.
Сообщение для плательщика: СБП: Получение позднего сообщения.
500.6.3.2.52
Описание ошибки: СБП: Получение неожидаемого сообщения.
Сообщение для плательщика: СБП: Получение неожидаемого сообщения.
500.6.3.2.53
Описание ошибки: СБП: OTP введен неверно. Операция завершена.
Сообщение для плательщика: СБП: OTP введен неверно. Операция завершена.
500.6.3.2.54
Описание ошибки: СБП: OTP введен неверно. Повторите ввод.
Сообщение для плательщика: СБП: OTP введен неверно. Повторите ввод.
500.6.3.2.55
Описание ошибки: СБП: PAM Отправителя и Получателя не совпали (только для Me2Me).
Сообщение для плательщика: СБП: PAM Отправителя и Получателя не совпали (только для Me2Me).
500.6.3.2.56
Описание ошибки: СБП: Банк Отправителя заблокирован.
Сообщение для плательщика: СБП: Банк Отправителя заблокирован.
500.6.3.2.57
Описание ошибки: СБП: Банк Отправителя и Банк Получателя совпали для операции СБП.
Сообщение для плательщика: СБП: Банк Отправителя и Банк Получателя совпали для операции СБП.
500.6.3.2.58
Описание ошибки: СБП: Банк Получателя заблокирован.
Сообщение для плательщика: СБП: Банк Получателя заблокирован.
500.6.3.2.59
Описание ошибки: СБП: Банк уже зарегистрирован как банк по умолчанию для данного клиента.
Сообщение для плательщика: СБП: Банк уже зарегистрирован как банк по умолчанию для данного клиента.
500.6.3.2.60
Описание ошибки: СБП: БИК банка Отправителя не соответствует идентификатору банка в СБП.
Сообщение для плательщика: СБП: БИК банка Отправителя не соответствует идентификатору банка в СБП.
500.6.3.2.61
Описание ошибки: СБП: БИК банка Получателя не соответствует идентификатору банка в СБП.
Сообщение для плательщика: СБП: БИК банка Получателя не соответствует идентификатору банка в СБП.
500.6.3.2.62
Описание ошибки: СБП: Изменились параметры операции.
Сообщение для плательщика: СБП: Изменились параметры операции.
500.6.3.2.63
Описание ошибки: СБП: Подозрение на мошенничество.
Сообщение для плательщика: СБП: Подозрение на мошенничество.
500.6.3.2.64
Описание ошибки: СБП: Подозрение в мошенничестве от БП.
Сообщение для плательщика: СБП: Подозрение в мошенничестве от БП.
500.6.3.2.65
Описание ошибки: СБП: Ограничения законодательства.
Сообщение для плательщика: СБП: Ограничения законодательства.
500.6.3.2.66
Описание ошибки: СБП: Ограничения законодательства - уровень идентификации денежных средств недостаточен (только для C2C Push).
Сообщение для плательщика: СБП: Ограничения законодательства - уровень идентификации денежных средств недостаточен (только для C2C Push).
500.6.3.2.67
Описание ошибки: Свяжитесь с Получателем средств и уточните реквизиты для зачисления денежных средств.
Сообщение для плательщика: Свяжитесь с Получателем средств и уточните реквизиты для зачисления денежных средств.
500.6.3.2.68
Описание ошибки: СБП: Отказ ПС БР.
Сообщение для плательщика: СБП: Отказ ПС БР.
500.6.3.2.69
Описание ошибки: СБП: Превышено количество попыток установок банка по умолчанию (в день).
Сообщение для плательщика: СБП: Превышено количество попыток установок банка по умолчанию (в день).
500.6.3.2.70
Описание ошибки: СБП: Сумма операции превышает допустимый лимит на одну операцию.
Сообщение для плательщика: СБП: Сумма операции превышает допустимый лимит на одну операцию.
500.6.3.2.71
Описание ошибки: Запрещено кредитование счета Получателя.
Сообщение для плательщика: Запрещено кредитование счета Получателя.
500.6.3.2.72
Описание ошибки: Найден больше чем один Получатель.
Сообщение для плательщика: Найден больше чем один Получатель.
500.6.3.2.73
Описание ошибки: Не найден Получатель.
Сообщение для плательщика: Не найден Получатель.
500.6.3.2.74
Описание ошибки: Ограничения законодательства на зачисление (например, сумма превысила допустимую для данного платежного средства или уровень идентификации недостаточен).
Сообщение для плательщика: Ограничения законодательства на зачисление (например, сумма превысила допустимую для данного платежного средства или уровень идентификации недостаточен).
500.6.3.2.75
Описание ошибки: Получатель не дал согласие на получение средств через СБП.
Сообщение для плательщика: Получатель не дал согласие на получение средств через СБП.
500.6.3.2.76
Описание ошибки: Получатель отказался от получения средств через СБП.
Сообщение для плательщика: Получатель отказался от получения средств через СБП.
500.6.3.2.77
Описание ошибки: Счет Получателя заблокирован или закрыт.
Сообщение для плательщика: Счет Получателя заблокирован или закрыт.
500.6.3.2.78
Описание ошибки: Счет Получателя не найден.
Сообщение для плательщика: Счет Получателя не найден.
500.6.3.2.79
Описание ошибки: Услуга недоступна для Получателя.
Сообщение для плательщика: Услуга недоступна для Получателя.
500.6.3.2.81
Описание ошибки: СБП: Успешное.
Сообщение для плательщика: СБП: Успешное.
500.6.3.2.82
Описание ошибки: СБП: Отказ в урегулировании: ошибка.
Сообщение для плательщика: СБП: Отказ в урегулировании: ошибка.
500.6.3.2.83
Описание ошибки: СБП: Отказ от Урегулирования получившей его стороной (деньги не переведены).
Сообщение для плательщика: СБП: Отказ от Урегулирования получившей его стороной (деньги не переведены).
500.6.3.2.84
Описание ошибки: СБП: Отказ в урегулировании: не найден исходный платеж.
Сообщение для плательщика: СБП: Отказ в урегулировании: не найден исходный платеж.
500.6.3.2.85
Описание ошибки: СБП: Отказ в урегулировании: превышен установленный срок отправки сообщения.
Сообщение для плательщика: СБП: Отказ в урегулировании: превышен установленный срок отправки сообщения.
500.6.3.2.86
Описание ошибки: СБП: Отказ в урегулировании: дублирует ранее успешно обработанное сообщение.
Сообщение для плательщика: СБП: Отказ в урегулировании: дублирует ранее успешно обработанное сообщение.
500.6.3.2.87
Описание ошибки: СБП: Отказ в урегулировании: превышен срок ожидания ответа на сообщение согласно Правилам Урегулирования [2].
Сообщение для плательщика: СБП: Отказ в урегулировании: превышен срок ожидания ответа на сообщение согласно Правилам Урегулирования [2].
500.6.3.2.88
Описание ошибки: Отказ в урегулировании: не удалось связаться с клиентом.
Сообщение для плательщика: Отказ в урегулировании: не удалось связаться с клиентом.
500.6.3.2.89
Описание ошибки: Отказ в урегулировании: клиент не согласен.
Сообщение для плательщика: Отказ в урегулировании: клиент не согласен.
500.6.3.2.90
Описание ошибки: Отказ в урегулировании: счет закрыт.
Сообщение для плательщика: Отказ в урегулировании: счет закрыт.
500.6.3.2.91
Описание ошибки: Отказ в урегулировании: не удалось связаться с клиентом.
Сообщение для плательщика: Отказ в урегулировании: не удалось связаться с клиентом.
500.6.3.2.92
Описание ошибки: Отказ в урегулировании: клиент не согласен.
Сообщение для плательщика: Отказ в урегулировании: клиент не согласен.
500.6.3.2.93
Описание ошибки: Отказ в урегулировании: счет закрыт.
Сообщение для плательщика: Отказ в урегулировании: счет закрыт.
500.6.3.2.94
Описание ошибки: Ошибка.
Сообщение для плательщика: Ошибка.
500.6.3.2.95
Описание ошибки: Ошибка.
Сообщение для плательщика: Ошибка.
500.6.3.2.96
Описание ошибки: Ошибка.
Сообщение для плательщика: Ошибка.
500.6.3.2.97
Описание ошибки: Запрос обработан успешно.
Сообщение для плательщика: Запрос обработан успешно.
500.6.3.2.98
Описание ошибки: Ошибка валидации. Неверный формат запроса.
Сообщение для плательщика: Ошибка валидации. Неверный формат запроса.
500.6.3.2.99
Описание ошибки: ЮЛ или ИП заблокировано администратором СБП.
Сообщение для плательщика: ЮЛ или ИП заблокировано администратором СБП.
500.6.3.2.101
Описание ошибки: Ошибка валидации. Некорректная контрольная цифра ОГРН.
Сообщение для плательщика: Ошибка валидации. Некорректная контрольная цифра ОГРН.
500.6.3.2.102
Описание ошибки: Ошибка валидации. Длина ОГРН не соответствует длине ИНН.
Сообщение для плательщика: Ошибка валидации. Длина ОГРН не соответствует длине ИНН.
500.6.3.2.106
Описание ошибки: Ошибка валидации. Неверный формат номера телефона ТСП.
Сообщение для плательщика: Ошибка валидации. Неверный формат номера телефона ТСП.
500.6.3.2.107
Описание ошибки: Агент с указанным идентификатором не найден.
Сообщение для плательщика: Агент с указанным идентификатором не найден.
500.6.3.2.108
Описание ошибки: Участник с указанным идентификатором не найден.
Сообщение для плательщика: Участник с указанным идентификатором не найден.
500.6.3.2.109
Описание ошибки: Юридическое лицо с указанным идентификатором не найдено.
Сообщение для плательщика: Юридическое лицо с указанным идентификатором не найдено.
500.6.3.2.110
Описание ошибки: Ошибка валидации. Неверный формат страны регистрации юридического лица.
Сообщение для плательщика: Ошибка валидации. Неверный формат страны регистрации юридического лица.
500.6.3.2.111
Описание ошибки: Ошибка валидации. Неверный формат региона юридического лица.
Сообщение для плательщика: Ошибка валидации. Неверный формат региона юридического лица.
500.6.3.2.112
Описание ошибки: Ошибка валидации. Неверный формат кода страны ТСП.
Сообщение для плательщика: Ошибка валидации. Неверный формат кода страны ТСП.
500.6.3.2.113
Описание ошибки: Ошибка валидации. Неверный формат кода региона ТСП.
Сообщение для плательщика: Ошибка валидации. Неверный формат кода региона ТСП.
500.6.3.2.114
Описание ошибки: Неверное значение возможности точки взаимодействия с покупателем.
Сообщение для плательщика: Неверное значение возможности точки взаимодействия с покупателем.
500.6.3.2.115
Описание ошибки: Указанное недопустимое значение MCC.
Сообщение для плательщика: Указанное недопустимое значение MCC.
500.6.3.2.116
Описание ошибки: Ошибка валидации. Неверный формат наименования ТСП.
Сообщение для плательщика: Ошибка валидации. Неверный формат наименования ТСП.
500.6.3.2.117
Описание ошибки: Ошибка валидации. Неверный формат наименования юридического лица.
Сообщение для плательщика: Ошибка валидации. Неверный формат наименования юридического лица.
500.6.3.2.118
Описание ошибки: Временный регистрационный номер не найден.
Сообщение для плательщика: Временный регистрационный номер не найден.
500.6.3.2.119
Описание ошибки: Дубликат. Юридическое лицо уже зарегистрировано.
Сообщение для плательщика: Дубликат. Юридическое лицо уже зарегистрировано.
500.6.3.2.120
Описание ошибки: Дубликат. Счет юридического лица уже зарегистрирован.
Сообщение для плательщика: Дубликат. Счет юридического лица уже зарегистрирован.
500.6.3.2.121
Описание ошибки: Дубликат. ТСП уже зарегистрировано.
Сообщение для плательщика: Дубликат. ТСП уже зарегистрировано.
500.6.3.2.122
Описание ошибки: Техническая ошибка.
Сообщение для плательщика: Техническая ошибка.
500.6.3.2.124
Описание ошибки: Запрос обработан успешно.
Сообщение для плательщика: Запрос обработан успешно.
500.6.3.2.125
Описание ошибки: Ошибка валидации. Не верный формат запроса.
Сообщение для плательщика: Ошибка валидации. Не верный формат запроса.
500.6.3.2.126
Описание ошибки: Агент с указанным идентификатором не найден.
Сообщение для плательщика: Агент с указанным идентификатором не найден.
500.6.3.2.127
Описание ошибки: Участник с указанным идентификатором не найден.
Сообщение для плательщика: Участник с указанным идентификатором не найден.
500.6.3.2.128
Описание ошибки: Юридическое лицо с указанным идентификатором не найдено.
Сообщение для плательщика: Юридическое лицо с указанным идентификатором не найдено.
500.6.3.2.129
Описание ошибки: Счет юридического лица не найден.
Сообщение для плательщика: Счет юридического лица не найден.
500.6.3.2.130
Описание ошибки: ТСП с указанным идентификатором не зарегистрировано в СБП.
Сообщение для плательщика: ТСП с указанным идентификатором не зарегистрировано в СБП.
500.6.3.2.131
Описание ошибки: Неверный код валюты.
Сообщение для плательщика: Неверный код валюты.
500.6.3.2.132
Описание ошибки: Неверная версия шаблона QRC.
Сообщение для плательщика: Неверная версия шаблона QRC.
500.6.3.2.133
Описание ошибки: Неверный тип QRC.
Сообщение для плательщика: Неверный тип QRC.
500.6.3.2.134
Описание ошибки: Сумма операции меньше минимально допустимой.
Сообщение для плательщика: Сумма операции меньше минимально допустимой.
500.6.3.2.135
Описание ошибки: Сумма операции больше максимально допустимой.
Сообщение для плательщика: Сумма операции больше максимально допустимой.
500.6.3.2.136
Описание ошибки: Сумма и код валюты должны одновременно присутствовать или одновременно отсутствовать в запросе на QRC Static.
Сообщение для плательщика: Сумма и код валюты должны одновременно присутствовать или одновременно отсутствовать в запросе на QRC Static.
500.6.3.2.137
Описание ошибки: Отсутствует код валюты в запросе на QRC Dynamic.
Сообщение для плательщика: Отсутствует код валюты в запросе на QRC Dynamic.
500.6.3.2.138
Описание ошибки: Отсутствует сумма в запросе на QRC Dynamic.
Сообщение для плательщика: Отсутствует сумма в запросе на QRC Dynamic.
500.6.3.2.139
Описание ошибки: QR с указанным идентификатором не найден.
Сообщение для плательщика: QR с указанным идентификатором не найден.
500.6.3.2.140
Описание ошибки: Превышено допустимое - %value% значение элементов в запросе.
Сообщение для плательщика: Превышено допустимое - %value% значение элементов в запросе.
500.6.3.2.141
Описание ошибки: Неверный формат идентификатора QRC.
Сообщение для плательщика: Неверный формат идентификатора QRC.
500.6.3.2.142
Описание ошибки: Некорректный формат поля payment purpose.
Сообщение для плательщика: Некорректный формат поля payment purpose.
500.6.3.2.143
Описание ошибки: Техническая ошибка.
Сообщение для плательщика: Техническая ошибка.
500.6.3.2.145
Описание ошибки: Недействительный Уникальный Идентификатор Данных ЭБД [159].
Сообщение для плательщика: Недействительный Уникальный Идентификатор Данных ЭБД [159].
500.6.3.2.146
Описание ошибки: Ошибка на стороне Банка Получателя. Операция завершена.
Сообщение для плательщика: Ошибка на стороне Банка Получателя. Операция завершена.
500.6.3.2.147
Описание ошибки: Недостаточно данных об Отправителе.
Сообщение для плательщика: Недостаточно данных об Отправителе.
500.6.3.2.148
Описание ошибки: Превышение максимальной суммы платежа.
Сообщение для плательщика: Превышение максимальной суммы платежа.
500.6.3.2.149
Описание ошибки: Не верный Уникальный Идентификатор Данных ЭБД [159].
Сообщение для плательщика: Не верный Уникальный Идентификатор Данных ЭБД [159].
500.6.3.2.150.1
Описание ошибки: Технологические работы в Банке получателя. Попробуйте повторить перевод через некоторое время.
Сообщение для плательщика: Технологические работы в Банке получателя. Попробуйте повторить перевод через некоторое время.
500.6.3.2.150.2
Описание ошибки: Свяжитесь с Получателем средств и уточните реквизиты для зачисления денежных средств.
Сообщение для плательщика: Свяжитесь с Получателем средств и уточните реквизиты для зачисления денежных средств.
500.6.3.2.151
Описание ошибки: СБП: Подозрение в мошенничестве.
Сообщение для плательщика: СБП: Подозрение в мошенничестве.
500.6.3.2.152
Описание ошибки: СБП: Ошибка формата ЭБД [2].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [2].
500.6.3.2.153
Описание ошибки: СБП: Ошибка формата ЭБД [9].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [9].
500.6.3.2.154
Описание ошибки: СБП: Ошибка формата ЭБД [13].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [13].
500.6.3.2.155
Описание ошибки: СБП: Ошибка формата ЭБД [14].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [14].
500.6.3.2.156
Описание ошибки: СБП: Ошибка формата ЭБД [15].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [15].
500.6.3.2.157
Описание ошибки: СБП: Ошибка формата ЭБД [20].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [20].
500.6.3.2.158
Описание ошибки: СБП: Ошибка формата ЭБД [22].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [22].
500.6.3.2.159
Описание ошибки: СБП: Ошибка формата ЭБД [23].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [23].
500.6.3.2.160
Описание ошибки: СБП: Ошибка формата ЭБД [24].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [24].
500.6.3.2.161
Описание ошибки: СБП: Ошибка формата ЭБД [27].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [27].
500.6.3.2.162
Описание ошибки: СБП: Ошибка формата ЭБД [29].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [29].
500.6.3.2.163
Описание ошибки: СБП: Ошибка формата ЭБД [30].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [30].
500.6.3.2.164
Описание ошибки: СБП: Ошибка формата ЭБД [31].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [31].
500.6.3.2.165
Описание ошибки: СБП: Ошибка формата ЭБД [32].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [32].
500.6.3.2.166
Описание ошибки: СБП: Ошибка формата ЭБД [33].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [33].
500.6.3.2.167
Описание ошибки: СБП: Ошибка формата ЭБД [43].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [43].
500.6.3.2.168
Описание ошибки: СБП: Ошибка формата ЭБД [44].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [44].
500.6.3.2.169
Описание ошибки: СБП: Ошибка формата ЭБД [47].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [47].
500.6.3.2.170
Описание ошибки: СБП: Ошибка формата ЭБД [48].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [48].
500.6.3.2.171
Описание ошибки: СБП: Ошибка формата ЭБД [51].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [51].
500.6.3.2.172
Описание ошибки: СБП: Ошибка формата ЭБД [74].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [74].
500.6.3.2.173
Описание ошибки: СБП: Ошибка формата ЭБД [79].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [79].
500.6.3.2.174
Описание ошибки: СБП: Ошибка формата ЭБД [80].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [80].
500.6.3.2.175
Описание ошибки: СБП: Ошибка формата ЭБД [81].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [81].
500.6.3.2.176
Описание ошибки: СБП: Ошибка формата ЭБД [92].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [92].
500.6.3.2.177
Описание ошибки: СБП: Ошибка формата ЭБД [93].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [93].
500.6.3.2.178
Описание ошибки: СБП: Ошибка формата ЭБД [94].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [94].
500.6.3.2.179
Описание ошибки: СБП: Ошибка формата ЭБД [95].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [95].
500.6.3.2.180
Описание ошибки: СБП: Ошибка формата ЭБД [96].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [96].
500.6.3.2.181
Описание ошибки: СБП: Ошибка формата ЭБД [98].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [98].
500.6.3.2.182
Описание ошибки: СБП: Ошибка формата ЭБД [99].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [99].
500.6.3.2.183
Описание ошибки: СБП: Ошибка формата ЭБД [103].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [103].
500.6.3.2.184
Описание ошибки: СБП: Ошибка формата ЭБД [104].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [104].
500.6.3.2.185
Описание ошибки: СБП: Ошибка формата ЭБД [107].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [107].
500.6.3.2.186
Описание ошибки: СБП: Ошибка формата ЭБД [108].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [108].
500.6.3.2.187
Описание ошибки: СБП: Ошибка формата ЭБД [125].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [125].
500.6.3.2.188
Описание ошибки: СБП: Ошибка формата ЭБД [126].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [126].
500.6.3.2.189
Описание ошибки: СБП: Ошибка формата ЭБД [130].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [130].
500.6.3.2.190
Описание ошибки: СБП: Ошибка формата ЭБД [131].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [131].
500.6.3.2.191
Описание ошибки: СБП: Ошибка формата ЭБД [139].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [139].
500.6.3.2.192
Описание ошибки: СБП: Ошибка формата ЭБД [140].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [140].
500.6.3.2.193
Описание ошибки: СБП: Отказ в обработке сообщения от Банка Получателя.
Сообщение для плательщика: СБП: Отказ в обработке сообщения от Банка Получателя.
500.6.3.2.194
Описание ошибки: СБП: ЭБД [13] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [13] в HEADER и в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [13] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [13] в HEADER и в DOCUMENT.
500.6.3.2.195
Описание ошибки: СБП: ЭБД [14] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [14] в HEADER и в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [14] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [14] в HEADER и в DOCUMENT.
500.6.3.2.196
Описание ошибки: СБП: ЭБД [22] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [22] в HEADER и в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [22] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [22] в HEADER и в DOCUMENT.
500.6.3.2.197
Описание ошибки: СБП: ЭБД [23] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [23] в HEADER и в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [23] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [23] в HEADER и в DOCUMENT.
500.6.3.2.198
Описание ошибки: СБП: ЭБД [24] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [24] в HEADER и в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [24] отсутствует в HEADER или в DOCUMENT или не совпадают значения ЭБД [24] в HEADER и в DOCUMENT.
500.6.3.2.199
Описание ошибки: СБП: ЭБД [27] отсутствует в DOCUMENT или не совпадают значения ЭБД [27] в HEADER и в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [27] отсутствует в DOCUMENT или не совпадают значения ЭБД [27] в HEADER и в DOCUMENT.
500.6.3.2.200
Описание ошибки: СБП: ЭБД [20] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [20] отсутствует в DOCUMENT.
500.6.3.2.201
Описание ошибки: СБП: ЭБД [29] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [29] отсутствует в DOCUMENT.
500.6.3.2.202
Описание ошибки: СБП: ЭБД [30] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [30] отсутствует в DOCUMENT.
500.6.3.2.203
Описание ошибки: СБП: ЭБД [31] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [31] отсутствует в DOCUMENT.
500.6.3.2.204
Описание ошибки: СБП: ЭБД [44] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [44] отсутствует в DOCUMENT.
500.6.3.2.205
Описание ошибки: СБП: ЭБД [50] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [50] отсутствует в DOCUMENT.
500.6.3.2.206
Описание ошибки: СБП: ЭБД [79] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [79] отсутствует в DOCUMENT.
500.6.3.2.207
Описание ошибки: СБП: ЭБД [80] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [80] отсутствует в DOCUMENT.
500.6.3.2.208
Описание ошибки: СБП: ЭБД [81] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [81] отсутствует в DOCUMENT.
500.6.3.2.209
Описание ошибки: СБП: ЭБД [95] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [95] отсутствует в DOCUMENT.
500.6.3.2.210
Описание ошибки: СБП: ЭБД [96] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [96] отсутствует в DOCUMENT.
500.6.3.2.211
Описание ошибки: СБП: ЭБД [98] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [98] отсутствует в DOCUMENT.
500.6.3.2.212
Описание ошибки: СБП: ЭБД [99] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [99] отсутствует в DOCUMENT.
500.6.3.2.213
Описание ошибки: СБП: ЭБД [125] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [125] отсутствует в DOCUMENT.
500.6.3.2.214
Описание ошибки: СБП: ЭБД [126] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [126] отсутствует в DOCUMENT.
500.6.3.2.215
Описание ошибки: СБП: ЭБД [130] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [130] отсутствует в DOCUMENT.
500.6.3.2.216
Описание ошибки: СБП: Значение ЭБД [2] отлично от значения ЭБД [2] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [2] отлично от значения ЭБД [2] в предыдущих сообщениях.
500.6.3.2.217
Описание ошибки: СБП: Значение ЭБД [9] отлично от значения ЭБД [9] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [9] отлично от значения ЭБД [9] в предыдущих сообщениях.
500.6.3.2.218
Описание ошибки: СБП: Значение ЭБД [20] отлично от значения ЭБД [20] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [20] отлично от значения ЭБД [20] в предыдущих сообщениях.
500.6.3.2.219
Описание ошибки: СБП: Значение ЭБД [22] отлично от значения ЭБД [22] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [22] отлично от значения ЭБД [22] в предыдущих сообщениях.
500.6.3.2.220
Описание ошибки: СБП: Значение ЭБД [24] отлично от значения ЭБД [24] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [24] отлично от значения ЭБД [24] в предыдущих сообщениях.
500.6.3.2.221
Описание ошибки: СБП: Значение ЭБД [30] отлично от значения ЭБД [30] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [30] отлично от значения ЭБД [30] в предыдущих сообщениях.
500.6.3.2.222
Описание ошибки: СБП: Значение ЭБД [32] отлично от значения ЭБД [32] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [32] отлично от значения ЭБД [32] в предыдущих сообщениях.
500.6.3.2.223
Описание ошибки: СБП: Значение ЭБД [44] отлично от значения ЭБД [44] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [44] отлично от значения ЭБД [44] в предыдущих сообщениях.
500.6.3.2.224
Описание ошибки: СБП: Значение ЭБД [47] отлично от значения ЭБД [47] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [47] отлично от значения ЭБД [47] в предыдущих сообщениях.
500.6.3.2.225
Описание ошибки: СБП: Значение ЭБД [48] отлично от значения ЭБД [48] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [48] отлично от значения ЭБД [48] в предыдущих сообщениях.
500.6.3.2.226
Описание ошибки: СБП: Значение ЭБД [51] отлично от значения ЭБД [51] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [51] отлично от значения ЭБД [51] в предыдущих сообщениях.
500.6.3.2.227
Описание ошибки: СБП: Значение ЭБД [74] отлично от значения ЭБД [74] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [74] отлично от значения ЭБД [74] в предыдущих сообщениях.
500.6.3.2.228
Описание ошибки: СБП: Значение ЭБД [81] отлично от значения ЭБД [81] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [81] отлично от значения ЭБД [81] в предыдущих сообщениях.
500.6.3.2.229
Описание ошибки: СБП: Значение ЭБД [94] отлично от значения ЭБД [94] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [94] отлично от значения ЭБД [94] в предыдущих сообщениях.
500.6.3.2.230
Описание ошибки: СБП: Значение ЭБД [95] отлично от значения ЭБД [95] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [95] отлично от значения ЭБД [95] в предыдущих сообщениях.
500.6.3.2.231
Описание ошибки: СБП: Значение ЭБД [96] отлично от значения ЭБД [96] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [96] отлично от значения ЭБД [96] в предыдущих сообщениях.
500.6.3.2.232
Описание ошибки: СБП: Значение ЭБД [97] отлично от значения ЭБД [97] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [97] отлично от значения ЭБД [97] в предыдущих сообщениях.
500.6.3.2.233
Описание ошибки: СБП: Значение ЭБД [99] отлично от значения ЭБД [99] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [99] отлично от значения ЭБД [99] в предыдущих сообщениях.
500.6.3.2.234
Описание ошибки: СБП: Значение ЭБД [104] отлично от значения ЭБД [104] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [104] отлично от значения ЭБД [104] в предыдущих сообщениях.
500.6.3.2.235
Описание ошибки: СБП: Значение ЭБД [125] отлично от значения ЭБД [125] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [125] отлично от значения ЭБД [125] в предыдущих сообщениях.
500.6.3.2.236
Описание ошибки: СБП: Значение ЭБД [130] отлично от значения ЭБД [130] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [130] отлично от значения ЭБД [130] в предыдущих сообщениях.
500.6.3.2.237
Описание ошибки: СБП: Недопустимое значение ЭБД [9].
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [9].
500.6.3.2.238
Описание ошибки: СБП: Недопустимое значение ЭБД [22].
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [22].
500.6.3.2.239
Описание ошибки: СБП: Недопустимое значение ЭБД [23].
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [23].
500.6.3.2.240
Описание ошибки: СБП: Недопустимое значение ЭБД [27].
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [27].
500.6.3.2.241
Описание ошибки: СБП: Недопустимое значение ЭБД [43].
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [43].
500.6.3.2.242
Описание ошибки: СБП: Недопустимое значение ЭБД [47].
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [47].
500.6.3.2.243
Описание ошибки: СБП: Значение ЭБД [94] не соответствует значению ЭБД [22].
Сообщение для плательщика: СБП: Значение ЭБД [94] не соответствует значению ЭБД [22].
500.6.3.2.244
Описание ошибки: СБП: Значение ЭБД [95] не соответствует значению ЭБД [24].
Сообщение для плательщика: СБП: Значение ЭБД [95] не соответствует значению ЭБД [24].
500.6.3.2.245
Описание ошибки: СБП: Недопустимое значение ЭБД [125].
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [125].
500.6.3.2.246
Описание ошибки: СБП: ЭБД [130] не зарегистрирован в ОПКЦ СБП.
Сообщение для плательщика: СБП: ЭБД [130] не зарегистрирован в ОПКЦ СБП.
500.6.3.2.247
Описание ошибки: СБП: ЭБД [139] не соответствует ЭБД [130].
Сообщение для плательщика: СБП: ЭБД [139] не соответствует ЭБД [130].
500.6.3.2.248
Описание ошибки: СБП: Значение ЭБД [44] превышает размер допустимой суммы Операции СБП.
Сообщение для плательщика: СБП: Значение ЭБД [44] превышает размер допустимой суммы Операции СБП.
500.6.3.2.250
Описание ошибки: СБП: Ошибка формата ЭБД [21].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [21].
500.6.3.2.251
Описание ошибки: СБП: Ошибка формата ЭБД [50].
Сообщение для плательщика: СБП: Ошибка формата ЭБД [50].
500.6.3.2.252
Описание ошибки: СБП: ЭБД [21] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [21] отсутствует в DOCUMENT.
500.6.3.2.253
Описание ошибки: СБП: ЭБД [46] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [46] отсутствует в DOCUMENT.
500.6.3.2.254
Описание ошибки: СБП: ЭБД [47] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [47] отсутствует в DOCUMENT.
500.6.3.2.255
Описание ошибки: СБП: ЭБД [48] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [48] отсутствует в DOCUMENT.
500.6.3.2.256
Описание ошибки: СБП: ЭБД [50] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [50] отсутствует в DOCUMENT.
500.6.3.2.257
Описание ошибки: СБП: ЭБД [94] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [94] отсутствует в DOCUMENT.
500.6.3.2.258
Описание ошибки: СБП: ЭБД [155] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [155] отсутствует в DOCUMENT.
500.6.3.2.259
Описание ошибки: СБП: ЭБД [159] отсутствует в DOCUMENT.
Сообщение для плательщика: СБП: ЭБД [159] отсутствует в DOCUMENT.
500.6.3.2.260
Описание ошибки: СБП: Значение ЭБД [1] отлично от значения ЭБД [1] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [1] отлично от значения ЭБД [1] в предыдущих сообщениях.
500.6.3.2.261
Описание ошибки: СБП: Значение ЭБД [21] отлично от значения ЭБД [21] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [21] отлично от значения ЭБД [21] в предыдущих сообщениях.
500.6.3.2.262
Описание ошибки: СБП: Значение ЭБД [31] отлично от значения ЭБД [31] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [31] отлично от значения ЭБД [31] в предыдущих сообщениях.
500.6.3.2.263
Описание ошибки: СБП: Значение ЭБД [46] отлично от значения ЭБД [46] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [46] отлично от значения ЭБД [46] в предыдущих сообщениях.
500.6.3.2.264
Описание ошибки: СБП: Значение ЭБД [50] отлично от значения ЭБД [50] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [50] отлично от значения ЭБД [50] в предыдущих сообщениях.
500.6.3.2.265
Описание ошибки: СБП: Значение ЭБД [126] отлично от значения ЭБД [126] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [126] отлично от значения ЭБД [126] в предыдущих сообщениях.
500.6.3.2.266
Описание ошибки: СБП: Значение ЭБД [131] отлично от значения ЭБД [131] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [131] отлично от значения ЭБД [131] в предыдущих сообщениях.
500.6.3.2.267
Описание ошибки: СБП: Значение ЭБД [139] отлично от значения ЭБД [139] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [139] отлично от значения ЭБД [139] в предыдущих сообщениях.
500.6.3.2.268
Описание ошибки: СБП: Значение ЭБД [140] отлично от значения ЭБД [140] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [140] отлично от значения ЭБД [140] в предыдущих сообщениях.
500.6.3.2.269
Описание ошибки: СБП: Значение ЭБД [159] отлично от значения ЭБД [159] в предыдущих сообщениях.
Сообщение для плательщика: СБП: Значение ЭБД [159] отлично от значения ЭБД [159] в предыдущих сообщениях.
500.6.3.2.270
Описание ошибки: СБП: Недопустимое значение ЭБД [46].
Сообщение для плательщика: СБП: Недопустимое значение ЭБД [46].
500.6.3.2.271
Описание ошибки: СБП: Значение ЭБД [24] не совпадает с Идентификатором Банка Получателя в зарегистрированном QR.
Сообщение для плательщика: СБП: Значение ЭБД [24] не совпадает с Идентификатором Банка Получателя в зарегистрированном QR.
500.6.3.2.272
Описание ошибки: СБП: Значение ЭБД [44] не совпадает с суммой в зарегистрированном QR.
Сообщение для плательщика: СБП: Значение ЭБД [44] не совпадает с суммой в зарегистрированном QR.
500.6.3.2.273
Описание ошибки: СБП: Значение ЭБД [155] не соответствует значению ЭБД [159] для QR.
Сообщение для плательщика: СБП: Значение ЭБД [155] не соответствует значению ЭБД [159] для QR.
500.6.3.2.274
Описание ошибки: СБП: QR c ЭБД [159] не зарегистрирован в СБП.
Сообщение для плательщика: СБП: QR c ЭБД [159] не зарегистрирован в СБП.
500.6.3.2.275
Описание ошибки: СБП: Отсутствуют ЭБД [1] и ЭБД [96].
Сообщение для плательщика: СБП: Отсутствуют ЭБД [1] и ЭБД [96].
500.6.3.2.276
Описание ошибки: Превышено допустимое количество попыток по установке Банка по умолчанию в день.
Сообщение для плательщика: Превышено допустимое количество попыток по установке Банка по умолчанию в день.
500.6.4.1
Описание ошибки: Операция оплачена или в процессе оплаты.
Сообщение для плательщика: Операция оплачена или в процессе оплаты.
500.6.4.2
Описание ошибки: Неуспешная оплата.
Сообщение для плательщика: Неуспешная оплата.
500.6.4.3
Описание ошибки: Перенаправление пользователя для оплаты не требуется.
Сообщение для плательщика: Перенаправление пользователя для оплаты не требуется.
500.6.4.4
Описание ошибки: Ошибка обработки результата запроса.
Сообщение для плательщика: Ошибка обработки результата запроса.
500.6.4.5
Описание ошибки: Неизвестный статус.
Сообщение для плательщика: Неизвестный статус.
500.6.4.6
Описание ошибки: Ожидание статуса.
Сообщение для плательщика: Ожидание статуса.
500.6.6.1.1
500.6.6.1.1
Описание ошибки: Ошибка во время проведения операции
Сообщение для плательщика: Ошибка во время проведения операции. Повторите операцию или воспользуйтесь другую карту
500.6.6.1.2
Описание ошибки: Операция отклонена
Сообщение для плательщика: Операция отклонена, повторите операцию или воспользуйтесь другой картой
500.6.6.1.3
Описание ошибки: Операция отклонена
Сообщение для плательщика: Операция отклонена, обратитесь в ваш банк или воспользуйтесь другой картой
500.6.6.1.4
Описание ошибки: Оплата по иностранной карте недоступна
Сообщение для плательщика: Операции по иностранным картам недоступны, воспользуйтесь картой российского банка
500.6.6.1.5
Описание ошибки: На карте плательщика недостаточно средств
Сообщение для плательщика: На карте недостаточно средств. Пополните баланс или воспользуйтесь другой картой
500.6.6.1.6
Описание ошибки: Неправильный номер карты
Сообщение для плательщика: Неправильный номер карты. Проверьте корректность данных карты или воспользуйтесь другой картой
500.6.6.1.7
Описание ошибки: Срок действия карты истек
Сообщение для плательщика: Срок действия карты истек. Воспользуйтесь другой картой
500.6.6.1.8
Описание ошибки: На карте превышен лимит по количеству операций
Сообщение для плательщика: Операция отклонена. Обратитесь в ваш банк или воспользуйтесь другой картой
500.6.6.1.9
Описание ошибки: На карте превышен лимит по сумме операций
Сообщение для плательщика: Превышен лимит на сумму операций. Обратитесь в ваш банк или воспользуйтесь другой картой
500.6.6.1.10
Описание ошибки: Операция данного типа запрещена для карты
Сообщение для плательщика: Операция отклонена. Обратитесь в ваш банк или воспользуйтесь другой картой
500.6.6.1.11
Описание ошибки: Операции по данной карте недоступны
Сообщение для плательщика: Операции по данной карте недоступны. Обратитесь в ваш банк или воспользуйтесь другой картой
500.6.6.1.12
Описание ошибки: Неправильный CVV код
Сообщение для плательщика: Неверно указан CVV-код. Проверьте корректность данных карты и повторите операцию
500.6.6.1.13
Описание ошибки: На карте превышен лимит попыток ввода ПИН-кода
Сообщение для плательщика: Операция отклонена. Обратитесь в ваш банк или воспользуйтесь другой картой
500.6.6.1.14
Описание ошибки: Неверно указаны данные карты
Сообщение для плательщика: Неверно указаны данные карты. Проверьте корректность данных карты или воспользуйтесь другой картой
500.6.6.1.15
Описание ошибки: Операции по карте с данной платежной системой недоступны
Сообщение для плательщика: Операции по карте с данной платежной системой недоустпны. Воспользуйтесь другой картой.
500.6.6.1.16
Описание ошибки: Эмитент или платежная система недоступны
Сообщение для плательщика: Произошла ошибка на стороне вашего банка или платежной системы. Повторите операцию позже или воспользуйтесь другой картой
500.6.6.1.17
Описание ошибки: Ошибка согласования на стороне платежной системы
Сообщение для плательщика: Во время проведения операции возникла ошибка. Пожалуйста, повторите операцию
500.6.6.1.18
Описание ошибки: Ошибка на стороне платежной системы
Сообщение для плательщика: Во время проведения операции возникла ошибка. Пожалуйста, повторите операцию
500.6.6.1.19
Описание ошибки: Операция отменена эквайером. Превышено кол-во запросов на авторизацию
Сообщение для плательщика: Операция отклонена. Обратитесь в ваш банк или воспользуйтесь другой картой
500.6.6.1.20
Описание ошибки: Выполнение операций данного типа запрещено Правилами и Стандартами платежной системой
Сообщение для плательщика: Операция отклонена. Обратитесь в ваш банк или воспользуйтесь другой картой
500.6.6.1.21
Описание ошибки: Выполнение операций данного типа запрещено для эквайера
Сообщение для плательщика: Операция отклонена. Обратитесь в службу поддержки магазина или воспользуйтесь другой картой
500.6.6.1.22
Описание ошибки: Истекло время завершения авторизации
Сообщение для плательщика: Во время выполнения оплаты возникла ошибка. Пожалуйста, повторите опериацю
500.6.6.1.23
Описание ошибки: Сумма операции несоответствует условиями её проведения или превышено ограничение на сумму платежа
Сообщение для плательщика: Сумма операции некорректна. Измените сумму или обратитесь в ваш банк
500.6.6.1.24
Описание ошибки: Дублирование операции
Сообщение для плательщика: При проведении операции возникла ошибка. Пожалуйста, повторите операцию или обратитесь в службу поддержки магазина
500.6.6.1.25
Описание ошибки: Неправильный CVV код или 3DS код
Сообщение для плательщика: Неправильный CVV код или код подтверждения от банка. Проверьте корректность данных и повторите операцию
500.6.6.1.26
Описание ошибки: Ошибка при проведении 3DS
Сообщение для плательщика: Ошибка при проведении операции. Пожалуйста, повторите операцию
500.6.6.1.27
Описание ошибки: Банк эмитент отклонил аутентификацию 3DS
Сообщение для плательщика: Операция отклонена. Повторите операцию или обратитесь в ваш банк
500.6.6.1.28
Описание ошибки: Банк эмитент отклонил аутентификацию 3DS
Сообщение для плательщика: Банк, выпустивший карту, отклонил операцию. Обратитесь в банк или воспользуйтесь другой картой
500.6.6.1.29
Описание ошибки: Превышен лимит на разовую операцию в точке
Сообщение для плательщика: Операция отклонена, превышен лимит на разовую операцию в точке. Измените сумму или обратитесь в службу поддержки магазина
500.6.6.1.30
Описание ошибки: Превышен лимит на сумму или количество операций по карте в магазине в сутки
Сообщение для плательщика: Превышен лимит на сумму или количество операций по карте в магазине в сутки. Попробуйте повторить операцию в другой день или обратитесь в службу поддержки магазина
500.6.6.1.31
Описание ошибки: Запрещено для данного типа магазина
Сообщение для плательщика: Операции в данном магазине по вашей карте запрещены. Попробуйте другую карту или обратитесь в ваш банк
500.6.6.1.32
Описание ошибки: Ошибка на стороне эквайера
Сообщение для плательщика: Произошел внутренний сбой, пожалуйста, повторите операцию
500.6.6.1.33
Описание ошибки: Ошибка при проведении операции
Сообщение для плательщика: Операция отклонена, повторите операцию, воспользуйтесь другой картой или обратитесь в службу поддержки магазина
500.6.6.1.34
Описание ошибки: Некорректно создан родительский платеж. Пересоздайте родительский платеж и повторите операцию
Сообщение для плательщика: Некорректно создан родительский платеж. Пересоздайте родительский платеж и повторите операцию
500.6.6.1.35
Описание ошибки: Неверные параметры запроса
Сообщение для плательщика: Во время выполнения оплаты возникла ошибка. Пожалуйста, повторите опериацю
500.6.6.2.1
Описание ошибки: Ошибка во время проведения операции
Сообщение для плательщика: Ошибка во время проведения операции. Повторите операцию или обратитесь в службу поддержки
500.6.6.2.2
Описание ошибки: Операция отклонена
Сообщение для плательщика: Операция отклонена. Пожалуйста, обратитесь в службу поддержки
500.6.6.2.3
Описание ошибки: Операция отклонена
Сообщение для плательщика: Операция отклонена. Повторите операцию или обратитесь в ваш банк
500.6.6.2.4
Описание ошибки: На карте превышен лимит по сумме возвратов
Сообщение для плательщика: Превышен лимит на сумму возвратов. Обратитесь в ваш банк или попробуйте повторить операцию в другой день
500.6.6.2.5
Описание ошибки: Ошибка согласования на стороне платежной системы
Сообщение для плательщика: Ошибка при проведении операции. Пожалуйста, повторите операцию
500.6.6.2.6
Описание ошибки: Выполнение операций данного типа запрещено для эквайера
Сообщение для плательщика: Операция отклонена. Обратитесь в службу поддержки
500.6.6.2.7
Описание ошибки: Эмитент или платежная система недоступны
Сообщение для плательщика: Произошла ошибка на стороне вашего банка или платежной системы. Повторите операцию позже
500.6.6.2.8
Описание ошибки: Неправильный номер платежа
Сообщение для плательщика: Ошибка при проведении операции. Пожалуйста, повторите операцию или обратитесь в службу поддержки
500.6.6.2.9
Описание ошибки: Сумма возврата превышает сумму покупки
Сообщение для плательщика: Сумма возврата превышает сумму покупки. Измените сумму и повторите операцию
500.6.6.2.10
Описание ошибки: Ошибка при проведении операции
Сообщение для плательщика: Ошибка при проведении операции. Пожалуйста, повторите операцию или обратитесь в службу поддержки
500.7
500.7.1
Описание ошибки: Во время прохождения упрощённой идентификации возникли ошибки. Обратитесь в службу поддержки MONETA.RU.
Сообщение для плательщика: Во время прохождения упрощённой идентификации возникли ошибки. Обратитесь в службу поддержки MONETA.RU.
500.7.2
Описание ошибки: Упрощённая идентификация не проведена. Закончился срок ожидания результатов проверки. Для прохождения Упрощённой идентификации следует сделать еще один запрос.
Сообщение для плательщика: Упрощённая идентификация не проведена. Закончился срок ожидания результатов проверки. Для прохождения Упрощённой идентификации следует сделать еще один запрос.
500.7.3
Описание ошибки: Упрощенная идентификация не выполнена.
Сообщение для плательщика: Упрощенная идентификация не выполнена.
500.7.4
Описание ошибки: Для прохождения упрощённой идентификации укажите паспортные данные. Указанный Вами документ не является действующим паспортом.
Сообщение для плательщика: Для прохождения упрощённой идентификации укажите паспортные данные. Указанный Вами документ не является действующим паспортом.
500.7.5
Описание ошибки: Сотовый телефон не подтвержден.
Сообщение для плательщика: Сотовый телефон не подтвержден.
500.7.6
Описание ошибки: Вами предоставлена недостаточно полная информация о себе. Для прохождения упрощённой идентификации укажите в личном кабинете: ФИО, паспортные данные, ИНН, СНИЛС, номер мобильного телефона.
Сообщение для плательщика: Вами предоставлена недостаточно полная информация о себе. Для прохождения упрощённой идентификации укажите в личном кабинете: ФИО, паспортные данные, ИНН, СНИЛС, номер мобильного телефона.
500.7.7
Описание ошибки: Автоматическая упрощённая идентификация доступна только для граждан России.
Сообщение для плательщика: Автоматическая упрощённая идентификация доступна только для граждан России.
500.7.8
Описание ошибки: Найдены похожие профили со статусом "Упрощённая идентификация". Обратитесь в службу поддержки MONETA.RU.
Сообщение для плательщика: Найдены похожие профили со статусом "Упрощённая идентификация". Обратитесь в службу поддержки MONETA.RU.
500.7.9
Описание ошибки: Не хватает или подтверждены не все персональные данные, необходимые для упрощённой идентификации.
Сообщение для плательщика: Не хватает или подтверждены не все персональные данные, необходимые для упрощённой идентификации.
500.7.10
Описание ошибки: Документ, удостоверяющий личность, не прошел проверку подтверждения достоверности. Обратитесь в службу поддержки MONETA.RU.
Сообщение для плательщика: Документ, удостоверяющий личность, не прошел проверку подтверждения достоверности. Обратитесь в службу поддержки MONETA.RU.
500.7.11
Описание ошибки: Пользователь уже имеет статус "Упрощённая идентификация".
Сообщение для плательщика: Пользователь уже имеет статус "Упрощённая идентификация".
500.7.12
Описание ошибки: Невозможно провести Упрощённую идентификацию.
Сообщение для плательщика: Невозможно провести Упрощённую идентификацию.
500.8
500.8
Описание ошибки: Ошибка во внешней системе СМЭВ: *.
Сообщение для плательщика: Ошибка во внешней системе СМЭВ: *.
500.8.3.1.1
Описание ошибки: Внешний сервис (СМЭВ 3) временно недоступен. Повторите запрос позднее.
Сообщение для плательщика: Внешний сервис (СМЭВ 3) временно недоступен. Повторите запрос позднее.
500.8.3.1.2
Описание ошибки: Не удалось отправить запрос внешнему сервису (СМЭВ 3).
Сообщение для плательщика: Не удалось отправить запрос внешнему сервису (СМЭВ 3).
500.8.3.1.3
Описание ошибки: Во внешнем сервисе (СМЭВ 3) произошла техническая ошибка. Обработка запроса прекращена.
Сообщение для плательщика: Во внешнем сервисе (СМЭВ 3) произошла техническая ошибка. Обработка запроса прекращена.
500.8.3.1.4
Описание ошибки: Ошибка во внешнем сервисе (СМЭВ 3): *.
Сообщение для плательщика: Ошибка во внешнем сервисе (СМЭВ 3): *.
500.8.3.1.5
Описание ошибки: В ответе от внешнего сервиса (СМЭВ 3) не найдены необходимые данные.
Сообщение для плательщика: В ответе от внешнего сервиса (СМЭВ 3) не найдены необходимые данные.
500.8.3.1.6
Описание ошибки: Не удалось представить данные в xml формате.
Сообщение для плательщика: Не удалось представить данные в xml формате.
500.8.3.1.7
Описание ошибки: Не удалось получить данные из xml формата.
Сообщение для плательщика: Не удалось получить данные из xml формата.
500.8.3.1.8
Описание ошибки: Внешний сервис (СМЭВ 3) не смог найти необходимые данные.
Сообщение для плательщика: Внешний сервис (СМЭВ 3) не смог найти необходимые данные.
500.8.3.1.9
Описание ошибки: Во внешнем сервисе (СМЭВ 3) произошла техническая ошибка. Повторите запрос позднее.
Сообщение для плательщика: Во внешнем сервисе (СМЭВ 3) произошла техническая ошибка. Повторите запрос позднее.
500.8.3.1.10
Описание ошибки: Истекло время ожидания ответа внешней системы (СМЭВ 3).
Сообщение для плательщика: Истекло время ожидания ответа внешней системы (СМЭВ 3).
500.8.4769.1
Описание ошибки: Единая система идентификации и аутентификации (ЕСИА) не отвечает на запрос. Просим Вас повторить запрос позже.
Сообщение для плательщика: Единая система идентификации и аутентификации (ЕСИА) не отвечает на запрос. Просим Вас повторить запрос позже.
500.8.4769.2
Описание ошибки: Во время выполнения запроса в Единой системе идентификации и аутентификации (ЕСИА) произошла ошибка.
Сообщение для плательщика: Во время выполнения запроса в Единой системе идентификации и аутентификации (ЕСИА) произошла ошибка.
500.9
500.9.1
Описание ошибки: Асинхронная задача не найдена.
Сообщение для плательщика: Асинхронная задача не найдена.
500.9.2
Описание ошибки: Данная задача не поддерживает асинхронную обработку.
Сообщение для плательщика: Данная задача не поддерживает асинхронную обработку.
500.9.3
Описание ошибки: Несоответствие контекста асинхронного запроса и результата.
Сообщение для плательщика: Несоответствие контекста асинхронного запроса и результата.
500.9.4
Описание ошибки: Запрос может быть вызван только в асинхронном режиме. Используйте AsyncRequest для работы с данным запросом.
Сообщение для плательщика: Запрос может быть вызван только в асинхронном режиме. Используйте AsyncRequest для работы с данным запросом.
500.9.5
Описание ошибки: Указанный callbackUrl не валиден.
Сообщение для плательщика: Указанный callbackUrl не валиден.
500.10
500.10.1
Описание ошибки: Подписчик не найден.
Сообщение для плательщика: Подписчик не найден.
500.10.2
Описание ошибки: Указанный callbackUrl не валиден.
Сообщение для плательщика: Указанный callbackUrl не валиден.
500.10.3
Описание ошибки: Начисление не найдено.
Сообщение для плательщика: Начисление не найдено.
500.10.4
Описание ошибки: E-mail не указан или имеет неверный формат.
Сообщение для плательщика: E-mail не указан или имеет неверный формат.
500.10.5
Описание ошибки: Укажите идентификаторы начислений или идентификаторы плательщика.
Сообщение для плательщика: Укажите идентификаторы начислений или идентификаторы плательщика.
500.10.6
Описание ошибки: Данный функционал временно недоступен.
Сообщение для плательщика: Данный функционал временно недоступен.
500.10.7
Описание ошибки: Превышен лимит по подпискам. Обратитесь к куратору.
Сообщение для плательщика: Превышен лимит по подпискам. Обратитесь к куратору.
500.11
500.11.1.1
Описание ошибки: Неверные параметры запроса.
Сообщение для плательщика: Неверные параметры запроса.
500.11.2.1
Описание ошибки: Отсутствуют необходимые данные для взаимодействия с сервисом СБП.
Сообщение для плательщика: Отсутствуют необходимые данные для взаимодействия с сервисом СБП.
500.11.2.2
Описание ошибки: Идентификатор кассовой ссылки не принадлежит данному счету.
Сообщение для плательщика: Идентификатор кассовой ссылки не принадлежит данному счету.
500.11.2.3
Описание ошибки: Превышен допустимый лимит на регистрацию новых кассовых ссылок.
Сообщение для плательщика: Превышен допустимый лимит на регистрацию новых кассовых ссылок.
500.11.2.4
Описание ошибки: Кассовая ссылка с таким идентификатором клиента уже существует.
Сообщение для плательщика: Кассовая ссылка с таким идентификатором клиента уже существует.
Статусы операций
- При создании операции ей назначается статус
CREATED
. - Начинается обработка, и статус меняется на
INPROGRESS
. - После списания средств статус меняется на
TAKENOUT
. - Если подразумевается дополнительное взаимодействие с плательщиком, то на время внешней обработки статус будет отображаться как
INPROGRESS
. - Перед зачислением средств, если есть обстоятельства, препятствующие обработке операции (например, требования закона или другие регламентирующие/ограничивающие условия), устанавливается статус
FROZEN
для ручного разбора администраторами. По завершению ручного разбора ситуации статус вернётся в предыдущий (например, вTAKENOUT
илиINPROGRESS
). - После зачисления средств перед отправкой уведомления получателю устанавливается статус
TAKENIN_NOTSENT
. - При получении ответа со специальным кодом невозможности автоматической обработки платежа на уведомление о зачислении операция переводится в статус
FROZEN
для ручного разбора сложившейся ситуации. Администраторами вручную статус может быть изменён наTAKENIN_NOTSENT
для повторной отправки уведомления о зачислении. - После получения положительного ответа на уведомление о зачислении обработка операции завершается, назначается терминальный статус
SUCCEED
.
На этапах с 1 по 7 операция может быть автоматически переведена в терминальный статус CANCELED
в результате ошибок обработки или обстоятельств, препятствующих обработке, при этом все проведенные зачисления и списания будут сторнированы (симметрично возвращены).
Из терминальных статусов CANCELED
и SUCCEED
операция не может быть переведена в другой статус штатными средствами, доступными группе эксплуатации системы. Но технически это возможно по отдельному согласованию со всеми заинтересованными сторонами (плательщик, получатель, внутренние службы эксплуатации и контроля).
Список валют
Код валюты | Полное название |
---|---|
RUB | Российский рубль |
USD | Доллар США |
EUR | Евро |
GBP | Фунт стерлингов |
CNY | Юань |
Коды временных зон
Код страны | Полное название | Время UTC |
---|---|---|
HST | Гавайи | UTC-10:00 |
AKST | Аляска | UTC-09:00 |
PST | Тихоокеанское время (США и Канада) | UTC-08:00 |
MST | Горное время (США и Канада) | UTC-07:00 |
CST | Центральное время (США и Канада) | UTC-06:00 |
EST | Восточное время (США и Канада) | UTC-05:00 |
AST | Атлантическое время (Канада) | UTC-04:00 |
BRT | Бразилия | UTC-03:00 |
UTC | Время в формате UTC | UTC |
GMT | Дублин, Лиссабон, Лондон, Эдинбург | UTC |
CET | Амстердам, Берлин, Берн, Вена, Рим, Стокгольм | UTC+01:00 |
CET | Белград, Братислава, Будапешт, Любляна, Прага | UTC+01:00 |
CET | Брюссель, Копенгаген, Мадрид, Париж | UTC+01:00 |
CET | Варшава, Загреб, Сараево, Скопье | UTC+01:00 |
EET | Афины, Бухарест | UTC+02:00 |
EET | Вильнюс, Киев, Рига, София, Таллин, Хельсинки | UTC+02:00 |
EET | Восточная Европа | UTC+02:00 |
EET | Калининград (RTZ 1) | UTC+02:00 |
MSK | Волгоград, Москва, Санкт-Петербург (RTZ 2) | UTC+03:00 |
MSK | Минск | UTC+03:00 |
AZT | Баку | UTC+04:00 |
AMT | Ереван | UTC+04:00 |
SAMT | Ижевск, Самара (RTZ 3) | UTC+04:00 |
GET | Тбилиси | UTC+04:00 |
TJT | Ашхабад, Ташкент | UTC+05:00 |
YEKT | Екатеринбург (RTZ 4) | UTC+05:00 |
ALMT | Астана, Алматы | UTC+06:00 |
NOVT | Новосибирск (RTZ 5) | UTC+06:00 |
KRAT | Красноярск (RTZ 6) | UTC+07:00 |
HKT | Гонконг, Пекин, Урумчи, Чунцин | UTC+08:00 |
IRKT | Иркутск (RTZ 7) | UTC+08:00 |
SGT | Куала-Лумпур, Сингапур | UTC+08:00 |
ULAT | Улан-Батор | UTC+08:00 |
YAKT | Якутск (RTZ 8) | UTC+09:00 |
VLAT | Владивосток, Магадан (RTZ 9) | UTC+10:00 |
SAKT | Чокурдах (RTZ 10) | UTC+11:00 |
ANAT | Анадырь, Петропавловск-Камчатский (RTZ 11) | UTC+12:00 |
3-D Secure
3-D Secure — общее название программ Verified By Visa и Mastercard Secure Code от платежных систем Visa и MasterCard. Суть программы - в проверке подлинности держателя защита от несанкционированного использования карты эмитентом перед оплатой.
На практике это выглядит так: держатель указывает реквизиты карты, далее открывается сайт эмитента, где держателю предлагается ввести пароль или секретный код. Как правило, код отправляется в СМС-сообщении. Если код указан правильно, оплата будет проведена. Если нет — отклонена.
3-D Secure в процессе оплаты появляется не на всех картах, а только тех, банки-эмитенты которых поддерживают данную технологию. Проведение оплаты без 3-D Secure является менее безопасным вариантом.
Платёжная форма и виджет
Подразделы Платёжная форма и виджет
Платёжная форма
Подразделы Платёжная форма
Общее описание
Интерфейс MONETA.Assistant предоставляет прикладной программный интерфейс для оплаты товаров и услуг при помощи различных платежных систем. Таким образом, online-магазин реализует поддержку только интерфейса MONETA.Assistant, в то время как покупатели могут производить оплату с любой электронной платежной системы, которую поддерживает «MONETA.RU».
При помощи интерфейса MONETA.Assistant можно связать свою внутреннюю систему приема, хранения и обработки заказов с системой «MONETA.RU». На основании сформированного заказа, магазин будет создавать запрос на оплату к системе «MONETA.RU» и принимать отчет о проведенной оплате с сохранением своих внутренних параметров (например, номер заказа в системе или дополнительные информационные поля).
Для подключения интерфейса на сайте необходимо создать форму специального вида с реквизитами оплаты, а также создать обработчик, который будет принимать уведомления с отчетом о проведенной операции.
Описание процесса оплаты
Оплата без открытия счета в «MONETA.RU»:
- Пользователь выбирает товар.
- Магазин формирует заказ, при необходимости регистрирует в своей системе реквизиты заказа.
- На странице интерфейса MONETA.Assistant Пользователь выбирает способ оплаты.
- Система «MONETA.RU» подготавливает форму оплаты.
- Пользователь подтверждает оплату выбранным способом.
- Внешняя платежная система уведомляет систему «MONETA.RU» об оплате.
- Система «MONETA.RU» отправляет магазину отчет о проведенной операции.
- Система «MONETA.RU» сообщает о результате оплаты и предлагает Пользователю вернуться на сайт магазина.
Диаграмма процедуры оплаты товара без открытия Пользователем счета в системе «MONETA.RU» с использованием интерфейса MONETA.Assistant:
С чего начать
Demo-площадка
Для того, чтобы попробовать, как работает MONETA.Assistant, можно создать личный кабинет на demo площадке.
Вы можете использовать demo площадку Moneta.Ru https://demo.moneta.ru, чтобы протестировать работу MONETA.Assistant.
Внимание! Номера счетов (MNT_ID) на demo площадке и рабочей платформе будут различаться!
Регистрация на demo площадке
Для того, чтобы начать работу на demo площадке Вам следует создать два личных кабинета: личный кабинет магазина, который может принимать платежи и личный кабинет пользователя, который может платить в магазин. Для каждого личного кабинета используйте разные e-mail адреса.
- Создайте личный кабинет магазина на demo площадке. Для этого перейдите по ссылке: https://demo.moneta.ru/backoffice/auth/register
- Создайте личный кабинет пользователя на demo площадке. Для этого перейдите по ссылке: https://demo.moneta.ru/locale.htm?moneta.locale=ru&redirect=/register.htm
- Свяжитесь со службой поддержки PayAnyWay (business@support.payanyway.ru), чтобы завершить регистрацию личного кабинета магазина, а также получить виртуальные деньги в личном кабинете пользователя.
Примечание: При обращении в службу поддержки укажите e-mail или телефон, которые Вы использовали при регистрации.
- После того как служба поддержки подтвердит регистрацию, создайте “расширенный” счет в личном кабинете магазина. Для этого выполните следующие шаги:
- Откройте https://demo.moneta.ru и зайдите в личный кабинет магазина.
- Перейдите
Мой счет > Управление счетами
. - В разделе
Расширенные счета
, нажмитеДобавить счет
. - Заполните форму и нажмите
Сохранить
.
Настройки счёта магазина
В разделе управления счетами (блок Счета
в левой части обзорной страницы, ссылка Мой счет > Управление счетами
) уполномоченные представители магазина могут настроить параметры взаимодействия учетной системы магазина и системы «МОНЕТА.РУ».
- Тестовый режим
- Признак тестового режима, в котором движения средств по операции не происходит, но обеспечивается информационный обмен.
Внимание! Тестовый режим настраивается только данным флагом. Параметр
MNT_TEST_MODE
устарел и не влияет на включение / отключение тестового режима. - Список платежных систем
- Список (разделенный запятыми) идентификаторов платежных систем, которые необходимо показывать пользователю в MONETA.Assistant. Например, 1015,1017 - пользователю в MONETA.Assistant будут показаны только платежные системы МОНЕТА.РУ и WebMoney. Если список пустой, то будут показаны все доступные системы. Также это значение можно передать в запросе с помощью параметра paymentSystem.limitIds.
- Check URL
- Адрес обработчика в системе учета магазина для проверочных запросов. Если в свойствах счета указан Check URL, то магазин будет получать проверочные запросы. Дополнительная информация: Проверочные запросы (Check URL).
- Pay URL
- Адрес обработчика в системе учета магазина для уведомлений о проведенном платеже. Дополнительная информация: Уведомление о проведенной оплате (Pay URL).
- HTTP Method
- GET или POST метод отправки параметров для Check URL и Pay URL запросов.
- Код проверки целостности данных
- Код, обеспечивающий идентификацию отправителя и возможность проверки целостности данных, известный только системе «МОНЕТА.РУ» и учетной системе магазина. Устанавливается магазином при настройке счёта.
- Подпись формы оплаты обязательна
- Признак, который обязывает передавать параметр MNT_SIGNATURE в запросе на оплату. Если в настройках счета выставлен этот флаг, но параметр MNT_SIGNATURE в запросе на оплату не указан, то MONETA.Assistant завершится с ошибкой.
Внимание! Если в параметрах на оплату не указывается параметр MNT_TRANSACTION_ID, то этот флаг выставлять не следует. Запросы с параметром MNT_SIGNATURE при отсутствии параметра MNT_TRANSACTION_ID будут неверны.
- Можно переопределять настройки в URL
- Признак возможности задавать в параметрах запроса на оплату адреса страниц для возврата пользователя на сайт магазина.
- Success URL
- URL страницы магазина, куда должен попасть покупатель после благополучно проведенной оплаты или незавершенной оплаты, если не задан InProgress URL. Переход пользователя произойдет независимо от получения магазином отчета о проведенной оплате.
Примечание: MONETA.Assistant добавляет параметр MNT_TRANSACTION_ID в указанную ссылку, чтобы магазин смог определить внутренний идентификатор заказа.
- Fail URL
- URL страницы магазина, куда должен попасть покупатель после отмененной оплаты. Отчет об оплате в этом случае магазину не отсылается.
Примечание: MONETA.Assistant добавляет параметр MNT_TRANSACTION_ID в указанную ссылку, чтобы магазин смог определить внутренний идентификатор заказа.
- InProgress URL
- URL страницы магазина, куда должен попасть покупатель после успешного запроса на авторизацию средств, до подтверждения списания и зачисления средств. Поддерживается ограниченным количеством методов оплаты. Переход пользователя произойдет независимо от получения магазином средств и отчета о проведенной оплате.
Примечание: MONETA.Assistant добавляет параметр MNT_TRANSACTION_ID в указанную ссылку, чтобы магазин смог определить внутренний идентификатор заказа.
- Return URL
- URL страницы магазина, куда должен вернуться покупатель при добровольном отказе от оплаты. Отчет об оплате в этом случае магазину не отсылается.
Примечание: MONETA.Assistant добавляет параметр MNT_TRANSACTION_ID в указанную ссылку, чтобы магазин смог определить внутренний идентификатор заказа.
Запрос на оплату через MONETA.Assistant
Запрос на оплату через интерфейс MONETA.Assistant представляет собой HTML-форму. Форма должна быть подготовлена магазином, передана Пользователю, подтверждена Пользователем и отправлена на адрес https://moneta.ru/assistant.htm для обработки системой «MONETA.RU». Для тестирования работы системы можно использовать demo площадку: https://demo.moneta.ru/assistant.htm.
Новую форму достаточно поместить внутрь iframe и она сама адаптируется к размерам1.
Минимальная ширина iframe - 320px, рекомендуемая - 488px.
Полезная высота iframe зависит от количества методов оплаты: чем больше, тем выше нужен iframe, чтобы он не требовал прокрутки. ↩︎
Уведомление о проведенной оплате (Pay URL)
Уведомление об оплате MONETA.Assistant отсылает на указанную страницу магазина «Pay URL» в виде HTTP запроса методом GET или POST.
Статус приема уведомления должен быть возвращен в виде ответа на HTTP запрос. Для идентификации отправителя отчета используется «Код проверки целостности данных», который должен быть известен только системе «МОНЕТА.РУ» и учетной системе магазина. При помощи этого кода и основных параметров уведомления об оплате формируется подпись, которая однозначно идентифицирует отправителя и обеспечивает возможность проверки целостности пересылаемых данных.
В случае, если система «МОНЕТА.РУ» не получает ответ от магазина на отправленный запрос с уведомлением (например, из-за недоступности системы учёта магазина), будут произведены попытки отправить уведомление в автоматическом режиме в течение 26-27 часов. По истечении периода автоматической отправки уведомлений операция будет выполнена без подтверждения со стороны магазина.
Ответ на уведомление об оплате
Для того, чтобы сообщить MONETA.Assistant, что магазин получил информацию об оплате, скрипт магазина (PayURL) должен дать ответ соответствующим образом.
Ответ может быть в одном из форматов:
- Текстовый формат в кодировке UTF-8. Этот ответ не должен содержать HTML тэги.
- Ответ в XML формате.
Примечание: Ответ об успешном получении уведомления следует возвращать также в том случае, если учетной системой магазина уведомление принято повторно, то есть, в том случае, когда магазин уже отвечал результатом «SUCCESS» на предшествующие уведомления.
Попытки отправки уведомления будут повторены:
- Если система «MONETA.RU» не смогла получить ответ от обработчика.
- Если сервер магазина был недоступен.
- Если текстовая строка начинается словом FAIL.
Проверочные запросы (Check URL)
Если в свойствах счета магазина выставить Check URL, то магазину, кроме уведомления о проведенной оплате, будут отсылаться проверочные запросы.
Проверочные запросы служат для того, чтобы:
- Убедиться, что заказ существует, что заказ еще не оплачен, что срок действия заказа не истек.
- Указать сумму заказа, если магазин не передал сумму заказа в HTML-форме.
- Проверить статус заказа, если товар уже оплачен.
Проверочные запросы MONETA.Assistant отсылает на указанную страницу магазина Check URL в виде HTTP запроса методом GET или POST. Ответ на HTTP запрос должен быть в формате XML. Во время оплаты одного заказа MONETA.Assistant может несколько раз отсылать проверочные запросы.
Ответ на проверочный запрос
При вызове проверочного запроса (Check URL) магазину следует послать ответ в XML формате.
При получении ответа на проверочный запрос в системе MONETA.RU анализируются поля ответа. MONETA.Assistant прекращает обработку оплаты:
- Если система MONETA.RU не смогла получить ответ от обработчика.
- Если ответ содержит неверный формат.
- Если MNT_ID или MNT_TRANSACTION_ID не соответствуют параметрам запроса.
- Если MNT_RESULT_CODE не соответствует списку возможных кодов.
- Если MNT_SIGNATURE не сходится с ключом, сгенерированным в MONETA.RU.
Автоматическое прохождение MONETA.Assistant
В обычном режиме работы MONETA.Assistant пользователь может:
- Выбрать платежную систему для оплаты заказа.
- Указать необходимые параметры этой платежной системы.
- Увидеть страницу с деталями операции.
- После этого он попадает непосредственно на страницу выбранной платежной системы.
Например, пользователь выбирает платежную систему WebMoney, затем выбирает в качестве источника оплаты WebMoney WMR, затем видит детали операции, и только после этого попадает на сайт «WebMoney».
MONETA.Assistant позволяет в автоматическом режиме выбрать необходимую платежную систему, заполнить параметры этой платежной системы и перейти на сайт выбранной платежной системы.
Для этого необходимо заполнить дополнительные параметры запроса на оплату заказа.
Дополнительные параметры запроса на оплату
- followup
- Пройти весь MONETA.Assistant с предустановленными значениями. Для этого необходимо выбрать платежную систему и заполнить параметры платежной системы (если они есть).
Возможные значения:
true
- Использовать дополнительные параметры, чтобы пропустить шаги MONETA.Assistant.false
- Пользователь сам заполняет формы MONETA.Assistant.
Значение по умолчанию:
false
. - javascriptEnabled
- Признак возможности использовать javascript для автоматической обработки форм (
true
илиfalse
). Если будет передано значениеtrue
, а на самом деле у пользователя javascript выключен, то пользователь увидит пустую страницу. Важно передавать действительное значение – «включен» или «выключен» javascript в браузере пользователя. Используется совместно с параметромfollowup
. - paymentSystem.accountId
- Номер счета платежной системы. Например, тип кошелька WebMoney, 2 – WMR, 3 – WMZ, 4 – WME.
Примеры запросов на оплату
Пример 1
Пример формы для оплаты заказа «FF790ABCD» в магазине «MAGAZIN.RU» (номер счета 00000001) на сумму 120.25 рублей с автоматической обработкой диалогов. Оплата будет производиться через систему WebMoney, средства будут списаны с WMR кошелька. Пользователь будет перенаправлен на страницу оплаты системы WebMoney.
<form method="post" action="https://moneta.ru/assistant.htm">
<input type="hidden" name="MNT_ID" value="00000001">
<input type="hidden" name="MNT_TRANSACTION_ID" value="FF790ABCD">
<input type="hidden" name="MNT_CURRENCY_CODE" value="RUB">
<input type="hidden" name="MNT_AMOUNT" value="120.25">
<input type="hidden" name="paymentSystem.accountId" value="2">
<input type="hidden" name="javascriptEnabled" value="true">
<input type="hidden" name="followup" value="true">
<input type="submit" value="Pay with Webmoney WMR">
</form>
Если в браузере пользователя выключен javascript и в MONETA.Assistant придет параметр javascriptEnabled = false
, то пользователь попадет на последний шаг MONETA.Assistant – просмотр деталей операции. Для перехода на сайт системы WebMoney пользователь должен нажать кнопку Продолжить
.
Пример 2
Пример формы для оплаты заказа «FF790ABCD» в магазине «MAGAZIN.RU» (номер счета 00000001) на сумму 120.25 рублей с автоматической обработкой диалогов. Оплата будет производиться через систему Яндекс.Деньги.
<form method="post" action="https://moneta.ru/assistant.htm">
<input type="hidden" name="MNT_ID" value="00000001">
<input type="hidden" name="MNT_TRANSACTION_ID" value="FF790ABCD">
<input type="hidden" name="MNT_CURRENCY_CODE" value="RUB">
<input type="hidden" name="MNT_AMOUNT" value="120.25">
<input type="hidden" name="followup" value="true">
<input type="submit" value="Pay with Yandex.Money">
</form>
Получение данных от поставщика
Для поставщиков, предоставляющих при оплате расширенную информацию в интерактивном режиме, возможна отправка дополнительных проверочных запросов после каждого шага по вводу параметров.
Проверочные запросы служат для того, чтобы:
- Получить от поставщика данные которые зависят от уже введенных данных (например, по лицевому счету вернуть адрес и показания счетчиков).
- Указать сумму заказа, если сумма зависит от введенных параметров.
Основные принципы взаимодействия
Запросы на получение данных MONETA.Assistant отсылает на указанный в «Check URL» адрес в виде HTTP запроса методом GET или POST. Ответ на HTTP запрос должен быть в формате XML.
Во время оплаты одного заказа MONETA.Assistant может несколько раз отсылать проверочные запросы на получение данных.
При получении ответа на проверочный запрос в системе MONETA.RU анализируются поля ответа. Проверочный запрос считается не отправленным, и дальнейшая обработка заказа будет прервана:
- Если система MONETA.RU не смогла получить ответ от обработчика.
- Если ответ содержит неверный формат.
- Если MNT_ID или MNT_TRANSACTION_ID не соответствуют параметрам запроса.
- Если MNT_RESULT_CODE не соответствует списку возможных кодов.
- Если MNT_SIGNATURE не сходится с ключом, сгенерированным в MONETA.RU.
Дополнительные коды ошибок, отображаемые пользователю
- 302
- При отправке проверочного запроса в адрес партнера получен некорректный ответ (стандартная html-страница, страница с сообщением об ошибке и т.п.) или перенаправление на другой адрес (HTTP Status 301, 302).
Убедитесь, что ваш сервис доступен по адресу, указанному в Check URL, и в ответ на запрос вы возвращаете корректный XML.
- -1
- Запроса не было. В настройках счета задан параметр Check URL, но не задан параметр Pay URL.
- -600
- Невозможно отправить уведомление. Неверный Check URL или Pay URL или невозможно установить соединение.
Убедитесь, что в разделе управления счетами в настройках Check URL и Pay URL заданы верно, например: http://www.merchant-site.com/script
Примечание: Адрес должен быть доступен для нашей системы (например, нельзя задавать локальные имена внутренних серверов “localhost”, “my-pc” и т.п.).
- -700
- Невозможно обработать ответ. Неверный xml формат ответа или неверно сформированная подпись ответа.
Убедитесь, что ваш сервис возвращает xml в корректном формате, при формировании подписи вы используете тот же код проверки целостности данных, что указан в настройках счёта.
Использование виджета для отображения MONETA.Assistant
Виджет https://moneta.ru/assistant.widget - это форма оплаты, у которой визуальное представление организовано таким образом, чтобы посетитель интернет-магазина мог бы ввести его платежные данные прямо в корзине своего интернет-магазина.
Если Вы не используете виджет, то посетитель должен будет перейти из корзины на отдельную страницу оплаты заказа по кнопке “Оплатить”, размещенной в корзине.
Кнопка “Оплатить” в корзине должна формироваться динамически и представляет собой форму, у которой имеется ряд скрытых полей.
Таким образом, видна остается лишь только кнопка для отправки формы, т.е. кнопка “Оплатить”:
<form method='post' action='https://moneta.ru/assistant.htm'>
<input type='hidden' name='MNT_ID' value='19312235'>
<input type='hidden' name='MNT_CURRENCY_CODE' value='RUB'>
<input type='hidden' name='MNT_AMOUNT' value='10.25'>
<input type='submit' value='Pay order'>
</form>
Чтобы вместо кнопки “Оплатить” сразу показать форму оплаты, надо поместить в корзину код iframe:
<iframe src='https://moneta.ru/assistant.widget?MNT_ID=19312235&MNT_CURRENCY_CODE=RUB&MNT_AMOUNT=10.25'>
Ваш браузер не поддерживает плавающие фреймы!
</iframe>
Таким образом, мы “просим” MONETA.Assistant показать форму для оплаты заказа внутри iframe.
Если корзина интернет-магазина может быть изменена без перезагрузки страницы, то следует так же менять и параметры, передаваемые в iframe, в частности сумму заказа.
Особенности использования
Ссылка assistant.widget отличается от assistant.htm только дизайном - в assistant.widget не показываются хидеры, футеры и т.д. Это та же кнопка “Оплатить”, но уже “развёрнутая”.
SuccessUrl и FailUrl вызываются также, но нужно учитывать, что они покажутся в Вашем фрейме. Так как SuccessUrl и FailUrl - это страницы с Вашим дизайном, то Вам следует их оформить так, чтобы они хорошо смотрелись в iframe. Если Вам необходимо иметь разные SuccessUrl и FailUrl для работы с одним счетом (показывать в iframe и в браузере), то Вы можете передавать параметры MNT_SUCCESS_URL и MNT_FAIL_URL необходимые для данного конкретного случая (на счете в таком случае должна стоять галочка - “Можно переопределять параметры в запросе”).
Содержимое iframe можно стилизовать индивидуально по Вашему усмотрению. Примеры страниц, на которых выводится виджет MONETA.Assistant с измененным внешним видом при помощи дополнительного css-кода можно увидеть здесь.
Там же есть листинги css-кода по каждому из приведенных примеров. Для установки стилей на Вашем расширенном счете, необходимо прислать css-код для review в техническую поддержку. Примеры использования: http://payanyway.ru/info/w/ru/public/w/partnership/demo/var2.html
Настройка виджета
Добавление платёжной формы на сайт магазина
Примечание: Если вы уже используете интерфейс MONETA.Assistant, то подключение новой платёжной формы займёт совсем немного времени, если нет – изучите документацию, чтобы реализовать обработчики Check и Pay URL.
Подключим скрипт
После того, как ваш магазин готов обрабатывать запросы от нашей системы, добавьте следующий скрипт на страницу, где будете принимать платежи от клиентов:
<script type="text/javascript" src="https://payanyway.ru/assistant-builder"></script>
Примечание: Исходники скрипта доступны на Github.
Определим параметры платежа
Теперь на этой же странице нужно подготовить параметры для платёжной формы:
<script type="text/javascript">
let options = {
account: 32691195,
amount: 12.34,
transactionId: '1234567890-abcdef'
};
// ...
</script>
В этом примере параметров всего три, но может быть и больше – вот они все:
- account
- Номер вашего бизнес-счёта.
- amount
- Сумма платежа.
- transactionId
- Номер заказа в магазине.
- operationId
- ID операции в Монете.
- description
- Описание заказа.
- signature
- Подпись запроса.
- subscriberId
- ID клиента в магазине.
- testMode
- Признак тестового платежа.
Значения:
0
– платёж настоящий (по умолчанию)1
– платёж тестовый
- amount
- Язык интерфейса. Значения:
ru
– русский (по умолчанию)en
– английский
- theme
- Цветовая тема интерфейса. Значения:
light
– светлая (по умолчанию)dark
– тёмная
- customParams
- Укажите любые другие параметры, если необходимо. Например:
customParams: { param1: "value1", param2: "value2" }
Все параметры из блока
customParams
будут присутствовать в запросах на Check и Pay URL.
Отрисуем платёжную форму
После того, как все параметры платёжной формы определены – отрисуем её:
let assistant = new Assistant.Builder();
assistant.build(options, 'payment-form');
Обратите внимание на второй параметр в функции build
. Это id
контейнера, в котором будет отрисована платёжная форма. В данном примере нам предварительно нужно было создать следующий html-элемент и разместить его на странице:
<div id="payment-form"></div>
Если не указывать второй параметр в функции build
– платёжная форма будет отрисована в модальном окне поверх всей страницы.
Примечание: Платёжная форма в модальном окне всегда имеет светлую цветовую тему. Наши дизайнеры небезосновательно считают, что так лучше.
Добавим обработчики
И ещё один момент – после успешной оплаты или в случае ошибки (а иногда – во время обработки платежа) бывает необходимо совершить какие-либо действия: уйти на другую страницу и так далее. Для этого можно добавить обработчики:
// платёж прошёл успешно
assistant.setOnSuccessCallback(function(operationId, transactionId) {
// здесь можно сделать что угодно – например,
// перенаправить на другую страницу
location.replace("https://domain.domain");
});
// платёж не прошёл
assistant.setOnFailCallback(function(operationId, transactionId) {
// действия по обработке ошибок
});
// платёж обрабатывается
assistant.setOnInProgressCallback(function(operationId, transactionId) {
// действия по обработке промежуточного статуса операции
});
Здесь:
operationId
– номер операции в МонетеtransactionId
– номер заказа в магазине
Примечание: Если в настройках счёта задан InProgress URL
– переход по нему произойдёт автоматически.
Код целиком
<div id="payment-form"></div>
<script type="text/javascript" src="https://payanyway.ru/assistant-builder"></script>
<script type="text/javascript">
let options = {
account: 32691195,
amount: 12.34,
transactionId: '1234567890-abcdef'
};
let assistant = new Assistant.Builder();
// платёж прошёл успешно
assistant.setOnSuccessCallback(function(operationId, transactionId) {
// здесь можно сделать что угодно – например,
// перенаправить на другую страницу
location.replace("https://domain.domain");
});
// платёж не прошёл
assistant.setOnFailCallback(function(operationId, transactionId) {
// действия по обработке ошибок
});
// платёж обрабатывается
assistant.setOnInProgressCallback(function(operationId, transactionId) {
// действия по обработке промежуточного статуса операции
});
assistant.build(options, 'payment-form');
</script>
Кастомизация формы
Примеры CSS стилей для виджета moneta.ru
html.widget .page-wrapper {
width: 350px !important;
}
html.widget .page-wrapper form input[type="text"],
html.widget .page-wrapper form input[type="password"] {
height: 32px !important;
}
html.widget .page-wrapper dl {
margin-bottom: 0;
}
html.widget #tab-ps-selector {
display: none;
}
html.widget #content {
background: #ccc;
width: 350px !important;
height: 320px !important;
}
html.widget .form-error-wrapper {
position: absolute;
margin-top: 38px !important;
}
#cvc_hint {
display: none;
}
.field-cardHolder {
position: absolute;
margin-top: 125px;
display: none;
}
.field-cardNumber {
margin-top: -10px;
}
.field-cardExpiration {
margin-top: -10px;
}
.field-cardCVV2 {
margin-top: -7px;
margin-right: 0;
}
.field-cardCVV2 dt {
text-align: right;
}
.field-cardCVV2 dd {
float: right;
}
.field-cardCVV2 .form-error-wrapper {
display: none;
}
.field-totalAmount {
position: absolute;
margin-top: 184px;
}
.field-ownerLogin {
position: absolute;
margin-top: 130px;
}
.field-ownerLogin .hint {
display: none;
}
.field-description {
display: none;
}
.h-buttons {
margin-left: 192px;
margin-top: 55px;
position: absolute;
}
.verified-by-systems {
margin-top: 96px !important;
}
html.widget .page-wrapper form select {
padding: 0 4px;
}
.js {
margin: 0 !important;
}
.oauth-splitter {
display: none;
}
.oauth {
display: none;
}
html.widget #tab-ps-selector {
display: none;
}
html.widget #content {
background: #f1f1f5;
}
html.widget .page-wrapper form input[type="text"],
html.widget .page-wrapper form input[type="password"] {
height: 32px !important;
}
html.widget .page-wrapper dl {
margin-bottom: 0;
}
html.widget .form-error-wrapper {
position: absolute;
margin-top: 38px !important;
}
.field-cardHolder {
margin-left: 188px;
width: 324px;
background: #fff;
padding-left: 13px;
padding-top: 10px;
border: 1px solid #00bb00;
border-radius: 4px;
display: none;
}
.field-ownerLogin {
margin-left: 188px;
width: 324px;
background: #fff;
margin-top: 15px;
padding-left: 13px;
padding-top: 10px;
border: 1px solid #00bb00;
border-radius: 4px;
}
.field-cardNumber {
margin-left: 188px;
width: 324px;
background: #fff;
margin-top: 15px;
padding-left: 13px;
padding-top: 10px;
border-top: 1px solid #00bb00;
border-left: 1px solid #00bb00;
border-right: 1px solid #00bb00;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.field-cardExpiration {
margin-left: 188px;
width: 224px !important;
background: #fff;
padding-left: 13px;
border-bottom: 1px solid #00bb00;
border-left: 1px solid #00bb00;
border-bottom-left-radius: 4px;
}
.field-cardCVV2 {
width: 100px;
background: #fff;
border-bottom: 1px solid #00bb00;
border-right: 1px solid #00bb00;
border-bottom-right-radius: 4px;
}
.field-description {
position: absolute;
margin-top: 52px;
width: 161px !important;
text-align: center;
}
.field-description dt {
display: none;
}
.field-description dd {
width: 100%;
height: 103px;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
.field-totalAmount {
position: absolute;
margin-top: 15px;
width: 161px !important;
}
.field-totalAmount dt {
display: none;
}
.field-totalAmount dd {
width: 100%;
text-align: center;
color: #0077cc;
font-size: 23px;
font-weight: bold;
}
.verified-by-systems {
display: none;
}
.h-buttons {
margin-top: -70px;
position: absolute;
}
.h-buttons .form_button {
width: 169px;
height: 50px;
font-size: 18px !important;
color: #fff;
background: #42aaff !important;
}
#additionalParameters_cardNumber {
border-color: #fafafa;
background: #fafafa;
box-shadow: none;
}
#additionalParameters_cardHolder {
border-color: #fafafa;
background: #fafafa;
box-shadow: none;
}
#additionalParameters_cardCVV2 {
border-color: #fafafa;
background: #fafafa;
box-shadow: none;
}
#additionalParameters_ownerLogin {
border-color: #fafafa;
background: #fafafa;
box-shadow: none;
}
#cardExpirationMonth {
background: #fafafa;
box-shadow: none;
}
#cardExpirationYear {
background: #fafafa;
box-shadow: none;
}
#cardtype, .card-type {
margin: -22px -1px;
}
#cvc_hint {
display: none;
}
.oauth-splitter {
display: none;
}
.oauth {
display: none;
}
html.widget #content {
color: #fff;
background: rgba(0, 0, 0, 0) url("https://moneta.ru/info/public/w/partnership/cardbg3.gif") repeat scroll 0 0;
}
html.widget #tab-ps-selector {
display: none;
}
html.widget .verified-by-systems {
display: none;
}
html.widget .page-wrapper form input[type="text"],
html.widget .page-wrapper form input[type="password"] {
color: #000;
height: 32px !important;
}
html.widget form select {
height: 32px !important;
color: #000;
padding: 4px !important;
}
html.widget .tab-container {
padding: 28px 17px;
}
.h-buttons {
position: absolute;
margin-top: 21px;
color: #000;
}
.input-label {
color: #fff;
}
.field-cardHolder {
display: none;
}
.field-ownerLogin {
display: none;
}
.field-description {
display: none;
}
.field-totalAmount {
position: absolute;
font-weight: bold;
margin-left: 113px;
margin-top: 187px;
color: #000;
}
.field-totalAmount .input-label {
display: none;
}
.field-cardCVV2 {
position: absolute;
margin-left: 370px;
margin-top: 52px;
}
.field-cardExpiration dd {
display: flex;
align-items: center;
}
#cvc_hint {
display: none;
}
#additionalParameters_cardNumber {
border: none;
background: none;
box-shadow: none;
}
#additionalParameters_cardHolder {
border: none;
background: none;
box-shadow: none;
}
#additionalParameters_cardCVV2 {
border: none;
background: none;
box-shadow: none;
}
#additionalParameters_ownerLogin {
border: none;
background: none;
box-shadow: none;
}
#cardExpirationMonth {
background: #aae3c9;
box-shadow: none;
margin-right: 5px;
font-size: 15px;
}
#cardExpirationYear {
background: #aae3c9;
box-shadow: none;
margin-left: 5px;
font-size: 15px;
}
#cardtype, .card-type {
margin: 90px 77px;
}
.oauth-splitter {
display: none;
}
.oauth {
display: none;
}
Компактная платёжная форма
Компактная платёжная форма поддерживает приём платежей только с банковских карт.
Цветовые темы
Наша форма имеет две цветовые темы – светлую и тёмную. Подумайте, какая из них будет лучше сочетаться с дизайном вашего сайта:
Определились? Теперь можно приступать к интеграции!
Добавление платёжной формы на сайт магазина
Подсказка: Если вы уже используете интерфейс MONETA.Assistant, то подключение компактной платёжной формы займёт совсем немного времени, если нет – изучите документацию, чтобы реализовать обработчики Check
и Pay URL
.
Подключим скрипт
После того, как ваш магазин готов обрабатывать запросы от нашей системы, добавьте следующий скрипт на страницу, где будете принимать платежи от клиентов:
<script type="text/javascript" src="https://payanyway.ru/assistant-builder"></script>
Подсказка: Исходники скрипта доступны на GitHub.
Определим параметры платежа
Теперь на этой же странице нужно подготовить параметры для платёжной формы:
<script type="text/javascript">
const options = {
account: 32691195,
amount: 12.34,
transactionId: '1234567890-abcdef'
};
// ...
</script>
В этом примере параметров всего три, но может быть и больше – вот они все:
- account
- Номер вашего бизнес-счёта.
- amount
- Сумма платежа.
- transactionId
- Номер заказа в магазине.
- operationId
- ID операции в Монете.
- description
- Описание заказа.
- signature
- Подпись запроса.
- subscriberId
- ID клиента в магазине.
- lang
- Язык интерфейса. Значения:
ru
– русский
en
– английский
- Значение по умолчанию:
ru
. - theme
- Цветовая тема интерфейса. Значения:
light
– светлая,
dark
– тёмная
- Значение по умолчанию:
light
- customParams
- Укажите любые другие параметры, если необходимо. Эти параметры будут присутствовать в запросах на
Check
иPay URL
. Например:
customParams: {
param1: "value1",
param2: "value2"
}
Отрисуем платёжную форму
После того, как все параметры платёжной формы определены – отрисуем её.
const assistant = new Assistant.Builder();
assistant.build(options, 'payment-form');
Обратите внимание на второй параметр в функции build
. Это id
контейнера, в котором будет отрисована платёжная форма. В данном примере нам предварительно нужно было создать следующий html-элемент и разместить его на странице:
<div id="payment-form"></div>
Если не указывать второй параметр в функции build – платёжная форма будет отрисована в модальном окне поверх всей страницы.
Подсказка: Платёжная форма в модальном окне всегда имеет светлую цветовую тему. Наши дизайнеры небезосновательно считают, что так лучше.
Добавим обработчики
И ещё один момент – после успешной оплаты или в случае ошибки (а иногда – во время обработки платежа) бывает необходимо совершить какие-либо действия: уйти на другую страницу и так далее. Для этого можно добавить обработчики:
// платёж прошёл успешно
assistant.setOnSuccessCallback(function(operationId, transactionId) {
// здесь можно сделать что угодно – например,
// перенаправить на другую страницу:
location.replace("https://domain.domain");
});
// платёж не прошёл
assistant.setOnFailCallback(function(operationId, transactionId) {
// действия по обработке ошибок
});
// платёж обрабатывается
assistant.setOnInProgressCallback(function(operationId, transactionId) {
// действия по обработке промежуточного статуса операции
});
Здесь:
operationId
– номер операции в МонетеtransactionId
– номер заказа в магазине
Примечание: Если в настройках счёта задан InProgress URL
– переход по нему произойдёт автоматически.
Код целиком
<div id="payment-form"></div>
<script type="text/javascript" src="https://payanyway.ru/assistant-builder"></script>
<script type="text/javascript">
const options = {
account: 32691195,
amount: 12.34,
transactionId: '1234567890-abcdef'
};
const assistant = new Assistant.Builder();
// платёж прошёл успешно
assistant.setOnSuccessCallback(function(operationId, transactionId) {
// здесь можно сделать что угодно – например,
// перенаправить на другую страницу:
location.replace("https://domain.domain");
});
// платёж не прошёл
assistant.setOnFailCallback(function(operationId, transactionId) {
// действия по обработке ошибок
});
// платёж обрабатывается
assistant.setOnInProgressCallback(function(operationId, transactionId) {
// действия по обработке промежуточного статуса операции
});
assistant.build(options, 'payment-form');
</script>
Новая платёжная форма
Сначала подключите приём платежей по инструкции.
Далее включите новую версию платёжной формы одним из методов ниже.
Через личный кабинет
- Войдите в личный кабинет.
- Перейдите в раздел «Счета» и выберите счёт.
- Зайдите в раздел «Настроить способы оплаты».
- Включите новую версию платёжной формы.
Подсказка: Чтобы вернуться на прежнюю версию платёжной формы, передвиньте переключатель в положение «Выкл».
Внимание! Новая платёжная форма будет включена только для выбранного счёта. Если у вас несколько счетов, подключите форму отдельно для каждого.
Через платёжный запрос
В запросе на оплату нужно передать параметр version=v3
.
Важно! Новая платёжная форма поддерживает оплату:
- российскими банковскими картами
- Системой быстрых платежей (СБП)
- SberPay
В ближайших обновлениях:
- дополнительные методы оплаты
- рекуррентные платежи и сохранение данных карты
- оплата иностранными картами
- кастомизация
Следите за обновлениями в разделе «Сообщения».
Платёжные запросы
В этой главе представлены платежные запросы, которые помогут торговой площадке реализовать безопасную сделку, выплаты на банковские карты, рекуррентные платежи.
Подразделы Платёжные запросы
Приём платежей
Принимать платежи через Монету можно несколькими способами:
- с помощью платёжной формы AssistantAPI (которая соответствует требованиям сертификации PCI DSS):
- напрямую собрав ссылку и перенаправив на неё пользователя
- через отправку HTML-формы
- через MerchantAPI
AssistantAPI (платёжная форма)
Примечание: Подробнее о платёжной форме в протоколе Moneta.AssistantAPI.
Для формирования запроса на оплату для платёжной формы достаточно указать два параметра:
MNT_ID
MNT_AMOUNT
Можно сформировать ссылку вручную и отправить её пользователю для оплаты, либо разместить HTML-форму на своём сайте.
Пример ссылки:
https://moneta.ru/assistant.widget?MNT_ID=НОМЕР_СЧЁТА&MNT_AMOUNT=СУММА_ПЛАТЕЖА
MerchantAPI
Для более гибкой настройки параметров платежа используйте протокол Moneta.MerchantAPI.
- Создайте инвойс с необходимыми параметрами методом
InvoiceRequest
:
- В ответе на создание инвойса в поле
transaction
находится номер созданной операции - перенаправьте покупателя на платёжную форму с помощью ссылки для оплаты указанной операции:
https://moneta.ru/assistant.widget?operationId=НОМЕР_СОЗДАННОЙ_ОПЕРАЦИИ
Уведомление об оплате
После успешного проведения операции Монета отправляет Уведомление об оплате в виде HTTP-запроса методом GET или POST на адрес, указанный в настройках расширенного счёта в поле “Pay URL” в личном кабинете на сайте moneta.ru.
payURL?
MNT_ID=11223344&MNT_TRANSACTION_ID=FF790ABCD&MNT_OPERATION_ID=123456&MNT_AMOUNT=120.25&
MNT_CURRENCY_CODE=RUB&MNT_TEST_MODE=0&MNT_SIGNATURE=69bdf9bd91820b8f7b4c4b25d3d22dfa
Получение уведомления нужно подтвердить ответом.
Ответ может быть в одном из форматов:
- Текстовый формат в кодировке UTF-8. Этот ответ не должен содержать HTML тэги. Возможные значения: SUCCESS, FAIL.
- Ответ в XML формате.
Текстовый ответ:
SUCCESS
Ответ в XML формате:
<?xml version="1.0" encoding="UTF-8"?>
<MNT_RESPONSE>
<MNT_ID>11223344</MNT_ID>
<MNT_TRANSACTION_ID>FF790ABCD</MNT_TRANSACTION_ID>
<MNT_RESULT_CODE>200</MNT_RESULT_CODE>
<MNT_SIGNATURE>29807c8e5d82198b5c4360e6ec711cce</MNT_SIGNATURE>
</MNT_RESPONSE>
MNT_SIGNATURE ответа на уведомление об оплате вычисляется следующим образом:
MNT_SIGNATURE = md5(20054600817FF790ABCDQWERTY)
где QWERTY – код проверки целостности данных.
Операция не будет переведена в статус “Выполнена”, если площадка не отправит ответ на уведомление об оплате, операция останется в статусе “Уведомление не отправлено”.
В течение 24 часов Система “МОНЕТА.РУ” будет направлять повторные уведомления.
Если в течение этого времени ни на одно из уведомлений площадка не ответит, Система “МОНЕТА.РУ” переведет операцию в статус “Выполнена”.
Примечание: Подробно о дополнительных полях в документации MONETA.Assistant
Холдирование
При совершении платежей с холдированием на карте покупателя требуемая сумма сначала резервируется. Далее, нужно либо подтвердить списание, либо отменить - снять холд.
Подсказка: Чтобы при последующих оплатах пользователю не приходилось заново вводить номер и срок действия карты, можно эти данные запомнить.
Холдирование
Примечание: Максимальный срок авторизации денежных средств на банковской карте - 7 дней.
Примечание: Для получения URL-уведомлений о статусах операций с холдированием необходимо заполнить раздел Действия при зачислении/списании денежных средств
. Данный раздел находится в настройках транзитного счёта ТСП.
- Создайте инвойс методом
InvoiceRequest
. При этом передайте в параметреAUTHORIZEONLY
значение"1"
- признак операции холдирования.
Из ответа сохраните номер созданной операции (поле transaction
) - он будет использоваться далее.
- Перенаправьте покупателя на платёжную форму Монеты по ссылке на оплату. Подставьте номер операции с предыдущего шага.
- После ввода реквизитов банковской карты и подтверждения платежа с помощью 3D-Secure покупатель перенаправляется на
InProgressURL
1.
Адрес, указанный в настройках расширенного счёта в ЛК Монеты. ↩︎
- После успешной авторизации средств Монета отправляет URL-уведомление на адрес ТСП1:
Поле
Вызвать URL при авторизации средств
в разделеДействия при зачислении/списании средств
в настройках счёта в ЛК Монеты. ↩︎
- Отметьте операцию на своей стороне активной (готовой к обработке). По активной операции денежные средства авторизованы на банковской карте покупателя.
Используйте ваш номер операции из параметра MNT_OPERATION_ID
1, который вы получили на предыдущем шаге.
Соответствует параметру
operationId
из запроса проведения операции. ↩︎
Подтверждение операции
Подтвердите операцию вручную в ЛК Монеты либо с помощью метода API ConfirmTransactionRequest
:
Вы можете подтвердить операцию на сумму, равную или меньше, указанной при операции холдирования.
После подтверждения операции Монета отправит уведомление о проведённой оплате на PayURL
1.
Адрес обработчика в вашей системе учёта для уведомлений о проведённой оплате. ↩︎
Отмена операции
Отмените операцию вручную в ЛК Монеты либо с помощью метода API CancelTransactionRequest
:
Сохранение карты
Для удобства покупателей ТСП может использовать токен, который позволит покупателю не указывать номер карты при следующих платежах.
Такой токен можно создать двумя способами:
Эти способы взаимоисключающие и возможность их применения зависит от настроек счёта ТСП в ЛК Монеты. По-умолчанию доступен первый способ.
Через PAYMENTTOKEN
В данном сценарии используется атрибут операции PAYMENTTOKEN
запроса оплаты MerchantAPI. Также данный токен можно использовать для проведения рекуррентных платежей.
Привязать карту можно с помощью операции оплаты с последующей отменой - в таком случае средства с карты покупателя не спишутся.
Оплата
- Отправьте запрос на оплату методом
PaymentRequest
. При этом передайте следующие атрибуты операции:
AUTHORIZEONLY
со значением"1"
PAYMENTTOKEN
со значением"request"
CARDNUMBER
с номером карты покупателяCARDEXPIRATION
со сроком действия карты покупателяCARDCVV2
с CVV-кодом карты покупателя
- Из ответа сохраните атрибут
paymenttoken
- этот токен далее можно использовать вместо карточных данных, в том числе для рекуррентных платежей.
Отмена операции
Отмените операцию вручную в ЛК Монеты либо с помощью метода API CancelTransactionRequest
:
Через MNT_SUBSCRIBER_ID
В данном сценарии используется query-параметр MNT_SUBSCRIBER_ID
платёжной формы.
Привязать карту можно с помощью операции холдирования с последующей отменой - в таком случае средства с карты покупателя не спишутся.
Холдирование
Примечание: Максимальный срок авторизации денежных средств на банковской карте - 7 дней.
Примечание: Для получения URL-уведомлений о статусах операций с холдированием необходимо заполнить раздел Действия при зачислении/списании денежных средств
. Данный раздел находится в настройках транзитного счёта ТСП.
- Создайте инвойс методом
InvoiceRequest
. При этом передайте в параметреAUTHORIZEONLY
значение"1"
- признак операции холдирования.
Из ответа сохраните номер созданной операции (поле transaction
) - он будет использоваться далее.
- Перенаправьте покупателя на платёжную форму Монеты по ссылке на оплату. Подставьте номер операции с предыдущего шага и сгенерируйте уникальный идентификатор покупателя.
- После ввода реквизитов банковской карты и подтверждения платежа с помощью 3D-Secure покупатель перенаправляется на
InProgressURL
1.
Адрес, указанный в настройках расширенного счёта в ЛК Монеты. ↩︎
- После успешной авторизации средств Монета отправляет URL-уведомление на адрес ТСП1:
Поле
Вызвать URL при авторизации средств
в разделеДействия при зачислении/списании средств
в настройках счёта в ЛК Монеты. ↩︎
- Отметьте операцию на своей стороне активной (готовой к обработке). По активной операции денежные средства авторизованы на банковской карте покупателя.
Используйте ваш номер операции из параметра MNT_OPERATION_ID
1, который вы получили на предыдущем шаге.
Соответствует параметру
operationId
из запроса проведения операции. ↩︎
Отмена операции
Отмените операцию вручную в ЛК Монеты либо с помощью метода API CancelTransactionRequest
:
Рекуррентные платежи
ТСП может проводить рекуррентные списания с карты покупателей с помощью токена, созданного при привязке карты через PAYMENTTOKEN
.
Оплата
Отправьте запрос на оплату методом PaymentRequest
. При этом в атрибутах операции передайте PAYMENTTOKEN
со значением созданного ранее рекуррентного токена. Карточные данные передавать не нужно.
СБП
Информационный поток «Получение списка участников СБП» в документации рассмотрен отдельно, т.к. он используется в разных направлениях СБП.
Для работы с продуктовой средой используйте URL:
- Service URL: https://service.moneta.ru/services - Service URL (x509): https://service.moneta.ru:8443/services/x509
Для работы с demo.moneta.ru используйте URL: https://demo.moneta.ru/services
При вызове методов указывайте:
- HTTP method: POST
- Content-type: application/json;charset=UTF-8
Описание используемых в настоящем документе объектов можно найти:
Подразделы СБП
Описание полей для переводов СБП
Получение списка банков-участников
- SECUREDFIELD:idBp_24
- Список уникальных идентификатор банков-участников переводов СБП. Только для протокола C2C Push: если клиент-Получатель установил «банк по умолчанию», в ответе такой банк будет с пометкой «по умолчанию».
- SECUREDFIELD:scenarios
- Сценарий протокола СБП, по которому проводится операция. В ответе возвращается список банков-участников, которые поддерживают данный сценарий. Если в запросе нет этого параметра, то возвращается список банков-участников для сценария C2CPush. Возможные значения параметра: C2CPush, Me2MePush, C2BQRD, C2BQRS, C2BMcom, C2BRfnd, B2COther, Me2MePull. Описание сценариев можно найти в разделе «Система быстрых платежей».
C2C/B2C
- SECUREDFIELD:payment_stage
- Поле означает шаг выполнения оплаты и должно быть в каждом запросе GetNextStep.SECUREDFIELD:payment_stage в ответах на запросы указывает следующий шаг.
- SECUREDFIELD:minTime** и SECUREDFIELD:expirationTime
- Поля показывают минимальное и максимальное время отправки следующего запроса, должны быть в каждом ответе на запрос GetNextStep. Если время следующего запроса выйдет из указанного интервала, вернется соответствующая ошибка.
- SECUREDFIELD:sourceAmount
- Сумма, которая списывается со счёта плательщика.
- SECUREDFIELD:SOURCETARIFFMULTIPLIER
- Управляемый размер комиссии; значение размера комиссии, которым может управлять инициатор отправляемого запроса на перевод.
- providerId
- Идентификатор провайдера в Cистеме МОНЕТА.РУ.
- CUSTOMFIELD:idPo_20
- Номер мобильного телефона получателя платежа.
Формат поля для сценария B2C «Прочие выплаты физическому лицу»: в этом сценарии используются только российские номера мобильных телефонов. Номер мобильного телефона длиной от 11 до 12 символов; код страны может указываться как +7, 7, 8. Пример: +7 911 111 11 11; 7 911 111 11 11; 8 911 111 11 11.
Формат поля для сценария c2cpush/me2mepush и me2mepull: в указанных сценариях могут использоваться российские и нероссийские номера мобильных телефонов.
Для российских номеров телефонов: номер мобильного телефона длиной от 11 до 12 символов; код страны может указываться как +7, 7, 8.
Пример: +7 911 111 11 11; 7 911 111 11 11; 8 911 111 11 11.
Для нероссийских номеров телефонов: номер мобильного телефона начинается с префикса «+» и имеет длину от 11 до 16 символов.
Примеры нероссийских номеров телефонов: +37410111111 (Армения), +998111111111 (Узбекистан).
- SECUREDFIELD:idBp_24
- Список уникальных идентификатор банков-участников переводов СБП; если клиент-Получатель установил «банк по умолчанию», в ответе такой банк будет с пометкой «по умолчанию».
- Банк по умолчанию
- Это банк, на который по умолчанию зачислятся денежные средства при переводе СБП (C2C). Устанавливается в ДБО Банка Получателя клиентом-физическим лицом. Это необязательная опция, такой банк может быть не установлен. Содержится в составе поля CUSTOMFIELD:idBp_24_name.
- CUSTOMFIELD:pamPo_74
- PAM-фраза, т.е. ФИО получателя перевода. Данное поле помечено required=“false”, т.к. не используется в запросах на перевод СБП (C2C/B2C), но позволяет убедиться в правильности перевода.
- CUSTOMFIELD:ioOpkcSbp_27
- Идентификатор (номер) операции на стороне АО «НСПК».
- SECUREDFIELD:sumOpSbp_44
- Сумма, которая зачисляется на счет получателя.
- SECUREDFIELD:nbsOt_30
- 8-значный номер счёта в Системе МОНЕТА.РУ, с которого нужно отправить перевод СБП.
- SECUREDFIELD:unsBo_79
- Уникальный идентификатор или номер сообщения, сгенерированный Банком Отправителем НКО «МОНЕТА» (ООО).
- SECUREDFIELD:np_32
- Назначение перевода; не обязательно для передачи в запросе. В случае присутствия должно соответствовать паттерну ^[A-zА-яЁё0-9\u0020-\u002f\u003a-\u0040\u005b-\u0060\u007b-\u007e\u2116]{1,140}$ (от 1 до 140 символов)
- SECUREDFIELD:SBPBANKID
- Id банка, из которого планируется перевести деньги в сценарии Me2Me Pull.
- Payer
- Номер счёта плательщика в системе Монета.ру, с которого выполняется перевод. Для СБП этот параметр всегда будет равен 364. Поле является обязательным.
- Payee
- Номер счёта получателя в Системе МОНЕТА.РУ.
Внимание! SOAP и JSON поля, помеченные required=“true”, понадобятся для выполнения переводов СБП (C2C/B2C). Такие поля нужно передавать в запросах на перевод СБП (C2C/B2C) на следующем шаге выполнения оплаты.
C2B
- Qrlink
- Ссылка на графическое отображение QR.
- Qrpayload или payload
- Payload QR-кода — это URL/платежная ссылка с параметрами. Если разместить его в мобильном приложении или мобильной версии сайта, то при нажатии откроется установленное на телефоне приложение банка-участника СБП C2B с возможностью оплаты. QR-payload — это строка вида с необходимой для платежа информацией: https://qr.nspk.ru/AS10003P3RH0LJ2A9ROO038L6NT5RU1M?type=02&bank=100000000112&sum=1021&cur=RUB&crc=F3D0
- Externaltransaction
- Идентификатор динамического QR-кода.
- SECUREDFIELD:qr
- В этом поле передается QR-payload.
- SECUREDFIELD:operationId2Refund
- Операция возврата платежа по QR.
- CUSTOMFIELD:QRTTL
- Период в минутах, в течение которого будет возможна оплата по платёжной ссылке (QR-коду).
- accountId
- Идентификатор счета Получателя/ТСП в Системе МОНЕТА.РУ.
- qrcId
- Идентификатор QR-кода/Кассовой ссылки.
- sbp
- Варианты возможного действия с многоразовой ссылкой СБП (статического QR и Кассовой ссылки). Допустимые значения: cashLinkList - получение списка зарегистрированных Кассовых ссылок; cashLinkUpdate - редактирование описания Кассовой ссылки; cashLinkRegistration - регистрация Кассовой ссылки; staticQrRegistration - регистрация статического QR (QRS); qrInfo - получение информации по идентификатору многоразового QR (qrcId).
- STATISQRCID
- Уникальный идентификатор многоразовой ссылки или QR (Кассовая ссылка или статический QR).
- imageLink
- Ссылка на графическое представление QR-кода. Ширину и высоту изображения можно регулировать параметрами height и width в диапазоне от 100px до 1000px. Стандартная ширина и высота картинки QR-кода равна 300px.
- clientId
- Идентификатор/описание Кассовой ссылки, задается Получателем/ТСП. В пределах одного счета это значение уникально. Максимальное количество символов 140.
- brandName
- Торговое наименование Получателя/ТСП.
- scenario
- Тип сценария ссылки СБП. Допустимые значения: C2B – одноразовая или многоразовая платежная ссылка СБП с фиксированной суммой. C2B_CASH_REGISTER – Кассовая платежная ссылка СБП. C2B_OPEN_SUM – многоразовая платежная ссылка СБП с открытой суммой (статический QR).
- type
- Тип функциональной ссылки СБП. Допустимые значения: 01 - QR-Static (многоразовая платежная ссылка СБП). Может использоваться для выполнения множества Операций СБП C2B. 02 - QR-Dynamic (одноразовая платежная ссылка СБП). Предназначена для выполнения единичного перевода СБП C2B. 03 - QR-Subscription (информационная ссылка СБП для привязки счета Плательщика).
- redirectUrl
- Необязательный параметр, содержит ссылку для возврата Плательщика из приложения Банка Плательщика в приложение или на сайт Получателя/ТСП. При работе с динамическим QR или Кассовой ссылкой Плательщик перенаправляется в зависимости от статуса операции на SUCCESSURL, FAILURL, RETURNURL, INPROGRESSURL (если Получатель не использует собственные url, то применяются стандартные url в Системе МОНЕТА.РУ). При работе со статическим QR Плательщик перенаправляется на главную страницу сайта или приложения Получателя/ТСП, если redirectUrl не указан при запросе на регистрацию статического QR по API.
Получение списка участников СБП
Список банков-участников СБП — это перечень банков, участвующих в переводах через СБП.
Список банков-участников СБП может отличаться в зависимости от сценариев СБП: например, самый обширный список банков можно получить при работе со сценариями C2C/Me2Me Push.
Особенности запроса списка банков-участников для сценариев C2C/Me2Me Push:
- наличие параметра «банк по умолчанию», подробнее про «банк по умолчанию» в разделе «Описание полей для переводов СБП»;
- запрос списка банков-участников с параметром «банк по умолчанию» проходит в два этапа (SECUREDFIELD:PAYMENT_STAGE=1 И 2).
- запрос списка банков-участников нужно выполнять для каждого перевода C2C/Me2Me Push (для сценариев B2COther, Me2MePull - достаточно выполнять 1 раз в сутки, рекомендуем в начале каждых суток, т.е. после 00:00 часов).
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
Пример запроса списка банков-участников и «банка по умолчанию» (для сценариев C2C/Me2Me Push)
Шаг 1. Передать номер телефона клиента-получателя перевода
На этом этапе передаются номера счёта списания и мобильного телефона, по которому будут переведены средства через СБП.
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>354</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>1</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>CUSTOMFIELD:idPo_20</ns11:name>
<ns11:value>79000000000</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:nbsOt_30</ns11:name>
<ns11:value>11111111</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>354</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="241" maxlength="120" orderBy="2" pattern="^.+$" readonly="false"
required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idBp_24_name</ns2:attribute-name>
<ns2:label>Банк получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="20" maxlength="12" orderBy="0" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:value>79000000000</ns2:value>
<ns2:label>Телефон получателя</ns2:label>
<ns2:comment>Введите номер телефона получателя</ns2:comment>
<ns2:dependency>{79}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-04-20T20:04:03.815Z</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false"
temporary="true" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-04-20T20:07:00.815Z</ns2:value>
<ns2:label>Время истечения ожидания следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>2</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="false"
temporary="false" type="ENUM">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="128" orderBy="5" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>ФИО получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="27" maxlength="32" orderBy="6" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:ioOpkcSbp_27</ns2:attribute-name>
<ns2:label>Номер операции СБП</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:label>Сумма операции</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="30" maxlength="10" orderBy="3" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200420100006166507724683403</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "Username",
"Password": "Password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "354",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:payment_stage",
"value": "1"
},
{
"name": "CUSTOMFIELD:idPo_20",
"value": "79000000000"
},
{
"name": "SECUREDFIELD:nbsOt_30",
"value": "11111111"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"GetNextStepResponse": {
"providerId": "354",
"nextStep": "PRE",
"fields": {
"field": [
{
"temporary": false,
"hidden": false,
"maxlength": 120,
"attribute-name": "CUSTOMFIELD:idBp_24_name",
"pattern": "^.+$",
"orderBy": 2,
"label": "Банк получателя",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 241
},
{
"temporary": false,
"hidden": true,
"dependency": "{79}==\"\"",
"maxlength": 12,
"attribute-name": "CUSTOMFIELD:idPo_20",
"orderBy": 0,
"label": "Телефон получателя",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "Введите номер телефона получателя",
"id": 20,
"value": "79000000000"
},
{
"temporary": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:minTime",
"orderBy": 7,
"label": "Минимальное время следующего шага.",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 996,
"value": "2020-05-07T12:01:24.057Z"
},
{
"temporary": true,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:expirationTime",
"orderBy": 8,
"label": "Время истечения ожидания следующего шага.",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 997,
"value": "2020-05-07T12:04:21.057Z"
},
{
"temporary": false,
"hidden": false,
"maxlength": 1,
"attribute-name": "SECUREDFIELD:payment_stage",
"orderBy": 9,
"label": "Стадия выполнения оплаты",
"type": "TEXT",
"steps": [
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 998,
"value": "2"
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 12,
"attribute-name": "SECUREDFIELD:idBp_24",
"orderBy": 2,
"comment": "",
"label": "Идентификатор банка получателя",
"id": 24,
"type": "ENUM",
"steps": [
"PRE"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 128,
"attribute-name": "CUSTOMFIELD:pamPo_74",
"orderBy": 5,
"comment": "",
"label": "ФИО получателя",
"id": 74,
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "CUSTOMFIELD:ioOpkcSbp_27",
"orderBy": 6,
"comment": "",
"label": "Номер операции СБП",
"id": 27,
"type": "TEXT",
"steps": [
"PRE"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 9,
"attribute-name": "SECUREDFIELD:sumOpSbp_44",
"orderBy": 4,
"comment": "",
"label": "Сумма операции",
"id": 44,
"type": "TEXT",
"steps": [
"PRE"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 10,
"attribute-name": "SECUREDFIELD:nbsOt_30",
"orderBy": 3,
"comment": "",
"label": "Номер Счета Отправителя",
"id": 30,
"type": "TEXT",
"steps": [
"PRE"
],
"required": false
},
{
"temporary": false,
"hidden": true,
"maxlength": 29,
"attribute-name": "SECUREDFIELD:unsBo_79",
"orderBy": 1,
"label": "Уникальный Номер Сообщения от Банка Отправителя",
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": true,
"readonly": false,
"comment": "",
"id": 79,
"value": "20200420100006166507724683403"
}
]
}
}
}
}
}
Шаг 2. Получить список всех банков-участников СБП и «банк по умолчанию»
Здесь нужно получить список банков-участников СБП, между счетами которых возможны денежные переводы по сценарию C2C/Me2Me Push, и банк по умолчанию, если такой был установлен физическим лицом-держателем приложения ДБО.
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>354</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>2</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:unsBo_79</ns11:name>
<ns11:value>20200420100006166507724683403</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>354</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="241" maxlength="120" orderBy="2" pattern="^.+$" readonly="false"
required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idBp_24_name</ns2:attribute-name>
<ns2:label>Банк получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="20" maxlength="12" orderBy="0" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:label>Телефон получателя</ns2:label>
<ns2:comment>Введите номер телефона получателя</ns2:comment>
<ns2:dependency>{79}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-04-20T17:04:01.178Z</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false"
temporary="true" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-04-20T17:07:01.178Z</ns2:value>
<ns2:label>Время истечения ожидания следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>3</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="true"
temporary="false" type="ENUM">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
<ns2:enum>
<ns2:item id="1crt88888882">MKB Банк (по умолчанию)</ns2:item>
<ns2:item id="100000000081">АКБ Форштадт</ns2:item>
<ns2:item id="600000000022">АКБ Форштадт</ns2:item>
...
<ns2:item id="1crt88888881">ПИР Банк</ns2:item>
<ns2:item id="100000000022">ЯНДЕКС.ДЕНЬГИ</ns2:item>
</ns2:enum>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="128" orderBy="5" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>ФИО получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="27" maxlength="32" orderBy="6" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:ioOpkcSbp_27</ns2:attribute-name>
<ns2:label>Номер операции СБП</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:label>Сумма операции</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="30" maxlength="10" orderBy="3" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="32" maxlength="140" orderBy="3" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name> SECUREDFIELD:np_32</ns2:attribute-name>
<ns2:label>Назначение платежа</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200420100006166507724683403</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "Username",
"Password": "Password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "354",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:payment_stage",
"value": "2"
},
{
"name": "SECUREDFIELD:unsBo_79",
"value": "20200420100006166507724683403"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"GetNextStepResponse": {
"providerId": "354",
"nextStep": "PRE",
"fields": {
"field": [
{
"temporary": false,
"hidden": false,
"maxlength": 120,
"attribute-name": "CUSTOMFIELD:idBp_24_name",
"pattern": "^.+$",
"orderBy": 2,
"label": "Банк получателя",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 241
},
{
"temporary": false,
"hidden": true,
"dependency": "{79}==\"\"",
"maxlength": 12,
"attribute-name": "CUSTOMFIELD:idPo_20",
"orderBy": 0,
"label": "Телефон получателя",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "Введите номер телефона получателя",
"id": 20
},
{
"temporary": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:minTime",
"orderBy": 7,
"label": "Минимальное время следующего шага.",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 996,
"value": "2020-05-07T09:01:21.060Z"
},
{
"temporary": true,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:expirationTime",
"orderBy": 8,
"label": "Время истечения ожидания следующего шага.",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 997,
"value": "2020-05-07T09:04:21.060Z"
},
{
"temporary": false,
"hidden": false,
"maxlength": 1,
"attribute-name": "SECUREDFIELD:payment_stage",
"orderBy": 9,
"label": "Стадия выполнения оплаты",
"type": "TEXT",
"steps": [
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 998,
"value": "3"
},
{
"temporary": false,
"hidden": false,
"maxlength": 12,
"attribute-name": "SECUREDFIELD:idBp_24",
"orderBy": 2,
"label": "Идентификатор банка получателя",
"type": "ENUM",
"steps": [
"PRE"
],
"enum": {
"item": [
{
"id": "1crt88888882",
"value": "MKB Банк (по умолчанию)"
},
…
{
"id": "100000000022",
"value": "ЯНДЕКС.ДЕНЬГИ"
}
]
},
"required": true,
"readonly": false,
"comment": "",
"id": 24
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 128,
"attribute-name": "CUSTOMFIELD:pamPo_74",
"orderBy": 5,
"comment": "",
"label": "ФИО получателя",
"id": 74,
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "CUSTOMFIELD:ioOpkcSbp_27",
"orderBy": 6,
"comment": "",
"label": "Номер операции СБП",
"id": 27,
"type": "TEXT",
"steps": [
"PRE"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 9,
"attribute-name": "SECUREDFIELD:sumOpSbp_44",
"orderBy": 4,
"comment": "",
"label": "Сумма операции",
"id": 44,
"type": "TEXT",
"steps": [
"PRE"
],
"required": true
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 10,
"attribute-name": "SECUREDFIELD:nbsOt_30",
"orderBy": 3,
"comment": "",
"label": "Номер Счета Отправителя",
"id": 30,
"type": "TEXT",
"steps": [
"PRE"
],
"required": false
},
{
"temporary": false,
"hidden": true,
"maxlength": 29,
"attribute-name": "SECUREDFIELD:unsBo_79",
"orderBy": 1,
"label": "Уникальный Номер Сообщения от Банка Отправителя",
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": true,
"readonly": false,
"comment": "",
"id": 79,
"value": "20200420100006166507724683403"
}
]
}
}
}
}
}
Для получения списка банков-участников в зависимости от сценария нужно:
- сразу перейти к выполнению второго шага (SECUREDFIELD:PAYMENT_STAGE=2), т.е. запрос списка банков-участников происходит в один шаг;
- передать значение атрибута unsBo_79=0;
- указать сценарий оплаты в поле
SECUREDFIELD:scenarios
. Возможные значения параметра:C2CPush
C2BQRD
C2BQRS
C2BRfnd
B2COther
Me2MePull
Описание указано в разделе «Введение». Если пропустить параметр SECUREDFIELD:scenarios
, возвращается список для сценария C2CPush.
Внимание! При запросе списка банков-участников в один шаг не возвращается «банк по умолчанию».
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>374.2</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>2</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:unsBo_79</ns11:name>
<ns11:value>0</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:scenarios</ns11:name>
<ns11:value>Me2MePull</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>374.2</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="32" maxlength="140" orderBy="6" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:np_32</ns2:attribute-name>
<ns2:label>Назначение Платежа</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="994" maxlength="12" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:scenarios</ns2:attribute-name>
<ns2:value>.Me2MePull</ns2:value>
<ns2:label>Сценарий участника СБП</ns2:label>
<ns2:dependency>{998}=="2"</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="995" maxlength="9" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sourceAmount</ns2:attribute-name>
<ns2:label>Сумма списания с исходного счета на шаге 5</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:label>Минимальное время следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:label>Время истечения ожидания следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>2</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="128" orderBy="5" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:steps>PAY</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>ФИО получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:label>Сумма операции</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:steps>PAY</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>0</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="241" maxlength="120" orderBy="2" pattern="^.+$" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idBp_24_name</ns2:attribute-name>
<ns2:label>Банк получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="20" maxlength="12" orderBy="0" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:label>Телефон получателя</ns2:label>
<ns2:comment>Введите номер телефона получателя</ns2:comment>
<ns2:dependency>{79}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="false" temporary="false" type="ENUM">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
<ns2:enum>
<ns2:item id="100000000004">Тинькофф Банк</ns2:item>
</ns2:enum>
</ns2:field>
<ns2:field hidden="false" id="27" maxlength="32" orderBy="6" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:ioOpkcSbp_27</ns2:attribute-name>
<ns2:label>Номер операции СБП</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="30" maxlength="10" orderBy="3" pattern="^(\d*)$" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
<ns2:dependency>{79}==""</ns2:dependency>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "Username",
"Password": "Password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "374.2",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:payment_stage",
"value": "2"
},
{
"name": "SECUREDFIELD:unsBo_79",
"value": "0"
},
{
"name": "SECUREDFIELD:scenarios",
"value": "Me2MePull"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"GetNextStepResponse": {
"providerId": "374.2",
"nextStep": "PRE",
"fields": {
"field": [
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 140,
"attribute-name": "SECUREDFIELD:np_32",
"orderBy": 6,
"comment": "",
"label": "Назначение Платежа",
"id": 32,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"hidden": false,
"dependency": "{998}==\"2\"",
"maxlength": 12,
"attribute-name": "SECUREDFIELD:scenarios",
"orderBy": 7,
"label": "Сценарий участника СБП",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "",
"id": 994,
"value": "Me2MePull"
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 9,
"attribute-name": "SECUREDFIELD:sourceAmount",
"orderBy": 7,
"comment": "",
"label": "Сумма списания с исходного счета на шаге 5",
"id": 995,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:minTime",
"orderBy": 7,
"comment": "",
"label": "Минимальное время следующего шага",
"id": 996,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:expirationTime",
"orderBy": 8,
"comment": "",
"label": "Время истечения ожидания следующего шага",
"id": 997,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"hidden": false,
"maxlength": 1,
"attribute-name": "SECUREDFIELD:payment_stage",
"orderBy": 9,
"label": "Стадия выполнения оплаты",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "",
"id": 998,
"value": "2"
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 128,
"attribute-name": "CUSTOMFIELD:pamPo_74",
"orderBy": 5,
"comment": "",
"label": "ФИО получателя",
"id": 74,
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 9,
"attribute-name": "SECUREDFIELD:sumOpSbp_44",
"orderBy": 4,
"comment": "",
"label": "Сумма операции",
"id": 44,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"hidden": true,
"maxlength": 29,
"attribute-name": "SECUREDFIELD:unsBo_79",
"orderBy": 1,
"label": "Уникальный Номер Сообщения от Банка Отправителя",
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": false,
"readonly": false,
"comment": "",
"id": 79,
"value": "0"
},
{
"temporary": false,
"hidden": false,
"maxlength": 120,
"attribute-name": "CUSTOMFIELD:idBp_24_name",
"pattern": "^.+$",
"orderBy": 2,
"label": "Банк получателя",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "",
"id": 241
},
{
"temporary": false,
"hidden": true,
"dependency": "{79}==\"\"",
"maxlength": 12,
"attribute-name": "CUSTOMFIELD:idPo_20",
"orderBy": 0,
"label": "Телефон получателя",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "Введите номер телефона получателя",
"id": 20
},
{
"temporary": false,
"hidden": false,
"maxlength": 12,
"attribute-name": "SECUREDFIELD:idBp_24",
"orderBy": 2,
"label": "Идентификатор банка получателя",
"type": "ENUM",
"steps": ["PRE"],
"enum": {
"item": [
{
"id": "100000000004",
"value": "Тинькофф Банк"
}
]
},
"required": false,
"readonly": false,
"comment": "",
"id": 24
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "CUSTOMFIELD:ioOpkcSbp_27",
"orderBy": 6,
"comment": "",
"label": "Номер операции СБП",
"id": 27,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"hidden": true,
"dependency": "{79}==\"\"",
"maxlength": 10,
"attribute-name": "SECUREDFIELD:nbsOt_30",
"pattern": "^(\\d*)$",
"orderBy": 3,
"label": "Номер Счета Отправителя",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "",
"id": 30
}
]
}
}
}
}
}
Протокол С2С. Сценарий C2C/Me2Me Push
Денежные переводы для физических лиц через СБП (C2C) — это переводы по номеру телефона между счетами клиентов в разных банках.
Далее описан процесс денежных переводов через Систему быстрых платежей (СБП) с электронного кошелька «МОНЕТА.РУ» на счёт любого банка-участника СБП по номеру телефона с помощью запросов GetNextStepRequest
и PaymentRequest
.
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
Шаг 1. Передать номер телефона клиента-получателя перевода
Смотри шаг 1 в разделе «Получение списка участников СБП»
Шаг 2. Получить список всех банков-участников СБП и «банк по умолчанию»
Смотри шаг 2 в разделе «Получение списка участников СБП»
Шаг 3 (С2С Push). Запросить PAM-фразу (ФИО) Получателя перевода
На этом шаге требуется запросить PAM-фразу (ФИО) Получателя перевода, дополнительно передать идентификатор Id Банка Получателя из SECUREDFIELD:idBp_24, сумму перевода и назначение платежа (если необходимо).
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>354</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>3</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:unsBo_79</ns11:name>
<ns11:value>20200420100006166507724683403</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:sumOpSbp_44</ns11:name>
<ns11:value>10.12</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:idBp_24</ns11:name>
<ns11:value>100000000061</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:np_32</ns11:name>
<ns11:value>DESC_TIV53_1587204346866_20200420100006166507724683403</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>354</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="241" maxlength="120" orderBy="2" pattern="^.+$" readonly="false"
required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idBp_24_name</ns2:attribute-name>
<ns2:label>Банк получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="20" maxlength="12" orderBy="0" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:label>Телефон получателя</ns2:label>
<ns2:comment>Введите номер телефона получателя</ns2:comment>
<ns2:dependency>{79}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="995" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sourceAmount </ns2:attribute-name>
<ns2:value>10.33</ns2:value>
<ns2:label>Сумма списания с исходного счета на шаге 5ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-04-20T20:04:37.037Z</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false"
temporary="true" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-04-20T20:07:31.037Z</ns2:value>
<ns2:label>Время истечения ожидания следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>4</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="false"
temporary="false" type="ENUM">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:value>100000000061</ns2:value>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="128" orderBy="5" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>ФИО получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="27" maxlength="32" orderBy="6" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:ioOpkcSbp_27</ns2:attribute-name>
<ns2:label>Номер операции СБП</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:value>10.12</ns2:value>
<ns2:label>Сумма операции</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="30" maxlength="10" orderBy="3" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200420100006166507724683403</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "Username",
"Password": "Password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "354",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:payment_stage",
"value": "3"
},
{
"name": "SECUREDFIELD:unsBo_79",
"value": "20200420100006166507724683403"
},
{
"name": "SECUREDFIELD:sumOpSbp_44",
"value": "10.12"
},
{
"name": "SECUREDFIELD:idBp_24",
"value": "100000000061"
},
{
"name": "SECUREDFIELD:np_32",
"value": "DESC_TIV53_1587204346866_20200420100006166507724683403"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"GetNextStepResponse": {
"providerId": "354",
"nextStep": "PRE",
"fields": {
"field": [
{
"temporary": false,
"hidden": false,
"maxlength": 120,
"attribute-name": "CUSTOMFIELD:idBp_24_name",
"pattern": "^.+$",
"orderBy": 2,
"label": "Банк получателя",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 241
},
{
"temporary": false,
"hidden": true,
"dependency": "{79}==\"\"",
"maxlength": 12,
"attribute-name": "CUSTOMFIELD:idPo_20",
"orderBy": 0,
"label": "Телефон получателя",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "Введите номер телефона получателя",
"id": 20
},
{
"temporary": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:sourceAmount",
"orderBy": 7,
"label": "Сумма списания с исходного счета на шаге 5",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 995,
"value": "10.33"
},
{
"temporary": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:minTime",
"orderBy": 7,
"label": "Минимальное время следующего шага.",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 996,
"value": "2020-05-07T12:01:55.770Z"
},
{
"temporary": true,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:expirationTime",
"orderBy": 8,
"label": "Время истечения ожидания следующего шага.",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 997,
"value": "2020-05-07T12:04:49.770Z"
},
{
"temporary": false,
"hidden": false,
"maxlength": 1,
"attribute-name": "SECUREDFIELD:payment_stage",
"orderBy": 9,
"label": "Стадия выполнения оплаты",
"type": "TEXT",
"steps": [
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 998,
"value": "4"
},
{
"temporary": false,
"hidden": false,
"maxlength": 12,
"attribute-name": "SECUREDFIELD:idBp_24",
"orderBy": 2,
"label": "Идентификатор банка получателя",
"type": "ENUM",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 24,
"value": "100000000061"
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 128,
"attribute-name": "CUSTOMFIELD:pamPo_74",
"orderBy": 5,
"comment": "",
"label": "ФИО получателя",
"id": 74,
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "CUSTOMFIELD:ioOpkcSbp_27",
"orderBy": 6,
"comment": "",
"label": "Номер операции СБП",
"id": 27,
"type": "TEXT",
"steps": [
"PRE"
],
"required": false
},
{
"temporary": false,
"hidden": false,
"maxlength": 9,
"attribute-name": "SECUREDFIELD:sumOpSbp_44",
"orderBy": 4,
"label": "Сумма операции",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 44,
"value": "10.12"
},
{
"temporary": false,
"hidden": false,
"maxlength": 10,
"attribute-name": "SECUREDFIELD:nbsOt_30",
"orderBy": 3,
"label": "Номер Счета Отправителя",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 30,
"value": "11111111"
},
{
"temporary": false,
"hidden": true,
"maxlength": 29,
"attribute-name": "SECUREDFIELD:unsBo_79",
"orderBy": 1,
"label": "Уникальный Номер Сообщения от Банка Отправителя",
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": true,
"readonly": false,
"comment": "",
"id": 79,
"value": "20200420100006166507724683403"
}
]
}
}
}
}
}
Шаг 4 (С2С Push). Отобразить PAM-фразу (ФИО) Получателя перевода
На этом шаге нужно:
- получить PAM-фразу (ФИО) Получателя перевода для отображения пользователю;
- установить для пользователя ограничение по времени завершения перевода, которое указано в полях 996 и 997 ответа на запрос. Если перевод не завершён в указанное время — пользователю требуется отобразить в интерфейсе ошибку «Превышено время ожидания, повторите операцию» и позволить перейти на первую, стартовую, форму перевода СБП.
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>354</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:unsBo_79</ns11:name>
<ns11:value>20200420100006166507724683403</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>4</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>354</ns2:providerId>
<ns2:nextStep>PAY</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="74" maxlength="128" orderBy="5" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:value>Иван Иванович И</ns2:value>
<ns2:label>ФИО получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200420100006166507724683403</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-04-20T20:04:37.037+03:00</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false"
temporary="true" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-04-20T20:07:31.037+03:00</ns2:value>
<ns2:label>Время истечения ожидания следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"GetNextStepRequest":{
"providerId":"354",
"fieldsInfo":{
"attribute":[
{
"name":"SECUREDFIELD:payment_stage",
"value":"4"
},
{
"name":"SECUREDFIELD:unsBo_79",
"value":"20200420100006166507724683403"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"GetNextStepResponse":{
"providerId":"354",
"nextStep":"PAY",
"fields":{
"field":[
{
"temporary":false,
"hidden":false,
"maxlength":128,
"attribute-name":"CUSTOMFIELD:pamPo_74",
"orderBy":5,
"label":"ФИО получателя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":false,
"readonly":false,
"comment":"",
"id":74,
"value":"Иван Иванович И"
},
{
"temporary":false,
"hidden":false,
"maxlength":29,
"attribute-name":"SECUREDFIELD:unsBo_79",
"orderBy":1,
"label":"уникальный номер сообщения от банка отправителя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":true,
"readonly":false,
"comment":"",
"id":79,
"value":"20200420100006166507724683403"
},
{
"temporary":false,
"hidden":false,
"maxlength":32,
"attribute-name":"SECUREDFIELD:minTime",
"orderby":7,
"label":"Минимальное время следующего шага.",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":996,
"value":"2020-05-07t12:01:55.770+03:00"
},
{
"temporary":true,
"hidden":false,
"maxlength":32,
"attribute-name":"SECUREDFIELD:expirationTime",
"orderBy":8,
"label":"Время истечения ожидания следующего шага.",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":997,
"value":"2020-05-07t12:04:49.770+03:00"
}
]
}
}
}
}
}
Шаг 5 (C2C Push). Выполнение перевода СБП (C2C Push)
На этом шаге выполняется перевод СБП (C2C) с использованием метода PaymentRequest: после выполнения запроса операция в течение 10 секунд должна перейти в финальный статус.
Внимание! Ограничения:
- значение description должно либо соответствовать значению SECUREDFIELD:np_32 шага 3, либо отсутствовать (при этом будет присвоено из шага 3);
- значение amount в PaymentRequest должно совпадать с SECUREDFIELD:sumOpSbp_44;
- рекомендуется использовать значение параметра isPayerAmount=false, при этом сумма amount соответствует переданной в параметре SECUREDFIELD:sumOpSbp_44 на шаге 3. Если значение isPayerAmount=true, то передаётся сумма из ответа, полученного на шаге 3 поля SECUREDFIELD:sourceAmount
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentRequest xmlns:ns2="http://moneta.ru/schemas/messages.xsd" >
<ns2:payer>11111111</ns2:payer>
<ns2:payee>354</ns2:payee>
<ns2:amount>10.12</ns2:amount>
<ns2:isPayerAmount>false</ns2:isPayerAmount>
<ns2:paymentPassword>827ccb0e********91f84e7b</ns2:paymentPassword>
<ns2:clientTransaction>request_20200420100006166507724683403</ns2:clientTransaction>
<ns2:description>DESC_TIV53_1587204346866_20200420100006166507724683403</ns2:description>
<ns2:operationInfo>
<ns2:attribute>
<ns2:key>SECUREDFIELD:unsBo_79</ns2:key>
<ns2:value>20200420100006166507724683403</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:PaymentRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:id>1001312116</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>DESC_TIV53_1587204346866_20200420100006166507724683403</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>4</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>-10.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>Система Быстрых Платежей (СБП)</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>request_20200420100006166507724683403</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamountfee</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetamount</ns2:key>
<ns2:value>10.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>INPROGRESS</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targettransaction</ns2:key>
<ns2:value>A0111180304839010000043EE68465BB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2020-04-20T21:03:49.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>354</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>WITHDRAWAL</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>-10.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>-10.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>11111111</ns2:value>
</ns2:attribute>
</ns2:PaymentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "Username",
"Password": "Password"
}
}
},
"Body": {
"PaymentRequest": {
"payer": "11111111",
"payee": "354",
"amount": "10.12",
"isPayerAmount": "false",
"paymentPassword": "12345",
"clientTransaction": "request_20200420100006166507724683403",
"description": " DESC_TIV53_1587204346866_20200420100006166507724683403",
"operationInfo": {
"attribute": [
{
"key": "SECUREDFIELD:unsBo_79",
"value": "20200420100006166507724683403"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"PaymentResponse": {
"Id": 1001312116,
"attribute": [
{
"value": "rub",
"key": "targetcurrencycode"
},
{
"value": " DESC_TIV53_1587204346866_20200420100006166507724683403",
"key": "DESCRIPTION"
},
{
"value": "4",
"key": "TYPEID"
},
{
"value": "-10.12",
"key": "SOURCEAMOUNT"
},
{
"value": "СБП",
"key": "TARGETALIAS"
},
{
"value": "REQUEST_20200420100006166507724683403",
"key": "CLIENTTRANSACTION"
},
{
"value": "0",
"key": "SOURCEAMOUNTFEE"
},
{
"value": "10.12",
"key": "TARGETAMOUNT"
},
{
"value": "INPROGRESS",
"key": "STATUSID"
},
{
"value": "A0111180304839010000043EE68465BB",
"key": " TARGETTRANSACTION "
},
{
"value": "0",
"key": "HASCHILDREN"
},
{
"value": "2020-05-07T12:02:09.000+03:00",
"key": "MODIFIED"
},
{
"value": "354",
"key": "TARGETACCOUNTID"
},
{
"value": "WITHDRAWAL",
"key": "CATEGORY"
},
{
"value": "-10.12",
"key": "SOURCEAMOUNTTOTAL"
},
{
"value": "RUB",
"key": "SOURCECURRENCYCODE"
},
{
"value": "-10.12",
"key": "SOURCEACCOUNTTOTAL"
},
{
"value": "11111111",
"key": "SOURCEACCOUNTID"
}
]
}
}
}
}
Протокол С2С.Сценарий Me2Me Pull
Переводы СБП по сценарию Me2Me Pull — это переводы по номеру телефона между счетами клиентов в разных банках по инициативе Получателя.
Перевод денег по этому сценарию:
- Пользователь выполняет запрос из банка, в который хочет получить деньги;
- Пользователь даёт распоряжение на перевод денег из банка, из которого переводит деньги. Распоряжение может быть разовым или оформленным на все последующие переводы. Оформив распоряжение на последующие переводы в определенный Банк-Получатель, пользователь, отправляя запрос на получение денег из Банка-Получателя, даёт согласие проводить переводы из Банка-Отправителя без подтверждения.
Создать запрос на перевод Me2Me Pull, когда НКО «МОНЕТА» (ООО) выступает в роли банка, получающего перевод, можно, если:
- статус ЭСП «МОНЕТА.РУ», получающего перевод — упрощённо-идентифицированный или идентифицированный.
В настройках счёта-прототипа для работы с ЭСП «МОНЕТА.РУ» при реализации сценария Me2Me Pull удобно настроить URL-уведомления об отмене операции (Действия при зачислении/списании средств -> Вызвать URL после отмены зачисления средств): для этого сообщите url обработчика специалисту коммерческого отдела НКО «МОНЕТА» (ООО).
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
Шаг 1. Запросить список банков-участников по сценарию Me2Me Pull
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>374.2</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>2</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:unsBo_79</ns11:name>
<ns11:value>0</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:scenarios</ns11:name>
<ns11:value>Me2MePull</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>374.2</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="32" maxlength="140" orderBy="6" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:np_32</ns2:attribute-name>
<ns2:label>Назначение Платежа</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="994" maxlength="12" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:scenarios</ns2:attribute-name>
<ns2:value>.Me2MePull</ns2:value>
<ns2:label>Сценарий участника СБП</ns2:label>
<ns2:dependency>{998}=="2"</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="995" maxlength="9" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sourceAmount</ns2:attribute-name>
<ns2:label>Сумма списания с исходного счета на шаге 5</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:label>Минимальное время следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:label>Время истечения ожидания следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>2</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="128" orderBy="5" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:steps>PAY</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>ФИО получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:label>Сумма операции</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:steps>PAY</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>0</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="241" maxlength="120" orderBy="2" pattern="^.+$" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idBp_24_name</ns2:attribute-name>
<ns2:label>Банк получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="20" maxlength="12" orderBy="0" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:label>Телефон получателя</ns2:label>
<ns2:comment>Введите номер телефона получателя</ns2:comment>
<ns2:dependency>{79}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="false" temporary="false" type="ENUM">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
<ns2:enum>
<ns2:item id="100000000004">Тинькофф Банк</ns2:item>
</ns2:enum>
</ns2:field>
<ns2:field hidden="false" id="27" maxlength="32" orderBy="6" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:ioOpkcSbp_27</ns2:attribute-name>
<ns2:label>Номер операции СБП</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="30" maxlength="10" orderBy="3" pattern="^(\d*)$" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
<ns2:dependency>{79}==""</ns2:dependency>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "Username",
"Password": "Password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "374.2",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:payment_stage",
"value": "2"
},
{
"name": "SECUREDFIELD:unsBo_79",
"value": "0"
},
{
"name": "SECUREDFIELD:scenarios",
"value": "Me2MePull"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"GetNextStepResponse": {
"providerId": "374.2",
"nextStep": "PRE",
"fields": {
"field": [
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 140,
"attribute-name": "SECUREDFIELD:np_32",
"orderBy": 6,
"comment": "",
"label": "Назначение Платежа",
"id": 32,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"hidden": false,
"dependency": "{998}==\"2\"",
"maxlength": 12,
"attribute-name": "SECUREDFIELD:scenarios",
"orderBy": 7,
"label": "Сценарий участника СБП",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "",
"id": 994,
"value": "Me2MePull"
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 9,
"attribute-name": "SECUREDFIELD:sourceAmount",
"orderBy": 7,
"comment": "",
"label": "Сумма списания с исходного счета на шаге 5",
"id": 995,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:minTime",
"orderBy": 7,
"comment": "",
"label": "Минимальное время следующего шага",
"id": 996,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:expirationTime",
"orderBy": 8,
"comment": "",
"label": "Время истечения ожидания следующего шага",
"id": 997,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"hidden": false,
"maxlength": 1,
"attribute-name": "SECUREDFIELD:payment_stage",
"orderBy": 9,
"label": "Стадия выполнения оплаты",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "",
"id": 998,
"value": "2"
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 128,
"attribute-name": "CUSTOMFIELD:pamPo_74",
"orderBy": 5,
"comment": "",
"label": "ФИО получателя",
"id": 74,
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": false
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 9,
"attribute-name": "SECUREDFIELD:sumOpSbp_44",
"orderBy": 4,
"comment": "",
"label": "Сумма операции",
"id": 44,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"hidden": true,
"maxlength": 29,
"attribute-name": "SECUREDFIELD:unsBo_79",
"orderBy": 1,
"label": "Уникальный Номер Сообщения от Банка Отправителя",
"type": "TEXT",
"steps": [
"PRE",
"PAY"
],
"required": false,
"readonly": false,
"comment": "",
"id": 79,
"value": "0"
},
{
"temporary": false,
"hidden": false,
"maxlength": 120,
"attribute-name": "CUSTOMFIELD:idBp_24_name",
"pattern": "^.+$",
"orderBy": 2,
"label": "Банк получателя",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "",
"id": 241
},
{
"temporary": false,
"hidden": true,
"dependency": "{79}==\"\"",
"maxlength": 12,
"attribute-name": "CUSTOMFIELD:idPo_20",
"orderBy": 0,
"label": "Телефон получателя",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "Введите номер телефона получателя",
"id": 20
},
{
"temporary": false,
"hidden": false,
"maxlength": 12,
"attribute-name": "SECUREDFIELD:idBp_24",
"orderBy": 2,
"label": "Идентификатор банка получателя",
"type": "ENUM",
"steps": ["PRE"],
"enum": {
"item": [
{
"id": "100000000004",
"value": "Тинькофф Банк"
}
]
},
"required": false,
"readonly": false,
"comment": "",
"id": 24
},
{
"temporary": false,
"readonly": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "CUSTOMFIELD:ioOpkcSbp_27",
"orderBy": 6,
"comment": "",
"label": "Номер операции СБП",
"id": 27,
"type": "TEXT",
"steps": ["PRE"],
"required": false
},
{
"temporary": false,
"hidden": true,
"dependency": "{79}==\"\"",
"maxlength": 10,
"attribute-name": "SECUREDFIELD:nbsOt_30",
"pattern": "^(\\d*)$",
"orderBy": 3,
"label": "Номер Счета Отправителя",
"type": "TEXT",
"steps": ["PRE"],
"required": false,
"readonly": false,
"comment": "",
"id": 30
}
]
}
}
}
}
}
Шаг 2. Создать запрос на перевод денег в выбранный Банк Отправителя
Алгоритм создания запроса на перевод денег в Банке Отправителя:
- после получения списка банков-участников для сценария Me2Me Pull и выбора среди них id банка, из которого планируется перевести деньги, нужно выполнить
InvoiceRequest
; - в
InvoiceRequest
нужно указать id банка, из которого планируется перевести деньги, в атрибутеSECUREDFIELD:SBPBANKID
; - в
InvoiceResponse
должен присутствовать атрибут EXTERNALTRANSACTION, который информирует об успешном создании запроса на перевод в банк, из которого планируется перевести деньги: если в InvoiceResponse не вернулось значение EXTERNALTRANSACTION, необходимо проверить корректность запроса InvoiceRequest с параметром SECUREDFIELD:SBPBANKID; - далее ожидаем информацию о создании счёта на перевод денег в Банке Отправителя (не больше семи секунд): если счёт на перевод денег в Банке Отправителя не сформирован, созданная по запросу в InvoceRequest операция отменяется с указанием причины. При отмене будет вызван «URL после отмены зачисления» (если был настроен). Если счёт на перевод денег в Банке Отправителя сформирован, но неизвестно, оплачен ли, дополнительные URL-уведомления об этом не приходят. Отсутствие URL-уведомления на адрес обработчика «URL после отмены зачисления» значит, что на стороне Банка Отправителя был создан счёт на перевод денег;
- далее ожидаем оплату по созданному в Банке Отправителя счёту; если счёт в Банке Отправителе не оплачен в течение 10 минут после получения InvoiceResponse (с атрибутом EXTERNALTRANSACTION), счёт будет отменён и будет вызван «URL после отмены зачисления» (если был настроен).
Пример запроса InvoiceRequest с указанием SECUREDFIELD:SBPBANK
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:InvoiceRequest xmlns:ns11="http://moneta.ru/schemas/messages.xsd" ns11:version="VERSION_2">
<ns11:payer>374</ns11:payer>
<ns11:payee>11111111</ns11:payee>
<ns11:amount>100</ns11:amount>
<ns11:clientTransaction>me2me_pull_01</ns11:clientTransaction>
<ns11:operationInfo>
<ns11:attribute>
<ns11:key>SECUREDFIELD:SBPBANKID</ns11:key>
<ns11:value>100000000025</ns11:value>
</ns11:attribute>
</ns11:operationInfo>
</ns11:InvoiceRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:InvoiceResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:status>CREATED</ns2:status>
<ns2:dateTime>2021-03-22T14:52:40.000+03:00</ns2:dateTime>
<ns2:transaction>2583358</ns2:transaction>
<ns2:clientTransaction>me2me_pull_01</ns2:clientTransaction>
<ns2:operationInfo>
<ns2:id>2583358</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>3</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>100</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>СБП</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>me2me_pull_01</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamountfee</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>CREATED</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2021-03-22T14:52:40.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>374</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>BUSINESS</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>externaltransaction</ns2:key>
<ns2:value>20210322100006125702386603759732</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>100</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isinvoice</ns2:key>
<ns2:value>1</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>invoicerequest</ns2:key>
<ns2:value>1</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>100</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>11111111</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isreversed</ns2:key>
<ns2:value>true</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:InvoiceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "Username",
"Password": "Password"
}
}
},
"Body": {
"InvoiceRequest": {
"version" : "VERSION_2",
"payer": "374",
"payee": "11111111",
"amount": 100,
"clientTransaction": "me2me_pull_01",
"operationInfo": {
"attribute": [
{
"key": "SECUREDFIELD:SBPBANKID",
"value": "100000000025"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"InvoiceResponse": {
"dateTime": "2021-03-22T14:52:40.000+03:00",
"operationInfo": {
"id": 2583358,
"attribute": [
{
"value": "RUB",
"key": "targetcurrencycode"
},
{
"value": "3",
"key": "typeid"
},
{
"value": "100",
"key": "sourceamount"
},
{
"value": "СБП",
"key": "targetalias"
},
{
"value": "me2me_pull_01",
"key": "clienttransaction"
},
{
"value": "0",
"key": "sourceamountfee"
},
{
"value": "CREATED",
"key": "statusid"
},
{
"value": "0",
"key": "haschildren"
},
{
"value": "2021-03-22T14:52:40.000+03:00",
"key": "modified"
},
{
"value": "374",
"key": "targetaccountid"
},
{
"value": "BUSINESS",
"key": "category"
},
{
"value": "20210322100006125702386603759732",
"key": "externaltransaction"
},
{
"value": "100",
"key": "sourceamounttotal"
},
{
"value": "RUB",
"key": "sourcecurrencycode"
},
{
"value": "1",
"key": "isinvoice"
},
{
"value": "1",
"key": "invoicerequest"
},
{
"value": "100",
"key": "sourceaccounttotal"
},
{
"value": "11111111",
"key": "sourceaccountid"
},
{
"value": "true",
"key": "isreversed"
}
]
},
"clientTransaction": "me2me_pull_01",
"transaction": 2583358,
"status": "CREATED"
}
}
}
}
Протокол C2B. Оплата товаров и услуг по QR
Оплата по QR — это оплата от физического лица в пользу ЮЛ/ИП путем считывания QR-кода мобильным приложением банка.
Список банков-участников СБП с поддержкой оплаты по QR: https://sbp.nspk.ru/participants
Типы QR
Динамический или QR на кассе - QR-код с обязательным указанием суммы платежа. Предназначен для выполнения единичного перевода, повторное использование не допускается.
Статический или QR-наклейка - может быть с суммой или без. Если сумма не прописана, плательщик должен указать её после договорённости с продавцом. Используется для выполнения множества переводов.
Кассовая ссылка СБП - подтип статического QR. Платежная ссылка СБП для выполнения множества переводов, в которых сумму и другие платежные реквизиты каждого перевода устанавливает Получатель.
Особенности работы с Протоколом C2B
- счёт Получателя/ТСП должен быть настроен для работы с СБП: этот способ должен быть активен для счёта в личном кабинете moneta.ru или payanyway.ru. Проверить можно в личном кабинете moneta.ru: «Рабочий кабинет» → «Способы оплаты»; или в личном кабинете payanyway.ru: «Способы оплаты».
- JSON ответ: символ «/» экранирован «/».
- SOAP ответ: символ «&» представлен в виде «&».
- redirectUrl - необязательный параметр, содержит ссылку для возврата Плательщика из приложения Банка Плательщика в приложение или на сайт Получателя/ТСП.
Протокол C2B. Многоразовые QR
При работе с многоразовыми QR Получателю/ТСП критически важно контролировать их на своей стороне, вести их учет, чтобы иметь возможность идентифицировать переводы.
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
Регистрация статического QR-кода (QRS)
Статический QR или QR-наклейка может применяться в онлайн и офлайн-магазинах. Особенности работы со статическим QR (QRS):
- сумма операции СБП может быть не задана Получателем. В этом случае при переводе покупатель по договоренности с продавцом указывает сумму.
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages-frontend.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>LOGIN</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:AccountSetupActionRequest>
<mes:accountId>46209858</mes:accountId>
<mes:sbp>
<mes:staticQrRegistration>
<mes:amount>10.00</mes:amount>
<mes:paymentPurpose>Журнал</mes:paymentPurpose>
<mes:redirectUrl>https://shop.domain.ru?id=12</mes:redirectUrl>
</mes:staticQrRegistration>
</mes:sbp>
</mes:AccountSetupActionRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:AccountSetupActionResponse xmlns:ns2="http://moneta.ru/schemas/messages-frontend.xsd">
<ns2:accountId>46209858</ns2:accountId>
<ns2:sbp>
<ns2:staticQrRegistrationResult>
<ns2:qrcId>AS100074QCPTCVTO8JM9NO8IDAIQPHPB</ns2:qrcId>
<ns2:imageLink>
https://sbp.payanyway.ru/admin/mnt/demo/imageqrc?qrcId=AS100074QCPTCVTO8JM9NO8IDAIQPHPB&height=300&width=300
</ns2:imageLink>
<ns2:payload>https://qr.nspk.ru/AS100074QCPTCVTO8JM9NO8IDAIQPHPB?type=01&bank=100000000061&sum=1000&cur=RUB&crc=2FF3</ns2:payload>
<ns2:amount>10.00</ns2:amount>
<ns2:paymentPurpose>Журнал</ns2:paymentPurpose>
<ns2:redirectUrl>https://shop.domain.ru?id=12</ns2:redirectUrl>
<ns2:type>01 - QR-Static (Многоразовая Платежная ссылка СБП). Может использоваться для выполнения
множества Операций СБП C2B
</ns2:type>
<ns2:scenario>C2B - Одноразовая Платежная ссылка СБП или многоразовая Платежная ссылка СБП с
фиксированной суммой
</ns2:scenario>
</ns2:staticQrRegistrationResult>
</ns2:sbp>
</ns2:AccountSetupActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"PayloadNamespace": "http://moneta.ru/schemas/messages-frontend.xsd",
"Security": {
"UsernameToken": {
"Username": "LOGIN",
"Password": "PASSWORD"
}
}
},
"Body": {
"AccountSetupActionRequest": {
"accountId": "46209858",
"sbp": {
"staticQrRegistration": {
"amount": "10.00",
"paymentPurpose": "Журнал",
"redirectUrl": "https://shop.domain.ru?id=12"
}
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"AccountSetupActionResponse": {
"sbp": {
"staticQrRegistrationResult": {
"qrcId": "AS100074QCPTCVTO8JM9NO8IDAIQPHPB",
"imageLink": "https:\/\/sbp.payanyway.ru\/admin\/mnt\/demo\/imageqrc?qrcId=AS100074QCPTCVTO8JM9NO8IDAIQPHPB&height=300&width=300",
"amount": 10.00,
"redirectUrl": "https:\/\/shop.domain.ru?id=12",
"payload": "https:\/\/qr.nspk.ru\/AS100074QCPTCVTO8JM9NO8IDAIQPHPB?type=01&bank=100000000061&sum=1000&cur=RUB&crc=2FF3",
"scenario": "C2B - Одноразовая Платежная ссылка СБП или многоразовая Платежная ссылка СБП с фиксированной суммой",
"paymentPurpose": "Журнал",
"type": "01 - QR-Static (Многоразовая Платежная ссылка СБП). Может использоваться для выполнения множества Операций СБП C2B"
}
},
"accountId": 46209858
}
}
}
}
Регистрация Кассовой ссылки
Кассовая ссылка — подтип статического QR. Для оплаты нужна активация путем формирования InvoiceRequest. Подходит для оплаты в офлайн-магазинах, когда нет возможности показать QR на экране с достаточным разрешением. Графическое изображение Кассовой ссылки можно разместить на листе бумаге, например, флаере, воблере.
В Системе МОНЕТА.РУ есть ограничение на создание Кассовых ссылок - по умолчанию 10 ссылок для одного счёта. Если Получателю/ТСП требуется сформировать больше Кассовых ссылок, нужно обратиться к сотруднику коммерческого отдела.
Рекомендуем использовать одну Кассовую ссылку для одной кассы или устройства (например, вендингового аппарата) и вести их учёт. Это позволит эффективно администрировать и идентифицировать переводы.
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages-frontend.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>LOGIN</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:AccountSetupActionRequest>
<mes:accountId>46209858</mes:accountId>
<mes:sbp>
<mes:cashLinkRegistration>
<mes:clientId>Кассовый аппарат №2</mes:clientId>
</mes:cashLinkRegistration>
</mes:sbp>
</mes:AccountSetupActionRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:AccountSetupActionResponse xmlns:ns2="http://moneta.ru/schemas/messages-frontend.xsd">
<ns2:accountId>46209858</ns2:accountId>
<ns2:sbp>
<ns2:cashLinkRegistrationResult>
<ns2:qrcId>AS1R004PRL5RNGBA9ARPLJLTDO94S3J9</ns2:qrcId>
<ns2:payload>https://qr.nspk.ru/AS1R004PRL5RNGBA9ARPLJLTDO94S3J9?type=01&bank=100000000061&crc=5D90</ns2:payload>
<ns2:imageLink>https://sbp.payanyway.ru/admin/mnt/demo/imageqrc?qrcId=AS1R004PRL5RNGBA9ARPLJLTDO94S3J9&height=300&width=300
</ns2:imageLink>
<ns2:type>01 - QR-Static (Многоразовая Платежная ссылка СБП). Может использоваться для выполнения множества Операций СБП C2B
</ns2:type>
<ns2:scenario>C2B_CASH_REGISTER - Кассовая Платежная ссылка СБП</ns2:scenario>
<ns2:clientId>Кассовый аппарат №2</ns2:clientId>
</ns2:cashLinkRegistrationResult>
</ns2:sbp>
</ns2:AccountSetupActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"PayloadNamespace": "http://moneta.ru/schemas/messages-frontend.xsd",
"Security": {
"UsernameToken": {
"Username": "LOGIN",
"Password": "PASSWORD"
}
}
},
"Body": {
"AccountSetupActionRequest": {
"accountId": "46209858",
"sbp": {
"cashLinkRegistration": {
"clientId": "Кассовый аппарат №2"
}
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"AccountSetupActionResponse": {
"sbp": {
"cashLinkRegistrationResult ": {
"qrcId": "AS1R004PRL5RNGBA9ARPLJLTDO94S3J9",
"imageLink": "https:\/\/sbp.payanyway.ru\/admin\/mnt\/demo\/imageqrc?qrcId=AS1R004PRL5RNGBA9ARPLJLTDO94S3J9&height=300&width=300",
"clientId": "Кассовый аппарат №2",
"payload": "https:\/\/qr.nspk.ru\/AS1R004PRL5RNGBA9ARPLJLTDO94S3J9?type=01&bank=100000000061&crc=5D90",
"scenario": "C2B_CASH_REGISTER - Кассовая Платежная ссылка СБП",
"type": "01 - QR-Static (Многоразовая Платежная ссылка СБП). Может использоваться для выполнения множества Операций СБП C2B"
}
},
"accountId": 46209858
}
}
}
}
Редактирование описания Кассовой ссылки
Для ранее зарегистрированной Кассовой ссылки можно поменять описание (clientId). Это поможет контролировать Кассовые ссылки и избежать регистрации дополнительных, например, в случае изменений данных устройства, для которого была сформирована текущая ссылка.
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages-frontend.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>LOGIN</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:AccountSetupActionRequest>
<mes:accountId>46209858</mes:accountId>
<mes:sbp>
<mes:cashLinkUpdate>
<mes:qrcId>AS1R0075L7OST2UB8QHOO0NA9HP68JRG</mes:qrcId>
<mes:clientId>Новое значение rus3103</mes:clientId>
</mes:cashLinkUpdate>
</mes:sbp>
</mes:AccountSetupActionRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:AccountSetupActionResponse xmlns:ns2="http://moneta.ru/schemas/messages-frontend.xsd">
<ns2:accountId>46209858</ns2:accountId>
<ns2:sbp>
<ns2:cashLinkUpdateResult>
<ns2:qrcId>AS1R0075L7OST2UB8QHOO0NA9HP68JRG</ns2:qrcId>
<ns2:imageLink>
https://sbp.payanyway.ru/admin/mnt/demo/imageqrc?qrcId=AS1R0075L7OST2UB8QHOO0NA9HP68JRG&height=300&width=300
</ns2:imageLink>
<ns2:clientId>Новое значение rus3103</ns2:clientId>
</ns2:cashLinkUpdateResult>
</ns2:sbp>
</ns2:AccountSetupActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"PayloadNamespace": "http://moneta.ru/schemas/messages-frontend.xsd",
"Security": {
"UsernameToken": {
"Username": "LOGIN",
"Password": "PASSWORD"
}
}
},
"Body": {
"AccountSetupActionRequest": {
"accountId": "46209858",
"sbp": {
"cashLinkUpdate": {
"qrcId": "AS1R0075L7OST2UB8QHOO0NA9HP68JRG",
"clientId": "Новое значение rus3103"
}
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"AccountSetupActionResponse": {
"sbp": {
"cashLinkUpdateResult": {
"qrcId": "AS1R0075L7OST2UB8QHOO0NA9HP68JRG",
"imageLink": "https:\/\/sbp.payanyway.ru\/admin\/mnt\/demo\/imageqrc?qrcId=AS1R0075L7OST2UB8QHOO0NA9HP68JRG&height=300&width=300",
"clientId": "Новое значение rus3103"
}
},
"accountId": 46209858
}
}
}
}
Получение списка зарегистрированных Кассовых ссылок
В Системе МОНЕТА.РУ доступен метод получения списка зарегистрированных Кассовых ссылок для определенного счета Получателя.
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages-frontend.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>LOGIN</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:AccountSetupActionRequest>
<mes:accountId>46209858</mes:accountId>
<mes:sbp>
<mes:cashLinkList/>
</mes:sbp>
</mes:AccountSetupActionRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:AccountSetupActionResponse xmlns:ns2="http://moneta.ru/schemas/messages-frontend.xsd">
<ns2:accountId>46209858</ns2:accountId>
<ns2:sbp>
<ns2:cashLinkListResult>
<ns2:qrcId>AS1R004PRL5RNGBA9ARPLJLTDO94S3J9</ns2:qrcId>
<ns2:imageLink>
https://sbp.payanyway.ru/admin/mnt/demo/imageqrc?qrcId=AS1R004PRL5RNGBA9ARPLJLTDO94S3J9&height=300&width=300
</ns2:imageLink>
<ns2:clientId>Кассовый аппарат №2</ns2:clientId>
</ns2:cashLinkListResult>
<ns2:cashLinkListResult>
<ns2:qrcId>AS1R001AHKO38PKM9VPO9HME2TRVEK24</ns2:qrcId>
<ns2:imageLink>
https://sbp.payanyway.ru/admin/mnt/demo/imageqrc?qrcId=AS1R001AHKO38PKM9VPO9HME2TRVEK24&height=300&width=300
</ns2:imageLink>
<ns2:clientId>Кассовая ссылка 12_2_2</ns2:clientId>
</ns2:cashLinkListResult>
</ns2:sbp>
</ns2:AccountSetupActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"PayloadNamespace": "http://moneta.ru/schemas/messages-frontend.xsd",
"Security": {
"UsernameToken": {
"Username": "LOGIN",
"Password": "PASSWORD"
}
}
},
"Body": {
"AccountSetupActionRequest": {
"accountId": "46209858",
"sbp": {
"cashLinkList": ""
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"AccountSetupActionResponse": {
"sbp": {
"cashLinkListResult": [
{
"qrcId": "AS1R004PRL5RNGBA9ARPLJLTDO94S3J9",
"imageLink": "https:\/\/sbp.payanyway.ru\/admin\/mnt\/demo\/imageqrc?qrcId=AS1R004PRL5RNGBA9ARPLJLTDO94S3J9&height=300&width=300",
"clientId": "Кассовый аппарат №2"
},
{
"qrcId": "AS1R001AHKO38PKM9VPO9HME2TRVEK24",
"imageLink": "https:\/\/sbp.payanyway.ru\/admin\/mnt\/demo\/imageqrc?qrcId=AS1R001AHKO38PKM9VPO9HME2TRVEK24&height=300&width=300",
"clientId": "Кассовая ссылка 12_2_2"
},
]
},
"accountId": 46209858
}
}
}
}
Получение информации по идентификатору многоразового QR (qrcId)
В Системе МОНЕТА.РУ доступен метод получения информации по уникальному идентификатору многоразового QR (qrcId). Это поможет для определения сценария (scenario), доступного для многоразовой платёжной ссылки (статический QR или Кассовая ссылка).
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages-frontend.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>LOGIN</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:AccountSetupActionRequest>
<mes:accountId>46209858</mes:accountId>
<mes:sbp>
<mes:qrInfo>
<mes:qrcId>AS10003K7NTKC0NS809Q3VROGRE493G4</mes:qrcId>
</mes:qrInfo>
</mes:sbp>
</mes:AccountSetupActionRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:AccountSetupActionResponse xmlns:ns2="http://moneta.ru/schemas/messages-frontend.xsd">
<ns2:accountId>46209858</ns2:accountId>
<ns2:sbp>
<ns2:qrInfoResult>
<ns2:qrcId>AS10003K7NTKC0NS809Q3VROGRE493G4</ns2:qrcId>
<ns2:imageLink>
https://sbp.payanyway.ru/admin/mnt/demo/imageqrc?qrcId=AS10003K7NTKC0NS809Q3VROGRE493G4&height=300&width=300
</ns2:imageLink>
<ns2:brandName>SBP_TEST_23</ns2:brandName>
<ns2:amount>10.20</ns2:amount>
<ns2:paymentPurpose>Новая ссылка</ns2:paymentPurpose>
<ns2:redirectUrl>https://shop.domain.ru?id=12</ns2:redirectUrl>
<ns2:type>01 – QR-Static (Многоразовая Платежная ссылка СБП). Может использоваться для выполнения
множества Операций СБП C2B
</ns2:type>
<ns2:scenario>C2B – Одноразовая Платежная ссылка СБП или многоразовая Платежная ссылка СБП с
фиксированной суммой
</ns2:scenario>
</ns2:qrInfoResult>
</ns2:sbp>
</ns2:AccountSetupActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"PayloadNamespace": "http://moneta.ru/schemas/messages-frontend.xsd",
"Security": {
"UsernameToken": {
"Username": "LOGIN",
"Password": "PASSWORD"
}
}
},
"Body": {
"AccountSetupActionRequest": {
"accountId": "46209858",
"sbp": {
"qrInfo": {
"qrcId": "AS10003K7NTKC0NS809Q3VROGRE493G4"
}
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"AccountSetupActionResponse": {
"sbp": {
"qrInfoResult": {
"qrcId": "AS10003K7NTKC0NS809Q3VROGRE493G4",
"imageLink": "https:\/\/sbp.payanyway.ru\/admin\/mnt\/demo\/imageqrc?qrcId=AS10003K7NTKC0NS809Q3VROGRE493G4&height=300&width=300",
"brandName": "SBP_TEST_23",
"amount": 10.2,
"redirectUrl": "https:\/\/shop.domain.ru?id=12",
"scenario": "C2B – Одноразовая Платежная ссылка СБП или многоразовая Платежная ссылка СБП с фиксированной суммой",
"paymentPurpose": "Новая ссылка_34",
"type": "01 – QR-Static (Многоразовая Платежная ссылка СБП). Может использоваться для выполнения множества Операций СБП C2B"
}
},
"accountId": 46209858
}
}
}
}
Протокол C2B. Выставление счёта (InvoiceRequest) для оплаты по Кассовой ссылке СБП
Для начала работы с Кассовой ссылкой Получателю следует убедиться, что:
- Счёт Получателя настроен для работы с СБП: этот способ должен быть активен для счёта в личном кабинете moneta.ru или payanyway.ru. Проверить можно в личном кабинете moneta.ru: «Рабочий кабинет» → «Способы оплаты»; или в личном кабинете payanyway.ru: «Способы оплаты».
- Для счёта Получателя сформирована Кассовая ссылка: это можно сделать по API (метод “Регистрация Кассовой ссылки”) или обратиться к сотруднику коммерческого отдела и попросить сформировать Кассовую ссылку для определенного счёта Получателя.
Чтобы провести оплату по Кассовой ссылке нужно её активировать. Кассовая ссылка становится активна, если выставить счёт (InvoiceRequest) с заполненными полями:
STATICQRID
- уникальный идентификатор Кассовой ссылки;amount
- сумма;description
- назначение платежа.
Особенности работы с Кассовой ссылкой:
- может быть только один неоплаченный и активный invoice для одного уникального значения
STATICQRID
; - если нужно изменить сумму или назначение платежа для ранее активированной Кассовой ссылки, необходимо отменить текущий invoice, используя метод
CancelTransactionRequest
. Произойдёт деактивация Кассовой ссылки с определённым идентификатором, указанным в полеSTATICQRID
. Затем снова нужно выполнитьInvoiceRequest
с желаемыми данными. - в поле
CUSTOMFIELD:QRTTL
можно передать период в минутах, в течение которого будет возможна оплата по Кассовой ссылке (QR-коду). Минимальное значение - одна минута, максимальное - 20 минут. Если полеCUSTOMFIELD:QRTTL
не передано, за период использования Кассовой платёжной ссылки берётся значение 5 минут, после этого времени подготовленная операция отменяется; - при активации Кассовой ссылки методом
InvoiceRequest
важно убедиться, что в качестве идентификатораSTATICQRID
используется именно идентификатор Кассовой ссылки, а не статического QR (QRS). Проверить доступный сценарий для уникального идентификатора qrcId (STATICQRID
) можно методом “Получение информации по идентификатору многоразового QR (qrcId)“. Cценарий для Кассовой ссылки —C2B_CASH_REGISTER
.
Ответом на InvoiceRequest
будет InvoiceResponse
, в котором содержится:
transactionId
— номер операции;customfield:paramsid
— идентификатор активных значений параметров Кассовой ссылки СБП. Этот атрибут показывает, что активация Кассовой ссылки прошла успешно.STATICQRID
— идентификатор Кассовой ссылки (QR кода).
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>LOGIN</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:InvoiceRequest mes:version="VERSION_2">
<mes:payer>364</mes:payer>
<mes:payee>46209858</mes:payee>
<mes:amount>10.01</mes:amount>
<mes:clientTransaction>c2b_cashbox_310322_001</mes:clientTransaction>
<mes:description>Кассовая ссылка C2B</mes:description>
<mes:operationInfo>
<mes:attribute>
<mes:key>CUSTOMFIELD:QRTTL</mes:key>
<mes:value>1</mes:value>
</mes:attribute>
<mes:attribute>
<mes:key>STATICQRID</mes:key>
<mes:value>AS1R001HJS5K8F0S956OLM9OF1NAKNC4</mes:value>
</mes:attribute>
</mes:operationInfo>
</mes:InvoiceRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:InvoiceResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:status>CREATED</ns2:status>
<ns2:dateTime>2022-03-31T12:07:20.000+03:00</ns2:dateTime>
<ns2:transaction>1002937425</ns2:transaction>
<ns2:clientTransaction>c2b_cashbox_310322_001</ns2:clientTransaction>
<ns2:operationInfo>
<ns2:id>1002937425</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>Кассовая ссылка C2B</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>3</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>10.01</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>Система быстрых платежей</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:paramsid</ns2:key>
<ns2:value>AP10000UQNSVMRS98RG8TKL916JFOH72</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>c2b_cashbox_310322_001</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:qrttl</ns2:key>
<ns2:value>1</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>CREATED</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>staticqrid</ns2:key>
<ns2:value>AS1R001HJS5K8F0S956OLM9OF1NAKNC4</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2022-03-31T12:07:20.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>BUSINESS</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>10.01</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isinvoice</ns2:key>
<ns2:value>1</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>invoicerequest</ns2:key>
<ns2:value>1</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>10.01</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>46209858</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isreversed</ns2:key>
<ns2:value>true</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:InvoiceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "LOGIN",
"Password": "PASSWORD"
}
}
},
"Body": {
"InvoiceRequest": {
"version": "VERSION_2",
"payer": "364",
"payee": "46209858",
"amount": 10.01,
"clientTransaction": "c2b_cashbox_310322_001",
"description": "Кассовая ссылка C2B",
"operationInfo": {
"attribute": [
{
"key": "CUSTOMFIELD:QRTTL",
"value": "1"
},
{
"key": "STATICQRID",
"value": "AS1R001HJS5K8F0S956OLM9OF1NAKNC4"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"InvoiceResponse": {
"dateTime": "2022-03-31T12:07:20.000+03:00",
"operationInfo": {
"id": 1002937425,
"attribute": [
{
"value": "RUB",
"key": "targetcurrencycode"
},
{
"value": "Кассовая ссылка C2B",
"key": "description"
},
{
"value": "3",
"key": "typeid"
},
{
"value": "10.01",
"key": "sourceamount"
},
{
"value": "Система быстрых платежей",
"key": "targetalias"
},
{
"value": "AP10000UQNSVMRS98RG8TKL916JFOH72",
"key": "customfield:paramsid"
},
{
"value": "c2b_cashbox_310322_001",
"key": "clienttransaction"
},
{
"value": "1",
"key": "customfield:qrttl"
},
{
"value": "CREATED",
"key": "statusid"
},
{
"value": "AS1R001HJS5K8F0S956OLM9OF1NAKNC4",
"key": "staticqrid"
},
{
"value": "0",
"key": "haschildren"
},
{
"value": "2022-03-31T12:07:20.000+03:00",
"key": "modified"
},
{
"value": "364",
"key": "targetaccountid"
},
{
"value": "BUSINESS",
"key": "category"
},
{
"value": "10.01",
"key": "sourceamounttotal"
},
{
"value": "RUB",
"key": "sourcecurrencycode"
},
{
"value": "1",
"key": "isinvoice"
},
{
"value": "1",
"key": "invoicerequest"
},
{
"value": "10.01",
"key": "sourceaccounttotal"
},
{
"value": "46209858",
"key": "sourceaccountid"
},
{
"value": "true",
"key": "isreversed"
}
]
},
"clientTransaction": "c2b_cashbox_310322_001",
"transaction": 1002937425,
"status": "CREATED"
}
}
}
Протокол C2B. Выставление счёта (InvoiceRequest) для оплаты по динамическому QR
Для выставления счёта на оплату используется метод InvoiceRequest
. Счет (Invoice) выставляется Получателем (ЮЛ/ИП) для оплаты за товары или услуги.
Чтобы сформировать invoice для оплаты по QR, счёт получателя обязательно должен быть настроен для работы с СБП: этот способ должен быть активен для счёта в личном кабинете moneta.ru или payanyway.ru. Проверить это можно в личном кабинете moneta.ru: «Рабочий кабинет» → «Способы оплаты»; или в личном кабинете payanyway.ru: «Способы оплаты».
В поле CUSTOMFIELD:QRTTL
можно передать период в минутах, в течение которого будет возможна оплата по платёжной ссылке (QR-коду). Минимальное значение — одна минута, максимальное значение – 129600 (90 дней в минутах). Если поле CUSTOMFIELD:QRTTL
не передано, за период использования динамической платёжной ссылки берётся значение 4320 минут (три дня).
Ответом на InvoiceRequest
будет InvoiceResponse
, в котором содержится:
transactionId
- номер операции;qrlink
- ссылка на графическое отображение QR;qrpayload
- платёжная ссылка СБП, закодированная в QR. Если разместить её в мобильном приложении или мобильной версии сайта, при нажатии откроется установленное на телефоне приложение банка-участника СБП C2B с возможностью оплатить по данному коду.externaltransaction
- идентификатор динамического QR-кода.
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV ="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:InvoiceRequest xmlns:ns2="http://moneta.ru/schemas/messages.xsd" ns2:version="VERSION_2">
<ns2:payer>364</ns2:payer>
<ns2:payee>10481430</ns2:payee>
<ns2:amount>100</ns2:amount>
<ns2:clientTransaction>12229</ns2:clientTransaction>
<ns2:description>Test</ns2:description>
<ns2:operationInfo>
<ns2:attribute>
<ns2:key>CUSTOMFIELD:QRTTL</ns2:key>
<ns2:value>11</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:InvoiceRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:InvoiceResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:status>CREATED</ns2:status>
<ns2:dateTime>2021-03-30T11:38:45.000+03:00</ns2:dateTime>
<ns2:transaction>1001657743</ns2:transaction>
<ns2:clientTransaction>12229</ns2:clientTransaction>
<ns2:operationInfo>
<ns2:id>1001657743</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>Test</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>3</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>100</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>Система Быстрых Платежей C2B (СБП)</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>12229</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:qrttl</ns2:key>
<ns2:value>11</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>qrpayload</ns2:key>
<ns2:value>https://qr.nspk.ru/AD100023V96ORJUR98CRVT2RR91R3UNA?type=02&bank=100000000061&sum=10000&cur=RUB&crc=D2E1</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>CREATED</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>qrlink</ns2:key>
<ns2:value>https://payanyway.ru/qrcode.htm?value=https%3A%2F%2Fqr.nspk.ru%2FAD100023V96ORJUR98CRVT2RR91R3UNA%3Ftype%3D02%26bank%3D100000000061%26sum%3D10000%26cur%3DRUB%26crc%3DD2E1&w=256&h=256</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2021-03-30T11:38:45.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>BUSINESS</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>externaltransaction</ns2:key>
<ns2:value>AD100023V96ORJUR98CRVT2RR91R3UNA</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>100</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isinvoice</ns2:key>
<ns2:value>1</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>100</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>10481430</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isreversed</ns2:key>
<ns2:value>true</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:InvoiceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"InvoiceRequest": {
"version": "VERSION_2",
"payer": "364",
"payee": "10481430",
"amount": "100",
"clientTransaction": "12229",
"description": "Test",
"operationInfo": {
"attribute": [
{
"key": "CUSTOMFIELD:QRTTL",
"value": "11"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"InvoiceResponse":{
"dateTime":"2021-03-30T11:38:45.000+03:00",
"operationInfo":{
"id":1001657743,
"attribute":[
{
"value":"RUB",
"key":"targetcurrencycode"
},
{
"value":"Test",
"key":"description"
},
{
"value":"3",
"key":"typeid"
},
{
"value":"100",
"key":"sourceamount"
},
{
"value":"Система Быстрых Платежей C2B (СБП)",
"key":"targetalias"
},
{
"value":"12229",
"key":"clienttransaction"
},
{
"value": "11",
"key": "customfield:qrttl"
},
{
"value":"https:\/\/qr.nspk.ru\/AD100023V96ORJUR98CRVT2RR91R3UNA?type=02&bank=100000000061&sum=10000&acur=RUB&crc=D2E1",
"key":"qrpayload"
},
{
"value":"CREATED",
"key":"statusid"
},
{
"value":"https:\/\/payanyway.ru\/qrcode.htm?value=https%3A%2F%2Fqr.nspk.ru%2FAD100023V96ORJUR98CRVT2RR91R3UNA%3Ftype%3D02%26bank%3D100000000061%26sum%3D10000%26cur%3DRUB%26crc%3DD2E1&w=256&h=256",
"key":"qrlink"
},
{
"value":"0",
"key":"haschildren"
},
{
"value":"2021-03-30T11:38:45.000+03:00",
"key":"modified"
},
{
"value":"364",
"key":"targetaccountid"
},
{
"value":"BUSINESS",
"key":"category"
},
{
"value":"AD100023V96ORJUR98CRVT2RR91R3UNA",
"key":"externaltransaction"
},
{
"value":"100",
"key":"sourceamounttotal"
},
{
"value":"RUB",
"key":"sourcecurrencycode"
},
{
"value":"1",
"key":"isinvoice"
},
{
"value":"100",
"key":"sourceaccounttotal"
},
{
"value":"10481430",
"key":"sourceaccountid"
},
{
"value":"true",
"key":"isreversed"
}
]
},
"clientTransaction":"12229",
"transaction":1001657743,
"status":"CREATED"
}
}
}
}
Для оплаты Invoice можно:
- Использовать
transactionId
и переход на платёжную форму Assistant в виде: https://moneta.ru/assistant.htm?operationId=полученный_номер_операции&paymentSystem.unitId=12299232&paymentSystem.limitIds=12299232&followup=true; - Использовать
qrlink
для графического отображения QR — кода Плательщику, например, на сайте получателя, и последующего сканирования устройством Плательщика; - Использовать
qrpayload
, например, в мобильной версии сайта или мобильном приложении Получателя, чтобы Плательщик мог проводить оплату с одного устройства (смартфона). На некоторых устройствах Плательщики могут сталкиваться с проблемой выбора банка для оплаты по QR-коду, поэтому Получатели могут интегрировать в свои приложения/сайты виджет выбора банков СБП. Найти SDK для применению виджета выбора банков СБП можно здесь https://sbp.nspk.ru/ “Бизнесу”-> “Онлайн” (подробнее) -> “Виджет СБП”.
Протокол C2B. Привязка счёта Плательщика (подписка)
Привязка счёта позволяет Плательщику привязать свой счёт в ТСП для совершения последующих оплат без перехода в банковское приложение Плательщика. Привязка счёта оформляется в Банке Плательщика, в ходе привязки счёта Плательщик даёт согласие на переводы без подтверждения. Плательщик может управлять согласиями на переводы по привязанным счетам в приложении Банка Плательщика.
Привязка счёта включает в себя следующие сценарии:
- Привязка счёта без оплаты - оформление только привязки счёта, без оплаты;
- Оплата с привязкой счёта - оформление привязки счёта для последующих оплат в ТСП в момент выполнения оплаты;
- Оплата с привязанного счёта - выполнение оплаты с использованием ранее привязанного счёта.
Особенности работы с привязкой счёта:
- Для Получателя/ТСП должен быть согласован функционал привязки счёта в СБП, а счёт Получателя/ТСП должен быть настроен. Для этого нужно обратиться к сотруднику коммерческого отдела НКО «МОНЕТА» (ООО);
- В личном кабинете moneta.ru в настройках профиля «Уведомления» - «Состояние счёта» - «Привязка счёта Плательщика» нужно выставить флаг и, выбрав тип «URL уведомления», заполнить поле «URL для уведомлений». На указанный url будут приходить уведомления о результатах привязки счёта в атрибуте
PAYMENTTOKEN
. В личном кабинете payanyway.ru настроить уведомления о результатах привязки счёта можно так: «Учётная запись» - «Уведомления» - «Добавить уведомление» - выбрать url уведомления, указать необходимый url и выбрать «Привязка счёта плательщика» среди событий. ТСП получит url уведомление с результатом привязки счёта:- успешная привязка:
PAYMENTTOKEN
=01003637096 (номер операции в Системе МОНЕТА.РУ с лидирующим нулём); при успешной привязке счёта ТСП нужно сохранить значениеPAYMENTTOKEN
для данного Плательщика, чтобы в дальнейшем направлять запросы на оплату с привязанного счёта без перехода в банковское приложение Плательщика; - отказ в привязке счёта:
PAYMENTTOKEN
=refused
.
- успешная привязка:
Подразделы Протокол C2B. Привязка счёта Плательщика (подписка)
Привязка счёта без оплаты
ТСП нужно сформировать InvoiceRequest
со значением subscription
в атрибуте PAYMENTTOKEN
. По такому QR-коду Плательщику будет предложено перейти в приложение Банка Плательщика и разрешить переводы без подтверждения. Оплаты в данном сценарии нет.
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:InvoiceRequest mes:version="VERSION_2">
<mes:payer>364</mes:payer>
<mes:payee>34561043</mes:payee>
<mes:amount>11.12</mes:amount>
<mes:clientTransaction>ctid123456789</mes:clientTransaction>
<mes:description>Только привязка</mes:description>
<mes:operationInfo>
<mes:attribute>
<mes:key>PAYMENTTOKEN</mes:key>
<mes:value>SUBSCRIPTION</mes:value>
</mes:attribute>
</mes:operationInfo>
</mes:InvoiceRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:InvoiceResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:status>CREATED</ns2:status>
<ns2:dateTime>2023-05-10T14:58:32.000+03:00</ns2:dateTime>
<ns2:transaction>1003637109</ns2:transaction>
<ns2:clientTransaction>ctid123456789</ns2:clientTransaction>
<ns2:operationInfo>
<ns2:id>1003637109</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>Только привязка</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>3</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>Система быстрых платежей</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>ctid123456789</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>qrpayload</ns2:key><ns2:value>https://qr.nspk.ru/BD1P002RS4PJ6HNM82HQSADEC1DBIGQK?type=03&bank=100000000061&sum=1112&cur=RUB&crc=BDD5</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>CREATED</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>qrlink</ns2:key>
<ns2:value>https://demo.sbp.payanyway.ru/admin/mnt/demo/imageqrc?qrcId=BD1P002RS4PJ6HNM82HQSADEC1DBIGQK&height=330&width=330</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>protectioncodeexpirationdate</ns2:key>
<ns2:value>2023-05-13T14:58:31.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2023-05-10T14:58:32.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>paymenttoken</ns2:key>
<ns2:value>SUBSCRIPTION</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>BUSINESS</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>externaltransaction</ns2:key>
<ns2:value>BD1P002RS4PJ6HNM82HQSADEC1DBIGQK</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>34561043</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isreversed</ns2:key>
<ns2:value>true</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:InvoiceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"InvoiceRequest": {
"version": "VERSION_2",
"payer": "364",
"payee": "34561043",
"amount": 10.12,
"clientTransaction": "ctid1234566789",
"description": "Только привязка",
"operationInfo": {
"attribute": [
{
"key": "PAYMENTTOKEN",
"value": "subscription"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"InvoiceResponse": {
"dateTime": "2023-05-10T14:41:45.000+03:00",
"operationInfo": {
"id": 1003637096,
"attribute": [
{
"value": "RUB",
"key": "targetcurrencycode"
},
{
"value": "Только привязка",
"key": "description"
},
{
"value": "3",
"key": "typeid"
},
{
"value": "10.12",
"key": "sourceamount"
},
{
"value": "Система быстрых платежей",
"key": "targetalias"
},
{
"value": "ctid1234566789",
"key": "clienttransaction"
},
{
"value": "https:\/\/qr.nspk.ru\/BD1P007LLFJGS8VT8EOBLUFHG8BMHTH9?type=03&bank=100000000061&sum=1012&cur=RUB&crc=0EBF",
"key": "qrpayload"
},
{
"value": "CREATED",
"key": "statusid"
},
{
"value": "https:\/\/demo.sbp.payanyway.ru\/admin\/mnt\/demo\/imageqrc?qrcId=BD1P007LLFJGS8VT8EOBLUFHG8BMHTH9&height=330&width=330",
"key": "qrlink"
},
{
"value": "2023-05-13T14:41:44.000+03:00",
"key": "protectioncodeexpirationdate"
},
{
"value": "0",
"key": "haschildren"
},
{
"value": "2023-05-10T14:41:46.000+03:00",
"key": "modified"
},
{
"value": "subscription",
"key": "paymenttoken"
},
{
"value": "364",
"key": "targetaccountid"
},
{
"value": "BUSINESS",
"key": "category"
},
{
"value": "BD1P007LLFJGS8VT8EOBLUFHG8BMHTH9",
"key": "externaltransaction"
},
{
"value": "10.12",
"key": "sourceamounttotal"
},
{
"value": "RUB",
"key": "sourcecurrencycode"
},
{
"value": "1",
"key": "isinvoice"
},
{
"value": "1",
"key": "invoicerequest"
},
{
"value": "10.12",
"key": "sourceaccounttotal"
},
{
"value": "34561043",
"key": "sourceaccountid"
},
{
"value": "true",
"key": "isreversed"
}
]
},
"clientTransaction": "ctid1234566789",
"transaction": 1003637096,
"status": "CREATED"
}
}
}
}
Пример уведомления методом POST для ТСП на url «Привязка счёта плательщика» об успешной привязке счёта:
NOTIFICATION=RECURRING_PAYMENT_SUBSCRIPTION&ACCOUNT_ID=34561043&OPERATION_ID=1003637109&TRANSACTION_ID=ctid123456789&CORRACCOUNT_ID=364&PAYMENTTOKEN=01003637109&ADDITIONAL_ATTRIBUTES=SBPBANK%3D%D0%9D%D0%9A%D0%9E+%D0%9C%D0%BE%D0%BD%D0%B5%D1%82%D0%B0
Значение атрибута SBPBANK
передается в url-кодировке. ТСП требуется ответить на уведомление кодом http-status
=200
и текстом SUCCESS
. Если от ТСП не получен ответ с первого раза, будут повторяться попытки доставки уведомления.
Оплата с привязкой счёта
ТСП нужно сформировать InvoiceRequest
со значением request в атрибуте PAYMENTTOKEN
. По такому QR-коду Плательщику будет предложено перейти в приложение Банка Плательщика для оплаты и разрешить переводы без подтверждения. После успешной оплаты ТСП получит уведомление на pay url или url, указанный в «Действия при зачислении/списании» (в личном кабинете moneta.ru) или «Вызов url» (в личном кабинете payanyway.ru), после успешной привязки счёта - на url «Привязка счёта плательщика».
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:InvoiceRequest mes:version="VERSION_2">
<mes:payer>364</mes:payer>
<mes:payee>34561043</mes:payee>
<mes:amount>11.12</mes:amount>
<mes:clientTransaction>ctid123456789</mes:clientTransaction>
<mes:description>Оплата с последующей привязкой</mes:description>
<mes:operationInfo>
<mes:attribute>
<mes:key>PAYMENTTOKEN</mes:key>
<mes:value>REQUEST</mes:value>
</mes:attribute>
</mes:operationInfo>
</mes:InvoiceRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:InvoiceResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:status>CREATED</ns2:status>
<ns2:dateTime>2023-05-10T14:58:32.000+03:00</ns2:dateTime>
<ns2:transaction>1003637109</ns2:transaction>
<ns2:clientTransaction>ctid123456789</ns2:clientTransaction>
<ns2:operationInfo>
<ns2:id>1003637109</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>Оплата с последующей привязкой</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>3</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>Система быстрых платежей</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>ctid123456789</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>qrpayload</ns2:key>
<ns2:value>https://qr.nspk.ru/BD1P002RS4PJ6HNM82HQSADEC1DBIGQK?type=02&bank=100000000061&sum=1112&cur=RUB&crc=BDD5</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>CREATED</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>qrlink</ns2:key>
<ns2:value>https://demo.sbp.payanyway.ru/admin/mnt/demo/imageqrc?qrcId=BD1P002RS4PJ6HNM82HQSADEC1DBIGQK&height=330&width=330</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>protectioncodeexpirationdate</ns2:key>
<ns2:value>2023-05-13T14:58:31.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2023-05-10T14:58:32.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>paymenttoken</ns2:key>
<ns2:value>REQUEST</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>BUSINESS</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>externaltransaction</ns2:key>
<ns2:value>BD1P002RS4PJ6HNM82HQSADEC1DBIGQK</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>34561043</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isreversed</ns2:key>
<ns2:value>true</ns2:value>
</ns2:attribute>
<ns2:operationInfo>
</ns2:InvoiceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"InvoiceRequest": {
"version": "VERSION_2",
"payer": "364",
"payee": "34561043",
"amount": 10.12,
"clientTransaction": "ctid1234566789",
"description": "Оплата с последующей привязкой",
"operationInfo": {
"attribute": [
{
"key": "PAYMENTTOKEN",
"value": "request"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"InvoiceResponse": {
"dateTime": "2023-05-10T14:41:45.000+03:00",
"operationInfo": {
"id": 1003637096,
"attribute": [
{
"value": "RUB",
"key": "targetcurrencycode"
},
{
"value": "Оплата с последующей привязкой",
"key": "description"
},
{
"value": "3",
"key": "typeid"
},
{
"value": "10.12",
"key": "sourceamount"
},
{
"value": "Система быстрых платежей",
"key": "targetalias"
},
{
"value": "ctid1234566789",
"key": "clienttransaction"
},
{
"value": "https:\/\/qr.nspk.ru\/BD1P007LLFJGS8VT8EOBLUFHG8BMHTH9?type=02&bank=100000000061&sum=1012&cur=RUB&crc=0EBF",
"key": "qrpayload"
},
{
"value": "CREATED",
"key": "statusid"
},
{
"value": "https:\/\/demo.sbp.payanyway.ru\/admin\/mnt\/demo\/imageqrc?qrcId=BD1P007LLFJGS8VT8EOBLUFHG8BMHTH9&height=330&width=330",
"key": "qrlink"
},
{
"value": "2023-05-13T14:41:44.000+03:00",
"key": "protectioncodeexpirationdate"
},
{
"value": "0",
"key": "haschildren"
},
{
"value": "2023-05-10T14:41:46.000+03:00",
"key": "modified"
},
{
"value": "request",
"key": "paymenttoken"
},
{
"value": "364",
"key": "targetaccountid"
},
{
"value": "BUSINESS",
"key": "category"
},
{
"value": "BD1P007LLFJGS8VT8EOBLUFHG8BMHTH9",
"key": "externaltransaction"
},
{
"value": "10.12",
"key": "sourceamounttotal"
},
{
"value": "RUB",
"key": "sourcecurrencycode"
},
{
"value": "1",
"key": "isinvoice"
},
{
"value": "1",
"key": "invoicerequest"
},
{
"value": "10.12",
"key": "sourceaccounttotal"
},
{
"value": "34561043",
"key": "sourceaccountid"
},
{
"value": "true",
"key": "isreversed"
}
]
},
"clientTransaction": "ctid1234566789",
"transaction": 1003637096,
"status": "CREATED"
}
}
}
}
Пример уведомления методом POST для ТСП на url «Привязка счёта плательщика» об успешной привязке счёта:
NOTIFICATION=RECURRING_PAYMENT_SUBSCRIPTION&ACCOUNT_ID=34561043&OPERATION_ID=1003637109&TRANSACTION_ID=ctid12345678&CORRACCOUNT_ID=364&PAYMENTTOKEN=01003637109&ADDITIONAL_ATTRIBUTES=FIOPLAT%3D%D0%98%D0%92%D0%90%D0%9D%2B%D0%98%D0%92%D0%90%D0%9D%D0%9E%D0%92%D0%98%D0%A7%2B%D0%98%26SBPPHONE%3D0079371234567%26SBPBANK%3D%D0%9D%D0%9A%D0%9E+%D0%9C%D0%BE%D0%BD%D0%B5%D1%82%D0%B0
Значение атрибутов FIOPLAT
, SBPPHONE
, SBPBANK
передается в url-кодировке. ТСП требуется ответить на уведомление кодом http-status
=200
и текстом SUCCESS
. Если от ТСП не получен ответ с первого раза, будут повторяться попытки доставки уведомления.
Оплата с привязанного счёта
Запрос на оплату с привязанного счёта возможен, если ТСП известно, что Плательщик ранее привязал счёт для оплаты и у ТСП есть сохранённое для данного Плательщика значение PAYMENTTOKEN
. ТСП нужно сформировать PaymentRequest
со значением PAYMENTTOKEN
, полученным при оформлении привязки счёта. После успешной оплаты ТСП получит уведомление на pay url или url, указанный в «Действия при зачислении/списании» (в личном кабинете moneta.ru) или «Вызов url» (в личном кабинете payanyway.ru).
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
SOAP запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mes="http://moneta.ru/schemas/messages.xsd">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:Username>username</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mes:PaymentRequest mes:version="VERSION_2">
<mes:payer>364</mes:payer>
<mes:payee>34561043</mes:payee>
<mes:amount>11.12</mes:amount>
<mes:isPayerAmount>false</mes:isPayerAmount>
<mes:paymentPassword>12345</mes:paymentPassword>
<mes:clientTransaction>SBSCR_100523-002</mes:clientTransaction>
<mes:description>Платеж по подписке</mes:description>
<mes:operationInfo>
<mes:attribute>
<mes:key>PAYMENTTOKEN</mes:key>
<mes:value>03056694</mes:value>
</mes:attribute>
</mes:operationInfo>
</mes:PaymentRequest>
</soapenv:Body>
</soapenv:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:id>3179452</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>Платеж по подписке</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>3</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>СБП QR</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>SBSCR_100523-002</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>CREATED</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2023-05-10T15:51:14.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>paymenttoken</ns2:key>
<ns2:value>03056694</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>initby</ns2:key>
<ns2:value>services</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>BUSINESS</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>externaltransaction</ns2:key>
<ns2:value>BD100011PHDVBJ9N8QGQLTO5VADPJUEU</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>11.12</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>34561043</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isreversed</ns2:key>
<ns2:value>true</ns2:value>
</ns2:attribute>
</ns2:PaymentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"PaymentRequest": {
"version": "VERSION_2",
"payer": "364",
"payee": "34561043",
"amount": 13.12,
"isPayerAmount": false,
"clientTransaction": "1234567735_12",
"description": "Оплата по токену",
"operationInfo": {
"attribute": [
{
"key": "PAYMENTTOKEN",
"value": "03056694"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope": {
"Body": {
"PaymentResponse": {
"id": 3179467,
"attribute": [
{
"value": "RUB",
"key": "targetcurrencycode"
},
{
"value": "Оплата по токену",
"key": "description"
},
{
"value": "3",
"key": "typeid"
},
{
"value": "13.12",
"key": "sourceamount"
},
{
"value": "СБП QR",
"key": "targetalias"
},
{
"value": "1234567735_12",
"key": "clienttransaction"
},
{
"value": "CREATED",
"key": "statusid"
},
{
"value": "0",
"key": "haschildren"
},
{
"value": "2023-05-10T15:56:52.000+03:00",
"key": "modified"
},
{
"value": "03056694",
"key": "paymenttoken"
},
{
"value": "364",
"key": "targetaccountid"
},
{
"value": "services",
"key": "initby"
},
{
"value": "BUSINESS",
"key": "category"
},
{
"value": "BD10000FCRFB830492GRHQ1B05NOII2I",
"key": "externaltransaction"
},
{
"value": "13.12",
"key": "sourceamounttotal"
},
{
"value": "RUB",
"key": "sourcecurrencycode"
},
{
"value": "13.12",
"key": "sourceaccounttotal"
},
{
"value": "34561043",
"key": "sourceaccountid"
},
{
"value": "true",
"key": "isreversed"
}
]
}
}
}
}
Протокол C2B. Возврат ранее принятых QR-платежей (C2B refund)
Возврат по операции QR-платежа (C2B refund) производится по номеру мобильного телефона, с которого выполнялась оплата, и в тот же банк, с которого был первоначальный QR-платеж.
Для протокола С2В refund используется метод RefundRequest
.
В этом запросе, кроме прочих, требуется передать параметры transactionId
(операция QR-платежа, по которой выполняется возврат) и SECUREDFIELD:unsBo_79
=0
.
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:RefundRequest xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:transactionId>1234567</ns2:transactionId>
<ns2:amount>10.01</ns2:amount>
<ns2:paymentPassword>paymentpassword</ns2:paymentPassword>
<ns2:clientTransaction>abc123</ns2:clientTransaction>
<ns2:description>ВОЗВРАТ</ns2:description>
<ns2:operationInfo>
<ns2:attribute>
<ns2:key>SECUREDFIELD:unsBo_79</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:RefundRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:RefundResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:id>1234568</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:idpo_20</ns2:key>
<ns2:value>0079370000000</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>ВОЗВРАТ</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>18</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>-10.01</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>сбп QR</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:ioopkcsbp_27</ns2:key>
<ns2:value>00000000000000000000000000000000</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>abc123</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>isrefund</ns2:key>
<ns2:value>1</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetamount</ns2:key>
<ns2:value>10.01</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>TAKENIN_NOTSENT</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2020-11-20T13:28:22.000+03:00</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>BUSINESS</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>parentid</ns2:key>
<ns2:value>1234567</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:idbp_24_name</ns2:key>
<ns2:value>НКО Монета</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>-10.01</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>-10.01</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>112233</ns2:value>
</ns2:attribute>
</ns2:RefundResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "login",
"Password": "password"
}
}
},
"Body": {
"RefundRequest": {
"transactionId": "1234567",
"amount": "10.01",
"paymentPassword": "paymentpassword",
"clientTransaction": "abc123",
"description": "Возврат",
"operationInfo": {
"attribute": [
{
"key": "SECUREDFIELD:unsBo_79",
"value": "0"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"RefundResponse":{
"id":1234568,
"attribute":[
{
"value":"RUB",
"key":"targetcurrencycode"
},
{
"value":"0079370000000",
"key":"customfield:idpo_20"
},
{
"value":"Возврат",
"key":"description"
},
{
"value":"18",
"key":"typeid"
},
{
"value":"-10.01",
"key":"sourceamount"
},
{
"value":"СБП QR",
"key":"targetalias"
},
{
"value":"00000000000000000000000000000000",
"key":"customfield:ioopkcsbp_27"
},
{
"value":"abc123",
"key":"clienttransaction"
},
{
"value":"1",
"key":"isrefund"
},
{
"value":"10.01",
"key":"targetamount"
},
{
"value":"TAKENIN_NOTSENT",
"key":"statusid"
},
{
"value":"0",
"key":"haschildren"
},
{
"value":"2020-11-20T13:16:46.000+03:00",
"key":"modified"
},
{
"value":"364",
"key":"targetaccountid"
},
{
"value":"BUSINESS",
"key":"category"
},
{
"value":"1234567",
"key":"parentid"
},
{
"value":"НКО Монета",
"key":"customfield:idbp_24_name"
},
{
"value":"-10.01",
"key":"sourceamounttotal"
},
{
"value":"RUB",
"key":"sourcecurrencycode"
},
{
"value":"-10.01",
"key":"sourceaccounttotal"
},
{
"value":"112233",
"key":"sourceaccountid"
}
]
}
}
}
}
Протокол B2C «Прочие выплаты физическому лицу»
«Прочие выплаты физическому лицу» - это перевод денег со счёта юридического лица и/или индивидуального предпринимателя на счёт физического лица по номеру мобильного телефона. Например, выплата заработной платы или выдача займов.
Примечание: Может пригодиться раздел «Описание полей для переводов СБП».
Шаг 1 (B2COther). Запросить список банков-участников по сценарию B2COther
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>364.2</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>2</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:unsBo_79</ns11:name>
<ns11:value>0</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:scenarios</ns11:name>
<ns11:value>B2COther</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>364.2</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="994" maxlength="12" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:scenarios</ns2:attribute-name>
<ns2:value>B2COther</ns2:value>
<ns2:label>Сценарий участника СБП</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="true" temporary="false" type="ENUM">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
<ns2:enum>
<ns2:item id="500000000006">Digital payment</ns2:item>
<ns2:item id="100000000164">KEB EichEnBi Bank</ns2:item>
...
<ns2:item id="100000000030">ЮниКредит Банк</ns2:item>
<ns2:item id="100000000022">ЯНДЕКС.ДЕНЬГИ</ns2:item>
</ns2:enum>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "Username",
"Password": "Password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "364.2",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:payment_stage",
"value": "2"
},
{
"name": "SECUREDFIELD:unsBo_79",
"value": "0"
},
{
"name": "SECUREDFIELD:scenarios",
"value": "B2COther"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"GetNextStepResponse":{
"providerId":"364.2",
"nextStep":"PRE",
"fields":{
"field":[
{
"temporary":false,
"hidden":false,
"maxlength":12,
"attribute-name":"SECUREDFIELD:scenarios",
"orderBy":7,
"label":"Сценарий участника СБП",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":994,
"value":"B2COther"
},
{
"temporary":false,
"hidden":false,
"maxlength":12,
"attribute-name":"SECUREDFIELD:idBp_24",
"orderBy":2,
"label":"Идентификатор банка получателя",
"type":"ENUM",
"steps":[
"PRE"
],
"enum":{
"item":[
{
"id": "500000000006",
"value": "Digital payment"
},
{
"id": "100000000164",
"value": "KEB EichEnBi Bank"
},
...
{
"id": "100000000030",
"value": "ЮниКредит Банк"
},
{
"id": "100000000022",
"value": "ЯНДЕКС.ДЕНЬГИ"
}
]
},
"required":true,
"readonly":false,
"comment":"",
"id":24
}
]
}
}
}
}
}
Шаг 2 (B2COther). Запрос PAM Получателя платежа
На этом шаге нужно:
- передать номер телефона, по которому будет выполнен перевод денег по СБП;
- передать счёт списания. Он должен быть зарегистрирован в СБП (уточните у сотрудника НКО «МОНЕТА» (ООО);
- передать id банка в
SECUREDFIELD:idBp_24
, в который планируется перевести деньги.
Примечание: Значение параметра isPayerAmount
=false
/true
на Шаге 4 (B2COther). Выполнение перевода СБП.
Если в запросе на Шаге 4 (B2COther). Выполнение перевода СБП используется значение параметра isPayerAmount
=false
(сумма зачисления), то в этом же запросе в качестве значения amount передается значение суммы, использованной ранее в параметре SECUREDFIELD:sumOpSbp_44
.
Если в запросе на Шаге 4 (B2COther). Выполнение перевода СБП используется значение параметра isPayerAmount
=true
(сумма списания), то в этом же запросе в качестве значения amount передается значение суммы, использованной ранее в параметре SECUREDFIELD:sourceAmount
.
Значение SECUREDFIELD:sourceAmount
возвращается в ответе на Шаге 2 (B2COther). Запрос PAM Получателя платежа.
На Шаге 2 (B2COther). Запрос PAM Получателя платежа можно указать атрибут SECUREDFIELD:sourceAmount
(сумма списания): SECUREDFIELD:sourceAmount
будет обязательным, если не указан атрибут SECUREDFIELD:sumOpSbp_44
.
Пример с использованием атрибута SECUREDFIELD:sumOpSbp_44
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11=http://moneta.ru/schemas/messages-serviceprovider-server.xsd>
<ns11:providerId>364.1</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:nbsOt_30</ns11:name>
<ns11:value>12345678</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:np_32</ns11:name>
<ns11:value>TIV53</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>CUSTOMFIELD:idPo_20</ns11:name>
<ns11:value>+79999999999</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:idBp_24</ns11:name>
<ns11:value>100000000120</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>3</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:sumOpSbp_44</ns11:name>
<ns11:value>10.21</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>364.1</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="32" maxlength="140" orderBy="6" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:np_32</ns2:attribute-name>
<ns2:value>TIV53_REF</ns2:value>
<ns2:label>Назначение Платежа</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="995" maxlength="9" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sourceAmount</ns2:attribute-name>
<ns2:value>10.52</ns2:value>
<ns2:label>Сумма списания</ns2:label>
<ns2:comment/>
<ns2:dependency>{44}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:02:17.458Z</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="20" maxlength="13" orderBy="3" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:value>+79999999999</ns2:value>
<ns2:label>Номер телефона получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:05:17.458Z</ns2:value>
<ns2:label>Время истечения ожидания следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>4</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="1111" maxlength="16" orderBy="8" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:operationId2Refund</ns2:attribute-name>
<ns2:label>Номер операции для возврата</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:value>100000000120</ns2:value>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="140" orderBy="9" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>PAM покупателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:value>10.21</ns2:value>
<ns2:label>Сумма зачисления</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="30" maxlength="10" orderBy="3" pattern="^(\d*)$" readonly="false"
required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:value>12345678</ns2:value>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
<ns2:dependency>{1111}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200814100006157910009923581</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "364.1",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:nbsOt_30",
"value": "12345678"
},
{
"name": "SECUREDFIELD:np_32",
"value": "TIV53"
},
{
"name": "CUSTOMFIELD:idPo_20",
"value": "+79999999999"
},
{
"name": "SECUREDFIELD:idBp_24",
"value": "100000000120"
},
{
"name": "SECUREDFIELD:payment_stage",
"value": "3"
},
{
"name": "SECUREDFIELD:sumOpSbp_44",
"value": "10.21"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"GetNextStepResponse":{
"providerId":"364.1",
"nextStep":"PRE",
"fields":{
"field":[
{
"temporary":false,
"hidden":false,
"maxlength":140,
"attribute-name":"SECUREDFIELD:np_32",
"orderBy":6,
"label":"Назначение Платежа",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":32,
"value":"TIV53"
},
{
"temporary":false,
"hidden":false,
"dependency":"{44}==\"\"",
"maxlength":9,
"attribute-name":"SECUREDFIELD:sourceAmount",
"orderBy":7,
"label":"Сумма списания",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":995,
"value":"10.52"
},
{
"temporary":false,
"hidden":false,
"maxlength":32,
"attribute-name":"SECUREDFIELD:minTime",
"orderBy":7,
"label":"Минимальное время следующего шага.",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":996,
"value":"2020-08-15T12:02:17.458Z"
},
{
"temporary":false,
"hidden":false,
"maxlength":13,
"attribute-name":"CUSTOMFIELD:idPo_20",
"orderBy":3,
"label":"Номер телефона получателя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":20,
"value":"+79999999999"
},
{
"temporary":false,
"hidden":false,
"maxlength":32,
"attribute-name":"SECUREDFIELD:expirationTime",
"orderBy":8,
"label":"Время истечения ожидания следующего шага",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":997,
"value":"2020-08-15T12:05:17.458Z"
},
{
"temporary":false,
"hidden":false,
"maxlength":1,
"attribute-name":"SECUREDFIELD:payment_stage",
"orderBy":9,
"label":"Стадия выполнения оплаты",
"type":"TEXT",
"steps":[
"PRE"
],
"required":true,
"readonly":false,
"comment":"",
"id":998,
"value":"4"
},
{
"temporary":false,
"readonly":false,
"hidden":true,
"maxlength":16,
"attribute-name":"SECUREDFIELD:operationId2Refund",
"orderBy":8,
"comment":"",
"label":"Номер операции для возврата",
"id":1111,
"type":"TEXT",
"steps":[
"PRE"
],
"required":false
},
{
"temporary":false,
"hidden":false,
"maxlength":12,
"attribute-name":"SECUREDFIELD:idBp_24",
"orderBy":2,
"label":"Идентификатор банка получателя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":24,
"value":"100000000120"
},
{
"temporary":false,
"readonly":false,
"hidden":false,
"maxlength":140,
"attribute-name":"CUSTOMFIELD:pamPo_74",
"orderBy":9,
"comment":"",
"label":"PAM покупателя",
"id":74,
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":false
},
{
"temporary":false,
"hidden":false,
"maxlength":9,
"attribute-name":"SECUREDFIELD:sumOpSbp_44",
"orderBy":4,
"label":"Сумма зачисления",
"type":"TEXT",
"steps":[
"PRE"
],
"required":true,
"readonly":false,
"comment":"",
"id":44,
"value":"10.21"
},
{
"temporary":false,
"hidden":false,
"dependency":"{1111}==\"\"",
"maxlength":10,
"attribute-name":"SECUREDFIELD:nbsOt_30",
"pattern":"^(\\d*)$",
"orderBy":3,
"label":"Номер Счета Отправителя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":30,
"value":"12345678"
},
{
"temporary":false,
"hidden":true,
"maxlength":29,
"attribute-name":"SECUREDFIELD:unsBo_79",
"orderBy":1,
"label":"Уникальный Номер Сообщения от Банка Отправителя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":true,
"readonly":false,
"comment":"",
"id":79,
"value":"20200814100006157910009923581"
}
]
}
}
}
}
}
Пример с использованием атрибута SECUREDFIELD:sourceAmount
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11=http://moneta.ru/schemas/messages-serviceprovider-server.xsd>
<ns11:providerId>364.1</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:nbsOt_30</ns11:name>
<ns11:value>12345678</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:np_32</ns11:name>
<ns11:value>TIV53</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>CUSTOMFIELD:idPo_20</ns11:name>
<ns11:value>+79999999999</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:idBp_24</ns11:name>
<ns11:value>100000000120</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>3</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:sourceAmount</ns11:name>
<ns11:value>10.52</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>364.1</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="32" maxlength="140" orderBy="6" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:np_32</ns2:attribute-name>
<ns2:value>TIV53_REF</ns2:value>
<ns2:label>Назначение Платежа</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="995" maxlength="9" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sourceAmount</ns2:attribute-name>
<ns2:value>10.52</ns2:value>
<ns2:label>Сумма списания</ns2:label>
<ns2:comment/>
<ns2:dependency>{44}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:02:17.458Z</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="20" maxlength="13" orderBy="3" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:value>+79999999999</ns2:value>
<ns2:label>Номер телефона получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:05:17.458Z</ns2:value>
<ns2:label>Время истечения ожидания следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>4</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="1111" maxlength="16" orderBy="8" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:operationId2Refund</ns2:attribute-name>
<ns2:label>Номер операции для возврата</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:value>100000000120</ns2:value>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="140" orderBy="9" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>PAM покупателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:value>10.21</ns2:value>
<ns2:label>Сумма зачисления</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="30" maxlength="10" orderBy="3" pattern="^(\d*)$" readonly="false"
required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:value>12345678</ns2:value>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
<ns2:dependency>{1111}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200814100006157910009923581</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "364.1",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:nbsOt_30",
"value": "12345678"
},
{
"name": "SECUREDFIELD:np_32",
"value": "TIV53"
},
{
"name": "CUSTOMFIELD:idPo_20",
"value": "+79999999999"
},
{
"name": "SECUREDFIELD:idBp_24",
"value": "100000000120"
},
{
"name": "SECUREDFIELD:payment_stage",
"value": "3"
},
{
"name": "SECUREDFIELD:sourceAmount",
"value": "10.52"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"GetNextStepResponse":{
"providerId":"364.1",
"nextStep":"PRE",
"fields":{
"field":[
{
"temporary":false,
"hidden":false,
"maxlength":140,
"attribute-name":"SECUREDFIELD:np_32",
"orderBy":6,
"label":"Назначение Платежа",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":32,
"value":"TIV53"
},
{
"temporary":false,
"hidden":false,
"dependency":"{44}==\"\"",
"maxlength":9,
"attribute-name":"SECUREDFIELD:sourceAmount",
"orderBy":7,
"label":"Сумма списания",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":995,
"value":"10.52"
},
{
"temporary":false,
"hidden":false,
"maxlength":32,
"attribute-name":"SECUREDFIELD:minTime",
"orderBy":7,
"label":"Минимальное время следующего шага.",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":996,
"value":"2020-08-15T12:02:17.458Z"
},
{
"temporary":false,
"hidden":false,
"maxlength":13,
"attribute-name":"CUSTOMFIELD:idPo_20",
"orderBy":3,
"label":"Номер телефона получателя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":20,
"value":"+79999999999"
},
{
"temporary":false,
"hidden":false,
"maxlength":32,
"attribute-name":"SECUREDFIELD:expirationTime",
"orderBy":8,
"label":"Время истечения ожидания следующего шага",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":997,
"value":"2020-08-15T12:05:17.458Z"
},
{
"temporary":false,
"hidden":false,
"maxlength":1,
"attribute-name":"SECUREDFIELD:payment_stage",
"orderBy":9,
"label":"Стадия выполнения оплаты",
"type":"TEXT",
"steps":[
"PRE"
],
"required":true,
"readonly":false,
"comment":"",
"id":998,
"value":"4"
},
{
"temporary":false,
"readonly":false,
"hidden":true,
"maxlength":16,
"attribute-name":"SECUREDFIELD:operationId2Refund",
"orderBy":8,
"comment":"",
"label":"Номер операции для возврата",
"id":1111,
"type":"TEXT",
"steps":[
"PRE"
],
"required":false
},
{
"temporary":false,
"hidden":false,
"maxlength":12,
"attribute-name":"SECUREDFIELD:idBp_24",
"orderBy":2,
"label":"Идентификатор банка получателя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":24,
"value":"100000000120"
},
{
"temporary":false,
"readonly":false,
"hidden":false,
"maxlength":140,
"attribute-name":"CUSTOMFIELD:pamPo_74",
"orderBy":9,
"comment":"",
"label":"PAM покупателя",
"id":74,
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":false
},
{
"temporary":false,
"hidden":false,
"maxlength":9,
"attribute-name":"SECUREDFIELD:sumOpSbp_44",
"orderBy":4,
"label":"Сумма зачисления",
"type":"TEXT",
"steps":[
"PRE"
],
"required":true,
"readonly":false,
"comment":"",
"id":44,
"value":"10.21"
},
{
"temporary":false,
"hidden":false,
"dependency":"{1111}==\"\"",
"maxlength":10,
"attribute-name":"SECUREDFIELD:nbsOt_30",
"pattern":"^(\\d*)$",
"orderBy":3,
"label":"Номер Счета Отправителя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":30,
"value":"12345678"
},
{
"temporary":false,
"hidden":true,
"maxlength":29,
"attribute-name":"SECUREDFIELD:unsBo_79",
"orderBy":1,
"label":"Уникальный Номер Сообщения от Банка Отправителя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":true,
"readonly":false,
"comment":"",
"id":79,
"value":"20200814100006157910009923581"
}
]
}
}
}
}
}
Примечание: Использование параметра SOURCETARIFFMULTIPLIER
на Шаге 4 (B2COther). Выполнение перевода СБП.
Если в запросе на Шаге 4 (B2COther). Выполнение перевода СБП используется значение параметра isPayerAmount
=true
(сумма списания) в сочетании с параметром SOURCETARIFFMULTIPLIER
, то на Шаге 2 (B2COther). Запрос PAM Получателя платежа следует указать атрибут SECUREDFIELD:SOURCETARIFFMULTIPLIER
.
Примеры с использованием атрибутов SECUREDFIELD:sourceAmount, isPayerAmount=true, SECUREDFIELD:SOURCETARIFFMULTIPLIER
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11=http://moneta.ru/schemas/messages-serviceprovider-server.xsd>
<ns11:providerId>364.1</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:nbsOt_30</ns11:name>
<ns11:value>12345678</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:np_32</ns11:name>
<ns11:value>TIV53</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>CUSTOMFIELD:idPo_20</ns11:name>
<ns11:value>+79999999999</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:idBp_24</ns11:name>
<ns11:value>100000000120</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>3</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name> SECUREDFIELD:sourceAmount </ns11:name>
<ns11:value>10</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name> SECUREDFIELD:SOURCETARIFFMULTIPLIER</ns11:name>
<ns11:value>0.2</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>364.1</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="32" maxlength="140" orderBy="6" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:np_32</ns2:attribute-name>
<ns2:value>TIV53_REF</ns2:value>
<ns2:label>Назначение Платежа</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="992" maxlength="9" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:SOURCETARIFFMULTIPLIER</ns2:attribute-name>
<ns2:value>0.2</ns2:value>
<ns2:label>Управляемый размер комиссии</ns2:label>
<ns2:comment/>
<ns2:dependency>{44}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="995" maxlength="9" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sourceAmount</ns2:attribute-name>
<ns2:value>10</ns2:value>
<ns2:label>Сумма списания</ns2:label>
<ns2:comment/>
<ns2:dependency>{44}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:02:17.458Z</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="20" maxlength="13" orderBy="3" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:value>+79999999999</ns2:value>
<ns2:label>Номер телефона получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:05:17.458Z</ns2:value>
<ns2:label>Время истечения ожидания следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>4</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="1111" maxlength="16" orderBy="8" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:operationId2Refund</ns2:attribute-name>
<ns2:label>Номер операции для возврата</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:value>100000000120</ns2:value>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="140" orderBy="9" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>PAM покупателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:value>8</ns2:value>
<ns2:label>Сумма зачисления</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="30" maxlength="10" orderBy="3" pattern="^(\d*)$" readonly="false"
required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:value>12345678</ns2:value>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
<ns2:dependency>{1111}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200814100006157910009923581</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>364.1</ns2:providerId>
<ns2:nextStep>PRE</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="32" maxlength="140" orderBy="6" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:np_32</ns2:attribute-name>
<ns2:value>TIV53_REF</ns2:value>
<ns2:label>Назначение Платежа</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="992" maxlength="9" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:SOURCETARIFFMULTIPLIER</ns2:attribute-name>
<ns2:value>0.2</ns2:value>
<ns2:label>Управляемый размер комиссии</ns2:label>
<ns2:comment/>
<ns2:dependency>{44}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="995" maxlength="9" orderBy="7" readonly="false" required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sourceAmount</ns2:attribute-name>
<ns2:value>10</ns2:value>
<ns2:label>Сумма списания</ns2:label>
<ns2:comment/>
<ns2:dependency>{44}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:02:17.458Z</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="20" maxlength="13" orderBy="3" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:idPo_20</ns2:attribute-name>
<ns2:value>+79999999999</ns2:value>
<ns2:label>Номер телефона получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:05:17.458Z</ns2:value>
<ns2:label>Время истечения ожидания следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>4</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="1111" maxlength="16" orderBy="8" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:operationId2Refund</ns2:attribute-name>
<ns2:label>Номер операции для возврата</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="24" maxlength="12" orderBy="2" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:idBp_24</ns2:attribute-name>
<ns2:value>100000000120</ns2:value>
<ns2:label>Идентификатор банка получателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="140" orderBy="9" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:label>PAM покупателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="44" maxlength="9" orderBy="4" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:sumOpSbp_44</ns2:attribute-name>
<ns2:value>8</ns2:value>
<ns2:label>Сумма зачисления</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="30" maxlength="10" orderBy="3" pattern="^(\d*)$" readonly="false"
required="false" temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:nbsOt_30</ns2:attribute-name>
<ns2:value>12345678</ns2:value>
<ns2:label>Номер Счета Отправителя</ns2:label>
<ns2:comment/>
<ns2:dependency>{1111}==""</ns2:dependency>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200814100006157910009923581</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "364.1",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:nbsOt_30",
"value": "12345678"
},
{
"name": "SECUREDFIELD:np_32",
"value": "TIV53"
},
{
"name": "CUSTOMFIELD:idPo_20",
"value": "+79999999999"
},
{
"name": "SECUREDFIELD:idBp_24",
"value": "100000000120"
},
{
"name": "SECUREDFIELD:payment_stage",
"value": "3"
},
{
"name": "SECUREDFIELD:sourceAmount",
"value": "10"
},
{
"name": "SECUREDFIELD:SOURCETARIFFMULTIPLIER",
"value": "0.2"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"GetNextStepResponse":{
"providerId":"364.1",
"nextStep":"PRE",
"fields":{
"field":[
{
"temporary":false,
"hidden":false,
"maxlength":140,
"attribute-name":"SECUREDFIELD:np_32",
"orderBy":6,
"label":"Назначение Платежа",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":32,
"value":"TIV53"
},
{
"temporary": false,
"hidden": false,
"dependency": "{44}==\"\"",
"maxlength": 9,
"attribute-name": "SECUREDFIELD:SOURCETARIFFMULTIPLIER",
"orderBy": 7,
"label": "Управляемый размер комиссии",
"type": "TEXT",
"steps": [
"PRE"
],
"required": false,
"readonly": false,
"comment": "",
"id": 992,
"value": "0.2"
},
{
"temporary":false,
"hidden":false,
"dependency":"{44}==\"\"",
"maxlength":9,
"attribute-name":"SECUREDFIELD:sourceAmount",
"orderBy":7,
"label":"Сумма списания",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":995,
"value":"10"
},
{
"temporary":false,
"hidden":false,
"maxlength":32,
"attribute-name":"SECUREDFIELD:minTime",
"orderBy":7,
"label":"Минимальное время следующего шага.",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":996,
"value":"2020-08-15T12:02:17.458Z"
},
{
"temporary":false,
"hidden":false,
"maxlength":13,
"attribute-name":"CUSTOMFIELD:idPo_20",
"orderBy":3,
"label":"Номер телефона получателя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":20,
"value":"+79999999999"
},
{
"temporary":false,
"hidden":false,
"maxlength":32,
"attribute-name":"SECUREDFIELD:expirationTime",
"orderBy":8,
"label":"Время истечения ожидания следующего шага",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":997,
"value":"2020-08-15T12:05:17.458Z"
},
{
"temporary":false,
"hidden":false,
"maxlength":1,
"attribute-name":"SECUREDFIELD:payment_stage",
"orderBy":9,
"label":"Стадия выполнения оплаты",
"type":"TEXT",
"steps":[
"PRE"
],
"required":true,
"readonly":false,
"comment":"",
"id":998,
"value":"4"
},
{
"temporary":false,
"readonly":false,
"hidden":true,
"maxlength":16,
"attribute-name":"SECUREDFIELD:operationId2Refund",
"orderBy":8,
"comment":"",
"label":"Номер операции для возврата",
"id":1111,
"type":"TEXT",
"steps":[
"PRE"
],
"required":false
},
{
"temporary":false,
"hidden":false,
"maxlength":12,
"attribute-name":"SECUREDFIELD:idBp_24",
"orderBy":2,
"label":"Идентификатор банка получателя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":24,
"value":"100000000120"
},
{
"temporary":false,
"readonly":false,
"hidden":false,
"maxlength":140,
"attribute-name":"CUSTOMFIELD:pamPo_74",
"orderBy":9,
"comment":"",
"label":"PAM покупателя",
"id":74,
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":false
},
{
"temporary":false,
"hidden":false,
"maxlength":9,
"attribute-name":"SECUREDFIELD:sumOpSbp_44",
"orderBy":4,
"label":"Сумма зачисления",
"type":"TEXT",
"steps":[
"PRE"
],
"required":true,
"readonly":false,
"comment":"",
"id":44,
"value":"8"
},
{
"temporary":false,
"hidden":false,
"dependency":"{1111}==\"\"",
"maxlength":10,
"attribute-name":"SECUREDFIELD:nbsOt_30",
"pattern":"^(\\d*)$",
"orderBy":3,
"label":"Номер Счета Отправителя",
"type":"TEXT",
"steps":[
"PRE"
],
"required":false,
"readonly":false,
"comment":"",
"id":30,
"value":"12345678"
},
{
"temporary":false,
"hidden":true,
"maxlength":29,
"attribute-name":"SECUREDFIELD:unsBo_79",
"orderBy":1,
"label":"Уникальный Номер Сообщения от Банка Отправителя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":true,
"readonly":false,
"comment":"",
"id":79,
"value":"20200814100006157910009923581"
}
]
}
}
}
}
}
Шаг 3 (B2COther). Отобразить PAM-фразу (ФИО) Получателя перевода
На этом шаге нужно получить PAM-фразу (ФИО) Получателя перевода. При этом в полученном ответе на запрос будет указано время, за которое нужно успеть выполнить «Шаг 4 (B2COther). Выполнение перевода СБП». Ограничение по времени прописывается в полях 996 «Минимальное время следующего шага» и 997 «Время истечения ожидания следующего шага» ответа на запрос.
SECUREDFIELD:sumOpSbp_44 & isPayerAmount=false
SOAP запрос:
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>364.1</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:nbsOt_30</ns11:name>
<ns11:value>12345678</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:np_32</ns11:name>
<ns11:value>TIV53</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>CUSTOMFIELD:idPo_20</ns11:name>
<ns11:value>+79999999999</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:idBp_24</ns11:name>
<ns11:value>100000000120</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>4</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:unsBo_79</ns11:name>
<ns11:value>20200814100006157910009923581</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:sumOpSbp_44</ns11:name>
<ns11:value>10.21</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>364.1</ns2:providerId>
<ns2:nextStep>PAY</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:02:17.458+03:00</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:05:17.458+03:00</ns2:value>
<ns2:label>Время истечения ожидания следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>Payment</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="140" orderBy="9" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:steps>PAY</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:value>Петр Петрович П</ns2:value>
<ns2:label>PAM покупателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:steps>PAY</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200814100006157910009923581</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "364.1",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:nbsOt_30",
"value": "12345678"
},
{
"name": "SECUREDFIELD:np_32",
"value": "TIV53"
},
{
"name": "CUSTOMFIELD:idPo_20",
"value": "+79999999999"
},
{
"name": "SECUREDFIELD:idBp_24",
"value": "100000000120"
},
{
"name": "SECUREDFIELD:payment_stage",
"value": "4"
},
{
"name": "SECUREDFIELD:unsBo_79",
"value": "20200814100006157910009923581"
},
{
"name": "SECUREDFIELD:sumOpSbp_44",
"value": "10.21"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"GetNextStepResponse":{
"providerId":"364.1",
"nextStep":"PAY",
"fields":{
"field":[
{
"temporary": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:minTime",
"orderBy": 7,
"label": "Минимальное время следующего шага.",
"type": "TEXT",
"steps": [
"PAY",
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 996,
"value": "2020-08-15T12:02:17.458+03:00"
},
{
"temporary": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:expirationTime",
"orderBy": 8,
"label": "Время истечения ожидания следующего шага",
"type": "TEXT",
"steps": [
"PAY",
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 997,
"value": "2020-08-15T12:05:17.458+03:00"
},
{
"temporary": false,
"hidden": false,
"maxlength": 1,
"attribute-name": "SECUREDFIELD:payment_stage",
"orderBy": 9,
"label": "Стадия выполнения оплаты",
"type": "TEXT",
"steps": [
"PAY",
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 998,
"value": "Payment"
},
{
"temporary":false,
"hidden":false,
"maxlength":140,
"attribute-name":
"CUSTOMFIELD:pamPo_74",
"orderBy":9,
"label":"PAM покупателя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":false,
"readonly":false,
"comment":"",
"id":74,
"value":"Петр Петрович П"
},
{
"temporary":false,
"hidden":true,
"maxlength":29,
"attribute-name":"SECUREDFIELD:unsBo_79",
"orderBy":1,
"label":"Уникальный Номер Сообщения от Банка Отправителя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":true,
"readonly":false,
"comment":"",
"id":79,
"value":"20200814100006157910009923581"
}
]
}
}
}
}
}
SECUREDFIELD:sourceAmount & isPayerAmount=true
SOAP запрос:
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns11:GetNextStepRequest xmlns:ns11="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns11:providerId>364.1</ns11:providerId>
<ns11:fieldsInfo>
<ns11:attribute>
<ns11:name>SECUREDFIELD:nbsOt_30</ns11:name>
<ns11:value>12345678</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:np_32</ns11:name>
<ns11:value>TIV53</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>CUSTOMFIELD:idPo_20</ns11:name>
<ns11:value>+79999999999</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:idBp_24</ns11:name>
<ns11:value>100000000120</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:payment_stage</ns11:name>
<ns11:value>4</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:unsBo_79</ns11:name>
<ns11:value>20200814100006157910009923581</ns11:value>
</ns11:attribute>
<ns11:attribute>
<ns11:name>SECUREDFIELD:sourceAmount</ns11:name>
<ns11:value>10.52</ns11:value>
</ns11:attribute>
</ns11:fieldsInfo>
</ns11:GetNextStepRequest>
</SOAP-ENV:Body>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:GetNextStepResponse xmlns:ns2="http://moneta.ru/schemas/messages-serviceprovider-server.xsd">
<ns2:providerId>364.1</ns2:providerId>
<ns2:nextStep>PAY</ns2:nextStep>
<ns2:fields>
<ns2:field hidden="false" id="996" maxlength="32" orderBy="7" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:minTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:02:17.458+03:00</ns2:value>
<ns2:label>Минимальное время следующего шага.</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="997" maxlength="32" orderBy="8" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:expirationTime</ns2:attribute-name>
<ns2:value>2020-08-15T12:05:17.458+03:00</ns2:value>
<ns2:label>Время истечения ожидания следующего шага</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="998" maxlength="1" orderBy="9" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PAY</ns2:steps>
<ns2:steps>PRE</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:payment_stage</ns2:attribute-name>
<ns2:value>Payment</ns2:value>
<ns2:label>Стадия выполнения оплаты</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="false" id="74" maxlength="140" orderBy="9" readonly="false" required="false"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:steps>PAY</ns2:steps>
<ns2:attribute-name>CUSTOMFIELD:pamPo_74</ns2:attribute-name>
<ns2:value>Петр Петрович П</ns2:value>
<ns2:label>PAM покупателя</ns2:label>
<ns2:comment/>
</ns2:field>
<ns2:field hidden="true" id="79" maxlength="29" orderBy="1" readonly="false" required="true"
temporary="false" type="TEXT">
<ns2:steps>PRE</ns2:steps>
<ns2:steps>PAY</ns2:steps>
<ns2:attribute-name>SECUREDFIELD:unsBo_79</ns2:attribute-name>
<ns2:value>20200814100006157910009923581</ns2:value>
<ns2:label>Уникальный Номер Сообщения от Банка Отправителя</ns2:label>
<ns2:comment/>
</ns2:field>
</ns2:fields>
</ns2:GetNextStepResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"GetNextStepRequest": {
"providerId": "364.1",
"fieldsInfo": {
"attribute": [
{
"name": "SECUREDFIELD:nbsOt_30",
"value": "12345678"
},
{
"name": "SECUREDFIELD:np_32",
"value": "TIV53"
},
{
"name": "CUSTOMFIELD:idPo_20",
"value": "+79999999999"
},
{
"name": "SECUREDFIELD:idBp_24",
"value": "100000000120"
},
{
"name": "SECUREDFIELD:payment_stage",
"value": "4"
},
{
"name": "SECUREDFIELD:unsBo_79",
"value": "20200814100006157910009923581"
},
{
"name": "SECUREDFIELD:sourceAmount",
"value": "10.52"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"GetNextStepResponse":{
"providerId":"364.1",
"nextStep":"PAY",
"fields":{
"field":[
{
"temporary": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:minTime",
"orderBy": 7,
"label": "Минимальное время следующего шага.",
"type": "TEXT",
"steps": [
"PAY",
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 996,
"value": "2020-08-15T12:02:17.458+03:00"
},
{
"temporary": false,
"hidden": false,
"maxlength": 32,
"attribute-name": "SECUREDFIELD:expirationTime",
"orderBy": 8,
"label": "Время истечения ожидания следующего шага",
"type": "TEXT",
"steps": [
"PAY",
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 997,
"value": "2020-08-15T12:05:17.458+03:00"
},
{
"temporary": false,
"hidden": false,
"maxlength": 1,
"attribute-name": "SECUREDFIELD:payment_stage",
"orderBy": 9,
"label": "Стадия выполнения оплаты",
"type": "TEXT",
"steps": [
"PAY",
"PRE"
],
"required": true,
"readonly": false,
"comment": "",
"id": 998,
"value": "Payment"
},
{
"temporary":false,
"hidden":false,
"maxlength":140,
"attribute-name":
"CUSTOMFIELD:pamPo_74",
"orderBy":9,
"label":"PAM покупателя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":false,
"readonly":false,
"comment":"",
"id":74,
"value":"Петр Петрович П"
},
{
"temporary":false,
"hidden":true,
"maxlength":29,
"attribute-name":"SECUREDFIELD:unsBo_79",
"orderBy":1,
"label":"Уникальный Номер Сообщения от Банка Отправителя",
"type":"TEXT",
"steps":[
"PRE",
"PAY"
],
"required":true,
"readonly":false,
"comment":"",
"id":79,
"value":"20200814100006157910009923581"
}
]
}
}
}
}
}
Шаг 4 (B2COther). Выполнение перевода СБП
На этом шаге выполняется перевод СБП. Для протокола B2COther обычно применяется запрос PaymentRequest.
Примечание: Значение параметра isPayerAmount
=false
/true
Если в запросе используется isPayerAmount
=false
(сумма зачисления), то в этом же запросе в качестве значения amount передается значение суммы, использованной ранее в параметре SECUREDFIELD:sumOpSbp_44
.
Если в запросе используется значение параметра isPayerAmount
=true
(сумма списания), то в этом же запросе в качестве значения amount передается значение суммы, использованной ранее в параметре SECUREDFIELD:sourceAmount
.
Значение SECUREDFIELD:sourceAmount
возвращается в ответе на Шаге 2 (B2COther). Запрос PAM Получателя платежа.
isPayerAmount=false
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentRequest xmlns:ns2="http://moneta.ru/schemas/messages.xsd" >
<ns2:payer>12345678</ns2:payer>
<ns2:payee>364</ns2:payee>
<ns2:amount>10.21</ns2:amount>
<ns2:isPayerAmount>false</ns2:isPayerAmount>
<ns2:paymentPassword>e10adc39********f20f883e</ns2:paymentPassword>
<ns2:clientTransaction>SOURCE_SBP_1597654776778</ns2:clientTransaction>
<ns2:description>TIV53</ns2:description>
<ns2:operationInfo>
<ns2:attribute>
<ns2:key>SECUREDFIELD:unsBo_79</ns2:key>
<ns2:value>20200814100006157910009923581</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:PaymentRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:id>1001563566</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sbpphone</ns2:key>
<ns2:value>0079999999999</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:idpo_20</ns2:key>
<ns2:value>+79999999999</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>TIV53</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>4</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>-10.52</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>Система Быстрых Платежей C2B (СБП)</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:ioopkcsbp_27</ns2:key>
<ns2:value>A020200817100006183977996283538D</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>SOURCE_SBP_1597654776778</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:pampo_74</ns2:key>
<ns2:value>Петр Петрович П</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamountfee</ns2:key>
<ns2:value>-0.31</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetamount</ns2:key>
<ns2:value>10.21</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>TAKENIN_NOTSENT</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targettransaction</ns2:key>
<ns2:value>A020200817100006183977996283538D</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2020-08-15T15:04:17.458+03:00"</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>WITHDRAWAL</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:idbp_24_name</ns2:key>
<ns2:value>АО КБ ИНТЕРПРОМБАНК</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>-10.52</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>stage</ns2:key>
<ns2:value>5</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>-10.52</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>12345678</ns2:value>
</ns2:attribute>
</ns2:PaymentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"PaymentRequest": {
"payer": "12345678",
"payee": "364",
"amount": "10.21",
"isPayerAmount": false,
"paymentPassword": "e10adc39********f20f883e",
"clientTransaction": "SOURCE_SBP_1597654776778",
"description": "TIV53",
"operationInfo": {
"attribute": [
{
"key": "SECUREDFIELD:unsBo_79",
"value": "20200814100006157910009923581"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"PaymentResponse":{
"id":1001563566,
"attribute":[
{
"value":"RUB",
"key":"targetcurrencycode"
},
{
"value":"0079999999999",
"key":"sbpphone"
},
{
"value":"+79999999999",
"key":"customfield:idpo_20"
},
{
"value":"TIV53",
"key":"description"
},
{
"value":"4",
"key":"typeid"
},
{
"value":"-10.52",
"key":"sourceamount"
},
{
"value":"Система Быстрых Платежей C2B (СБП)",
"key":"targetalias"
},
{
"value":"A020200817100006183977996283538D",
"key":"customfield:ioopkcsbp_27"
},
{
"value":"SOURCE_SBP_1597654776778",
"key":"clienttransaction"
},
{
"value":"Петр Петрович П",
"key":"customfield:pampo_74"
},
{
"value":"-0.31",
"key":"sourceamountfee"
},
{
"value":"10.21",
"key":"targetamount"
},
{
"value":"TAKENIN_NOTSENT",
"key":"statusid"
},
{
"value":"A020200817100006183977996283538D",
"key":"targettransaction"
},
{
"value":"0",
"key":"haschildren"
},
{
"value":"2020-08-15T15:04:17.458+03:00",
"key":"modified"
},
{
"value":"364",
"key":"targetaccountid"
},
{
"value":"services",
"key":"initby"
},
{
"value":"WITHDRAWAL",
"key":"category"
},
{
"value":"АО КБ ИНТЕРПРОМБАНК",
"key":"customfield:idbp_24_name"
},
{
"value":"-10.52",
"key":"sourceamounttotal"
},
{
"value":"RUB",
"key":"sourcecurrencycode"
},
{
"value":"5",
"key":"stage"
},
{
"value":"-10.52",
"key":"sourceaccounttotal"
},
{
"value":"12345678",
"key":"sourceaccountid"
}
]
}
}
}
}
isPayerAmount=true
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentRequest xmlns:ns2="http://moneta.ru/schemas/messages.xsd" >
<ns2:payer>12345678</ns2:payer>
<ns2:payee>364</ns2:payee>
<ns2:amount>10.52</ns2:amount>
<ns2:isPayerAmount>true</ns2:isPayerAmount>
<ns2:paymentPassword>e10adc39********f20f883e</ns2:paymentPassword>
<ns2:clientTransaction>SOURCE_SBP_1597654776778</ns2:clientTransaction>
<ns2:description>TIV53</ns2:description>
<ns2:operationInfo>
<ns2:attribute>
<ns2:key>SECUREDFIELD:unsBo_79</ns2:key>
<ns2:value>20200814100006157910009923581</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:PaymentRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:id>1001563566</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sbpphone</ns2:key>
<ns2:value>0079999999999</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:idpo_20</ns2:key>
<ns2:value>+79999999999</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>TIV53</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>4</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>-10.52</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>Система Быстрых Платежей C2B (СБП)</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:ioopkcsbp_27</ns2:key>
<ns2:value>A020200817100006183977996283538D</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>SOURCE_SBP_1597654776778</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:pampo_74</ns2:key>
<ns2:value>Петр Петрович П</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamountfee</ns2:key>
<ns2:value>-0.31</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetamount</ns2:key>
<ns2:value>10.21</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>TAKENIN_NOTSENT</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targettransaction</ns2:key>
<ns2:value>A020200817100006183977996283538D</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2020-08-15T15:04:17.458+03:00"</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>WITHDRAWAL</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:idbp_24_name</ns2:key>
<ns2:value>АО КБ ИНТЕРПРОМБАНК</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>-10.52</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>stage</ns2:key>
<ns2:value>5</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>-10.52</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>12345678</ns2:value>
</ns2:attribute>
</ns2:PaymentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"PaymentRequest": {
"payer": "12345678",
"payee": "364",
"amount": "10.52",
"isPayerAmount": true,
"paymentPassword": "e10adc39********f20f883e",
"clientTransaction": "SOURCE_SBP_1597654776778",
"description": "TIV53",
"operationInfo": {
"attribute": [
{
"key": "SECUREDFIELD:unsBo_79",
"value": "20200814100006157910009923581"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"PaymentResponse":{
"id":1001563566,
"attribute":[
{
"value":"RUB",
"key":"targetcurrencycode"
},
{
"value":"0079999999999",
"key":"sbpphone"
},
{
"value":"+79999999999",
"key":"customfield:idpo_20"
},
{
"value":"TIV53",
"key":"description"
},
{
"value":"4",
"key":"typeid"
},
{
"value":"-10.52",
"key":"sourceamount"
},
{
"value":"Система Быстрых Платежей C2B (СБП)",
"key":"targetalias"
},
{
"value":"A020200817100006183977996283538D",
"key":"customfield:ioopkcsbp_27"
},
{
"value":"SOURCE_SBP_1597654776778",
"key":"clienttransaction"
},
{
"value":"Петр Петрович П",
"key":"customfield:pampo_74"
},
{
"value":"-0.31",
"key":"sourceamountfee"
},
{
"value":"10.21",
"key":"targetamount"
},
{
"value":"TAKENIN_NOTSENT",
"key":"statusid"
},
{
"value":"A020200817100006183977996283538D",
"key":"targettransaction"
},
{
"value":"0",
"key":"haschildren"
},
{
"value":"2020-08-15T15:04:17.458+03:00",
"key":"modified"
},
{
"value":"364",
"key":"targetaccountid"
},
{
"value":"services",
"key":"initby"
},
{
"value":"WITHDRAWAL",
"key":"category"
},
{
"value":"АО КБ ИНТЕРПРОМБАНК",
"key":"customfield:idbp_24_name"
},
{
"value":"-10.52",
"key":"sourceamounttotal"
},
{
"value":"RUB",
"key":"sourcecurrencycode"
},
{
"value":"5",
"key":"stage"
},
{
"value":"-10.52",
"key":"sourceaccounttotal"
},
{
"value":"12345678",
"key":"sourceaccountid"
}
]
}
}
}
}
Примечание: Если в запросе на Шаге 2 (B2COther). Запрос PAM Получателя платежа был указан атрибут SECUREDFIELD:SOURCETARIFFMULTIPLIER
, то в запросе на Шаге 4 (B2COther). Выполнение перевода СБП используется значение параметра isPayerAmount
=true
(сумма списания) в сочетании с параметром SOURCETARIFFMULTIPLIER
(в качестве значения amount передаётся значение суммы, использованной ранее в параметре SECUREDFIELD:sourceAmount
).
SOAP запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentRequest xmlns:ns2="http://moneta.ru/schemas/messages.xsd" >
<ns2:payer>12345678</ns2:payer>
<ns2:payee>364</ns2:payee>
<ns2:amount>10</ns2:amount>
<ns2:isPayerAmount>true</ns2:isPayerAmount>
<ns2:paymentPassword>e10adc39********f20f883e</ns2:paymentPassword>
<ns2:clientTransaction>SOURCE_SBP_1597654776778</ns2:clientTransaction>
<ns2:description>TIV53</ns2:description>
<ns2:operationInfo>
<ns2:attribute>
<ns2:key>SECUREDFIELD:unsBo_79</ns2:key>
<ns2:value>20200814100006157910009923581</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>SOURCETARIFFMULTIPLIER</ns2:key>
<ns2:value>0.2</ns2:value>
</ns2:attribute>
</ns2:operationInfo>
</ns2:PaymentRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope
SOAP ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:PaymentResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:id>1001563566</ns2:id>
<ns2:attribute>
<ns2:key>targetcurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sbpphone</ns2:key>
<ns2:value>0079999999999</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:idpo_20</ns2:key>
<ns2:value>+79999999999</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcetariffmultiplier</ns2:key>
<ns2:value>0.2</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>description</ns2:key>
<ns2:value>TIV53</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>typeid</ns2:key>
<ns2:value>4</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamount</ns2:key>
<ns2:value>-10</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetalias</ns2:key>
<ns2:value>Система Быстрых Платежей C2B (СБП)</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:ioopkcsbp_27</ns2:key>
<ns2:value>A020200817100006183977996283538D</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>clienttransaction</ns2:key>
<ns2:value>SOURCE_SBP_1597654776778</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:pampo_74</ns2:key>
<ns2:value>Петр Петрович П</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetamount</ns2:key>
<ns2:value>8</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>statusid</ns2:key>
<ns2:value>TAKENIN_NOTSENT</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targettransaction</ns2:key>
<ns2:value>A020200817100006183977996283538D</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>haschildren</ns2:key>
<ns2:value>0</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>modified</ns2:key>
<ns2:value>2020-08-15T15:04:17.458+03:00"</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamountcompensation</ns2:key>
<ns2:value>2</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>targetaccountid</ns2:key>
<ns2:value>364</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>category</ns2:key>
<ns2:value>WITHDRAWAL</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>customfield:idbp_24_name</ns2:key>
<ns2:value>АО КБ ИНТЕРПРОМБАНК</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceamounttotal</ns2:key>
<ns2:value>-10</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourcecurrencycode</ns2:key>
<ns2:value>RUB</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>stage</ns2:key>
<ns2:value>5</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccounttotal</ns2:key>
<ns2:value>-10</ns2:value>
</ns2:attribute>
<ns2:attribute>
<ns2:key>sourceaccountid</ns2:key>
<ns2:value>12345678</ns2:value>
</ns2:attribute>
</ns2:PaymentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "username",
"Password": "password"
}
}
},
"Body": {
"PaymentRequest": {
"payer": "12345678",
"payee": "364",
"amount": "10",
"isPayerAmount": true,
"paymentPassword": "e10adc39********f20f883e",
"clientTransaction": "SOURCE_SBP_1597654776778",
"description": "TIV53",
"operationInfo": {
"attribute": [
{
"key": "SECUREDFIELD:unsBo_79",
"value": "20200814100006157910009923581"
},
{
"key": "SOURCETARIFFMULTIPLIER",
"value": "0.2"
}
]
}
}
}
}
}
JSON ответ:
{
"Envelope":{
"Body":{
"PaymentResponse":{
"id":1001563566,
"attribute":[
{
"value":"RUB",
"key":"targetcurrencycode"
},
{
"value":"0079999999999",
"key":"sbpphone"
},
{
"value":"+79999999999",
"key":"customfield:idpo_20"
},
{
"value": "0.2",
"key": "sourcetariffmultiplier"
},
{
"value":"TIV53",
"key":"description"
},
{
"value":"4",
"key":"typeid"
},
{
"value":"-10",
"key":"sourceamount"
},
{
"value":"Система Быстрых Платежей C2B (СБП)",
"key":"targetalias"
},
{
"value":"A020200817100006183977996283538D",
"key":"customfield:ioopkcsbp_27"
},
{
"value":"SOURCE_SBP_1597654776778",
"key":"clienttransaction"
},
{
"value":"Петр Петрович П",
"key":"customfield:pampo_74"
},
{
"value":"8",
"key":"targetamount"
},
{
"value":"TAKENIN_NOTSENT",
"key":"statusid"
},
{
"value":"A020200817100006183977996283538D",
"key":"targettransaction"
},
{
"value":"0",
"key":"haschildren"
},
{
"value":"2020-08-15T15:04:17.458+03:00",
"key":"modified"
},
{
"value": "2",
"key": "sourceamountcompensation"
},
{
"value":"364",
"key":"targetaccountid"
},
{
"value":"services",
"key":"initby"
},
{
"value":"WITHDRAWAL",
"key":"category"
},
{
"value":"АО КБ ИНТЕРПРОМБАНК",
"key":"customfield:idbp_24_name"
},
{
"value":"-10",
"key":"sourceamounttotal"
},
{
"value":"RUB",
"key":"sourcecurrencycode"
},
{
"value":"5",
"key":"stage"
},
{
"value":"-10",
"key":"sourceaccounttotal"
},
{
"value":"12345678",
"key":"sourceaccountid"
}
]
}
}
}
}
Получение статуса операции перевода СБП
Этот шаг относится ко всем вышеописанным протоколам. Для получения статуса по операции выполните метод GetOperationDetailsById
.
Внимание! Номер мобильного телефона (CUSTOMFIELD:idPo_20
или CUSTOMFIELD:idOt_21
) в GetOperationDetailsByIdResponse
возвращается в виде 007 911 111 11 11
. Но при формировании запросов GetNextStepRequest
требуется передавать CUSTOMFIELD:idPo_20
в следующей форме:
- количество символов — не более 12;
- подходящие варианты указания кода страны: +7, 7, 8. Пример:
+7 911 111 11 11
;7 911 111 11 11
;8 911 111 11 11
.
Сервис Widget SBP/FPS
Данный раздел содержит инструкцию и рекомендации по подключению к сервису Moneta SBP/FPS.
Moneta SBP/FPS - cервис, предназначенный для автоматизации вывода средств (переводов) с помощью СБП С2С/Ме2Ме Push c ЭСП МОНЕТА.РУ по номеру телефона.
Подразделы Сервис Widget SBP/FPS
Схема взаимодействия
Схема взаимодействия между приложением маркетплейса и сервисом Moneta SBP/FPS выглядит следующим образом:
- Приложение маркетплейса формирует и подписывает токен, в котором сохранена информация номер юнита Пользователя, номер ЭСП МОНЕТА.РУ, время действия токена и другая информация.
- Приложение маркетплейса перенаправляет браузер Пользователя ЭСП МОНЕТА.РУ на специальный адрес, передав токен безопасности.
- Moneta SBP/FPS запрашивает номер телефона Получателя (физического лица) перевода.
- Moneta SBP/FPS предлагает Пользователю ЭСП МОНЕТА.РУ выбрать банк для перевода.
- Moneta SBP/FPS показывает Пользователю ЭСП МОНЕТА.РУ PAM-фразу (ФИО) Получателя перевода.
- Moneta SBP/FPS формирует операцию в статусе “Операция создана”.
- Moneta SBP/FPS отправляет приложению маркетплейса уведомление с указанием номера операции (operationId) и номера сообщения СБП (messageId).
- Moneta SBP/FPS возвращает Пользователя ЭСП МОНЕТА.РУ в приложение маркетплейса.
- Приложение маркетплейса отправляет запрос PaymentRequest, указывая в поле payee номер операции (operationId) с ведущим нулем, а также дополнительные атрибуты СБП, полученные в уведомлении.
Регистрация маркетплейса
Маркетплейсу необходимо предоставить следующие данные на адрес mp@payanyway.ru:
- Обязательная информация:
- Полное и краткое наименование проекта.
- URL для отправки уведомлений о статусе перевода (callback url).
- Опциональная информация:
- Иконка проекта в SVG-формате или высоком разрешении.
- URL для возврата Пользователя ЭСП МОНЕТА.РУ обратно в приложение маркетплейса, если используется режим отличный от iframe (return url).
Со стороны Moneta SBP/FPS будет предоставлена следующая информация:
- ApiKey/ApiSecret1 - ключевая пара для создания токенов безопасности.
- Специальная ссылка для установления доверия.
ApiSecret будет направлен на адрес электронной почты от Личного кабинета маркетплейса, указанный им в Договоре. ↩︎
Установление доверия
Для формирования сервисом Moneta SBP/FPS операций перевода (вывода) необходимо пройти процедуру установления доверия с сервисом.
Маркетплейсу необходимо:
- Войти в Личный кабинет маркетплейса с Пользователями ЭСП МОНЕТА.РУ на moneta.ru (или demo.moneta.ru для тестового контура).
- Перейти по ссылке, которую предоставил сервис Moneta SBP/FPS.
- В появившемся диалоге ознакомиться с информацией о том, какие разрешения маркетплейс предоставит сервису SBP/FPS.
- Подтвердить предоставление разрешений.
Аутентификация
Общая информация
Для инициализиции виджета Moneta SBP/FPS маркетплейсу необходимо передать одноразовый токен безопасности, в котором надежно зашифрована вся необходимая информация для проведения перевода. Токен безопасности должен формироваться на стороне маркетплейса, по указанным ниже правилам.
Формирование токена и подписи
Предварительные условия:
- Необходимо пройти процедуру регистрации маркетплейса и получить ApiKey и ApiSecret.
- Необходимо установить доверительные отношения с сервисом Moneta SBP/FPS.
Для реализации алгоритма формирования единовременного токена использованы следующие стандарты:
- RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.
- RFC 2104 HMAC: Keyed-Hashing for Message Authentication.
- RFC 4648 The Base16, Base32, and Base64 Data Encodings.
Токен состоит из 2-х частей:
- Информационное сообщение, содержащее ключевую информацию о маркетплейсе и Пользователе ЭСП МОНЕТА.РУ, служебную информацию по переводу.
- Подпись/Хэш от информационного сообщения из п.1, и использованием заранее полученного общего секрета -
ApiSecret
.
Формирование информационного сообщения
Информационное сообщение состоит из набора ключ-значение, которые закодированы в соответствии с правилами URL-кодирования строк по RFC 3986. Пример:
key1=someKey&key2=Some%20Key2&extraKey=100500
Ниже приведен набор обязательных параметров, которые необходимо указать при формировании информационного сообщения (ключи должны следовать в отсортированном порядке, как в таблице ниже):
Ключ | Описание | Тип | Пример |
---|---|---|---|
cid | Идентификатор операции на стороне маркетплейса | String | i-17-203112 |
cidExpireAt | Дата/время до которой можно провести оплату (в EpohMills) | Число | 1610464610097 |
key | ApiKey полученный при регистрации в MonetaId | Url Encoded String | site-x |
nonce | Число, использующееся для невозможности повторного использования одного и того же токена (см. ниже) | Число | 10201010 |
unitId | Номер профиля/юнита пользователя ЭСП МОНЕТА.РУ | Число | 987654321 |
accountId | Номер ЭСП МОНЕТА.РУ для списания средств | Число | 1230567 |
callbackUrl | Опциональный параметр для demo окружения: Возможность задать тестовый callback url, отличный от того, что задан партнеру при регистрации. | Url Encoded String | http%3A%2F%2Fya.ru |
При формировании nonce удобно использовать текущее время в секундах на момент формирования токена. Каждый новый nonce в новом токене, формирующийся для данного unitId должен быть строго больше предыдущего для данного юнита (т.е. nonce должен строго монотонно возрастать), иначе он будет отброшен как некорректный.
Пример итогового информационного сообщения:
cid=i103020&cidExpireAt=1601375568244&key=partner123&nonce=1601375468244&unitId=987654321&accountId=1230567
Формирование подписи
После того, как информационное сообщение сформировано, необходимо вычислить подпись/хеш с использованием общего секрета - ApiSecret.
Алгоритм формирования:
- Вычислить HMAC-SHA512 хеш используя пару (информационное сообщение, секрет).
- Полученный массив байт перевести в строку в шестнадцатеричном представлении.
// message - инф. сообщение
// secret - секрет/apiSecret
signatureBytes = hmac_sha512(message, secret)
signatureString = bytesToHex(signatureBytes)
После того, как подпись в виде hex-строки сформирована, необходимо добавить ее к информационному сообщению с ключом signature:
cid=i103020cidExpireAt=1601375568244&key=partner123&nonce=1601375468244&unitId=987654321&accountId=1230567&signature=7d7b968768f664bcdbd67bbd4e3f59347b300226734ade68bed660ab7794522fe0e3e66ecdb211f746dae1c44681a306ee221f8706c63195607e525e979360
Финальным шагом необходимо полученную строку (информационное сообщение + подпись) закодировать при помощи base64, использовать при перенаправлении на виджет Moneta SBP/FPS.
// СЕРВЕР
// на стороне сервера формируем итоговый токен
message = "cid=i103020cidExpireAt=1601375568244&key=partner123&nonce=1601375468244&unitId=987654321&accountId=1230567&signature=7d7b968768f664bcdbd67bbd4e3f59347b300226734ade68bed660ab7794522fe0e3e66ecdb211f746dae1c44681a306ee221f8706c63195607e525e979360"
token = base64(message)
// БРАУЗЕР КЛИЕНТА
// делаем редирект в браузере клиента на указанный адрес с этим токеном
// DEV окружение
https://fps-ui.dev.mnxsc.tech/?token={{token}}
// PROD окружение
https://fps-ui.prod.mnxsc.tech/?token={{token}}
Примеры кода для формирования токена
$secretKey = "secretKey";
$cid = "i103020";
$cidExpireAt = 1601375568244;
$key = "partner123";
$nonce = time();
$unitId = 987654321;
$accountId = 1230567;
$infoMessage = "cid=" . $cid . "&cidExpireAt=" . $cidExpireAt . "&key=" . $key . "&nonce=" . $nonce . "&unitId=" . $unitId . "&accountId" . $accountId;
$signatureString = hash_hmac("sha512", $infoMessage, $secretKey);
$token = base64_encode($infoMessage . "&signature=" . $signatureString);
const SECRET_KEY = 'secretKey';
const cid = "i103020";
const cidExpireAt = 1601375568244;
const key = 'partner123';
const nonce = Date.now();
const unitId = 987654321;
const accountId = 1230567;
const urlEncodedParams =
'cid='+encodeURIComponent(cid)
+'&cidExpireAt='+encodeURIComponent(cidExpireAt)
+'&key='+encodeURIComponent(key)
+'&nonce='+encodeURIComponent(nonce)
+'&unitId='+encodeURIComponent(unitId)
+'&accountId='+encodeURIComponent(accountId);
const signature = CryptoJS.HmacSHA512(urlEncodedParams, SECRET_KEY);
const signatureHex = CryptoJS.enc.Hex.stringify(signature);
const finalParams = urlEncodedParams + '&signature='+encodeURIComponent(signatureHex);
const token = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(finalParams));
Встраивание в iframe
Код для вставки виджета в iframe
// DEV окружение
<iframe
src="https://fps-ui.dev.mnxsc.tech/withdrawal?frame=true&token={ONE_TIME_TOKEN}"
style="
width: 400px;
height: 600px;
border: 1px solid #CCC;
border-radius: 10px">
</iframe>
// PROD окружение
<iframe
src="https://fps-ui.prod.mnxsc.tech/withdrawal?frame=true&token={OONE_TIME_TOKEN"
style="
width: 400px;
height: 600px;
border: 1px solid #CCC;
border-radius: 10px">
</iframe>
- Рекомендуемые размеры iframe: 400 x 600
- формирование ONE_TIME_TOKEN описано в разделе генерации токена партнера.
Ограничения использования iframe
Ограничение | Решение |
---|---|
Не работает вставка https iframe в http родителя. | Браузеры ограничивают возможности таких iframe, поэтому для тестов нужен https родитель. Например: https://localhost:8080 |
Получение событий из iframe
Виджет отправляет родительской странице события, которые можно обработать в js коде:
// код на сайте:
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event) {
// событие от виджета
if(event.origin === 'https://fps-ui.prod.mnxsc.tech'){
const data = event.data || {};
console.log(data.type);
}
}
Тип события | Описание |
---|---|
initialized | Виджет инициализирован |
error | Произошла ошибка отображения виджета, при этом data.error будет содержать код ошибки |
loggedOut | Пользователь завершил работу с виджетом |
verificationFinished | Верификация пользователя завершена, при этом в поле data.status будет результат операции: ‘SUCCESS’ либо ‘FAILED’ |
withdrawalFinished | Вывод завершен, при этом в поле data.status будет результат операции: ‘SUCCESS’ либо ‘FAILED’ |
Уведомления о событиях
Операции перевода формируются сервисом Moneta SBP/FPS в статусе Операция создана и для продолжения операции необходимо воспользоваться методом PaymentRequest
MONETA.MerchantAPI, указав в поле payee
номер операции с ведущим нулем.
Результат подготовки операции перевода будет передан на указанный маркетплейсом при регистрации callback url
в виде POST запроса с JSON объектом содержащим параметры:
operationId
- номер операции с ведущим нулем, который необходимо указать вPaymentRequest
в полеpayee
messageId
- номер сообщения СБП, его необходимо указать вoperationInfo
в полеSECUREDFIELD:unsBo_79
Информация, подтверждающая валидность сообщения, будет замещена в заголовке HTTP запроса X-Digest.Сервис Moneta SBP/FPS размещает в этом заголовке подпись данных из тела запроса, созданную при помощи ApiSecret, предоставленного при регистрации маркетплейса с использованием алгоритма HMAC-SHA512.
Уведомление на callback url
считается успешно доставленным в случае получения от маркетплейса HTTP ответа с кодом 200
. В противном случае, сервис Moneta SBP/FPS будет пытаться повторить доставку уведомления до достижения таймаута, после которого проведение перевода будет невозможно.
Пример запроса PaymentRequest
Запрос формируется согласно интерфейсу MONETA.MerchantAPI.
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "USERNAME",
"Password": "PASSWORD"
}
}
},
"Body": {
"PaymentRequest": {
"payer": "номер ЭСП МОНЕТА.РУ",
"payee": "0operationId",
"amount": "10",
"isPayerAmount": false,
"paymentPassword": "010101010",
"operationInfo": {
"attribute": [
{
"key": "SECUREDFIELD:unsBo_79",
"value": "1234123452345345645674567578"
}
] }
}
}
}
}
Просмотр истории транзакций
Сервис Moneta SBP/FPS позволяет просмотреть историю транзакций. История отображается в убывающем по дате создания транзакции порядке и позволяет посмотреть детальную информацию по выбранной транзакции на отдельной странице. Данные в истории обновляются автоматически с определенным периодом. Для отображения истории необходимо:
- сформировать и подписать токен доступа;
- открыть URL “<BASE_URL>/wallet/wallets/transactions”, передав сформированный токен в качестве параметра.
// DEV окружение
<iframe
src="https://fps-ui.dev.mnxsc.tech/wallet/wallets/transactions?frame=true&token={ONE_TIME_TOKEN}"
style="
width: 400px;
height: 600px;
border: 1px solid #CCC;
border-radius: 10px">
</iframe>
// PROD окружение
<iframe
src="https://fps-ui.prod.mnxsc.tech/wallet/wallets/transactions?frame=true&token={ONE_TIME_TOKEN}"
style="
width: 400px;
height: 600px;
border: 1px solid #CCC;
border-radius: 10px">
</iframe>
Решения 54-ФЗ
Применение контрольно-кассовой техники при осуществлении расчетов
Согласно 54-ФЗ “О применении контрольно-кассовой техники при осуществлении расчетов в Российской Федерации” при оплате товаров, работ или услуг необходимо необходимо формировать фискальный документ и отправлять его в ФНС с помощью онлайн-кассы.
Возможно выбрать один из вариантов формирования фискального документа:
- В ККТ продавца (клиента маркетплейса)
- В ККТ маркетплейса
- В ККТ платежного агрегатора ООО “ПЭЙ ЭНИ ВЭЙ”
В зависимости от потребностей, торговая площадка может использовать один из сервисов:
Подразделы Решения 54-ФЗ
Интеграционный модуль
Назначение и функционал
Сервис предназначен для формирования запросов в онлайн кассу для фискализации чеков, в связи с вступлением в силу 54-ФЗ. Данные о покупателе и номенклатуре сервис получает от интернет-магазина, который готовит их в формате описанном в документации:
Настройки счёта магазина
В настройках вашего расширенного счёта в личном кабинете системы PayAnyWay.ru установите в поле Pay URL ссылку на сервис: https://kassa.payanyway.ru/index.php?do=invoicepayurl, а в настройках сервиса kassa.payanyway.ru установите ссылку на Pay URL
вашего интернет-магазина. Запрос на фискализацию чека будет отправлен в онлайн кассу через сервис kassa.payanyway.ru, а запрос на Pay URL
магазина будет проходить транзитом через сервис. Ссылки на чек будут отправляться на e-mail, указанный магазином в настройках сервиса, либо на основании данных о покупателе, переданных интернет-магазином, согласно документации (п.1). Номенклатура должна быть передана интернет-магазином, согласно той же документации.
Настройка сервиса
Для авторизации в сервисе kassa.payanyway.ru на странице Входа необходимо ввести логин и пароль интернет-магазина, полученный при регистрации в PayAnyWay, а так же указать номер расширенного счёта интернет-магазина.
Список CMS, которые передают номенклатуру
Для отображения номенклатуры в чеках нужно обновить платежный модуль PayAnyWay для вашей CMS. Если используемой вами CMS ещё нет в данном списке, чек будет фискализироваться без номенклатуры.
Список поддерживаемых онлайн касс
Название онлайн кассы | Использование ФФД 1.05 |
---|---|
Модуль Касса | да |
АТОЛ онлайн | да (требуется указать версию API: v4) |
Бизнес.ру (Онлайн-Чеки) | да (требуется указать версию API: v4) |
Чек-онлайн | да |
Бухсофт онлайн-касса | да |
Orange data | да |
i-Retail | нет |
КОМТЕТ Касса | да |
Дримкас | да |
Счётмаш | да |
Kit Online | да |
E-COM Kassa | да |
Nanokassa | да |
Ferma | да |
1С-Рарус | да |
ИнитПро касса | да |
CloudKassir | да |
Эвотор | да |
Просмотр чеков
Для контроля за интеграцией вы можете просматривать чеки и детальный лог отправки запросов в онлайн кассу и получения ответов от кассы.
Отправка чека покупателю
Обязанность по визуальному представлению электронного чека, а так же его доставка на e-mail покупателя законом 54-ФЗ возложена на ОФД. При совершении покупки, пользователь вашего интернет-магазина получит от вашего ОФД ссылку на электронный чек или его фискальные данные, в зависимости от ОФД.
Если вы принимаете оплату вручную (без интернет-магазина)
Установите ссылку на Pay URL
:
https://kassa.payanyway.ru/index.php?do=invoicepayurl.
Используйте механизм ручного выставления счетов с указанием товарных позиций для отправки покупателям ссылки на оплату.
Используйте конструктор форм оплат для вставки в облачные CMS
ККТ PayAnyWay
Формирование фискального документа в ККТ платежного агрегатора ООО “ПЭЙ ЭНИ ВЭЙ” - партнера НКО МОНЕТА (ООО).
Для приема платежей на сайте маркетплейса в пользу клиентов юридических лиц и индивидуальных предпринимателей (далее ЮЛ/ИП) НКО привлекает платежного агрегатора (далее ПА), который участвует в переводе денежных средств в пользу юридических лиц, индивидуальных предпринимателей и иных лиц по операциям с использованием электронных средств платежа. Привлекаемый НКО платежный агрегатор формирует фискальные документы в своей ККТ от своего имени за клиентов маркетплейса.
Денежные средства покупателя зачисляются на специальный банковский счет платежного агрегатора ООО “ПЭЙ ЭНИ ВЭЙ” и автоматически переводятся на счета клиентов маркетплейса.
Подразделы ККТ PayAnyWay
Создание инвойса
Для создания invoice на оплату, необходимо отправить зарос в API сервиса по адресу: https://bpa.payanyway.ru/api/invoice?key=***
где invoice - это имя метода key - ключ партнера, будет ему сгенерирован и выдан сервисом ПА ООО “ПЭЙ ЭНИ ВЭЙ”
Через json POST следует передать данные:
{
"signature": "***",
"paymentAmount": 9.00,
"debitMntAccount": номер счета списания,
"creditMntAccount": номер счета пополнения,
"sourceTariffMultiplier": комиссия с продавца,
"mntTransactionId": "***",
"customerEmail": "***@***.**",
"mntSubscriberId": идентификатор покупателя,
"storeCard": true/false,
"inventory": [
{"sellerAccount": "30990009",
"sourceTariffMultiplier": комиссия с продавца,
"sellerInn": "1234",
"sellerName": "ООО Название 1",
"sellerPhone": "71234567890",
"productName": "test1",
"productQuantity": 1,
"productPrice": 0.20,
"productVatCode": 1105,
"po": "***",
"pm": "***"},
{"sellerAccount": "60252006",
"sourceTariffMultiplier": комиссия с продавца,
"sellerInn": "5678",
"sellerName": "ООО Название 2",
"sellerPhone": "71234567890",
"productName": "test2",
"productQuantity": 2,
"productPrice": 4,
"productVatCode": 1105},
{"sellerAccount": "30990009",
"sourceTariffMultiplier": комиссия с продавца,
"sellerInn": "1234",
"sellerName": "ООО Название 1",
"sellerPhone": "71234567890",
"productName": "test3",
"productQuantity": 2,
"productPrice": 0.40,
"productVatCode": 1105,
"po": "***",
"pm": "***"}
]
}
где:
- signature - подпись запроса - должна быть равна md5(debitMntAccount + mntTransactionId + secret). Символ + это конкатенация строк, secret - секретный код партнера, который будет выдан сервисом ПА ООО “ПЭЙ ЭНИ ВЭЙ”
- paymentAmount - общая сумма платежа. Десятичный разделитель - точка с двумя десятичными знаками даже если это нули.
- debitMntAccount - не обязательный параметр - счет списания в Системе МОНЕТА.РУ - необходимо уточнить в коммерческом отделе. Если не указывается, в сигнатуре вместо него следует оставить пустую строку.
- creditMntAccount - счет ПА ООО “ПЭЙ ЭНИ ВЭЙ” в Системе МОНЕТА.РУ, на который необходимо принять денежные средства. Необходимо уточнить в коммерческом отделе.
- sourceTariffMultiplier - не обязательный параметр - размер комиссии с продавца в процентах, разделенных на 100, то есть значение 0.015 соответствует 1,5%. Поле sourceTariffMultiplier для позиции является необязательным и если указано перекрывает значение sourceTariffMultiplier указанное для всего документа.
- mntTransactionId - уникальный внешний идентификатор транзакции.
- customerEmail - e-mail покупателя, на который надо отправить чек от ОФД.
- mntSubscriberId - не обязательный параметр - идентификатор покупателя в учетной системе продавца.
- storeCard - не обязательный параметр - true/false - сохранять ли банковскую карту покуателя, за исключением номера cvv. Если передано значение true, то параметр mntSubscriberId становится обязательным.
- inventory - номенклатура по поставщикам с указанием данных о поставщиках:
- sellerAccount - номер бизнес-счета продавца в Системе МОНЕТА.РУ.
- sellerInn - ИНН продавца.
- sellerName - название продавца.
- sellerPhone - номер телефона продавца.
- productName - название товара.
- productQuantity - количество товара.
- productPrice - окончательная цена товара с учетом всех скидок и наценок.
- productVatCode - код ставки НДС - одно из значений:
- 1104 - НДС 0%
- 1103 - НДС 10%
- 1102 - c 01.01.2019 ставка 20%
- 1105 - НДС не облагается
- 1107 - НДС с рассч. ставкой 10%
- 1106 - c 01.01.2019 НДС с расчётной ставкой 20%
- po - необязательный параметр - объект оплаты
- commodity – товар (за исключением подакцизного товара)
- excise – подакцизный товар
- job – работа
- service – услуга.
- pm - необязательный параметр - метод оплаты
- full_prepayment – предоплата 100%. Полная предварительная оплата до момента передачи предмета расчета
- prepayment – предоплата. Частичная предварительная оплата до момента передачи предмета расчета
- advance – аванс
- full_payment – полный расчет. Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета
Все передаваемые значения не должны содержать кавычки, спецсимволы, символы слэш и обратный слэш, амперсанд.
Для приема платежа с холдированием, необходимо передать также параметр hold
в значении 1
.
Чтобы сформировать invoice для оплаты по QR СБП, счёт получателя обязательно должен быть настроен для работы с СБП (по согласованию с коммерческим отделом системы Монета). Также необходимо передать параметр QRTTL - это время в течение которого будет возможна оплата по платёжной ссылке (QR-коду). Минимальное значение - одна минута, максимальное значение - 129600 (90 дней в минутах).
API ПА ООО “ПЭЙ ЭНИ ВЭЙ” выполнит проверку входящих данных и сообщит об ошибке если:
- incorrect input data - отсутствует часть входящих данных.
- incorrect signature - не верная подпись запроса.
- incorrect inventory data, line: N - где N - номер строки номенклатуры - отсутствует часть данных по строке номенклатуры.
- incorrect amount - отсутствует общая сумма.
- inventoryTotal () and paymentAmount () are missmatch - не совпала общая сумма и сумма по всем позициям inventory.
- invoice could not be created - не удалось создать invoice.
Ошибка отдается в формате json:
{"error": "***"}
В результате выполнения команды будет создан invoice на оплату, а метод отдаст следующие данные в json:
{"operation": "***"}
***
- ID операции, созданной в Системе МОНЕТА.РУ.
Если был передан параметр QRTTL, в результат бедет так же возвращен массив operationInfo, ключи и значения которого содержат в том числе ссылку на оплату по СБП, которую можно отобразить в виде QR-кода покупателю. В этом случае переадресания на оплату через Assistant может не потребоваться.
Покупателя следует перенаправить на оплату данного invoice по ссылке: https://moneta.ru/assistant.htm?operationId=***
***
- ID операции, созданной в Системе МОНЕТА.РУ.
В ссылку можно добавить дополнительные параметры по протоколу MONETA.Assistant.
При передаче storeCard и mntSubscriberId будет сохранена использованная при оплате карта. Чтобы воспользоваться ей, нужно при последующих вызовах метода снова передать storeCard, тогда на платежной форме будет виден маскированный номер карты и expire date. Покупателю останется ввести cvv код для проведения оплаты.
Оплата инвойса
Покупатель оплачивает invoice удобным ему способом, например, банковской картой.
После успешной оплаты на адрес электронной почты покупателя приходит ссылка на фискальный документ с номенклатурой, которая была передана при создании invoice.
API ПА ООО “ПЭЙ ЭНИ ВЭЙ” сгруппирует номенклатуру по продавцам и сделает операции перевода, полученных от покупателя денежных средств, на бизнес-счета продавцов. Операций перевода будет создано столько, сколько продавцов было передано с номенклатурой при создании invoice.
Если invoice был создал с холдированием (параметр hold при создании invoice был передан в значении 1), то после успешного холдирования денег, будет отправлено URL-уведомление в формате:
{"type": "authorise", "operation": "ID операции"}
Получив уведомление, вы можете решить, проводить данную операцию или отменить.
Для проведения операции необходимо отправить запрос в API БПА ПА PayAnyWay на url: https://bpa.payanyway.ru/api/confirmoperation?key=***
где confirmoperation - это имя метода
key - ключ партнера, выданный сервисом БПА ПА “ПЭЙ ЭНИ ВЭЙ” (bpa.payanyway.ru)
через json POST следует передать данные:
{
"signature": "***",
"operation": "***"
}
где:
- signature - подпись запроса - должна быть равна md5(operation + secret). Символ “+” - это конкатенация строк, “secret” - секретный код партнера, который будет выдан сервисом БПА ПА “ПЭЙ ЭНИ ВЭЙ” (bpa.payanyway.ru).
- operation - ID операции (было получено при создании invoice).
В операцию подтверждения можно отправить данные о номенклатуре, которая подтвердилась. Если эти данные не переданы, подтверждается вся номенклатура, переданная при создании инвойса.
Формат передачи номенклатуры в запросе confirmoperation полностью аналогичен данным запроса invoice, за исключением атрибута sourceTariffMultiplier, который при подтверждении операции поменять уже нельзя.
Для отмены ранее холдированной операции необходимо отправить запрос на url: https://bpa.payanyway.ru/api/canceloperation?key=***
Все передаваемые параметры аналогичны предыдущему методу.
После успешной оплаты или подтверждения холдирования, API ПА ООО “ПЭЙ ЭНИ ВЭЙ” направит URL-уведомление с ссылкой на фискальный документ:
{"operation":12345678+ссылка на чек}
Для настройки URL-уведомления необходимо отправить URL вашего обработчика на mp@payanyway.ru
Если подтверждена лишь часть товаров из первоначального invoice, следует отправить запрос, содержащий данные по товарам с учетом изменений: https://bpa.payanyway.ru/api/confirmoperation?key=***
Данные, принимаемые в запросе:
{
"signature": "***",
"operation": "***",
"paymentAmount": 100,
"inventory": [
{
"sellerAccount": "30990009",
"sellerInn": "1234",
"sellerName": "ООО Название 1",
"sellerPhone": "71234567890",
"productName": "test1",
"productQuantity": 1,
"productPrice": 0.20,
"productVatCode": 1105,
"po": "***",
"pm": "***"
},
...
]
}
Для отмены инвойса, по которому еще не производилось оплаты, необходимо отправить запрос на url: https://bpa.payanyway.ru/api/cancelinvoice?key=***
При вызове этого метода не осуществляются какие-либо возвраты по уже оплаченным invoice.
Данные, принимаемые в запросе:
{
"signature": "***",
"operation": "***",
"description": "***"
}
где:
- operation - ID операции (было получено при создании invoice),
- description - сообщение при попытке оплаты отмененного инвойса,
- signature - подпись запроса - должна быть равна md5(operation + secret).
Возврат средств
Продавцы, по различным причинам, могут пожелать сделать возврат переведенных в их пользу от ПА ООО “ПЭЙ ЭНИ ВЭЙ” денежных средств. В этом случае ПА ООО “ПЭЙ ЭНИ ВЭЙ” сделает возврат средств покупателю.
Операцию возврата от продавца должна быть совершена с помощью интерфейса MONETA.MerchantAPI запросом RefundRequest
. Если возвращается только часть проданных товаров, в атрибуте customfield:inventory операции возврата следует передать следующие данные в формате json:
{"inventory": [
{"sellerAccount": "30990009",
"sellerInn": "1234",
"sellerName": "ООО Название 1",
"sellerPhone": "71234567890",
"productName": "test1",
"productQuantity": 1,
"productPrice": 0.20,
"productVatCode": 1105,
"po": "***",
"pm": "***"},
{"sellerAccount": "30990009",
"sellerInn": "1234",
"sellerName": "ООО Название 1",
"sellerPhone": "71234567890",
"productName": "test3",
"productQuantity": 2,
"productPrice": 0.40,
"productVatCode": 1105,
"po": "***",
"pm": "***"}
]
}
Поля данных были подробно описаны выше, в разделе “Создание invoice”.
Если в атрибуте customfield:inventory операции возврата не передана номенклатура, система ПА ООО “ПЭЙ ЭНИ ВЭЙ” считает, что возвращаются все ранее оплаченные покупателем товары.
Система ПА ООО “ПЭЙ ЭНИ ВЭЙ” сформирует возврат покупателю, а так же чек возврата, который отправит покупателю на e-mail, указанный ранее при формировании invoice.
По результатам возврата, на url переданный для настроек от партнера системе ПА ООО “ПЭЙ ЭНИ ВЭЙ”, будет отправлено url-уведомление в формате json:
{"operation": операция возврата покупателю,
"parentid": операция возврата продавцу,
"returnid": false,
"receipt": "ссылка на чек"}
Если не удалось выделить номенклатуру для чека возврата, то система ПА ООО “ПЭЙ ЭНИ ВЭЙ” сделает перевод денег в пользу продавца на сумму возврата и будет отправлено URL-уведомление в формате json следующего содержания:
{"operation": false,
"parentid": операция возврата продавцу,
"returnid": операция перевода продавцу,
"receipt": false}
Отраслевые решения
Подразделы Отраслевые решения
Маркетплейсам и площадкам
Проекты оферт и дополнительных соглашений
C2C без ЭСП с тарифом НКО
Плательщик и Получатель - физические лица без электронных кошельков.
В Монете заводится один личный кабинет - Платформы.
C2B без ЭСП с тарифом НКО
Плательщики - физические лица без электронных кошельков.
Получатели - Юридические лица или ИП.
В Монете заводится два личных кабинета Платформы: один для счёта Платформы, второй для Получателей Платформы.
C2CB без ЭСП без тарифа НКО
Плательщики - физические лица без электронных кошельков.
Получатели - Юридические лица, ИП и физические лица без электронных кошельков.
В Монете заводится два личных кабинета Платформы: один для счёта Платформы, второй для Получателей Платформы.
Подразделы Маркетплейсам и площадкам
Регистрация
Подразделы Регистрация
ЮЛ и ИП
Подразделы ЮЛ и ИП
Личный кабинет
В личном кабинете (ЛК) находятся настройки и счета клиентов маркетплейсов.
Доступ к ЛК предоставляется после заключения Договора об информационно-технологическом взаимодействии.
После регистрации на email маркетплейса направляется уведомление с описанием структуры личного кабинета.
В структуре этого ЛК маркетплейса 3 группы:
- Зарегистрированные клиенты - группа, в которой Система МОНЕТА.РУ создает личный кабинет для клиентов маркетплейса - юридических лиц и индивидуальных предпринимателей (далее ЮЛ/ИП) при регистрации.
Активные клиенты - в этой группе находятся клиенты маркетплейса ЮЛ/ИП, для которых включен прием платежей.
Перевод в Активные клиенты из группы Зарегистрированные клиенты, осуществляется после заполнения личного кабинета ЮЛ/ИП и выполнения требований по размещению информации о ЮЛ/ИП на сайте маркетплейса.
Информация, обязательная для размещения на сайте и (или) в мобильном приложении по каждому клиенту маркетплейса и примеры размещения указана здесь: https://www.payanyway.ru/info/w/ru/public/w/partnership/howto/terms.html
После перевода в группу “Активные клиенты” для ЮЛ/ИП необходимо скачать заявление о присоединении к Договору и создать расширенный счёт, на котором будут учитываться платежи.
Клиенты без заявления - группа, в которой находятся ЮЛ/ИП, не приславшие заявление о присоединении к Договору в течение 30 дней с момента регистрации в Системе МОНЕТУ.РУ, согласно п.2.5. Договора о переводах без открытия счетов в системе МОНЕТА.РУ и осуществлении информационно-технологического взаимодействия для юридических лиц и индивидуальных предпринимателей - резидентов РФ, или не согласованные НКО МОНЕТА.
После основных этапов подключения Система МОНЕТА.РУ направляет уведомления маркетплейсу: обязательные E-mail уведомления и настраиваемые URL-уведомления.
Если маркетплейс обеспечивает безопасную сделку или мультикорзину, будет создан еще один личный кабинет, в котором будут находиться транзитный и комиссионный счета маркетплейса. Информация об этом личном кабинете индивидуальна, поэтому предоставляется в виде письма на логин маркетплейса.
URL-уведомления при редактировании профиля продавца
Для настройки URL-уведомления необходимо отправить URL вашего обработчика на mp@payanyway.ru
URL-уведомления отправляются методом POST.
Content-type: application/x-www-form-urlencoded.
Encoding: UTF-8
На адрес вашего обработчика Система “МОНЕТА.РУ” будет направлять следующие уведомления:
CREATE_UNIT
- Создание дочернего юнита.
Примечание: NOTIFICATION=CREATE_UNIT&ACTION=CREATE_UNIT&UNIT_ID=…&PARENT_ID=…&INN=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID +PROFILE_ID+OBJECT_ID+ключ)
EDIT_CONTRACT
- Изменение статуса договора.
Статусы:
INACTIVE
- статус договора после регистрации в Системе “МОНЕТА.РУ”ACTIVE
- статус договора после перевода юнита продавца из группы Зарегистрированные клиенты в Рабочую группу.RESTRICTED
- статус договора после перевода из Рабочей группы в Клиенты без заявления.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=EDIT_CONTRACT&UNIT_ID=…&CONTRACT_ID=…&OLD_STATUS=…&NEW_STATUS=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+CONTRACT_ID+OLD_STATUS+NEW_STATUS+ключ)
CREATE_ACCOUNT
- Создание счетов.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=CREATE_ACCOUNT&UNIT_ID=…&ACCOUNT_ID=…&ACCOUNT_TYPE=…&ACCOUNT_CREDIT_EXTID=…& ACCOUNT_DEBIT_EXTID=…&ACCOUNT_NUMBER=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+ACCOUNT_ID+ACCOUNT_TYPE+ключ)
SEND_AGREEMENT
- Продавцу сформировано Заявление о присоединении к Договору.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=SEND_AGREEMENT&UNIT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID +PROFILE_ID+OBJECT_ID+ключ)
EDIT_PROFILE
- Редактирование Основного профиля.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=EDIT_PROFILE&UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID +PROFILE_ID+OBJECT_ID+ключ)
MOVE_UNIT
- Перенос юнита. PARENT_ID - новый родительский юнит.
Примечание: NOTIFICATION=PROFILE_UPDATE &ACTION=MOVE_UNIT&UNIT_ID=…&PARENT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PARENT_ID+ключ)
CREATE_BANK_ACCOUNT
- Создание банковских реквизитов.
Примечание: NOTIFICATION=PROFILE_UPDATE &ACTION=CREATE_BANK_ACCOUNT&UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PROFILE_ID+OBJECT_ID+ключ)
EDIT_BANK_ACCOUNT
- Редактирование банковских реквизитов.
Примечание: NOTIFICATION=PROFILE_UPDATE &ACTION=EDIT_BANK_ACCOUNT&UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PROFILE_ID+OBJECT_ID+ключ)
CREATE_LEGAL_INFO
- Создание юридических реквизитов.
Примечание: NOTIFICATION=PROFILE_UPDATE &ACTION=CREATE_LEGAL_INFO &UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PROFILE_ID+OBJECT_ID+ключ)
EDIT_LEGAL_INFO
- Редактирование юридических реквизитов.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=EDIT_LEGAL_INFO&UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PROFILE_ID+OBJECT_ID+ключ)
CREATE_DOCUMENT
- Создание документа.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=CREATE_DOCUMENT&UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PROFILE_ID+OBJECT_ID+ключ)
EDIT_DOCUMENT
- Редактирование документа.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=EDIT_DOCUMENT&UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PROFILE_ID+OBJECT_ID+ключ)
CREATE_FOUNDER
- Создание Учредителя. PROFILE_ID
равен OBJECT_ID
.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=CREATE_FOUNDER&UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PROFILE_ID+OBJECT_ID+ключ)
EDIT_FOUNDER
- Редактирование Учредителя. PROFILE_ID
равен OBJECT_ID
.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=EDIT_FOUNDER&UNIT_ID=…&PROFILE_ID=…&OBJECT_ID=…&MNT_SIGNATURE=md5(ACTION+UNIT_ID+PROFILE_ID+OBJECT_ID+ключ)
EDIT_PROFILE
- Обновление профиля.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=EDIT_PROFILE&UNIT_ID=…&UPDATE_DETAILS=…&MNT_SIGNATURE= md5(ACTION+UNIT_ID+UPDATE_DETAILS+ключ)
CONDITION_REJECTED
- Продавец не прошёл проверку соответствия ПиУ.
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=CONDITION_REJECTED&UNIT_ID=…&PAYEE_DETAILS=…&PAYER_DETAILS=…&SITE_DETAILS=…&PAYMENT_INFO_DETAILS=…&CORRECT_DATA_DETAILS=…&MNT_SIGNATURE=… ACTION+UNIT_ID+ключ
RECEIVED_AGREEMENT
- получено заявление о присоединении к Договору
Примечание: NOTIFICATION=PROFILE_UPDATE&ACTION=RECEIVED_AGREEMENT&UNIT_ID=…&PAYEE_DETAILS=&PAYER_DETAILS=&SITE_DETAILS=&PAYMENT_INFO_DETAILS=&CORRECT_DATA_DETAILS=&MNT_SIGNATURE=…
На уведомление следует ответить http-status=200 или строчкой: SUCCESS
Если адрес обработчика не может быть вызван по какой-либо причине, либо в ответе придёт не SUCCESS
, то уведомление будет направлено повторно. Всего 8 раз в течении суток, с увеличивающейся периодичностью: 12 минут, 24 минуты, 48 минут и т. д.
Варианты подключения к Монете
Глава содержит информацию о подключении клиента маркетплейса юридического лица и индивидуального предпринимателя (далее ЮЛ/ИП) в качестве получателя платежей или плательщика в Системе МОНЕТА.РУ.
Подключение к Системе состоит из трех основных этапов:
- Регистрация
- Заполнение личного кабинета
- Создание бизнес-счета (расширенного счета)
Вариант 1. Клиент маркетплейса подключается самостоятельно. Клиент регистрируется на сайте https://payanyway.ru по специальной ссылке.
В этом случае клиент имеет доступ к личному кабинету на сайте https://payanyway.ru и может сам заполнить личный кабинет, указать все настройки, необходимые для приема платежей и управлять денежными средствами.
Вариант 2. Маркетплейс регистрирует клиента с помощью интерфейса MerchantAPI, предварительно запросив необходимые данные у ЮЛ/ИП, например, в личном кабинете на сайте маркетплейса.
В этом случае клиент маркетплейса не имеет доступ к личному кабинету на сайте https://payanyway.ru. Маркетплейс отображает своему клиенту в личном кабинете на сайте маркетплейса информацию из личного кабинета в Cистеме МОНЕТА.РУ, например, доступный баланс, историю операций.
В обоих вариантах клиент маркетплейса становится клиентом НКО “МОНЕТА” (ООО), принимая условия Договора о переводах без открытия счетов в Системе МОНЕТА.РУ и осуществлении информационно-технологического взаимодействия для юридических лиц и индивидуальных предпринимателей — резидентов РФ.
Во втором варианте с условиями Договора маркетплейс должен ознакомить ЮЛ/ИП на своем сайте до регистрации в Системе МОНЕТА.РУ, разместив информацию об “НКО МОНЕТА” (ООО) и ссылку на Договор о переводах без открытия счетов в Системе МОНЕТА.РУ и осуществлении информационно-технологического взаимодействия для юридических лиц и индивидуальных предпринимателей — резидентов РФ.
Подразделы Варианты подключения к Монете
Клиент маркетплейса подключается самостоятельно
Основные этапы взаимодействия НКО “МОНЕТА” (ООО) с маркетплейсом и клиентом юридическим лицом и индивидуальным предпринимателем (далее ЮЛ/ИП) при самостоятельном подключении к Системе МОНЕТА.РУ:
- Клиент регистрируется на сайте маркетплейса
- Маркетплейс переводит клиента на сайт https://payanyway.ru по специальной ссылке для регистрации в Системе МОНЕТА.РУ.
Формат ссылки:
https://site/backoffice/auth/register?marketplacePublicId=stringValue&marketplaceVerificationCode=stringValue&site=value&inn=value
В этой ссылке маркетплейс указывает ИНН клиента и сайт.
В поле “сайт” может быть указана как страница клиента на сайте маркетплейса, так и URL собственного сайта клиента, зависит от бизнес-кейса маркетплейса.
- Клиент регистрируется на сайте https://payanyway.ru. Указывает номер телефона, e-mail.
- В Системе МОНЕТА.РУ создается личный кабинет для клиента.
- Система МОНЕТА.РУ отправляет маркетплейсу E-mail и URL (CREATE_UNIT) уведомления о регистрации клиента.
- Маркетплейс фиксирует в своей системе соответствие “ИНН клиента - юнит клиента” в Системе МОНЕТА.РУ.
- Система МОНЕТА.РУ отправляет клиенту E-mail уведомление о регистрации на адрес электронной почты, указанный при регистрации на сайте https://payanyway.ru.
- Клиент активирует учетную запись и заполняет личный кабинет на сайте https://payanyway.ru.
- Сотрудник НКО МОНЕТА (ООО) проверяет заполненный личный кабинет и страницу клиента на наличие информации, обязательной для размещения на сайте и (или) в мобильном приложении:
- Наименование юридического лица или ИП (Фамилия, Имя, Отчество полностью)
- ИНН для юридического лица, ОГРНИП для индивидуального предпринимателя
- Адрес регистрации (для ИП достаточно указать город)
- Контактный телефон и адрес электронной почты
- Порядок оформления и сроки исполнения заказа, его оплаты, доставки и возврата
- Система МОНЕТА.РУ включает прием платежей для клиента.
- Система МОНЕТА.РУ отправляет маркетплейсу E-mail и URL (EDIT_CONTACT) уведомления о включении приема платежей для клиента и о необходимости создать счет.
- Маркетплейс учитывает в своей системе, что клиенту включен прием платежей.
- Система МОНЕТА.РУ отправляет клиенту E-mail уведомление о включении приема платежей для него и о необходимости создать счет.
- Клиент создает бизнес-счет в Системе МОНЕТА.РУ.
- Система МОНЕТА.РУ отправляет клиенту E-mail уведомление о созданном счете.
- клиент принимает уведомление о созданном счете к сведению.
- Система МОНЕТА.РУ отправляет маркетплейсу E-mail и URL (CREATE_ACCOUNT) уведомления о созданном счете для клиента.
- Маркетплейс фиксирует в своей системе соответствие ИНН-юнит-счет и указывает настройки для счета клиента, необходимые для приема платежей.
Для того, чтобы на каждом счете клиента не указывать настройки, маркетплейс может добавлять в настройках счета клиента счет-прототип методом EditAccountRequest (стр.129 MONETA.MerchantAPI).
- Система МОНЕТА.РУ отправляет клиенту E-mail уведомление о необходимости ему отправить в НКО заявление о присоединении к Договору.
- Система МОНЕТА.РУ отправляет маркетплейсу E-mail и URL (SEND_AGREEMENT) уведомления о необходимости клиенту отправить в НКО заявление о присоединении к Договору.
- Клиент отправляет в НКО “МОНЕТА” (ООО) заявление о присоединении к Договору.
- НКО “МОНЕТА” (ООО) получает заявление о присоединении к Договору.
- Система МОНЕТА.РУ отправляет клиенту E-mail уведомление о получении заявления о присоединении к Договору.
- Система МОНЕТА.РУ отправляет E-mail уведомление маркетплейсу о получении заявления о присоединении к Договору.
- Маркетплейс и клиент принимают к сведению уведомление о получении заявления.
Маркетплейс подключает клиента
Пример очередности запросов для подключения юридического лица и/или индивидуального предпринимателя с помощью интерфейса MerchantAPI.
- CreateProfileRequest - Создание личного кабинета (юнита) клиента (продавца) маркетплейса.
По указанному ИНН, НКО МОНЕТА (ООО) добавит в личный кабинет клиента данные о клиенте, полученные из выписки ЕГРЮЛ/ЕГРИП и отправит макетплейсу URL- уведомление об обновлении данных клиента.
- CheckProfileRequest - Получение списка недостающих данных в юните клиента маркетплейса. В ответе содержится список параметров и запросов, с помощью которых можно заполнить недостающие данные в подпрофилях базового профиля (юнита).
- EditProfileRequest базового профиля - Заполнение базового профиля клиента.
- EditProfileRequest профиля руководителя - Заполнение подпрофиля руководителя.
- EditProfileRequest профиля руководителя (либо CheckProfile) - Получение id документа руководителя.
- EditProfileDocumentRequest документа руководителя - Заполнение документа руководителя.
- EditProfileRequest профиля учредителя - Заполнение подпрофиля учредителя.
- EditProfileRequest профиля бенефициарного владельца - Заполнение подпрофиля бенефициарного владельца.
- FindProfileDocumentsRequest документа бенефициарного владельца (либо CheckProfile) - Получение id документа бенефициарного владельца.
- EditProfileDocumentRequest паспорта бенефициарного владельца - Заполнение паспорта бенефициарного владельца.
- CreateBankAccountRequest - Создание банковских реквизитов.
- FindLegalInformationRequest профиля юридических реквизитов - Получение id юридических реквизитов.
- SaveLegalInformationRequest - Заполнение подпрофиля юридических реквизитов
- EditProfileRequest базового профиля с атрибутом CONDITIONS_CORRECT_DATA - Подтверждение готовности юнита клиента к проверке сотрудниками НКО.
Система МОНЕТА.РУ отправляет уведомление сотруднику коммерческого отдела НКО “МОНЕТА” (ООО) о необходимости проверить личный кабинет (юнит) клиента маркетплейса.
Сотрудник проверяет личный кабинет клиента и активирует его.
Система МОНЕТА.РУ отправляет маркетплейсу URL-уведомление MOVE_UNIT о переводе юнита клиента из группы “Зарегистрированные клиенты” в “Активные клиенты”
После перевода в группу “Активные клиенты” потребуется отправить следующие запросы:
- CreateAccount - создание расширенного счета для клиента.
- FindProfileDocumentFiles - скачать заявление о присоединении к оферте.
- EditProfile - передать дату и способ отправки заявления о присоединении к оферте.
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Примечание: Приведенный выше список запросов для регистрации продавца не является строгой последовательностью запросов в Систему МОНЕТА.РУ.
Последовательность запросов, отправляемых маркетплейсом в Систему МОНЕТА.РУ, зависит от организационно-правовой формы клиента и данным по учредителям, бенефициарным владельцам клиента.
Подразделы Маркетплейс подключает клиента
Определения
Базовый профиль - профиль, принадлежащий личному кабинету (юниту) юридического лица и индивидуального предпринимателя (далее ЮЛ/ИП).
Базовый профиль добавляется Системой МОНЕТА.РУ при создании личного кабинета (юнита).
Получатель платежей, продавец - юридическое лицо; физическое лицо, зарегистрированное в качестве индивидуального предпринимателя, для которых маркетплейс обеспечивает взаимодействие с НКО “МОНЕТА” (ООО) по приему платежей в рамках Договора о переводах без открытия счетов в Системе МОНЕТА.РУ и осуществления информационно-технологического взаимодействия для юридических лиц и индивидуальных предпринимателей - резидентов РФ..
Является клиентом НКО “МОНЕТА” и клиентом маркетплейса.
Система МОНЕТА.РУ - совокупность программных и аппаратных средств, обеспечивающих информационное и технологическое взаимодействие между НКО, Плательщиком, Получателем и Эмитентом при совершении Переводов с использованием сети Интернет.
СМЭВ - это Система Межведомственного Электронного Взаимодействия, которая позволяет получать данные о юридическом лице и индивидуальном предпринимателе, которые доступны в выписке ЕГРЮЛ/ЕГРИП.
Маркетплейс / Торговая Площадка / Платформа - владелец Сервиса, обеспечивающего Плательщикам и Получателям возможность инициирования Распоряжений Плательщиков для осуществления НКО Переводов, а также регистрацию Получателей и Плательщиков в Системе НКО. Маркетплейс - технологический партнер, которого привлек клиент для взаимодействия с НКО “МОНЕТА” (ООО) согласно п. 1.5 Договора о переводах без открытия счетов в Системе “МОНЕТА.РУ” и осуществления информационно-технологического взаимодействия для юридических лиц и индивидуальных предпринимателей - резидентов РФ.
Набор полей в личном кабинете клиента
Данная информация предоставляется по запросу маркетплейса на mp@payanyway.ru.
Создание профиля
Создание личного кабинета (юнита) для клиента маркетплейса.
Обязательные параметры запроса: INN, ORGANISATION_SHORT_NAME, EMAIL, URL, UNITID - номер юнита группы “Зарегистрированные клиенты”.
Ответ содержит номер созданного личного кабинета (юнита) клиента.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"CreateProfileRequest":{
"unitId":НОМЕР ЮНИТА ГРУППЫ "ЗАРЕГИСТРИРОВАННЫЕ ПАРТНЕРЫ ПЛОЩАДКИ",
"profileType":"organization",
"profile":{
"attribute":[
{
"key":"ORGANIZATION_NAME_SHORT",
"value":"ООО Маркетплейс"
},
{
"key":"INN",
"value":"1234567890"
},
{
"key":"CONTACT_EMAIL",
"value":"test@test.ru"
},
{
"key":"URL",
"value":"payanyway.marketplace.ru"
}
]
}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"CreateProfileResponse":12345
}
}
}
<?php
if (isset($_POST['org_name_short']) && isset($_POST['org_inn']) && isset($_POST['org_email']) && isset($_POST['org_url'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\CreateProfileRequest();
$request->unitId = 1111111111;
$request->profileType = \Moneta\Types\ProfileType::organization;
$profile = new \Moneta\Types\Profile();
//краткое название организации
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "ORGANIZATION_NAME_SHORT";
$attribute->value = $_POST['org_name_short'];
$profile->addAttribute($attribute);
//ИНН организации
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "INN";
$attribute->value = $_POST['org_inn'];
$profile->addAttribute($attribute);
//контактный e-mail
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "CONTACT_EMAIL";
$attribute->value = $_POST['org_email'];
$profile->addAttribute($attribute);
//адрес сайта организации
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "URL";
$attribute->value = $_POST['org_url'];
$profile->addAttribute($attribute);
$request->profile = $profile;
//создание новой организации(продавца)
$result = $monetaSdk->monetaService->CreateProfile($request);
if (is_array($result) || (strlen($result) !== strlen(intval($result)))) {
throw new Exception(print_r($result, true));
}
echo "UNIT ID нового продавца: $result<br/><br/>";
echo "Запишите UNIT ID нового продавца. Он понадобится для совершения дальнейших шагов.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
Краткое название организации:<br/>
<input type="text" name="org_name_short" placeholder="ООО "Маркетплейс""/><br/><br/>
ИНН организации:<br/>
<input type="text" name="org_inn"/><br/><br/>
Контактный e-mail:<br/>
<input type="text" name="org_email"/><br/><br/>
Url сайта:<br/>
<input type="text" name="org_url" placeholder="http://example.ru"/><br/><br/>
<input type="submit" value="Создать профиль организации"/>
</form>
';
}
Полученное значение unitid маркетплейсу необходимо сохранить в своей системе учета.
Каждому юниту (unitid) соответствует базовый профиль (profileid), его значение можно получить в ответе на запрос CheckProfileRequest.
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Проверка полей профиля
Получение информации о незаполненных полях созданного личного кабинета (юнита).
В ответ маркетплейс получит номер базового профиля (profileid) и номера подпрофилей.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"CheckProfileRequest":{
"unitId":12345
}
}
}
}
Ответ:
{"Envelope": {"Body": {"CheckProfileResponse": {
"foundersTotalShare": 0,
"daysBeforePartnerLock": 30,
"requestInfo": [
{
"method": "EditProfile",
"scope": "Founder",
"profile": {
"profileId": 55555,
"profile": {"attribute": [
{
"value": "number{0...100}",
"key": "FOUNDER_SHARE_PERCENTAGE"
},
{
"value": "number{0...}",
"key": "FOUNDER_SHARE_NUMERATOR"
},
{
"value": "number{0...}",
"key": "FOUNDER_SHARE_DENOMINATOR"
}
]},
"unitId": 12345
},
"action": "REQUEST"
},
{
"method": "EditProfile",
"scope": "Personal",
"profile": {
"profileId": 54321,
"profile": {"attribute": [
{
"value": "address@domain.com",
"key": "FINANCE_EMAIL"
},
{
"value": "number{79001112233}",
"key": "PHONE_SUPPORT"
},
{
"value": "string",
"key": "FIO_CONTACT"
},
{
"value": "Y|N",
"key": "CONDITIONS_PAYER"
},
{
"value": "EXIST|NONE",
"key": "BUDGET_ARREARS_ABSENCE"
},
{
"value": "Y|N",
"key": "CONDITIONS_PAYEE"
},
{
"value": "string",
"key": "PLANNED_TURNOVERS"
},
{
"value": "string",
"key": "REGISTRATION_AUTHORITY_RU"
},
{
"value": "string",
"key": "AGREEMENT_SIGNER_FIO"
},
{
"value": "Y|N",
"key": "CONDITIONS_CORRECT_DATA"
},
{
"value": "number{79001112233}",
"key": "PHONE_CONTACT"
},
{
"value": "Y|N",
"key": "CONDITIONS_PAYMENT_INFO"
},
{
"value": "country: isocode[RUS], isocode2L[RU], name[Россия|Russia]",
"key": "COUNTRY"
},
{
"value": "POWER_OF_ATTORNEY|ARTICLES_OF_ASSOCIATION|OTHER",
"key": "ACTING_DOCUMENT"
},
{
"value": "string",
"key": "FIO_ACCOUNTANT"
},
{
"value": "string",
"key": "POST_ADDRESS"
},
{
"value": "address@domain.com",
"key": "TECHNICAL_EMAIL"
},
{
"value": "Y|N",
"key": "CONDITIONS_SITE"
},
{
"value": "number{79001112233}",
"key": "PHONE_ACCOUNTANT"
}
]},
"unitId": 12345
},
"action": "REQUEST"
},
{
"method": "EditProfile",
"scope": "Director",
"profile": {
"profileId": 44444,
"profile": {"attribute": [
{
"value": "country: isocode[RUS], isocode2L[RU], name[Россия|Russia]",
"key": "NATIONALITY"
},
{
"value": "string",
"key": "LEGAL_ADDRESS"
},
{
"value": "string",
"key": "PLACE_OF_BIRTH"
},
{
"value": "string",
"key": "POST_ADDRESS"
},
{
"value": "Y|N",
"key": "RF_RESIDENT"
},
{
"value": "YYYY-MM-DD",
"key": "DATE_OF_BIRTH"
},
{
"value": "number{79001112233}",
"key": "PHONE_CONTACT"
}
]},
"unitId": 12345
},
"action": "REQUEST"
},
{
"juridical": {"attribute": [ {
"value": "number{11 [КЧ | 222 [КЧ | 333 [КЧ | 444]]]}",
"key": "OKATO"
}]},
"scope": "Juridical",
"action": "CALL_SERVICE_SUPPORT"
},
{
"bank": {
"unitId": 12345,
"attribute": [
{
"value": "number{12345678901234567890}",
"key": "ACCOUNT"
},
{
"value": "number{123456789}",
"key": "BIK"
}
]
},
"method": "CreateBankAccount",
"scope": "Bank",
"action": "REQUEST"
}
],
"status": "DATA_REQUIRED"
}}}}
<?php
if (isset($_POST['unit_id'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\CheckProfileRequest();
$request->unitId = $_POST['unit_id'];
$result = $monetaSdk->monetaService->CheckProfile($request);
if (is_array($result) && 'OK' !== $result['status']) {
throw new Exception(print_r($result, true));
}
echo "<pre>";
print_r($result);
echo "</pre>";
} catch (Exception $e) {
echo "Необходимо заполнить следующие данные:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации(площадки):<br/>
<input type="text" name="unit_id"/><br/><br/>
<input type="submit" value="Проверить данные профиля"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Заполнение базового профиля
Рекомендуем маркетплейсу приступать к заполнению созданного личного кабинета (юнита) клиента после получения URL - уведомления EDIT_PROFILE.
Заполнение базового профиля личного кабинета (юнита) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"EditProfileRequest":{
"unitId":12345,
"profileId": 54321,
"profile": {"attribute": [
{
"value": "MP@domain.com",
"key": "FINANCE_EMAIL"
},
{
"value": "79001112233",
"key": "PHONE_SUPPORT"
},
{
"value": "TEST TET TEST",
"key": "FIO_CONTACT"
},
{
"value": "Y",
"key": "CONDITIONS_PAYER"
},
{
"value": "NONE",
"key": "BUDGET_ARREARS_ABSENCE"
},
{
"value": "Y",
"key": "CONDITIONS_PAYEE"
},
{
"value": "100000",
"key": "PLANNED_TURNOVERS"
},
{
"value": "TEST",
"key": "REGISTRATION_AUTHORITY_RU"
},
{
"value": "TEST TEST TEST",
"key": "AGREEMENT_SIGNER_FIO"
},
{
"value": "79001112233",
"key": "PHONE_CONTACT"
},
{
"value": "Y",
"key": "CONDITIONS_PAYMENT_INFO"
},
{
"value": "RU",
"key": "COUNTRY"
},
{
"value": "ARTICLES_OF_ASSOCIATION",
"key": "ACTING_DOCUMENT"
},
{
"value": "TEST TEST TEST",
"key": "FIO_ACCOUNTANT"
},
{
"value": "Йошкар-Ола, ул. гоголя. д.2 стр. А",
"key": "POST_ADDRESS"
},
{
"value": "MP@domain.com",
"key": "TECHNICAL_EMAIL"
},
{
"value": "Y",
"key": "CONDITIONS_SITE"
},
{
"value": "79001112233",
"key": "PHONE_ACCOUNTANT"
}
]}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"EditProfileResponse":{
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\EditProfileRequest();
$request->unitId = $_POST['unit_id'];
$request->profileId = $_POST['profile_id'];
$profile = new \Moneta\Types\Profile();
//E-mail финансовой службы
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "FINANCE_EMAIL";
$attribute->value = $_POST['finance_email'];
$profile->addAttribute($attribute);
//Телефон по техническим вопросам
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "PHONE_SUPPORT";
$attribute->value = $_POST['phone_support'];
$profile->addAttribute($attribute);
//ФИО контакта по техническим вопросам
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "FIO_CONTACT";
$attribute->value = $_POST['fio_contact'];
$profile->addAttribute($attribute);
//Статус "На сайте присутствует контактная информация для плательщиков, доступная без регистрации"
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "CONDITIONS_PAYER";
$attribute->value = $_POST['conditions_payer'];
$profile->addAttribute($attribute);
//Сведения о наличии задолженности перед бюджетом по налогам и сборам
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "BUDGET_ARREARS_ABSENCE";
$attribute->value = $_POST['budget_arrears_absence'];
$profile->addAttribute($attribute);
//Статус "На сайте присутствует информация о получателе платежей, доступная без регистрации плательщика"
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "CONDITIONS_PAYEE";
$attribute->value = $_POST['conditions_payee'];
$profile->addAttribute($attribute);
//Планируемые ежемесячные обороты
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "PLANNED_TURNOVERS";
$attribute->value = $_POST['planned_turnovers'];
$profile->addAttribute($attribute);
//Наименование регистрирующего органа (свидетельство о регистрации)
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "REGISTRATION_AUTHORITY_RU";
$attribute->value = $_POST['registration_authority_ru'];
$profile->addAttribute($attribute);
//ФИО для подписи в договоре
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "AGREEMENT_SIGNER_FIO";
$attribute->value = $_POST['agreement_signer_fio'];
$profile->addAttribute($attribute);
//Контактный телефон
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "PHONE_CONTACT";
$attribute->value = $_POST['phone_contact'];
$profile->addAttribute($attribute);
//Статус "Описание порядка и процесса оплаты, а также информация о временном промежутке между оплатой и отгрузкой (доставкой) товара или предоставлением услуги доступны без регистрации"
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "CONDITIONS_PAYMENT_INFO";
$attribute->value = $_POST['conditions_payment_info'];
$profile->addAttribute($attribute);
//Страна
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "COUNTRY";
$attribute->value = $_POST['country'];
$profile->addAttribute($attribute);
//Документ, на основании которого действует директор
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "ACTING_DOCUMENT";
$attribute->value = $_POST['acting_document'];
$profile->addAttribute($attribute);
//Подробности по документу, на основании которого действует директор, только для "Другой"
if ($_POST['acting_document_details']) {
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "ACTING_DOCUMENT_DETAILS";
$attribute->value = $_POST['acting_document_details'];
$profile->addAttribute($attribute);
}
//ФИО контакта по финансовым вопросам
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "FIO_ACCOUNTANT";
$attribute->value = $_POST['fio_accountant'];
$profile->addAttribute($attribute);
//Почтовый адрес
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "POST_ADDRESS";
$attribute->value = $_POST['post_address'];
$profile->addAttribute($attribute);
//E-mail технической поддержки
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "TECHNICAL_EMAIL";
$attribute->value = $_POST['technical_email'];
$profile->addAttribute($attribute);
//Статус "Сайт полностью функционален и заполнен контентом"
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "CONDITIONS_SITE";
$attribute->value = $_POST['conditions_site'];
$profile->addAttribute($attribute);
//Телефон по финансовым вопросам
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "PHONE_ACCOUNTANT";
$attribute->value = $_POST['phone_accountant'];
$profile->addAttribute($attribute);
$request->profile = $profile;
//сохранение базового профиля организации(продавца)
$result = $monetaSdk->monetaService->EditProfile($request);
if (!empty($result)) {
throw new Exception(print_r($result, true));
}
echo "Данные профиля успешно сохранены.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID базового профиля (Personal):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
E-mail финансовой службы:<br/>
<input type="email" name="finance_email" placeholder="address@domain.com" required="required"/><br/><br/>
Телефон по техническим вопросам:<br/>
<input type="tel" name="phone_support" placeholder="79001112233" required="required"/><br/><br/>
ФИО контакта по техническим вопросам:<br/>
<input type="text" name="fio_contact" placeholder="Иванов Иван Иванович" required="required"/><br/><br/>
Наименование регистрирующего органа (свидетельство о регистрации):<br/>
<input type="text" name="registration_authority_ru" required="required"/><br/><br/>
Статус "На сайте присутствует контактная информация <strong>для плательщиков</strong>, доступная без регистрации":<br/>
<input type="radio" name="conditions_payer" value="Y"/>Да
<input type="radio" name="conditions_payer" value="N" checked="checked"/>Нет<br/><br/>
Сведения о наличии задолженности перед бюджетом по налогам и сборам:<br/>
<select name="budget_arrears_absence" required="required">
<option value=""></option>
<option value="EXIST">Есть задолженность</option>
<option value="NONE">Нет задолженности</option>
</select><br/><br/>
Статус "На сайте присутствует информация <strong>о получателе платежей</strong>, доступная без регистрации плательщика":<br/>
<input type="radio" name="conditions_payee" value="Y"/>Да
<input type="radio" name="conditions_payee" value="N" checked="checked"/>Нет<br/><br/>
Планируемые ежемесячные обороты:<br/>
<input type="text" name="planned_turnovers" required="required" placeholder="100000"/><br/><br/>
ФИО для подписи в договоре:<br/>
<input type="text" name="agreement_signer_fio" required="required"/><br/><br/>
Контактный телефон:<br/>
<input type="tel" name="phone_contact" placeholder="79001112233" required="required"/><br/><br/>
Статус "Описание порядка и процесса оплаты, а также информация о временном промежутке между оплатой и отгрузкой (доставкой) товара или предоставлением услуги доступны без регистрации":<br/>
<input type="radio" name="conditions_payment_info" value="Y"/>Да
<input type="radio" name="conditions_payment_info" value="N" checked="checked"/>Нет<br/><br/>
Страна:<br/>
<select name="country" required="required">
<option value=""></option>
<option value="RUS">Россия</option>
</select><br/><br/>
Документ, на основании которого действует директор:<br/>
<select name="acting_document" required="required">
<option value=""></option>
<option value="POWER_OF_ATTORNEY">Доверенность</option>
<option value="ARTICLES_OF_ASSOCIATION">Устав</option>
<option value="OTHER">Другой</option>
</select><br/>
Подробности по документу, на основании которого действует директор, <strong>только для "Другой"</strong>:<br/>
<input type="text" name="acting_document_details"/><br/><br/>
ФИО контакта по финансовым вопросам:<br/>
<input type="text" name="fio_accountant" placeholder="Иванов Иван Иванович" required="required"/><br/><br/>
Почтовый адрес:<br/>
<input type="text" name="post_address" required="required"/><br/><br/>
E-mail технической поддержки:<br/>
<input type="email" name="technical_email" placeholder="address@domain.com" required="required"/><br/><br/>
Статус "Сайт полностью функционален и заполнен контентом":<br/>
<input type="radio" name="conditions_site" value="Y"/>Да
<input type="radio" name="conditions_site" value="N" checked="checked"/>Нет<br/><br/>
Телефон по финансовым вопросам:<br/>
<input type="tel" name="phone_accountant" placeholder="79001112233" required="required"/><br/><br/>
<input type="submit" name="submit" value="Сохранить профиль организации"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Заполнение подпрофиля руководителя
Заполнение подпрофиля руководителя в личном кабинете (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"EditProfileRequest":{
"unitId":12345,
"profileId":44444,
"profile":{
"attribute":[
{
"value":"RU",
"key":"NATIONALITY"
},
{
"value":"LEGAL_ADDRESS",
"key":"LEGAL_ADDRESS"
},
{
"value":"PLACE_OF_BIRTH",
"key":"PLACE_OF_BIRTH"
},
{
"value":"POST_ADDRESS",
"key":"POST_ADDRESS"
},
{
"value":"Y",
"key":"RF_RESIDENT"
},
{
"value":"YYYY-MM-DD",
"key":"DATE_OF_BIRTH"
},
{
"value":"79123456789",
"key":"PHONE_CONTACT"
},
{
"value":"123456789012",
"key":"INN"
}
]
}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"EditProfileResponse":{
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\EditProfileRequest();
$request->unitId = $_POST['unit_id'];
$request->profileId = $_POST['profile_id'];
$profile = new \Moneta\Types\Profile();
//Гражданство
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "NATIONALITY";
$attribute->value = $_POST['nationality'];
$profile->addAttribute($attribute);
//Место рождения
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "PLACE_OF_BIRTH";
$attribute->value = $_POST['place_of_birth'];
$profile->addAttribute($attribute);
//Адрес регистрации
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "LEGAL_ADDRESS";
$attribute->value = $_POST['legal_address'];
$profile->addAttribute($attribute);
//Почтовый адрес
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "POST_ADDRESS";
$attribute->value = $_POST['post_address'];
$profile->addAttribute($attribute);
//Тип партнёра
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "RF_RESIDENT";
$attribute->value = $_POST['rf_resident'];
$profile->addAttribute($attribute);
//Дата рождения
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "DATE_OF_BIRTH";
$attribute->value = $_POST['date_of_birth'];
$profile->addAttribute($attribute);
//Контактный телефон
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "PHONE_CONTACT";
$attribute->value = $_POST['phone_contact'];
$profile->addAttribute($attribute);
//ИНН
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "INN";
$attribute->value = $_POST['inn'];
$profile->addAttribute($attribute);
$request->profile = $profile;
//сохранение подпрофиля руководителя организации
$result = $monetaSdk->monetaService->EditProfile($request);
if (!empty($result)) {
throw new Exception(print_r($result, true));
}
echo "Данные подпрофиля руководителя успешно сохранены.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID подпрофиля руководителя (Director):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
Гражданство:<br/>
<select name="nationality" required="required">
<option value=""></option>
<option value="RU">Россия</option>
</select><br/><br/>
Место рождения:<br/>
<input type="text" name="place_of_birth" required="required" placeholder="г. Уфа, ул. Новая, д.333, кв. 777"/><br/><br/>
Адрес регистрации:<br/>
<input type="text" name="legal_address" required="required" placeholder="г. Москва, ул. Новая, д.333, кв. 777"/><br/><br/>
Почтовый адрес:<br/>
<input type="text" name="post_address" required="required" placeholder="г. Москва, ул. Новая, д.333, кв. 777"/><br/><br/>
Тип подпрофиля:<br/>
<select name="rf_resident" required="required">
<option value=""></option>
<option value="Y">Резидент РФ</option>
<option value="N">Нерезидент РФ</option>
</select><br/><br/>
Дата рождения:<br/>
<input type="date" name="date_of_birth" required="required"/><br/><br/>
Контактный телефон:<br/>
<input type="text" name="phone_contact" required="required" placeholder="79123456789"/><br/><br/>
ИНН:<br/>
<input type="text" name="inn" required="required" placeholder="123456789012"/><br/><br/>
<input type="submit" name="submit" value="Сохранить подпрофиль руководителя"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Поиск документа руководителя
Получение id документа руководителя в личном кабинете (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"FindProfileDocumentsRequest":{
"unitId":12345,
"profileId":44444
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"FindProfileDocumentsResponse":{
"document":[
{
"id":5057,
"attribute":[
{
"approved":true,
"value":"YYYY-MM-DDT14:07:35.000+03:00",
"key":"modificationdate"
}
],
"type":"PASSPORT",
"hasAttachedFiles":false
}
]
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\FindProfileDocumentsRequest();
$request->unitId = $_POST['unit_id'];
$request->profileId = $_POST['profile_id'];
//поиск документа у подпрофиля руководителя
$result = $monetaSdk->monetaService->FindProfileDocuments($request);
if (count($result)) {
echo "<pre>";
print_r($result);
echo "</pre>";
} else {
echo "Не найдено ни одного документа";
}
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID подпрофиля руководителя (Director):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
<input type="submit" name="submit" value="Найти документы руководителя"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Заполнение документа подпрофиля руководителя
Заполнение документа руководителя в личном кабинете (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"EditProfileDocumentRequest":{
"unitId": 12345,
"profileId": 44444,
"id": 5057,
"attribute": [
{
"value": "YYYY-MM-DD",
"key": "ISSUED"
},
{
"value": "0000",
"key": "NUMBER"
},
{
"value": "000000",
"key": "SERIES"
},
{
"value": "ISSUER",
"key": "ISSUER"
}
],
"type": "PASSPORT"
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"EditProfileDocumentResponse":{
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$doc = new \Moneta\Types\EditProfileDocumentRequest();
$doc->unitId = $_POST['unit_id'];
$doc->profileId = $_POST['profile_id'];
$doc->id = $_POST['doc_id'];
$doc->type = $_POST['doc_type'];
//Когда выдан документ
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "ISSUED";
$attribute->value = $_POST['issued'];
$doc->addAttribute($attribute);
//Серия документа
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "SERIES";
$attribute->value = $_POST['series'];
$doc->addAttribute($attribute);
//Номер документа
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "NUMBER";
$attribute->value = $_POST['number'];
$doc->addAttribute($attribute);
//Кем выдан документ
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "ISSUER";
$attribute->value = $_POST['issuer'];
$doc->addAttribute($attribute);
//сохранение документа подпрофиля руководителя
$result = $monetaSdk->monetaService->EditProfileDocument($doc);
if (!empty($result)) {
throw new Exception(print_r($result, true));
}
echo "Данные документа подпрофиля руководителя успешно сохранены.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID подпрофиля руководителя (Director):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
ID документа подпрофиля руководителя:<br/>
<input type="text" name="doc_id" required="required"/><br/><br/>
Тип документа:<br/>
<select name="doc_type" required="required">
<option value=""></option>
<option value="PASSPORT">Паспорт</option>
</select><br/><br/>
Когда выдан документ:<br/>
<input type="date" name="issued" required="required"/><br/><br/>
Серия документа:<br/>
<input type="text" name="series" required="required" placeholder="0000"/><br/><br/>
Номер документа:<br/>
<input type="text" name="number" required="required" placeholder="000000"/><br/><br/>
Кем выдан документ:<br/>
<input type="text" name="issuer" required="required"/><br/><br/>
<input type="submit" name="submit" value="Сохранить документ подпрофиля руководителя"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Заполнение подпрофиля учредителя
Заполнение подпрофиля учредителя в личном кабинете (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"EditProfileRequest":{
"unitId":12345,
"profileId":55555,
"profile":{
"attribute":[
{
"value":"100",
"key":"FOUNDER_SHARE_PERCENTAGE"
}
]
}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"EditProfileResponse":{
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\EditProfileRequest();
$request->unitId = $_POST['unit_id'];
$request->profileId = $_POST['profile_id'];
$profile = new \Moneta\Types\Profile();
//Доля в капитале
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "FOUNDER_SHARE_PERCENTAGE";
$attribute->value = $_POST['founder_share_percentage'];
$profile->addAttribute($attribute);
$request->profile = $profile;
//сохранение подпрофиля учредителя
$result = $monetaSdk->monetaService->EditProfile($request);
if (!empty($result)) {
throw new Exception(print_r($result, true));
}
echo "Данные подпрофиля учредителя успешно сохранены.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID подпрофиля учредителя (Founder):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
Доля в капитале, %:<br/>
<input type="number" name="founder_share_percentage" required="required" min="0" max="100" placeholder="100"/><br/><br/>
<input type="submit" name="submit" value="Сохранить подпрофиль учредителя"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Заполнение подпрофиля бенефициарного владельца
Заполнение подпрофиля бенефициарного владельца в личном кабинете (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"EditProfileRequest":{
"unitId":12345,
"profileId":55555,
"profile": {"attribute": [
{
"value": "RU",
"key": "NATIONALITY"
},
{
"value": "LEGAL_ADDRESS",
"key": "LEGAL_ADDRESS"
},
{
"value": "PLACE_OF_BIRTH",
"key": "PLACE_OF_BIRTH"
},
{
"value": "POST_ADDRESS",
"key": "POST_ADDRESS"
},
{
"value": "YYYY-MM-DD",
"key": "DATE_OF_BIRTH"
},
{
"value": "79001112233",
"key": "PHONE_CONTACT"
}
]}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"EditProfileResponse":{
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\EditProfileRequest();
$request->unitId = $_POST['unit_id'];
$request->profileId = $_POST['profile_id'];
$profile = new \Moneta\Types\Profile();
//Гражданство
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "NATIONALITY";
$attribute->value = $_POST['nationality'];
$profile->addAttribute($attribute);
//Место рождения
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "PLACE_OF_BIRTH";
$attribute->value = $_POST['place_of_birth'];
$profile->addAttribute($attribute);
//Адрес регистрации
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "LEGAL_ADDRESS";
$attribute->value = $_POST['legal_address'];
$profile->addAttribute($attribute);
//Почтовый адрес
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "POST_ADDRESS";
$attribute->value = $_POST['post_address'];
$profile->addAttribute($attribute);
//Дата рождения
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "DATE_OF_BIRTH";
$attribute->value = $_POST['date_of_birth'];
$profile->addAttribute($attribute);
//Контактный телефон
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "PHONE_CONTACT";
$attribute->value = $_POST['phone_contact'];
$profile->addAttribute($attribute);
//ИНН
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "INN";
$attribute->value = $_POST['inn'];
$profile->addAttribute($attribute);
$request->profile = $profile;
//сохранение подпрофиля бенефициара
$result = $monetaSdk->monetaService->EditProfile($request);
if (!empty($result)) {
throw new Exception(print_r($result, true));
}
echo "Данные подпрофиля бенефициара успешно сохранены.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID подпрофиля бенефициара (Beneficiary):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
Гражданство:<br/>
<select name="nationality" required="required">
<option value=""></option>
<option value="RU">Россия</option>
</select><br/><br/>
Место рождения:<br/>
<input type="text" name="place_of_birth" required="required" placeholder="г. Уфа, ул. Новая, д.333, кв. 777"/><br/><br/>
Адрес регистрации:<br/>
<input type="text" name="legal_address" required="required" placeholder="г. Москва, ул. Новая, д.333, кв. 777"/><br/><br/>
Почтовый адрес:<br/>
<input type="text" name="post_address" required="required" placeholder="г. Москва, ул. Новая, д.333, кв. 777"/><br/><br/>
Дата рождения:<br/>
<input type="date" name="date_of_birth" required="required"/><br/><br/>
Контактный телефон:<br/>
<input type="text" name="phone_contact" required="required" placeholder="79123456789"/><br/><br/>
ИНН:<br/>
<input type="text" name="inn" required="required" /><br/><br/>
<input type="submit" name="submit" value="Сохранить подпрофиль бенефициара"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Поиск документа бенефициарного владельца
Получение id документа бенефициарного владельца в личном кабинете (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"FindProfileDocumentsRequest":{
"unitId":12345,
"profileId": 55555
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"FindProfileDocumentsResponse":{
"document":[
{
"id":5058,
"attribute":[
{
"approved":true,
"value":"YYYY-MM-DDT14:10:54.000+03:00",
"key":"modificationdate"
}
],
"type":"PASSPORT",
"hasAttachedFiles":false
}
]
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\FindProfileDocumentsRequest();
$request->unitId = $_POST['unit_id'];
$request->profileId = $_POST['profile_id'];
//поиск документа у подпрофиля бенефициара
$result = $monetaSdk->monetaService->FindProfileDocuments($request);
if (count($result)) {
echo "<pre>";
print_r($result);
echo "</pre>";
} else {
echo "Не найдено ни одного документа";
}
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID подпрофиля бенефициара (Beneficiary):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
<input type="submit" name="submit" value="Найти документы бенефициара"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Заполнение документа бенефициарного владельца
Заполнение паспорта бенефициарного владельца в личном кабинете (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"EditProfileDocumentRequest":{
"unitId": 12345,
"profileId": 55555,
"id": 5058,
"attribute": [
{
"value": "YYYY-MM-DD",
"key": "ISSUED"
},
{
"value": "0000",
"key": "NUMBER"
},
{
"value": "000000",
"key": "SERIES"
},
{
"value": "ISSUER",
"key": "ISSUER"
}
],
"type": "PASSPORT"
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"EditProfileDocumentResponse":{
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$doc = new \Moneta\Types\EditProfileDocumentRequest();
$doc->unitId = $_POST['unit_id'];
$doc->profileId = $_POST['profile_id'];
$doc->id = $_POST['doc_id'];
$doc->type = $_POST['doc_type'];
//Когда выдан документ
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "ISSUED";
$attribute->value = $_POST['issued'];
$doc->addAttribute($attribute);
//Серия документа
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "SERIES";
$attribute->value = $_POST['series'];
$doc->addAttribute($attribute);
//Номер документа
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "NUMBER";
$attribute->value = $_POST['number'];
$doc->addAttribute($attribute);
//Кем выдан документ
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "ISSUER";
$attribute->value = $_POST['issuer'];
$doc->addAttribute($attribute);
//сохранение документа подпрофиля бенефициара
$result = $monetaSdk->monetaService->EditProfileDocument($doc);
if (!empty($result)) {
throw new Exception(print_r($result, true));
}
echo "Данные документа подпрофиля бенефициара успешно сохранены.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID подпрофиля бенефициара (Beneficiary):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
ID документа подпрофиля бенефициара:<br/>
<input type="text" name="doc_id" required="required"/><br/><br/>
Тип документа:<br/>
<select name="doc_type" required="required">
<option value=""></option>
<option value="PASSPORT">Паспорт</option>
</select><br/><br/>
Когда выдан документ:<br/>
<input type="date" name="issued" required="required"/><br/><br/>
Серия документа:<br/>
<input type="text" name="series" required="required" placeholder="0000"/><br/><br/>
Номер документа:<br/>
<input type="text" name="number" required="required" placeholder="000000"/><br/><br/>
Кем выдан документ:<br/>
<input type="text" name="issuer" required="required"/><br/><br/>
<input type="submit" name="submit" value="Сохранить документ подпрофиля бенефициара"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Создание банковских реквизитов клиента
Создание банковских реквизитов в личном кабинете (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"CreateBankAccountRequest":{
"unitId":12345,
"attribute": [
{
"value": "00000000000000000000",
"key": "ACCOUNT"
},
{
"value": "000000000",
"key": "BIK"
}
]
}
}
Ответ:
{
"Envelope":{
"Body":{
"CreateBankAccountResponse":{
"id":2105
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\CreateBankAccountRequest();
$request->unitId = $_POST['unit_id'];
//Номер расчётного счёта
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "ACCOUNT";
$attribute->value = $_POST['account'];
$request->addAttribute($attribute);
//БИК банка
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "BIK";
$attribute->value = $_POST['bik'];
$request->addAttribute($attribute);
//создание банковских реквизитов
$result = $monetaSdk->monetaService->CreateBankAccount($request);
if(!is_array($result) || !$result['id']){
throw new Exception(print_r($result, true));
}
echo "Идентификатор банковских реквизитов в системе MONETA.RU: ".$result['id'];
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
Номер расчётного счёта:<br/>
<input type="text" name="account" required="required" placeholder="12345678901234567890"/><br/><br/>
БИК банка:<br/>
<input type="text" name="bik" required="required" placeholder="123456789"/><br/><br/>
<input type="submit" name="submit" value="Сохранить банковские реквизиты"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Поиск юридических реквизитов
Для заполнения подпрофиля юридических реквизитов (SaveLegalInformationRequest) необходимо сначала получить id подпрофиля.
Получение id юридических реквизитов в личном кабинет (юните) клиента маркетплейса.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"FindLegalInformationRequest":{
"unitId":12345
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"FindLegalInformationResponse":{
"legalInformation":[
{
"id":1878,
"attribute":[
{
"approved":false,
"value":"okved",
"key":"okved"
},
{
"approved":false,
"value":"000000000",
"key":"kpp"
},
{
"approved":false,
"value":"1111111111111",
"key":"ogrn"
}
]
}
]
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\FindLegalInformationRequest();
$request->unitId = $_POST['unit_id'];
//получение id юридических реквизитов
$result = $monetaSdk->monetaService->FindLegalInformation($request);
if (count($result)) {
echo "<pre>";
print_r($result);
echo "</pre>";
} else {
echo "Юридические реквизиты не найдены";
}
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
<input type="submit" name="submit" value="Найти юридические реквизиты"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Заполнение юридических реквизитов
Заполнение подпрофиля юридических реквизитов в личном кабинете (юните) клиента маркетплейса Для сохранения данных в подпрофиле юридических реквизитов необходимо сначала получить id подпрофиля юридических реквизитов запросом FindLegalInformationRequest.
Примечание: Запрос является экспериментальным, может быть изменен без предупреждения.
Отправлять запрос необходимо на http://moneta.ru/schemas/messages-frontend.xsd
WSDL документ: https://moneta.ru/services-frontend.wsdl
Запрос:
{
"Envelope":{
"Header":{
"PayloadNamespace" : "http://moneta.ru/schemas/messages-frontend.xsd",
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"SaveLegalInformationRequest": {
"legalInformation": {
"unitId": "12345",
"id": 1878,
"okato": "00000000"
}
}
}
}
}
Ответ:
{
"Envelope":{
"Header":{
"PayloadNamespace":"http://moneta.ru/schemas/messages-frontend.xsd",
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"SaveLegalInformationRequest":{
"legalInformation":{
"unitId":"12345",
"id":1878,
"okato":"00000000"
}
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$username = $monetaSdk->settings['monetasdk_account_username'];
$password = $monetaSdk->settings['monetasdk_account_password'];
$url = 'https://demo.moneta.ru/services';
$requestData = [
"Envelope" =>
[
"Header" =>
[
"Security" =>
[
"UsernameToken" =>
[
"Username" => $username,
"Password" => $password,
],
],
"PayloadNamespace" => "http://moneta.ru/schemas/messages-frontend.xsd",
],
"Body" =>
[
"SaveLegalInformationRequest" =>
[
"legalInformation" =>
[
"unitId" => $_POST['unit_id'],
"id" => $_POST['doc_id'],
"okato" => $_POST['okato'],
"okved" => $_POST['okved'],
],
],
],
],
];
$requestData = json_encode($requestData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json;charset=UTF-8'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result, true);
if (!$result['Envelope']['Body']['SaveLegalInformationResponse']['id']) {
throw new Exception(print_r($result, true));
}
echo "Юридические реквизиты успешно сохранены.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID документа юридических реквизитов:<br/>
<input type="text" name="doc_id" required="required"/><br/><br/>
ОКАТО:<br/>
<input type="text" name="okato" required="required"/><br/><br/>
ОКВЭД:<br/>
<input type="text" name="okved" required="required" placeholder="XX.XX.XX, XX.XX.XX"/><br/><br/>
<input type="submit" name="submit" value="Сохранить юридические реквизиты"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Отправка профиля на проверку
Подтверждение готовности личного кабинета (юнита) клиента к проверке сотрудниками НКО “МОНЕТА” (ООО).
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"EditProfileRequest":{
"unitId":"12345",
"profile":{
"attribute":[
{
"value":"Y",
"key":"CONDITIONS_CORRECT_DATA"
}
]
}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"EditProfileResponse":{
}
}
}
}
<?php
if (isset($_POST['unit_id']) && isset($_POST['submit'])) {
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\EditProfileRequest();
$request->unitId = $_POST['unit_id'];
$request->profileId = $_POST['profile_id'];
$profile = new \Moneta\Types\Profile();
//Статус "Все необходимые данные внесены и являются актуальными"
$attribute = new \Moneta\Types\KeyValueApprovedAttribute();
$attribute->approved = false;
$attribute->key = "CONDITIONS_CORRECT_DATA";
$attribute->value = $_POST['conditions_correct_data'];
$profile->addAttribute($attribute);
$request->profile = $profile;
//сохранение базового профиля организации(продавца)
$result = $monetaSdk->monetaService->EditProfile($request);
if (!empty($result)) {
throw new Exception(print_r($result, true));
}
echo "Данные профиля успешно сохранены.";
} catch (Exception $e) {
echo "Произошла ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
} else {
echo '
<form method="post">
unit ID организации (площадки):<br/>
<input type="text" name="unit_id" required="required"/><br/><br/>
ID базового профиля (Personal):<br/>
<input type="text" name="profile_id" required="required"/><br/><br/>
Статус "Все необходимые данные внесены и являются актуальными":<br/>
<input type="radio" name="conditions_correct_data" value="Y"/>Да
<input type="radio" name="conditions_correct_data" value="N" checked="checked"/>Нет<br/><br/>
<input type="submit" name="submit" value="Сохранить профиль организации"/>
</form>
';
}
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Создание расширенного счёта
Создание расширенного счета для клиента.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"CreateAccountRequest":{
"currency":"RUB",
"alias":"Alias",
"paymentPassword":"12345",
"unitId":12345,
"prototypeAccountId":1111111111,
"attribute":[
{
"key":"ALIAS",
"value":"Alias",
"published":true
}
]
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"CreateAccountResponse":22222222
}
}
}
PrototypeAccountId
необязательный элемент, это счет-прототип, с которого наследуются настройки.
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Получение ссылки на договор
Запрос на получение заявления о присоединении к Договору.
Для отправки запроса FindProfileDocumentFilesRequest
необходимо получить id документа. Получить id документа можно запросом FindProfileDocumentsRequest
.
FindProfileDocumentsRequest (JSON)
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"FindProfileDocumentsRequest":{
"unitId":11111
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"FindProfileDocumentsResponse":{
"document":[
{
"id":1111,
"attribute":[
{
"approved":false,
"value":"test",
"key":"comments"
},
{
"approved":true,
"value":"2019-08-20T10:39:27.000+03:00",
"key":"modificationdate"
}
],
"type":"OTHER",
"hasAttachedFiles":false
}
]
}
}
}
}
FindProfileDocumentFilesRequest
Запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "USERNAME",
"Password": "PASSWORD"
}
}
},
"Body": {
"FindProfileDocumentFilesRequest": {
"documentId": 1111
}
}
}
}
Ответ:
{
"Envelope": {
"Body": {
"FindProfileDocumentFilesResponse": {
"file": [
{
"approved": true,
"documentId": 1111,
"mimeType": "image\/jpeg",
"requestUri": "\/info\/private\/documents\/364640433885312461716.jpg",
"title": "Scan.jpg",
"fileId": 10001
}
]
}
}
}
}
Примечание: В FindProfileDocumentFilesResponse будет содержаться ссылка на документ.
Необходимо преобразовать ссылку, добавив и получить ссылку типа: https://moneta.ru/info/private/documents/364640433885312461716.jpg
FindProfileDocumentsRequest (XML)
Запрос:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP-ENV:mustUnderstand="1">
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
wsu:Id="XWSSGID-1560771336320-2024615317"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:Username>USERNAME</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">PASSWORD</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns2:FindProfileDocumentFilesRequest xmlns:ns2="http://moneta.ru/schemas/messages.xsd" xmlns="">
<ns2:documentId>9996</ns2:documentId>
</ns2:FindProfileDocumentFilesRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Ответ:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:FindProfileDocumentFilesResponse xmlns:ns2="http://moneta.ru/schemas/messages.xsd">
<ns2:file>
<ns2:documentId>9996</ns2:documentId>
<ns2:blob>
<xop:Include href="cid:023786ad-d52b-4d0e-b763-fc8c4c2f5756%40moneta.ru"
xmlns:xop="http://www.w3.org/2004/08/xop/include"/>
</ns2:blob>
<ns2:approved>true</ns2:approved>
<ns2:fileId>10001</ns2:fileId>
<ns2:mimeType>image/jpeg</ns2:mimeType>
<ns2:title>Scan.jpg</ns2:title>
</ns2:file>
</ns2:FindProfileDocumentFilesResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Примечание: При запросе FindProfileDocumentFilesRequest необходимо включить механизм MTOM - https://en.wikipedia.org/wiki/Message_Transmission_Optimization_Mechanism
Примечание: FindProfileDocumentFilesResponse будет содержать файл. Файл будет лежать после XML, а внутри XML будет ссылка на файл.
Все запросы маркетплейс отправляет с помощью интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Самозанятые
Если получатель платежа на сайте маркетплейса - физическое лицо в статусе самозанятый, маркетплейс может воспользоваться сервисом MonetaNPD.
Сервис позволяет принимать платежи в пользу самозанятого, регистрировать его доход в ФНС, отправлять чеки покупателям и выводить средства на банковские карты самозанятого.
Общий URL контроллера API: https://my.payanyway.ru/backend/web/index.php?r=aisnalogapi
Все данные принимаются методом POST. Для регистрации на сервисе MonetaNPD маркетплейсу необходимо направить заявку в произвольной форме на marketplace@support.payanyway.ru.
По итогам регистрации выдается security_key, идентифицирующий маркетплейс в контроллере API и secret_key для генерации подписи запроса.
Маркетплейс регистрирует физическое лицо и создает ЭСП “МОНЕТА.РУ” на основе Соглашения об использовании Электронного средства платежа “МОНЕТА.РУ” и о переводе электронных денежных средств.
Маркетплейсу необходимо ознакомить своего клиента с текстом Соглашения до регистрации в Системе МОНЕТА.РУ.
Подразделы Самозанятые
Защита маркетплейса в ФНС РФ
Чтобы получить продакшен-ключи маркетплейсу необходимо пройти процедуру защиты в ФНС РФ. Для успешной защиты необходимо, чтобы маркетплейс соответствовал следующим пунктам чек-листа:
- На главной странице сайта маркетплейс должна быть размещена информация о том, как происходит работа с маркетплейсом и взаимодействие с ФНС, а также должны быть размещены ссылки на приложение “Мой налог” ФНС РФ, например:
А также о порядке регистрации самозанятого:
- На странице регистрации и авторизации самозанятого нужно разместить текст:
Необходимо зарегистрироваться как самозанятый в мобильном приложении “Мой Налог” ФНС России или в кабинете налогоплательщика НПД МОЙ НАЛОГ:
- Если самозанятый передает маркетплейсу номер его телефона, необходимо отправлять запрос в MonetaIdNPD на привязку самозанятого к маркетплейсу.
- В личном кабинете самозанятого необходимо предусмотреть поле для ввода ИНН самозанятого и кнопку “Подключить” со следующим текстом:
Указав свой ИНН вы подтверждаете, что ранее прошли регистрацию в качестве плательщика НПД в приложении “Мой налог”. В приложение “Мой налог” вам будет направлен запрос на добавление НКО “МОНЕТА” (ООО) в качестве партнера. Подключите НКО “МОНЕТА” (ООО) и подтвердите запрашиваемые разрешения.
(вместо НКО “МОНЕТА” (ООО) должно быть название маркетплейса).
- После нажатия кнопки “Подключить” необходимо отправить в NPD API запрос на привязку к маркетплейсу по ИНН. Если в ответ на запрос будет получена ошибка, эту ошибку необходимо показать самозанятому. Иначе необходимо показать пользователю, что статус его привязки к платформе - “ожидание ответа от ФНС”, и далее текст:
В приложение “Мой налог” вам направлен запрос на добавление НКО “МОНЕТА” (ООО) в качестве партнера. Подключите НКО “МОНЕТА” (ООО) и подтвердите запрашиваемые разрешения.
(вместо НКО “МОНЕТА” (ООО) должно быть название маркетплейса).
- После того как самозанятый осуществит подключение маркетплейса в приложении “Мой налог” ФНС РФ, система MonetaIdNPD отправит URL - уведомление платформе, в результате которого ей необходимо отобразить в личном кабинете самозанятого новый статус привязки - “Вы авторизованы для НКО “МОНЕТА” (ООО) как самозанятый”.
- В URL - уведомлении могут прийти данные о том, что самозанятый отказался привязать маркетплейс. В этом случае поле ИНН в профиле самозанятого в маркетплейсе необходимо очистить и дать возможность самозанятому повторно осуществить привязку с новым или тем же ИНН.
- Доход самозанятого необходимо регистрировать в тот момент, когда в распоряжение самозанятого поступают деньги, даже если этими деньгами самозанятый может распоряжаться внутри платформы.
- Запрос на регистрацию дохода самозанятого в систему NPD API нужно отправлять автоматически только в том случае, если самозанятый не выключил чекбокс “автоматически регистрировать доход в ФНС”, который по умолчанию был включен сразу после регистрации самозанятого на маркетплейсе.
- Перед попыткой зарегистрировать доход самозанятого необходимо отправить в MonetaIdNPD запрос на проверку привязки самозанятого к маркетплейсу. Если самозанятый не привязан к маркетплейсу, необходимо прекратить прием платежей в его пользу.
- Если маркетплейс получила ошибку при попытке регистрации дохода, необходимо сразу же отправить новый запрос в MonetaIdNPD на регистрацию дохода в оффлайн-режиме.
- Если пользователь не включил чекбокс “автоматически регистрировать доход в ФНС”, то в истории поступлений денег в его распоряжение должна появиться кнопка “Создать чек”, по которой должны будут отправляться запросы: 1) на проверку привязки самозанятого (с прекращением приема платежей если не привязан), 2) на регистрацию дохода самозанятого, 3) на регистрацию дохода в оффлайн-режиме если не прошла регистрация на предыдущем шаге.
Кнопка “Создать чек” должна также появиться на тех поступлениях при которых выяснилось, что самозанятый не привязан к маркетплейсу.
- Если в процессе регистрации дохода выяснилось что самозанятый не привязан к маркетплейсу, то помимо прочих действий нужно отправить в MonetaIdNPD запрос на повторную привязку самозанятого.
- Не чаще чем один раз в сутки необходимо производить проверку привязки самозанятого к маркетплейсу и при необходимости отправлять в MonetaIdNPD запрос на повторную привязку к маркетплейсу.
- Необходимо дать возможность самозанятому осуществить “Отвязку” от маркетплейса в личном кабинете маркетплейса с прекращением получения доходов в его пользу.
- Необходимо в истории поступлений самозанятого предусмотреть возможность сторнировать любой из зарегистрированный в ФНС РФ чек с указанием причины: “Чек сформирован ошибочно” или “Чек отменен”. Для отмены, необходимо отправить соответствующий запрос в MonetaIdNPD.
- Каждый зарегистрированный в ФНС чек необходимо отправить на e-mail источнику дохода (либо сторнирования) как приложенного изображение и ссылку на него с указанием ID чека в виде текста, а также с указанием ИНН получателя дохода.
- В личном кабинете самозанятого необходимо предусмотреть страницу “Уведомления ФНС”, на которой должны отображаться уведомления с их статусами. Общее количество новых непрочитанных уведомлений должно быть отображено рядом со ссылкой “Уведомления ФНС”.
- Самозанятый должен иметь возможность отметить уведомление как прочитанное в личном кабинете маркетплейса. В то же время, если самозанятый прочитал уведомления в приложении “Мой налог”, на маркетплейсе должна быть проведена синхронизация уведомлений в фоне для корректного отображения статусов уведомлений на маркетплейсе и корректного отображения количества непрочитанных уведомлений. Для этого в MonetaIdNPD есть соответствующие методы.
- Уведомления должны отображаться даже если сервисы ФНС РФ не отдают данные по ним через NPD API. То есть на маркетплейсе необходимо хранить копии всех уведомлений с их статусами.
Сценарии использования NPD API
1. Регистрация самозанятого
1.1. Cоздание профиля и отправка смс кода для подтверждения
1.2. Подтверждение номера телефона
2. Привязка самозанятого к маркетплейсу
2.1. По номеру телефона
2.2. По ИНН
3. Упрощённая идентификация самозанятого
3.1. Добавление ФИО и даты рождения
3.2. Добавление паспортных данных
3.3. Проведение упрощенной идентификации
4. Смена номера телефона самозанятого
5. Привязка банковской карты для вывода средств с ЭСП Монеты
5.1. Создание инвойса для привязки карты
5.2. Оплата инвойса и обработка уведомления
6. Выплата в пользу самозанятого от юридического лица
7. Регистрация дохода самозанятого в ФНС и отправка чека
Если в ходе регистрации не был получен ответ от АИС “Налог-3” (с полями aisReceiptId
, aisReceiptLink
и methodId
), то следует воспользоваться оффлайн-режимом.
Если возникнет ошибка при регистрации в оффлайн-режиме, то следует обратиться к администратору Монеты.
7.1. В онлайн-режиме
7.2. В оффлайн-режиме
8. Вывод с ЭСП Монеты
8.1. На банковскую карту
8.1.1. Запрос платёжного пароля
8.1.2. Вывод
8.2. Через СБП
Для того, чтобы самозанятый смог вывести деньги своего счета в банк по СБП, необходимо, чтобы самозанятый был предварительно (упрощенно) идентифицирован, имел счет в одном из банков, поключенных к СБП по протоколу b2cother.
8.2.1. Получение списка подключенных банков
8.2.2. Вывод
9. Сообщения от ФНС
9.1 Получение сообщений
9.2 Отметка о прочтении сообщений
10. Проверка статуса привязки к маркетплейсу с контролем прав
11. Установка прав для маркетплейса
Самозанятый в личном кабинете ФНС может отозвать все или некоторые права у маркетплейса. В этом случае нужно отправить запрос на повторную установку прав.
Дополнительные возможности NPD API
1. Отвязка от маркетплейса
2. Запрос баланса ЭСП самозанятого
3. Запрос статуса самозанятого
4. Запрос суммы дохода, отмененного дохода и налога самозанятого за текущий год
5. Сторнирование чека
6. Регистрация статического QR-кода
7. Регистрация кассовой ссылки
8. Обновление кассовой ссылки
9. Получение ссылки на пополнение ЭСП самозанятого
10. Получение статуса операции
11. Получение данных о самозанятом
12. Получение паспортных данных самозанятого
13. Получение состояния лицевого счета НП НПД
14. Возврат по операции
15. Получение истории операций
16. Получение данных по начислению и уплате налога
17. Получение реквизитов для уплаты налогов и пеней
18. Оплата налога
Платёжные запросы
В этой главе представлены платежные запросы, которые помогут торговой площадке реализовать безопасную сделку, выплаты на банковские карты, рекуррентные платежи.
Подразделы Платёжные запросы
Безопасная сделка
Логику безопасной сделки, включая процедуру рассмотрения споров, маркетплейс реализует самостоятельно.
В Системе МОНЕТА.РУ безопасная сделка состоит из двух этапов, интервал между которыми обусловлен логикой безопасной сделки.
Первый этап - прием платежа, например, с банковской карты покупателя на транзитный счет маркетплейса в Системе “МОНЕТА.РУ” (Создание базовой операции).
Принять платеж можно одним из способов, указанных в Разделе 1 документации платёжных запросов.
После проведения операции платежа Система “МОНЕТА.РУ” сообщит номер операции в параметре MNT_OPERATION_ID, этот номер операции маркетплейсу необходимо запомнить и учитывать у себя в системе.
Второй этап - это перевод принятого платежа с транзитного счета маркетплейса на расширенный счет продавца в Системе “МОНЕТА.РУ”.
Расширенный счет в Системе “МОНЕТА.РУ” открывают только продавцы индивидуальные предприниматели и юридические лица.
Для перевода денежных средств с транзитного счета маркетплейса на расширенный счет продавца маркетплейса в Системе “МОНЕТА.РУ” необходимо использовать запрос PaymentRequest с помощью интерфейса MONETA.MerchantAPI, где payer=НОМЕР_ТРАНЗИТНОГО_СЧЕТА_ПЛОЩАДКИ, а payee=НОМЕРА_РАСШИРЕННОГО_СЧЕТА_ПРОДАВЦА.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"логин",
"Password":"пароль"
}
}
},
"Body":{
"PaymentRequest":{
"payer":"НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ",
"payee":"НОМЕРА РАСШИРЕННОГО СЧЕТА ПРОДАВЦА",
"amount":"сумма",
"clientTransaction":"внешний идентификатор транзакции",
"operationInfo":{
"attribute":[
{
"key":"PARENTID",
"value":"12345678"
}
]
}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"PaymentResponse":{
"transaction": "номер операции в системе МОНЕТУ.РУ",
"dateTime": "2019-01-25T15:35:32.000+03:00",
"status": "SUCCESS",
"clientTransaction": "внешний идентификатор транзакции"
}
}
}
}
<?php
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\PaymentRequest();
//номер счёта (в системе МОНЕТА.РУ) для списания средств
//номер транзитного счёта магазина/маркетплейса
$request->payer = '';
//номер счёта (в системе МОНЕТА.РУ) для зачисления средств
//номер расширенного счёта организации/продавца
$request->payee = '';
//сумма перевода
$request->amount = '10.00';
//номер транзакции в учётной системе магазина/маркетплейса.
$request->clientTransaction = 'my-order-id-10_2';
//платёжный пароль магазина/маркетплейса.
$request->paymentPassword = '*******************';
$operation = new \Moneta\Types\OperationInfo();
//в параметре указывается номер базовой операции - это операция платежа на транзитный счёт магазина/маркетплейса.
$attribute = new \Moneta\Types\KeyValueAttribute();
$attribute->key = 'PARENTID';
$attribute->value = '';
$operation->addAttribute($attribute);
$request->operationInfo = $operation;
//запрос на перевод средств внутри системы МОНЕТА.РУ
//с транзитного счёта магазина/маркетплейса на расширенный счёт организации(продавца)
$result = $monetaSdk->monetaService->Payment($request);
if (!$result['id']) {
throw new Exception(print_r($result, true));
}
echo "Запрос обработан.";
foreach ($result['attribute'] as $key => $attribute) {
if ('statusid' === $attribute['key']) {
if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $attribute['value']) {
echo " Операция НЕ проведена полностью.";
}
break;
}
}
} catch (Exception $e) {
echo "Ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
В атрибутах перевода необходимо указать номер базовой операции в поле PARENTID, это операция платежа на транзитный счет торговой площадки.
Для перевода денежных средств с расширенного счета продавца в Системе “МОНЕТА.РУ” на банковские реквизиты продавца необходимо использовать запрос PaymentRequest с помощью интерфейса MONETA.MerchantAPI, где payer=НОМЕРА РАСШИРЕННОГО СЧЕТА ПРОДАВЦА, а payee=5.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"PaymentRequest":{
"payer":НОМЕР РАСШИРЕННОГО СЧЕТА ПРОДАВЦА,
"payee":5,
"amount":10,
"clientTransaction":"Внешний номер операции",
"paymentPassword":12345,
"isPayerAmount":true,
"operationInfo":{
"attribute":[
{
"key":"WIREPAYMENTPURPOSE",
"value":"Перечисление суммы переводов денежных средств по Договору № ___ от DD.MM.YYYY. НДС не облагается."
}
]
}
}
}
}
}
<?php
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\PaymentRequest();
//номер счёта (в системе МОНЕТА.РУ) для списания средств
//номер расширенного счёта организации(продавца)
$request->payer = '';
//получатель перевода
//5 - будет осуществлён банковский перевод по реквизитам; в банк организации(продавца)
$request->payee = '5';
//сумма перевода
$request->amount = '10.00';
//номер транзакции в учётной системе магазина/маркетплейса.
$request->clientTransaction = 'my-order-id-10_3';
//платёжный пароль магазина/маркетплейса.
$request->paymentPassword = '***********';
$request->isPayerAmount = true;
$request->description = 'Перечисление на банковские реквизиты организации(продавца)';
//запрос на перевод средств
//с расширенного счёта организации(продавца) на банковские реквизиты организации(продавца)
$result = $monetaSdk->monetaService->Payment($request);
if (!$result['id']) {
throw new Exception(print_r($result, true));
}
echo "Запрос обработан.";
foreach ($result['attribute'] as $key => $attribute) {
if ('statusid' === $attribute['key']) {
if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $attribute['value']) {
echo " Операция НЕ проведена полностью.";
}
break;
}
}
} catch (Exception $e) {
echo "Ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
Запросы маркетплейс отправляет в рамках интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Мультикорзина
Мультикорзина позволяет покупателю оформить заказ с товарами нескольких продавцов и оплатить одним платежом.
Процесс оплаты для маркетплейса будет состоять из двух этапов.
Первый этап - прием платежа с банковской карты покупателя на транзитный счет маркетплейса в Системе “МОНЕТА.РУ” (Создание родительской операции)
Принять платеж можно одним из способов, указанных в Разделе 1. “Прием платежей с банковской карты на маркетплэйсе или в виджете” документации.
В ответ на проведение платежа Система “МОНЕТА.РУ” сообщит номер операции в параметре MNT_OPERATION_ID, этот номер операции маркетплейсу необходимо запомнить и учитывать у себя в системе.
Второй этап - перевод принятого платежа с транзитного счета маркетплейса на расширенный счет продавца в Системе “МОНЕТА.РУ”.
Расширенный счет в Системе “МОНЕТА.РУ” открывают только продавцы индивидуальные предприниматели и юридические лица.
Для перевода денежных средств с транзитного счета маркетплейса на расширенные счета продавцов в Системе “МОНЕТА.РУ” необходимо использовать запрос PaymentRequest в рамках интерфейса MONETA.MerchantAPI, где payer=НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ, а payee=НОМЕР РАСШИРЕННОГО СЧЕТА ПРОДАВЦА.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"PaymentRequest":{
"payer":"НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ",
"payee":"НОМЕР РАСШИРЕННОГО СЧЕТА ПРОДАВЦА",
"amount":"СУММА",
"clientTransaction":"внешний идентификатор транзакции",
"operationInfo":{
"attribute":[
{
"key":"PARENTID",
"value":"12345678"
}
]
}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"PaymentResponse":{
"transaction": "номер операции в системе МОНЕТУ.РУ",
"dateTime": "2019-01-25T15:35:32.000+03:00",
"status": "SUCCESS",
"clientTransaction": "внешний идентификатор транзакции"
}
}
}
}
<?php
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\PaymentRequest();
//номер счёта (в системе МОНЕТА.РУ) для списания средств
//номер транзитного счёта магазина/маркетплейса
$request->payer = '';
//номер счёта (в системе МОНЕТА.РУ) для зачисления средств
//номер расширенного счёта организации/продавца
$request->payee = '';
//сумма перевода
$request->amount = '15.00';
//номер транзакции в учётной системе магазина/маркетплейса.
$request->clientTransaction = 'my-order-id-15_2';
//платёжный пароль магазина/маркетплейса.
$request->paymentPassword = '*******************';
$operation = new \Moneta\Types\OperationInfo();
//в параметре указывается номер базовой операции - это операция платежа на транзитный счёт магазина/маркетплейса.
$attribute = new \Moneta\Types\KeyValueAttribute();
$attribute->key = 'PARENTID';
$attribute->value = '';
$operation->addAttribute($attribute);
$request->operationInfo = $operation;
//запрос на перевод средств внутри системы МОНЕТА.РУ
//с транзитного счёта магазина/маркетплейса на расширенный счёт организации(продавца)
$result = $monetaSdk->monetaService->Payment($request);
if (!$result['id']) {
throw new Exception(print_r($result, true));
}
echo "Запрос обработан.";
foreach ($result['attribute'] as $key => $attribute) {
if ('statusid' === $attribute['key']) {
if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $attribute['value']) {
echo " Операция НЕ проведена полностью.";
}
break;
}
}
} catch (Exception $e) {
echo "Ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
В атрибутах перевода необходимо указать номер базовой операции в поле PARENTID.
Количество переводов с транзитного счета торговой площадки на расширенные счета продавцов будет равным количеству продавцов в заказе.
Для перевода денежных средств с расширенного счета продавца в Системе “МОНЕТА.РУ” на банковские реквизиты продавца необходимо использовать запрос PaymentRequest в рамках интерфейса MONETA.MerchantAPI, где payer=НОМЕРА РАСШИРЕННОГО СЧЕТА ПРОДАВЦА, а payee=5.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"PaymentRequest":{
"payer":НОМЕР РАСШИРЕННОГО СЧЕТА ПРОДАВЦА,
"payee":5,
"amount":10,
"clientTransaction":"Внешний номер операции",
"paymentPassword":12345,
"isPayerAmount":true,
"operationInfo":{
"attribute":[
{
"key":"WIREPAYMENTPURPOSE",
"value":"Перечисление суммы переводов денежных средств по Договору № ___ от DD.MM.YYYY. НДС не облагается."
}
]
}
}
}
}
}
<?php
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\PaymentRequest();
//номер счёта (в системе МОНЕТА.РУ) для списания средств
//номер расширенного счёта организации(продавца)
$request->payer = '';
//получатель перевода
//5 - будет осуществлён банковский перевод по реквизитам; в банк организации(продавца)
$request->payee = '5';
//сумма перевода
$request->amount = '15.00';
//номер транзакции в учётной системе магазина/маркетплейса.
$request->clientTransaction = 'my-order-id-15_3';
//платёжный пароль магазина/маркетплейса.
$request->paymentPassword = '**************';
$request->isPayerAmount = true;
$request->description = 'Перечисление на банковские реквизиты организации(продавца)';
//запрос на перевод средств
//с расширенного счёта организации(продавца) на банковские реквизиты организации(продавца)
$result = $monetaSdk->monetaService->Payment($request);
if (!$result['id']) {
throw new Exception(print_r($result, true));
}
echo "Запрос обработан.";
foreach ($result['attribute'] as $key => $attribute) {
if ('statusid' === $attribute['key']) {
if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $attribute['value']) {
echo " Операция НЕ проведена полностью.";
}
break;
}
}
} catch (Exception $e) {
echo "Ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
Запросы маркетплейс отправляет в рамках интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Управление комиссией
Маркетплейс может управлять размером комиссии, взимаемым с продавца в зависимости от категории товара или оборотов продавца.
Максимальный размер вознаграждения маркетплейса будет зафиксирован в договоре об информационно-техническом взаимодействии.
Значение комиссии маркетплейс передает в поле SOURCETARIFFMULTIPLIER в процентах в запросе на перевод с транзитного счета маркетплейса на расширенный счет продавца в системе МОНЕТА.РУ.
Запрос:
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "логин",
"Password": "пароль"
}
}
},
"Body": {
"PaymentRequest": {
"payer": "НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ",
"payee": "НОМЕРА РАСШИРЕННОГО СЧЕТА ПРОДАВЦА",
"amount": "сумма",
"clientTransaction": "внешний идентификатор транзакции",
"operationInfo": {
"attribute": [
{
"key": "PARENTID",
"value": "12345678"
},
{
"key": "SOURCETARIFFMULTIPLIER",
"value": "0.015"
}
]
}
}
}
}
}
где "value": "0.015"
- значение в процентах.
Ответ:
{
"Envelope":{
"Body":{
"PaymentResponse":{
"transaction": "номер операции в системе МОНЕТУ.РУ",
"dateTime": "2019-01-25T15:35:32.000+03:00",
"status": "SUCCESS",
"clientTransaction": "внешний идентификатор транзакции"
}
}
}
}
<?php
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\PaymentRequest();
//номер счёта (в системе МОНЕТА.РУ) для списания средств
$request->payer = '';
//номер счёта (в системе МОНЕТА.РУ) для зачисления средств
$request->payee = '';
//сумма перевода
$request->amount = '20.00';
//номер транзакции в учётной системе магазина/маркетплейса.
$request->clientTransaction = 'my-order-id-20';
//платёжный пароль магазина/маркетплейса.
$request->paymentPassword = '*******************';
$operation = new \Moneta\Types\OperationInfo();
//в параметре указывается номер базовой операции - это операция платежа на транзитный счёт магазина/маркетплейса.
$attribute = new \Moneta\Types\KeyValueAttribute();
$attribute->key = 'PARENTID';
$attribute->value = '';
$operation->addAttribute($attribute);
//в параметре указывается значение комиссии, которую взимает магазин/маркетплейс с организации/продавца.
$attribute = new \Moneta\Types\KeyValueAttribute();
$attribute->key = 'SOURCETARIFFMULTIPLIER';
$attribute->value = '0.015'; //1,5%
$operation->addAttribute($attribute);
$request->operationInfo = $operation;
//запрос на перевод средств внутри системы МОНЕТА.РУ
//с транзитного счёта магазина/маркетплейса на расширенный счёт организации(продавца)
$result = $monetaSdk->monetaService->Payment($request);
if (!$result['id']) {
throw new Exception(print_r($result, true));
}
echo "Запрос обработан.";
foreach ($result['attribute'] as $key => $attribute) {
if ('statusid' === $attribute['key']) {
if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $attribute['value']) {
echo " Операция НЕ проведена полностью.";
}
break;
}
}
} catch (Exception $e) {
echo "Ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
Запросы маркетплейс отправляет в рамках интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Выплаты продавцу
Если продавцом, клиентом маркетплейса, выступает физическое лицо, то возможно перечисление принятых платежей на банковскую карту продавца.
Для выплаты необходимо предварительно получить данные банковской карты продавца.
Для этого можно принять платеж на произвольную сумму одним из способов, указанных в документации платёжных запросов.
После списания денежных средств с карты покупателя маркетплейсу будет сообщен токен - это номер операции платежа, в котором зашифрованы карточные данные.
Маркетплейсу необходимо сохранить полученный токен, связав его с уникальным идентификатором продавца в учетной системе маркетплейса.
Для последующих выплат на привязанную карту продавца необходимо использовать токен, равный номеру операции.
Из этого номера нужно сформировать PAYMENTTOKEN путем добавления строкового нуля перед значением MNT_OPERATION_ID.
Для перевода денежных средств с транзитного счета маркетплейса на банковскую карту продавца необходимо использовать запрос PaymentRequest в рамках интерфейса MONETA.MerchantAPI, где payer=НОМЕР ТРАНЗИТНОГО СЧЕТА ПЛОЩАДКИ, а payee=НОМЕР ШЛЮЗА. Номера необходимо уточнить у сотрудника НКО “МОНЕТА” (ООО)В атрибутах перевода необходимо указать номер базовой операции в поле PARENTID.
Запрос:
{
"Envelope":{
"Header":{
"Security":{
"UsernameToken":{
"Username":"Username",
"Password":"Password"
}
}
},
"Body":{
"PaymentRequest":{
"payer":"номер транзитного счета площадки",
"payee":"Номер шлюза",
"amount":"сумма",
"isPayerAmount":true,
"paymentPassword":"*****",
"clientTransaction":"tb-20170220-1487659653",
"description":"tb-20170220-1487659653",
"operationInfo":{
"attribute":[
{
"key":"PAYMENTTOKEN",
"value":"0123456789"
}
]
}
}
}
}
}
Ответ:
{
"Envelope":{
"Body":{
"PaymentResponse":{
"transaction":12345678,
"dateTime":"2017-02-21T09:47:39.000+03:00",
"status":"SUCCEED",
"clientTransaction":"tb-20170220-1487659653"
}
}
}
}
<?php
$sdkAppFileName = __DIR__ . "/../moneta-sdk-lib/autoload.php";
include_once($sdkAppFileName);
try {
$monetaSdk = new \Moneta\MonetaSdk();
$monetaSdk->checkMonetaServiceConnection();
$request = new \Moneta\Types\TransferRequest();
//номер счёта (в системе МОНЕТА.РУ) для списания средств
//номер транзитного счёта магазина/маркетплейса
$request->payer = '';
//номер счёта (в рамках системы МОНЕТА.РУ) для зачисления средств
$request->payee = '279';
//сумма перевода
$request->amount = '17.00';
$request->isPayerAmount = true;
//платёжный пароль магазина/маркетплейса.
$request->paymentPassword = '*******************';
//номер транзакции в учётной системе магазина/маркетплейса.
$request->clientTransaction = 'my-order-id-17';
//краткое описание операции.
$request->description = 'Описание перевода на банковскую карту';
$operation = new \Moneta\Types\OperationInfo();
//в параметре указывается номер(transaction) базовой операции с добавлением ноля в начало строки;
//базовая операция - это операция платежа на транзитный счёт магазина/маркетплейса.
$attribute = new \Moneta\Types\KeyValueAttribute();
$attribute->key = 'PAYMENTTOKEN';
$attribute->value = '';
$operation->addAttribute($attribute);
$request->operationInfo = $operation;
//запрос на перевод средств
//с транзитного счёта магазина/маркетплейса на банк. карту организации(продавца) - физического лица
$result = $monetaSdk->monetaService->Transfer($request);
if (!$result['transaction']) {
throw new Exception(print_r($result, true));
}
echo "Запрос обработан.";
if ((new \Moneta\Types\OperationStatus())::SUCCEED !== $result['status']) {
echo " Операция НЕ проведена полностью.";
}
} catch (Exception $e) {
echo "Ошибка:<br />";
echo "<pre>" . $e->getMessage() . "</pre>";
}
Запросы маркетплейс отправляет в рамках интерфейса MONETA.MerchantAPI.
Примечание: Интерфейс MONETA.MerchantAPI представляет собой Web-сервис, описанный по спецификации Web Services Description Language (WSDL), использующий протокол Simple Object Access Protocol (SOAP) для передачи информации.
Перевод денежных средств в Федеральное казначейство
Маркетплейс для реализации своего бизнес процесса может управлять расчетными счетами клиентов юридических лиц и индивидуальных предпринимателей, открытыми в НКО “МОНЕТА” (ООО).
Управление расчетными счетами возможно в рамках интерфейса MerchantAPI, основной используемый запрос - это PaymentRequest
.
Управление денежными средствами на счетах клиентов в Системе МОНЕТА.РУ позволит переводить денежные средства в Федеральное Казначейство для погашения бюджетных платежей: штрафов ГИБДД, оплата налогов, ФССП.
Более подробная информация по запросам в рамках интерфейса MerchantAPI, предоставляется индивидуально для каждого проекта, т.к. зависит от бизнес процесса маркетплейса формата B2B.
Управление расчётными счетами клиентов площадки
Маркетплейс для реализации своего бизнес процесса может управлять расчетными счетами клиентов юридических лиц и индивидуальных предпринимателей, открытыми в НКО “МОНЕТА” (ООО).
Управление расчетными счетами возможно в рамках интерфейса MerchantAPI, основной используемый запрос - это PaymentRequest.
Более подробная информация по запросам в рамках интерфейса MerchantAPI, предоставляется индивидуально для каждого проекта, т.к. зависит от бизнес процесса маркетплейса формата B2B.
54-ФЗ
Применение контрольно-кассовой техники при осуществлении расчетов
Согласно 54-ФЗ “О применении контрольно-кассовой техники при осуществлении расчетов в Российской Федерации” при оплате товаров, работ или услуг необходимо необходимо формировать фискальный документ и отправлять его в ФНС с помощью онлайн-кассы.
Маркетплейс может выбрать один из вариантов формирования фискального документа:
- В ККТ продавца (клиента маркетплейса)
- В ККТ маркетплейса
- В ККТ платежного агрегатора ООО “ПЭЙ ЭНИ ВЭЙ”
В зависимости от потребностей, торговая площадка может использовать один из сервисов:
Подразделы 54-ФЗ
ККТ маркетплейса
Если маркетплейс планирует формировать фискальные документы за своих клиентов, то маркетплейс должен стать банковским платежным агентом в статусе платежного агрегатора.
Согласно ст. 14.1 Федерального закона от 27.06.2011 N 161-ФЗ (ред. от 02.08.2019) “О национальной платежной системе” НКО “МОНЕТА” (ООО) привлекает платежного агрегатора для:
- предоставления юридическим лицам и индивидуальным предпринимателям программных средств и (или) технических устройств, обеспечивающих прием электронных средств платежа;
- участия в переводе денежных средств в пользу юридических лиц и индивидуальных предпринимателей по операциям с использованием электронных средств платежа;
- проведения идентификации клиентов - юридических лиц и индивидуальных предпринимателей, указанных в части 1 настоящей статьи, в соответствии с требованиями законодательства Российской Федерации о противодействии легализации (отмыванию) доходов, полученных преступным путем, и финансированию терроризма.
НКО “МОНЕТА” (ООО) заключит с маркетплейсом:
- Договор информационно-технологического взаимодействия, по которому сервис выступает маркетплейсом;
- Договор о привлечении банковского платежного агента для осуществления операций платежного агрегатора, по которому сервис выступает платежным агрегатором;
- Договор расчетного обслуживания, по которому сервис в НКО “МОНЕТА” (ООО) открывает специальный банковский счет.
В качестве транзитного счета маркетплейс будет использовать специальный банковский счет, открытый в НКО “МОНЕТА” (ООО). Это позволит маркетплейсу по всем платежам, поступающим на специальный счет, формировать от своего имени фискальные документы в кассе ПА и предоставлять фискальный документ покупателю, в котором будет отражен ИНН продавца.
Согласно разъяснениям Федеральной Налоговой Службы Российской Федерации, если платежи поступают продавцу от платежного агрегатора, который выступает платежным агентом и проводит денежные средства покупателей через специальный банковский счет, то у продавца нет обязанности применять ККТ. ККТ применяет агрегатор (ч. 12 ст. 4 Закона о приеме платежей, п. 1 ст. 1.2, ст. 1.1 Закона о применении ККТ, Письма Минфина России от 18.05.2020 N 03-01-15/40639, от 14.03.2018 N 03-01- 15/15693).
ККТ продавца
Для передачи информации, необходимой для формирования фискальных документов в ККТ продавца маркетплейс использует сервис https://kassa.payanyway.ru, который поддерживает сбор и передачу информации о платеже в ККТ и сервисы продавца следующих типов: https://kassa.payanyway.ru/instruction.
Для интеграции с сервисом https://kassa.payanyway.ru маркетплейсу необходимо запросить у продавца настройки доступа к ККТ (логин, пароль доступа, идентификатор ККТ) и передать их в сервис через API (в настоящей момент метод не реализован, данные заносятся вручную в личном кабинете).
Если маркетплейс использует транзитный счет, то фискальный документ необходимо формировать при поступлении платежа на транзитный счет
Настройка кассы
- Для транзитного счета маркетплейса и для счета продавца, создаются учетные записи в kassa.payanyway.ru
- В настройках kassa.payanyway.ru для транзитного счёта выбираем тип кассы: “МодульКасса”, в поле “Ссылка на API МодульКассы” вводим значение “-” (минус),
логин
,пароль
,UUID киоска
- поля должны быть пустые.
Касса должна быть включена (параметр “Касса включена”).
Настраиваем PayURL, в случае использования транзитный PayURL, задаём другие необходимые параметры.
- Настраиваем учетные записи в kassa.payanyway.ru для клиентов маркетплейса (продавцов), используя логин и пароль от “аккаунта 2” и номер расширенного счёта магазина. В экспертных настройках этих учетных записей указываем номер расширенного счёта (параметр “Родительский AccountId”) транзитного счёта.
PayURL в этих учетных записях не используются, его настраивать не нужно.
Печать чеков
Передача номенклатуры через PayURL
В случае передачи номенклатуры через PayURL в каждый элемент, описывающий товарную позицию, добавляется новый параметр “account”. Этот параметр содержит номер расширенного счета клиента маркетпейса, в котором чек на этот товар нужно пробить.
Пример:
"inventPositions": [
{
"name": "TEST",
"price": "20",
"quantity": "1",
"vatTag": "1105",
"account": "12345678"
}
]
Передача номенклатуры в платёжном запросе Moneta.Assistant
В случае передачи номенклатуры в платёжном запросе Moneta.Assistant, аналогично п.3.1, добавляется параметр “a”. Пример параметра формы платежного запроса:
В случае передачи номенклатуры в платёжном запросе Moneta.Assistant, аналогично п.3.1, добавляется параметр “a”. Пример параметра формы платежного запроса:
<input
type="hidden"
name="MNT_CUSTOM2"
value='{"customer":"test@test.ru","items":[{"n":"product name","p":"123.45","q":"3", "t":"1105","a":"12345678"}]}' />
Передача номенклатуры через API
Данные для формирования чека можно передать в сервис kassa.payanyway.ru, при этом нет необходимости направлять url-уведомление об успешном платеже транзитом через сервис kassa.
Для передачи чека через API сервиса, используйте следующий код php:
<?php
// варианты налогообложения:
const paw_kassa_VAT0 = '1104'; // НДС 0%
const paw_kassa_VAT10 = '1103'; // НДС 10%
const paw_kassa_VAT18 = '1102'; // НДС 18% (c 01.01.2019 ставка 20%)
const paw_kassa_VATNOVAT = '1105'; // НДС не облагается
const paw_kassa_VATWR10 = '1107'; // НДС с рассч. ставкой 10%
const paw_kassa_VATWR18 = '1106'; // НДС с рассч. ставкой 18% (c 01.01.2019 ставка 20%)
//
// paw_kassa_sale - функция "печати" чека в кассе kassa.payanyway.ru, вызывать её нужно
// в обработчике PayURL в случае положительного ответа (SUCCESS)
//
// Параметры:
//
// $mnt_id - номер расширенного счёта (бизнес-счёта)
// $mnt_transaction_id - id (номер) заказа, однозначно определяющий заказ в системе магазина.
// В случае, если отправляется запрос на фискализацию чека возврата, необходимо добавить к
// MNT_TRANSACTION_ID префикс или постфикс.
// $mnt_operation_id - номер операции в системе MONETA.RU.
// $mnt_amount - сумма заказа (в формате Moneta.ru, пример: 100.00)
// $mnt_data_integrity_code - код проверки целостности данных
// $inventoryPositions = array(
// array(
// 'name' => 'tovar 1', 'price' => 1, 'quantity' => 2, 'vatTag' => paw_kassa_VATNOVAT,
// 'pm' => 'full_payment', 'po' => 'commodity', 'markCode' => array
(
'gs1m' => 'MDEwNDYzMDAzNDA3MDAxMjIxQ01LNDVCcmhOMFdMZg=='
)
// ),
// array(
// 'name' => 'tovar 2', 'price' => 3, 'quantity' => 1, 'vatTag' => paw_kassa_VATNOVAT,
// 'pm' => 'full_payment', 'po' => 'commodity', 'idInternal' => '1122334455')
// - позиции заказа,
//
// где:
// name - название товара
// price - цена за единицу товара
// quantity - количество единиц товара
// vatTag - вариант налогообложения
// markCode - код маркировки товара
Здесь:
gs1m - код товара, считанный с маркированного товара, в формате GS1 Data Matrix
(например: 010463003407001221CMK45BrhN0WLf). В связи с тем, что в коде маркировки могут быть
непечатные символы, необходимо перед отправкой кодировать строку с кодом маркировки в
Base64.
base64_encode(010463003407001221CMK45BrhN0WLf) = MDEwNDYzMDAzNDA3MDAxMjIxQ01LNDVCcmhOMFdMZg==
hex - код товара в шестнадцатеричном формате
// idInternal - внутренний код товара из учётной системы магазина. Если в личном кабинете
//kassa.payanyway.ru, была добавлена номенклатура с данным кодом товара, то данные номенклатуры
будут //добавлены в чек.
//
// для 'name' в $inventoryPositions надо делать преобразование cleanProductName
//
// $client['email'] - email покупателя
// $client['phone'] - номер телефона покупателя.
// Только цифры и символ “+” (без пробелов, др. символов)
// $client['name'] - наименование покупателя (клиента). Наименование организации или фамилия, имя,
// отчество (при наличии), серия и номер паспорта покупателя (клиента)
// $client['inn'] - ИНН организации или покупателя (клиента)
function cleanProductName($value)
{
$result = preg_replace('/[^0-9a-zA-Zа-яА-Я-,. ]/ui', '', htmlspecialchars_decode($value));
//$result = trim(mb_substr($result, 0, 20));
return $result;
}
function paw_kassa_sale($mnt_id, $mnt_transaction_id, $mnt_operation_id, $mnt_amount,
$mnt_data_integrity_code, $client, $inventoryPositions)
{
$productsTototal = 0;
foreach ($inventoryPositions AS $item)
{
$productsTototal = $productsTototal + floatval($item['price'])*floatval($item['quantity']);
}
if (floatval($productsTototal) != floatval($mnt_amount))
{
$discountRate = floatval($mnt_amount) / floatval($productsTototal);
$newInvenrory = array();
foreach ($inventoryPositions AS $item)
{
$item['price'] = round(floatval($item['price']) * $discountRate, 5);
$newInvenrory[] = $item;
}
$inventoryPositions = $newInvenrory;
}
$data = array(
'operationId' => $mnt_operation_id,
'checkoutDateTime' => date(DATE_ATOM),
'docNum' => $mnt_transaction_id,
'docType' => 'SALE',
'inventPositions' => $inventoryPositions,
'moneyPositions' => array(array('paymentType' => 'CARD', 'sum' => $mnt_amount)),
'client' => array(
'email' => $client['email'],
'phone' => $client['phone'],
'name' => cleanProductName($client['name']),
'inn' => cleanProductName($client['inn']),
),
);
$data['signature'] = md5($data['docNum'].$data['checkoutDateTime'].$mnt_data_integrity_code);
if (isset($_SERVER['HTTP_HOST']))
$domainName = $_SERVER['HTTP_HOST'];
else
$domainName = $_SERVER['SERVER_NAME'];
$data['telemetry'] = array('domain' => $domainName);
$jsonData = preg_replace_callback('/\\\\u(\w{4})/', function ($matches) {
return html_entity_decode('&#x' . $matches[1] . ';', ENT_COMPAT, 'UTF-8');
}, json_encode($data));
$operationUrl = 'https://kassa.payanyway.ru/api/api.php?accountid='.$mnt_id.'&group=receipt';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $operationUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: '.strlen($jsonData)
));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
Чтобы фискализировать чек на возврат, нужно передать значение SALE_RETURN в параметре docType:
$data = array(
'operationId' => $mnt_operation_id,
'checkoutDateTime' => date(DATE_ATOM),
'docNum' => 'RETURN_'.$mnt_transaction_id,
'docType' => 'SALE_RETURN',
'inventPositions' => $inventoryPositions,
'moneyPositions' => array(array('paymentType' => 'CARD', 'sum' => $mnt_amount)),
'client' => array(
'email' => $client['email'],
'phone' => $client['phone'],
'name' => cleanProductName($client['name']),
'inn' => cleanProductName($client['inn']),
),
);
При передаче чека на зачёт предоплаты (чек, фискализируемый при отгрузке товара), тип оплаты paymentType должен быть передан как PREPAID.
Также в строки номенклатуры можно добавить параметр account для распределения чеков по магазинам торговой площадки при испоьзовании площадкой мультикорзины.
Сервис Widget SBP/FPS
Данный раздел содержит инструкцию и рекомендации по подключению к сервису Moneta SBP/FPS.
Moneta SBP/FPS - cервис, предназначенный для автоматизации вывода средств (переводов) с помощью СБП С2С/Ме2Ме Push c ЭСП МОНЕТА.РУ по номеру телефона.
Подразделы Сервис Widget SBP/FPS
Схема взаимодействия
Схема взаимодействия между приложением маркетплейса и сервисом Moneta SBP/FPS выглядит следующим образом:
- Приложение маркетплейса формирует и подписывает токен, в котором сохранена информация номер юнита Пользователя, номер ЭСП МОНЕТА.РУ, время действия токена и другая информация.
- Приложение маркетплейса перенаправляет браузер Пользователя ЭСП МОНЕТА.РУ на специальный адрес, передав токен безопасности.
- Moneta SBP/FPS запрашивает номер телефона Получателя (физического лица) перевода.
- Moneta SBP/FPS предлагает Пользователю ЭСП МОНЕТА.РУ выбрать банк для перевода.
- Moneta SBP/FPS показывает Пользователю ЭСП МОНЕТА.РУ PAM-фразу (ФИО) Получателя перевода.
- Moneta SBP/FPS формирует операцию в статусе “Операция создана”.
- Moneta SBP/FPS отправляет приложению маркетплейса уведомление с указанием номера операции (operationId) и номера сообщения СБП (messageId).
- Moneta SBP/FPS возвращает Пользователя ЭСП МОНЕТА.РУ в приложение маркетплейса.
- Приложение маркетплейса отправляет запрос PaymentRequest, указывая в поле payee номер операции (operationId) с ведущим нулем, а также дополнительные атрибуты СБП, полученные в уведомлении.
Регистрация маркетплейса
Маркетплейсу необходимо предоставить следующие данные на адрес mp@payanyway.ru:
- Обязательная информация:
- Полное и краткое наименование проекта.
- URL для отправки уведомлений о статусе перевода (callback url).
- Опциональная информация:
- Иконка проекта в SVG-формате или высоком разрешении.
- URL для возврата Пользователя ЭСП МОНЕТА.РУ обратно в приложение маркетплейса, если используется режим отличный от iframe (return url).
Со стороны Moneta SBP/FPS будет предоставлена следующая информация:
- ApiKey/ApiSecret1 - ключевая пара для создания токенов безопасности.
- Специальная ссылка для установления доверия.
ApiSecret будет направлен на адрес электронной почты от Личного кабинета маркетплейса, указанный им в Договоре. ↩︎
Установление доверия
Для формирования сервисом Moneta SBP/FPS операций перевода (вывода) необходимо пройти процедуру установления доверия с сервисом.
Маркетплейсу необходимо:
- Войти в Личный кабинет маркетплейса с Пользователями ЭСП МОНЕТА.РУ на moneta.ru (или demo.moneta.ru для тестового контура).
- Перейти по ссылке, которую предоставил сервис Moneta SBP/FPS.
- В появившемся диалоге ознакомиться с информацией о том, какие разрешения маркетплейс предоставит сервису SBP/FPS.
- Подтвердить предоставление разрешений.
Аутентификация
Общая информация
Для инициализиции виджета Moneta SBP/FPS маркетплейсу необходимо передать одноразовый токен безопасности, в котором надежно зашифрована вся необходимая информация для проведения перевода. Токен безопасности должен формироваться на стороне маркетплейса, по указанным ниже правилам.
Формирование токена и подписи
Предварительные условия:
- Необходимо пройти процедуру регистрации маркетплейса и получить ApiKey и ApiSecret.
- Необходимо установить доверительные отношения с сервисом Moneta SBP/FPS.
Для реализации алгоритма формирования единовременного токена использованы следующие стандарты:
- RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.
- RFC 2104 HMAC: Keyed-Hashing for Message Authentication.
- RFC 4648 The Base16, Base32, and Base64 Data Encodings.
Токен состоит из 2-х частей:
- Информационное сообщение, содержащее ключевую информацию о маркетплейсе и Пользователе ЭСП МОНЕТА.РУ, служебную информацию по переводу.
- Подпись/Хэш от информационного сообщения из п.1, и использованием заранее полученного общего секрета -
ApiSecret
.
Формирование информационного сообщения
Информационное сообщение состоит из набора ключ-значение, которые закодированы в соответствии с правилами URL-кодирования строк по RFC 3986. Пример:
key1=someKey&key2=Some%20Key2&extraKey=100500
Ниже приведен набор обязательных параметров, которые необходимо указать при формировании информационного сообщения (ключи должны следовать в отсортированном порядке, как в таблице ниже):
Ключ | Описание | Тип | Пример |
---|---|---|---|
cid | Идентификатор операции на стороне маркетплейса | String | i-17-203112 |
cidExpireAt | Дата/время до которой можно провести оплату (в EpohMills) | Число | 1610464610097 |
key | ApiKey полученный при регистрации в MonetaId | Url Encoded String | site-x |
nonce | Число, использующееся для невозможности повторного использования одного и того же токена (см. ниже) | Число | 10201010 |
unitId | Номер профиля/юнита пользователя ЭСП МОНЕТА.РУ | Число | 987654321 |
accountId | Номер ЭСП МОНЕТА.РУ для списания средств | Число | 1230567 |
callbackUrl | Опциональный параметр для demo окружения: Возможность задать тестовый callback url, отличный от того, что задан партнеру при регистрации. | Url Encoded String | http%3A%2F%2Fya.ru |
При формировании nonce удобно использовать текущее время в секундах на момент формирования токена. Каждый новый nonce в новом токене, формирующийся для данного unitId должен быть строго больше предыдущего для данного юнита (т.е. nonce должен строго монотонно возрастать), иначе он будет отброшен как некорректный.
Пример итогового информационного сообщения:
cid=i103020&cidExpireAt=1601375568244&key=partner123&nonce=1601375468244&unitId=987654321&accountId=1230567
Формирование подписи
После того, как информационное сообщение сформировано, необходимо вычислить подпись/хеш с использованием общего секрета - ApiSecret.
Алгоритм формирования:
- Вычислить HMAC-SHA512 хеш используя пару (информационное сообщение, секрет).
- Полученный массив байт перевести в строку в шестнадцатеричном представлении.
// message - инф. сообщение
// secret - секрет/apiSecret
signatureBytes = hmac_sha512(message, secret)
signatureString = bytesToHex(signatureBytes)
После того, как подпись в виде hex-строки сформирована, необходимо добавить ее к информационному сообщению с ключом signature:
cid=i103020cidExpireAt=1601375568244&key=partner123&nonce=1601375468244&unitId=987654321&accountId=1230567&signature=7d7b968768f664bcdbd67bbd4e3f59347b300226734ade68bed660ab7794522fe0e3e66ecdb211f746dae1c44681a306ee221f8706c63195607e525e979360
Финальным шагом необходимо полученную строку (информационное сообщение + подпись) закодировать при помощи base64, использовать при перенаправлении на виджет Moneta SBP/FPS.
// СЕРВЕР
// на стороне сервера формируем итоговый токен
message = "cid=i103020cidExpireAt=1601375568244&key=partner123&nonce=1601375468244&unitId=987654321&accountId=1230567&signature=7d7b968768f664bcdbd67bbd4e3f59347b300226734ade68bed660ab7794522fe0e3e66ecdb211f746dae1c44681a306ee221f8706c63195607e525e979360"
token = base64(message)
// БРАУЗЕР КЛИЕНТА
// делаем редирект в браузере клиента на указанный адрес с этим токеном
// DEV окружение
https://fps-ui.dev.mnxsc.tech/?token={{token}}
// PROD окружение
https://fps-ui.prod.mnxsc.tech/?token={{token}}
Примеры кода для формирования токена
$secretKey = "secretKey";
$cid = "i103020";
$cidExpireAt = 1601375568244;
$key = "partner123";
$nonce = time();
$unitId = 987654321;
$accountId = 1230567;
$infoMessage = "cid=" . $cid . "&cidExpireAt=" . $cidExpireAt . "&key=" . $key . "&nonce=" . $nonce . "&unitId=" . $unitId . "&accountId" . $accountId;
$signatureString = hash_hmac("sha512", $infoMessage, $secretKey);
$token = base64_encode($infoMessage . "&signature=" . $signatureString);
const SECRET_KEY = 'secretKey';
const cid = "i103020";
const cidExpireAt = 1601375568244;
const key = 'partner123';
const nonce = Date.now();
const unitId = 987654321;
const accountId = 1230567;
const urlEncodedParams =
'cid='+encodeURIComponent(cid)
+'&cidExpireAt='+encodeURIComponent(cidExpireAt)
+'&key='+encodeURIComponent(key)
+'&nonce='+encodeURIComponent(nonce)
+'&unitId='+encodeURIComponent(unitId)
+'&accountId='+encodeURIComponent(accountId);
const signature = CryptoJS.HmacSHA512(urlEncodedParams, SECRET_KEY);
const signatureHex = CryptoJS.enc.Hex.stringify(signature);
const finalParams = urlEncodedParams + '&signature='+encodeURIComponent(signatureHex);
const token = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(finalParams));
Встраивание в iframe
Код для вставки виджета в iframe
// DEV окружение
<iframe
src="https://fps-ui.dev.mnxsc.tech/withdrawal?frame=true&token={ONE_TIME_TOKEN}"
style="
width: 400px;
height: 600px;
border: 1px solid #CCC;
border-radius: 10px">
</iframe>
// PROD окружение
<iframe
src="https://fps-ui.prod.mnxsc.tech/withdrawal?frame=true&token={OONE_TIME_TOKEN"
style="
width: 400px;
height: 600px;
border: 1px solid #CCC;
border-radius: 10px">
</iframe>
- Рекомендуемые размеры iframe: 400 x 600
- формирование ONE_TIME_TOKEN описано в разделе генерации токена партнера.
Ограничения использования iframe
Ограничение | Решение |
---|---|
Не работает вставка https iframe в http родителя. | Браузеры ограничивают возможности таких iframe, поэтому для тестов нужен https родитель. Например: https://localhost:8080 |
Получение событий из iframe
Виджет отправляет родительской странице события, которые можно обработать в js коде:
// код на сайте:
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event) {
// событие от виджета
if(event.origin === 'https://fps-ui.prod.mnxsc.tech'){
const data = event.data || {};
console.log(data.type);
}
}
Тип события | Описание |
---|---|
initialized | Виджет инициализирован |
error | Произошла ошибка отображения виджета, при этом data.error будет содержать код ошибки |
loggedOut | Пользователь завершил работу с виджетом |
verificationFinished | Верификация пользователя завершена, при этом в поле data.status будет результат операции: ‘SUCCESS’ либо ‘FAILED’ |
withdrawalFinished | Вывод завершен, при этом в поле data.status будет результат операции: ‘SUCCESS’ либо ‘FAILED’ |
Уведомления о событиях
Операции перевода формируются сервисом Moneta SBP/FPS в статусе Операция создана и для продолжения операции необходимо воспользоваться методом PaymentRequest
MONETA.MerchantAPI, указав в поле payee
номер операции с ведущим нулем.
Результат подготовки операции перевода будет передан на указанный маркетплейсом при регистрации callback url
в виде POST запроса с JSON объектом содержащим параметры:
operationId
- номер операции с ведущим нулем, который необходимо указать вPaymentRequest
в полеpayee
messageId
- номер сообщения СБП, его необходимо указать вoperationInfo
в полеSECUREDFIELD:unsBo_79
Информация, подтверждающая валидность сообщения, будет замещена в заголовке HTTP запроса X-Digest.Сервис Moneta SBP/FPS размещает в этом заголовке подпись данных из тела запроса, созданную при помощи ApiSecret, предоставленного при регистрации маркетплейса с использованием алгоритма HMAC-SHA512.
Уведомление на callback url
считается успешно доставленным в случае получения от маркетплейса HTTP ответа с кодом 200
. В противном случае, сервис Moneta SBP/FPS будет пытаться повторить доставку уведомления до достижения таймаута, после которого проведение перевода будет невозможно.
Пример запроса PaymentRequest
Запрос формируется согласно интерфейсу MONETA.MerchantAPI.
{
"Envelope": {
"Header": {
"Security": {
"UsernameToken": {
"Username": "USERNAME",
"Password": "PASSWORD"
}
}
},
"Body": {
"PaymentRequest": {
"payer": "номер ЭСП МОНЕТА.РУ",
"payee": "0operationId",
"amount": "10",
"isPayerAmount": false,
"paymentPassword": "010101010",
"operationInfo": {
"attribute": [
{
"key": "SECUREDFIELD:unsBo_79",
"value": "1234123452345345645674567578"
}
] }
}
}
}
}
Просмотр истории транзакций
Сервис Moneta SBP/FPS позволяет просмотреть историю транзакций. История отображается в убывающем по дате создания транзакции порядке и позволяет посмотреть детальную информацию по выбранной транзакции на отдельной странице. Данные в истории обновляются автоматически с определенным периодом. Для отображения истории необходимо:
- сформировать и подписать токен доступа;
- открыть URL “<BASE_URL>/wallet/wallets/transactions”, передав сформированный токен в качестве параметра.
// DEV окружение
<iframe
src="https://fps-ui.dev.mnxsc.tech/wallet/wallets/transactions?frame=true&token={ONE_TIME_TOKEN}"
style="
width: 400px;
height: 600px;
border: 1px solid #CCC;
border-radius: 10px">
</iframe>
// PROD окружение
<iframe
src="https://fps-ui.prod.mnxsc.tech/wallet/wallets/transactions?frame=true&token={ONE_TIME_TOKEN}"
style="
width: 400px;
height: 600px;
border: 1px solid #CCC;
border-radius: 10px">
</iframe>
API протоколы
Moneta ID
Подразделы Moneta ID
Идентификация с помощью Moneta ID
Сервис Moneta ID предназначен для выполнения упрощенной или полной идентификации клиентов через внешних провайдеров, например сотовых операторов (МТС, Beeline, Тинькофф). До начала работы с сервисом Moneta ID должны быть выполнены условия:
- заключен договор ИТВ с НКО МОНЕТА
- созданы личные кабинеты в системе
Схема взаимодействия
Процесс взаимодействия между партнером и Moneta ID определяется следующими шагами:
- Приложение партнера формирует и подписывает запрос, для которого нужно провести идентификацию.
- Приложение партнера перенаправляет браузер клиента (пользователя ЭСП МОНЕТА.РУ) на специальный адрес, передав токен безопасности.
- Moneta ID запрашивает у клиента партнера (пользователя ЭСП МОНЕТА.РУ) информацию, необходимую для проведения идентификации.
- Moneta ID проводит процедуру идентификации.
- Moneta ID уведомляет приложение партнера о ходе идентификации.
- Moneta ID возвращает клиента (пользователя ЭСП МОНЕТА.РУ) в приложение партнера.
Стенды
Тестовый контур
Для отладки взаимодействия и тестирования в настоящее время доступны следующие окружения:
API | Тег | Описание |
---|---|---|
https://mid.demo.moneta.ru/ | Demo | Демо тестовый стенд |
Под кнопкой “Пройти идентификацию” партнер передает стартовый URL для перенаправления клиентов.
Параметры unitid, phone, cnonce, signature должны вычисляться автоматически на стороне партнера.
cnonce - ограничения на диапазон min = 6, max = 32 знака.
Пример стартового URL:
https://<API-root>/identification?subscriberId=<subscriberId>&unitId=<unitId>&phone=<phone>&cnonce=<cnonce>&signature=<signature>
DEMO-режим
Данный режим предполагает подключение и работу с сервисом через https://demo.moneta.ru/login.htm Для получения доступов в личные кабинеты demo.moneta.ru необходимо обратиться на адрес mp@payanyway.ru
Для отладки прохождения упрощенной идентификации в демонстрационном режиме, можно использовать любые персональные данные клиента. Чтобы протестировать изменение статуса необходимо задать одну из “тестовых” фамилий:
- “Иванов” - УПРИД будет пройден успешно.
- “Петров” - УПРИД будет всегда отдавать статус “В процессе”.
- “Попов” - УПРИД всегда будет завершаться неудачно.
- “Медведев” - при использовании этой фамилии будет осуществлен переход на окно ввода ИНН\СНИЛС При указании ИНН
- “399474507659” - УПРИД будет пройден успешно.
- “526317984689” - УПРИД всегда будет завершаться неудачно.
Регистрация партнера
Партнеру необходимо предоставить следующие данные на адрес mp@payanyway.ru:
Обязательная информация:
- Полное и короткое наименование проекта.
- URL для отправки уведомлений о статусе прохождения идентификации (statusURL).
- URL для отправки уведомлений о проблемах в работе виджета (notifyURL).
Со стороны Moneta ID будет предоставлена следующая информация:
- apiSecret - Код проверки целостности данных. Код, обеспечивающий идентификацию отправителя и возможность проверки целостности данных, известный только системе MonetaID и партнеру. Код будет направлен на адрес электронной почты от Личного кабинета партнера, указанного в Договоре.
- subscribeURL - Специальная ссылка для установления доверия.
Установление доверия
Для проведения идентификации Пользователей ЭСП МОНЕТА.РУ с помощью сервиса Moneta ID необходимо пройти процедуру установления доверия с сервисом. Партнеру необходимо:
- Войти в Личный кабинет партнера с Пользователями ЭСП МОНЕТА.РУ на www.moneta.ru (или demo.moneta.ru для демо контура).
- Перейти по ссылке, которую предоставил сервис Moneta ID.
- В появившемся диалоговом окне ознакомиться с информацией о том, какие разрешения партнер предоставит сервису Moneta ID.
- Подтвердить предоставление разрешений:
Перечень действий с юнитами/профилями Пользователей ЭСП МОНЕТА.РУ, которые партнер может предоставить сервису Moneta ID:
GetProfileInfo
FindProfileDocumentFiles
FindProfileDocuments
EditProfileDocument
EditProfile
ApprovePhoneSendConfirmation
ApprovePhoneApplyCode
SimplifiedIdentification
Аутентификация
Предварительные условия
- Необходимо пройти процедуру регистрации партнера и получить ApiSecret.
- Необходимо установить доверительные отношения с сервисом Moneta ID.
Формирование токена и подписи
Для обновления информации в профиле Пользователя ЭСП МОНЕТА.РУ сервисом Moneta ID партнер должен сформировать специальный одноразовый токен.
Для реализации алгоритма формирования единовременного токена использованы следующие стандарты:
- RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.
- RFC 2104 HMAC: Keyed-Hashing for Message Authentication.
Токен состоит из 2-х частей:
- Информационное сообщение, содержащее ключевую информацию о партнере и Пользователе ЭСП МОНЕТА.РУ, служебную информацию.
- Подпись/Хеш от информационного сообщения из п.1., и использование заранее полученного общего секрета - ApiSecret.
Формирование информационного сообщения (стартовый URL)
Информационное сообщение состоит из набора ключ-значение, которые закодированы в соответствии с правилами URL-кодирования строк по RFC 3986. Ниже приведен набор обязательных параметров, которые необходимо указать при формировании информационного сообщения (ключи должны следовать в отсортированном порядке, как в таблице ниже):
Ключ | Обязательноеполе | Описание | Тип | Пример |
---|---|---|---|---|
subscriberId | Да | Идентификатор партнера в системе Moneta ID | Строка | site.ru |
unitId | Да | Идентификатор пользователя ЭСП МОНЕТА.РУ, для которого необходимо провести идентификацию. | Число | 11111 |
phone | Да | Сотовый телефон. Сотовый телефон в личном кабинете пользователя должен быть “подтвержден”. | Число | 9001234567 |
cnonce | Да | Одноразовый код, выбранный случайным или псевдослучайным образом, использующееся для невозможности повторного использования одного и того же токена | Строка | dlt5Tvv3TPHcT |
successURL | URL страницы партнера, куда должен попасть пользователь, если идентификация проведена успешно | URL | ||
returnURL | URL страницы партнера, куда должен вернуться пользователь при закрытии виджета | URL | ||
failURL | URL страницы партнера, куда должен попасть покупатель, если идентификация не была проведена | URL | ||
inprogressURL | URL страницы партнера, куда должен попасть пользователь после успешного запроса на идентификацию, до получения ответа о статусе запроса на идентификацию | URL | ||
signature | Да | Код для идентификации отправителя и проверки целостности данных. Кодирование ключа производится путем конкатенации в одну строку значений параметров запроса и кода проверки целостности данных, кодированием по алгоритму HMAC-SHA512 и представлением массива байт в виде строки шестнадцатеричных чисел |
Формирование подписи
После того, как информационное сообщение сформировано, необходимо вычислить подпись/хеш с использованием общего секрета - ApiSecret.
Кодирование ключа производится путем конкатенации в одну строку значений параметров запроса и кода проверки целостности данных, кодированием по алгоритму HMAC-SHA512 и представлением массива байт в виде строки шестнадцатеричных чисел:
Алгоритм формирования:
- Вычислить HMAC-SHA512 хеш используя пару (информационное сообщение, секрет).
- Полученный массив байт перевести в строку в шестнадцатеричном представлении.
// message - значениия параметров запроса
// secret - секрет/apiSecret
message = subscriberId + unitId + phone + cnonce + successURL + returnURL + failURL + inprogressURL
signatureBytes = hmac_sha512(message, secret)
signatureString = bytesToHex(signatureBytes)
После того, как подпись в виде hex-строки сформирована, необходимо добавить ее к параметрам запроса с ключом signature. Пример итогового информационного сообщения (стартовый URL) :
subscriberId=testSubscriber&unitId=1000&phone=9001234567&cnonce=ygfhkJIBiT3kxjq5P74Tc00Ry6nkC5kK&signature=cf1299778ba5b9310bd2cd42747a43fb79ce72aad16a22704e633900c6dbc9e9a4b61afe53c3fec27c600ef5625a0423b75cc4d96ecaf2890b1dff8db36d4d03
subscriberId=testSubscriber&unitId=1000&phone=9001234567&cnonce=ygfhkJIBiT3kxjq5P74Tc00Ry6nkC5kK&signature=cf1299778ba5b9310bd2cd42747a43fb79ce72aad16a22704e633900c6dbc9e9a4b61afe53c3fec27c600ef5625a0423b75cc4d96ecaf2890b1dff8db36d4d03
Финальным шагом необходимо использовать полученные параметры при перенаправлении на виджет идентификации.
// БРАУЗЕР КЛИЕНТА
// делаем редирект в браузере клиента на указанный адрес
// DEV окружение
https://mid.demo.moneta.ru/identification?{параметры запроса}
// PROD окружение
https://mid.moneta.ru/identification?{параметры запроса}
Уведомление о статусе идентификации
Результат идентификации будет передан на указанный партнером при регистрации URL в виде GET запроса с query параметрами.
Список передаваемых партнеру параметров:
Ключ | Тип | Описание | Пример |
---|---|---|---|
type | string | тип уведомления: IDENTIFICATION | type=IDENTIFICATION |
unitId | number | идентификатор юзера в монете, который проходил проверку. | unitId=10050 |
status | string | статус прохождения УПРИД: SUCCEEDED | status=SUCCEEDED |
signature | string | подпись всех переданных параметров. | signature=1d9…db6 |
Проверка signature
Подпись всех переданных параметров реализован через механизм аналогичный механизму формирования подписи от партнера.
Таким образом партнер может убедиться в достоверности вызова, сделав проверку:
hmac_sha512(params, secret) == signature
Где params - это значения параметров запроса.
Код ответа на запрос с уведомлением о статусе идентификации
Для того чтобы сообщить сервису Moneta ID, что партнер получил информацию о статусе идентификации, скрипт партнера (statusURL) должен дать ответ с http-кодом 200.
Попытки отправки уведомления будут повторены:
- Если сервис Moneta ID не смог получить ответ от обработчика.
- Если сервер партнера был недоступен.