Интерфейс X20

Интерфейс X20. Проведение транзакции в merchant.webmoney без ухода с сайта (ресурса, сервиса, приложения) продавца

Этот интерфейс доступен только участникам, использующим сервис merchant.webmoney.com (merchant.wmtransfer.com). Платеж невозможен с кошельков, зарегистрированных в merchant.webmoney.com (merchant.wmtransfer.com)

Подробнее о встроенных платежах через X20

Интерфейс позволяет произвести прием средств от участника WebMoney Transfer непосредственно на сайте, сервисе, приложении, консоли и т.п. (здесь и далее приложении продавца) не требуя от участника перехода на какие-либо сайты системы. При этом платеж будет проведен таким образом, как если бы участник заплатил обычным образом через merchant.webmoney.

Эффект отсутствия необходимости покидать сайт достигается тем, что участник подтверждает списание средств со своего WebMoney кошелька (или WebMoney чека) различными мобильными способами, в данный момент их три:

  • Подтверждение SMS-кодом, присланным на мобильный телефон участника
  • Оплатой WM-счета, выписанного участнику. В данный момент оплата ВМ-счетов возможна во всех мобильных (и вообще любых) приложениях по управлению кошельками WebMoney Transfer.

В случае авторизации по СМС с покупателя взимается дополнительная фиксированная комиссия в размере 0,05 WMZ, 0,05 WME, 0,01 WMX, 0,01 WMG, 9 WMK, 0,1 WMH, 0,50 WML, 0.02 WMF, 0.05 WMT в зависимости от валюты платежа.

Интерфейс поддерживает работу с кошельками следующих типов: WMZ, WME, WMX, WMG, WMK, WMH, WML, WMF и WMT.

Интерфейс работает по тому же принципу идентификации и аутентификации продавца, что и Интерфейс X18 (WMSigner или SHA256 или MD5 или Secret key) и доступен как обычным продавцам, использующим merchant.webmoney, так и владельцам WMID Capitaller или продавцам зарегистрированным в сервисе processing.webmoney .

На воображаемом примере работу интерфейса можно описать следующим образом. Допустим покупатель находится в приложении какой-либо игровой консоли и собирается произвести оплату какой-либо услуги (игры).
При выборе способа оплаты через Вебмани покупателю предлагается указать свой номер мобильного телефона, ВМ-идентификатор или e-mail (либо взять эту информацию из профайла участника), чтобы инициировать оплату.
Далее приложение (серверная сторона приложения продавца) передает эту информацию (вместе с другими параметрами платежа, суммой и т.п) в первом XML запросе данного интерфейса. Результатом выполнения этого запроса является поиск участника по переданным данным и отправка СМС кода или выписка ВМ-счета. В случае отправки СМС кода так же выписывается и ВМ-счет.
После успешного выполнения этого запроса приложение продавца предлагает покупателю либо ввести подтверждающий код, присланный на СМС, либо ВМ-счет получен и оплачен. В этом случае приложение продавца осуществляет вызов второго XML-запроса данного интерфейса, в результате выполнения которого производится оплата, и в ответе на запрос продавец получает те же данные, которые он получил бы, если бы оплата произошла обычным способом через merchant.webmoney.

ВНИМАНИЕ!!!: Так как плательщик может оплатить ВМ-счет вместо отправки кода из СМС, продавцам необходимо предусмотреть обязательную проверку статуса платежа, перед тем как по своей инициативе переводить платеж в окончательный отрицательный статус. Для проверки статуса так же допустимо использовать отправку второго запроса с заведомо неверным кодом из СМС: если платеж был оплачен через ВМ-чек, то ответ будет положительным.

Пример использования интерфейса (эмуляция вызова и тексты запросов), воспользоваться тестом смогут только пользователи сервиса merchant.webmoney или разработчики, имеющие на своем ВМИД кошельки, настроенные в merchant.webmoney в рабочем или тестовом режиме.

<merchant.request>
    <wmid></wmid>
    <lmi_payee_purse></lmi_payee_purse>
    <lmi_payment_no></lmi_payment_no>
    <lmi_payment_amount></lmi_payment_amount> 
    <lmi_payment_desc></lmi_payment_desc> 
    <lmi_clientnumber></lmi_clientnumber>     
    <lmi_clientnumber_type></lmi_clientnumber_type>     
    <lmi_sms_type></lmi_sms_type>
    <secret_key></secret_key>
    <sign></sign>
    <sha256></sha256>
    <md5></md5>
    <lang></lang>
    <lmi_shop_id></lmi_shop_id>
    <emulated_flag></emulated_flag>
</merchant.request>

кроме XML, интерфейс принимает данные в формате JSON

  • метод - POST
  • Content-Type - "text/json"
  • формат запроса:
{
   "wmid": (string),
   "lmi_payee_purse": (string),
   "lmi_payment_no": (int),
   "lmi_payment_amount": (float),
   "lmi_payment_desc": (string),
   "lmi_clientnumber": (string),
   "lmi_clientnumber_type": (int),
   "lmi_sms_type": (int),
   "secret_key": (string),
   "sign": (string),
   "sha256": (string),
   "md5": (string),
   "lang": (string),
   "lmi_shop_id": (int),
   "emulated_flag": (int)
}

поддерживается также формат JSONP

  • метод - GET
  • Content-Type - "text/jsonp"
  • параметр для передачи имени функции обратного вызова - callback
  • параметры запроса:
название get-параметр для JSONP назначение Обязательный? примечание
wmid wmid ВМ-идентификатор получателя или подписи да WMID, которому принадлежит кошелек, на который принимается платеж lmi_payment_no через сервис merchant.webmoney.com , либо WMID, подписавший запрос при использовании метода аутентификации WMSigner, при этом данному WMID , если ему не принадлежит кошелек, получивший платеж, должно быть дано доверие на выписку счетов от имени данного идентификатора
lmi_payee_purse lpp ВМ-кошелек получателя платежа да Номер кошелька который зарегистрирован и настроен в сервисе merchant.webmoney и на который продавец будет принимать оплату
lmi_payment_no lpn номер платежа да Номер платежа в системе учета продавца integer, который должен быть сформирован приложением продавца. Параметр полностью аналогичен параметру, передаваемому сервису merchant.webmoney.com в форме платежа в скрытом поле ввода lmi_payment_no и имеет тоже название. Обратите внимание, что если в настройках сервиса merchant.webmoney.com для кошелька lmi_payee_purse не установлена опция, принимать только уникальные lmi_payment_no, то в этом случае возможны варианты, когда по вине продавца сформировавшего для разных покупок или даже покупателей один и тот же lmi_payment_no, будет произведено две оплаты с одним и тем же номером в системе учета продавца. Старайтесь, чтобы каждая покупка в системе учета продавца имела уникальный номер lmi_payment_no Номер должен представлять собой целое число без знака не больше 2147483647.
lmi_payment_amount lpa сумма платежа да Сумма платежа, которую продавец желает получить от покупателя в том же типе ВМ-валюты что и кошелек продавца lmi_payee_purse. Сумма должна быть больше нуля, дробная часть отделяется точкой.
lmi_payment_desc lpd назначение платежа да Описание товара или услуги. Формируется продавцом. Если присутствует, добавляется в назначение платежа в операцию перевода WebMoney. Максимальная длина - 255 символов.
lmi_payment_desc_base64 lpdb64 назначение платежа нет Описание товара или услуги в UTF-8 и далее закодированное алгоритмом Base64. Формируется продавцом. Если присутствует, то результат раскодирования будет подставлен вместо LMI_PAYMENT_DESC. Позволяет не зависеть от кодировки на сайте продавца.
lmi_clientnumber lcn данные покупателя да Мобильный телефон (с кодом страны и города только цифры без плюсов, скобок и других символов например для России 79167777777 или Украины 380527777777) или ВМ-идентификатор покупателя (строго 12 цифр) или E-mail покупателя. При этом интерфейс автоматически найдет ВМ -идентификатор или WebMoney чек, с которого может быть произведена оплата покупателем.
lmi_clientnumber_type lcnt тип данных да Тип переданных в lmi_clientnumber данных, если передается мобильный телефон то необходимо указать в этом поле цифру 0, если ВМИД - цифру 1, если E-mail - цифру 2
lmi_sms_type lst тип СМС да Данное поле определяет тип подтверждения покупателем транзакции. Если в данном поле передать цифру 1, то покупателю будет выслана СМС. Если цифра 3, то будет произведена попытка (из настроек сделанных самим покупателем и анализа предыдущих платежей и т.п.) определить автоматически какой запрос будет предпочтительней для покупателя (в случае неуспеха будет выбран тип СМС). Если цифра 4, то СМС отправляться не будет и будет только выставлен ВМ-счет, который покупатель сможет оплатить через мобильное или какое-либо другое приложение WebMoney, но в этом случае будет недоступна оплата через WebMoney чек, так как в нем оплата возможна только при подтверждении через СМС. При этом обращаем внимание, что для любого значения от 1 до 4 данного параметра, если интерфейс определит, что оплата будет производиться с ВМ-идентификатора (не с WebMoney чека для которого обязательно нужен мобильный), то ВМ-счет все равно всегда будет выставлен покупателю. При этом покупатель может не получить СМС (если интерфейс вызывается именно с отправкой СМС), но он может оплатить счет в любом мобильном приложении по управлению кошельками и оплата пройдет штатно.
Просто в подтверждающем запросе приложение продавца может не передавать подтверждающий код (передать значение кода равно 0) или даже передать любой код, при этом в ответе все равно будут переданы данные успешного платежа.
Если цифра 5, то покупателю будет выслана СМС, при этом ВМ-счет НЕ будет выписан, то есть оплата будет возможна ТОЛЬКО через х20 и с подтверждением по СМС через интерфейс х20. Оптимальным для любых случаев в данном запросе является передача цифры 3.
sign Подпись запроса нет(см. примечание) Подпись производится ключами идентификатора wmid методом WMSigner и формируется из параметров: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type. Обратите внимание, что если кошелек lmi_payee_purse не принадлежит идентификатору wmid, то необходимо чтобы на security.webmoney.ru этому идентификатору было установлено доверие на выписку счетов для кошелька lmi_payee_purse. В случае если используется данный вариант аутентификации запроса, параметры sha256, md5 и secret_key должны остаться пустыми или не указываться.
sha256 Подпись запроса нет(см. примечание) Подпись производится методом SHA256 и формируется из параметров: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type + secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign, md5 и secret_key должны остаться пустыми или не указываться. Обратите внимание, что при формировании строки к которой применяется алгоритм sha256 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com , при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре sha256, параметр secret_key должен остаться не указанным или пустым!!! Например для сформированной для подписи строки "123456123456R123456123456117985777777712345" в данном параметре необходимо передать значение равное "81D14240ABCD2C6EAF03699CF12F12A3CA3223E79E510C2E912FC6867E6DA201"
md5 Подпись запроса нет(см. примечание) Подпись производится методом MD5 и формируется из параметров: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type + secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и secret_key должны остаться пустыми или не указываться. Обратите внимание, что при формировании строки к которой применяется алгоритм md5 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com , при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре MD5 , параметр secret_key должен остаться не указанным или пустым!!! Например для сформированной для подписи строки "123456123456R123456123456117985777777712345" в данном параметре необходимо передать значение равное "F4B0686BC1D22F9158B85B2DE4348ED7"
secret_key lsk секретное слово нет(см. примечание) В данном параметре передается значение секретного слова из настроек кошелька lmi_payee_purse в сервисе merchant.webmoney.com . Обратите внимание, что при использовании данного метода, проверка аутентичности соединения по https (валидности и принадлежности корневого сертификата сервера https://merchant.webmoney.com/ и т.п.) во избежание подмены DNS и т.п. остается на совести отправителя запроса. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и md5 должны остаться пустыми или быть опущены.
lang l язык ответа нет В данном параметре передается значение ru-RU или en-US соответственно для русского или английского языка интерфейса. Данное значение определяет и язык отправляемых пользователю SMS запросов и язык ответов в теге userdesc
lmi_shop_id lsi номер магазина нет(см. примечание) Данный параметр обязателен к указанию только для агрегаторов (сервисы посредники осуществляющие прием платежей в пользу третьих лиц). В данном поле агрегаторы обязаны передавать регистрационный номер магазина в каталоге Меагасток http://www.megastock.ru/ в пользу которого осуществляется прием данного платежа
LMI_HOLD lh блокировка средств нет Срок холдирования платежа (блокировки средств). Если данный параметр передан, то совершается транзакция с протекцией по времени на указанное количество суток. Для зачисления средств продавец должен завершить операцию с сайта merchant.webmoney.com или вызвать XML-интерфейс X5, если продавец не сделает данных действий, то по истечении указанного срока средства возвращаются плательщику.
Досрочный возврат выполняется на странице merchant.webmoney.com или через XML-интерфейс X13
emulated_flag ef флаг эмуляции нет Данный флаг может помочь в случае необходимости эмулировать вызов данного первого запроса в интерфейсе. Флаг может принимать два значения 0 и 1. В случае указания 0 ничего не происходит. В случае указания 1 данный вызов происходит в режиме эмуляции. Это означает, что не происходит никаких реальных действий, не выписывается счет, не отправляется СМС пользователю, не регистрируется начало проведения платежа и т.п., но при этом в случае получения ответа с ошибкой 540 при указанном флаге - это означает что повторный вызов интерфейса с теми же параметрами, но без данного флага приведет к успеху (другими словами что пользователь в системе найден, у него есть средства на кошельках и т.п.). В случае если возникает любая другая ошибка, то именно она и будет получена при вызове интерфейса с теми же параметрами , но без флага.
  • формат ответа (XML):
<?xml version="1.0"?>
<merchant.response>
    <operation wmtransid="" wminvoiceid="">
        <realsmstype></realsmstype>
    </operation> 
    <retval>0</retval> 
    <retdesc></retdesc>
    <userdesc></userdesc>  
</merchant.response> 
  • формат ответа (JSON):
{
   "operation": 
     {
       "wminvoiceid":(int),
       "wmtransid":(int),
       "realsmstype":(int)
     },
   "retval":(int),
   "retdesc":(string),
   "userdesc":(string)
}
  • параметры ответа:
название назначение примечание
wminvoiceid ВМ-номер счета Уникальный номер ВМ-счета в системе WebMoney Transfer
realsmstype тип отправки СМС Если в данном поле передана цифра 1 - это значит что покупателю отправлена SMS, 4 - ничего не отправлялось
retval номер ошибки Цифровой код ошибки, в случае если выполнение запроса завершилось с ошибкой
retdesc описание ошибки Текстовое описание ошибки для разработчиков приложения продавца, описывающее причины невозможности успешного выполнения запроса
userdesc информация для покупателя В случае ошибки данный текст можно транслировать покупателю как инструкцию, которая поможет ему быстро и правильно понять, что необходимо сделать чтобы избежать ошибки в дальнейшем

Задача приложения продавца при успешном вызове первого запроса, получить и сохранить соответствующее платежу значение wminvoiceid.
Без этого значения не может быть вызван второй, подтверждающий оплату запрос. Если по каким-либо причинам (имеются ввиду обрывы связи, таймауты и прочие НЕявные или недокументированные ошибки) данное значение не получено или не сохранено, то необходимо вызвать первый запрос повторно (при этом не меняя его!!!), при этом все параметры должны оставаться без изменений.
Если состояние запроса не будет выяснено и не будет получен wminvoiceid, то повторный вызов с изменением какого-либо параметра, например суммы платежа, приведет к выписке нового ВМ-счета и отправке новой СМС-ки, при этом потенциально возможна ситуация, когда покупатель оплатит ОБА счета, хотя исходя из логики работы приложения продавца возможна только единственная оплата.
В случае необходимости отмены приема средств по какому-либо wminvoiceid возможен вызов подтверждающего интерфейса с параметрами отказа от приема оплаты по счету wminvoiceid, в этом случае, если оплата еще не произошла до момента вызова отказа, то она и не будет произведена и приложение продавца может выставить новый счет, не опасаясь поступления средств по предыдущему счету.

Также в любой момент приложение продавца может выяснить состояние счета wminvoiceid путем вызова интерфейса X18 либо вызова повторного, подтверждающего интерфейса XMLTransConfirm.asp

Обратите внимание, что если Ваш кошелек продавца находится в тестовом режиме (например, это тестовый кошелек разработчика), то реальных транзакций не будет. Вызов интерфейса при тестовом режиме кошелька продавца будет полностью эмулировать реальную транзакцию. Иными словами, если Вы не получили ошибок при вызове интерфейса в тестовом режиме кошелька продавца (транзакция не было сделана из-за тестового режима), то в рабочем режиме при вызове с точно такими же параметрами транзакция точно будет сделана.

<merchant.request>
    <wmid></wmid>
    <lmi_payee_purse></lmi_payee_purse>
    <lmi_clientnumber_code></lmi_clientnumber_code>     
    <lmi_wminvoiceid></lmi_wminvoiceid>     
    <secret_key></secret_key>
    <sign></sign>
    <sha256></sha256>
    <md5></md5>
    <lang></lang>
</merchant.request>

кроме XML, интерфейс принимает данные в формате JSON

  • метод - POST
  • Content-Type - "text/json"
  • формат запроса:
{
   "wmid": (string),
   "lmi_payee_purse": (string),
   "lmi_wminvoiceid": (int),
   "lmi_clientnumber_code": (string),
   "secret_key": (string),
   "sign": (string),
   "sha256": (string),
   "md5": (string),
   "lang": (string)
}

поддерживается также формат JSONP

  • метод - GET
  • Content-Type - "text/jsonp"
  • параметр для передачи имени функции обратного вызова - callback
  • параметры запроса:
название get-параметр для JSONP назначение Обязательный? примечание
wmid wmid ВМ-идентификатор получателя или подписи да WMID, которому принадлежит кошелек, на который был принят платеж lmi_payment_no через сервис merchant.webmoney.com , либо WMID, подписавший запрос при использовании метода аутентификации WMSigner, при этом данному WMID , если ему не принадлежит кошелек, получивший платеж, должно быть дано доверие на выписку счетов от имени данного идентификатора
lmi_payee_purse lpp ВМ-кошелек получателя платежа да Номер кошелька который зарегистрирован и настроен в сервисе merchant.webmoney и на который продавец будет принимать оплату
lmi_clientnumber_code lcnc код покупателя да В данном поле передается цифровой код, который покупатель получил на мобильный телефон для подтверждения платежа. Если СМС не отправлялась покупателю (просто ожидается оплата покупателем ВМ-счета через мобильные программы управления кошельками), то здесь необходимо передать код со значением 0. В случае если все же СМС была отправлена покупателю, но покупатель оплатил ВМ -счет через программу управления кошельками, то передача здесь кода 0 все равно даст успешный результат, так как проверка кода просто не будет производиться. Если в данном параметре передать -1 и на момент выполнения запроса оплата еще не произошла, то счет будет отменен и оплата в дальнейшем будет невозможна.
lmi_wminvoiceid lwid номер ВМ-счета да номер ВМ-счета wminvoiceid, полученный из ответа на предыдущий запрос
sign Подпись запроса нет(см. примечание) Подпись производится ключами идентификатора wmid методом WMSigner и формируется из параметров: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code. Обратите внимание, что если кошелек lmi_payee_purse не принадлежит идентификатору wmid, то необходимо чтобы на security.webmoney.ru этому идентификатору было установлено доверие на выписку счетов для кошелька lmi_payee_purse. В случае если используется данный вариант аутентификации запроса, параметры sha256, md5 и secret_key должны быть не указаны или должны быть указаны пустыми (для JSON должны быть обязательно явно указаны пустыми).
sha256 Подпись запроса нет(см. примечание) Подпись производится методом SHA256 и формируется из параметров: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code+secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign, md5 и secret_key должны быть не указаны или должны быть указаны пустыми (для JSON должны быть обязательно явно указаны пустыми). Обратите внимание, что при формировании строки, к которой применяется алгоритм sha256 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com , при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре sha256 , параметр secret_key должен быть не указан или указан пустым (для JSON обязательно указан пустым)!!!
md5 Подпись запроса нет(см. примечание) Подпись производится методом MD5 и формируется из параметров: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code+secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и secret_key должны быть не указаны или должны быть указаны пустыми (для JSON должны быть обязательно явно указаны пустыми). Обратите внимание, что при формировании строки, к которой применяется алгоритм md5 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com , при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре MD5 , параметр secret_key должен быть не указан или указан пустым (для JSON обязательно указан пустым)!!!
secret_key lsk секретное слово нет(см. примечание) В данном параметре передается значение секретного слова из настроек кошелька lmi_payee_purse в сервисе merchant.webmoney.com . Обратите внимание, что при использовании данного метода, проверка аутентичности соединения по https (валидности и принадлежности корневого сертификата сервера https://merchant.webmoney.com/ и т.п.) во избежание подмены DNS и т.п. остается на совести отправителя запроса. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и md5 должны быть не указаны или должны быть указаны пустыми (для JSON должны быть обязательно явно указаны пустыми).
lang l язык ответа нет В данном параметре передается значение ru-RU или en-US соответственно для русского или английского языка интерфейса. Данное значение определяет и язык отправляемых пользователю SMS запросов и язык ответов в теге userdesc. Для JSON данный параметр должен быть обязательно явно указаны как минимум пустым.
  • формат ответа (XML):
<?xml version="1.0"?>
<merchant.response>
    <operation  wmtransid="" wminvoiceid="">
        <amount></amount>
        <operdate></operdate>
        <purpose></purpose>
        <pursefrom></pursefrom>
        <wmidfrom></wmidfrom>
    </operation> 
    <retval>0</retval> 
    <retdesc></retdesc> 
    <userdesc></userdesc> 
    <smssentstate></smssentstate> 
</merchant.response> 
  • формат ответа (JSON):
{
   "operation": 
     {
       "wminvoiceid":(int),
       "wmtransid":(int),
       "amount":(float),
       "operdate":(string),
       "purpose":(string),
       "pursefrom":(string),
       "wmidfrom":(string)
     },
   "retval":(int),
   "retdesc":(string),
   "userdesc":(string)
   "smssentstate":(string)
}
  • параметры ответа:
название назначение примечание
wminvoiceid номер ВМ-счета Уникальный номер ВМ-счета в системе по которому производится оплата
wmtransid номер ВМ-транзакции Уникальный номер транзакции. Если в данном параметре присутствует положительное число больше 0, только тогда это означает, что платеж был успешно совершен. Для обычных продавцов использующих merchant.webmoney наличие данного уникального номера транзакции означает, что средства от покупателя поступили и находятся на кошельке. Для продавцов, использующих processing.webmoney наличие wmtransid означает, что средства поступили, войдут в текущий реестр и будут отправлены очередным банковским переводом по этому реестру. Для продавцов с ВМИД Capitaller, настроивших в нем прием средств через merchant.webmoney это означает , что средства поступили на доходный кошелек и в ближайшее время будут распределены в соответствии с политикой бюджетного автомата. Если приложение продавца не имеет номер wmtransid (не зафиксировало его наличие или не сохранило его в своей системе учета), то ни предоставлять товар, ни оказывать услугу, ни пополнять лицевой счет и т.п. нельзя. В случае завершения запроса по таймауту или в случае обрыва связи его следует повторить до получения wmtranid или четкого номера ошибки в параметре retval, подтверждающего что платеж не прошел.
amount сумма платежа Сумма платежа в ВМ-валюте того же типа, что и кошелек продавца.
operdate дата платежа Дата платежа wmtransid по часам сервера системы.
pursefrom кошелек участника Номер ВМ-Кошелька участника, с которого была совершена транзакция. Если платеж был совершен с WebMoney чека (в инициирующем запросе был передан мобильный телефон, система определила наличие чека с таким номером телефона в системе и была отправлена подтверждающая СМС), то в качестве кошелька будет фигурировать кошелек системы Paymer соответствующего типа Z000000000001 (или G, B, E)
wmidfrom ВМИД участника ВМИД участника, с которого была совершена транзакция. Если платеж был совершен с WebMoney чека, то в качестве ВМИДа будет фигурировать ВМИД чековой системы Paymer 000000000000
retval номер ошибки Цифровой код ошибки, в случае если выполнение запроса завершилось с ошибкой
retdesc описание ошибки Текстовое описание ошибки для разработчиков приложения продавца, описывающее причины невозможности успешного выполнения запроса
userdesc информация для покупателя В случае ошибки данный текст можно транслировать пользователю как инструкцию, которая поможет ему быстро и правильно понять, что необходимо сделать чтобы избежать ошибки в дальнейшем
smssentstate статус отправки СМС Если интерфейс завершен с ошибкой 553 (когда оплата осуществляется с Вебмани чека и передан Lmi_clientnumber_code=0 для выяснения состояния оплаты) или с ошибкой 556 (когда оплата осуществляется с WebMoney кошелька и она еще не прошла), то данный тег присутствует в ответе (если СМС, то есть lmi_sms_type = 1,3 ) и содержит состояние СМС
BUFFERED - ожидает отправки
SENDING - отправляется оператору
SENDED- передано оператору
DELIVERED- доставлено
NON_DELIVERED - не доставлено
SUSPENDED - отложено для повтора
HLRPENDING - cообщение отложено в ожидании проверки идентификации SIM карты по данным HLR.
HLRMISMATCH - проверка идентификации SIM карты по данным HLR выявила несовпадение (Подтвердить замену SIm карты пользователь может по ссылке https://security.webmoney.ru/asp/resetphs.asp).

Напоминаем, что для возврата уже осуществленных платежей можно использовать безкомиссионный интерфейс возврата Интерфейс X14, он работает с любыми платежами, принятыми с помощью данного интерфейса и возвращает средства либо на кошелек плательщика, либо на его мобильный телефон WebMoney чека.

Описание ошибок, возвращаемых интерфейсом:

retval retdesc
-100 общая ошибка при обработке запроса
-1 некорректный merchant.request/wmid
-2 некорректный merchant.request/lmi_payee_purse
-2 некорректный merchant.request/request_wminvoiceid (менее 5 или более 25 символов)
-2 некорректный merchant.request/request_clientnumber_code (менее 5 или более 25 символов)
-3 некорректный merchant.request/lmi_payement_no
-4 некорректное значение merchant.request/lmi_payment_amount
-5 некорректный merchant.request/lmi_payment_desc (менее 5 или более 235 символов)
-6 некорректный merchant.request/lmi_clientnumber (менее 5 или более 50 символов)
-7 некорректный merchant.request/lmi_clientnumber_type, должен состоять из 1 цифры
-7 некорректный merchant.request/lmi_clientnumber_type, должно быть указано 0, 1, 2 или 3
-9 неверное значение sign
-9 неверное значение sign, допустимый формат :planstr
-9 неверное значение SHA256 или MD5, допустимый формат:planstr(данный planstr без secret_key)
-8 Попытка перевода с WM.Check на кошелек не удалась:PaymerResultNum
500 Указанный в lmi_clientnumber_code код неверен
501 Кошелек продавца не найден или находится не в рабочем режиме
502 Допускается только уникальное значение lmi_payment_no
503 Разрешены только кошельки WMZ, WME, WMX, WMG, WMV, WMK, WMH, WML
504 Идентификатор, указанный в тэге 'wmid' не обнаружен
505 Кошелек, указанный в lmi_payee_purse, не принадлежит указанному WMID и не имеет доверенности для выставления счетов
506 Не указан секретный ключ для lmi_payee_purse
507 Указанный секретный ключ для lmi_payee_purse неверен
509 Извините, для X20 недоступно свободное переключение в тестовый режим. Пожалуйста, переведите ваш кошелек продавца в рабочий режим (http://merchant.webmoney.com) или используйте фиксированный параметр тега lmi_payment_desc для совершения тестовых платежей (lmi_payment_desc=X20 тестовый платеж)
510 Платеж с WebMoney.Check невозможен, так как прием средств на кошелек продавца осуществляется в тестовом режиме.
511 Неверное значение lmi_clientnumber_type: допускается только номер телефона, WMID, или е-мейл
512 По номеру телефона, указанному в lmi_clientnumber_type не найдено ни одного WMID
513 Номер телефона, указанный в lmi_client_number не проверен
514 На WMID, найденном по номеру телефона, указанному в lmi_clientnumber_type недостаточно средств
515 Кошелек, найденный по указанному в lmi_clientnumber_type номеру телефона, используется для приема платежей при помощи Merchant и производить оплату с него не разрешается
516 WMID, указанный в lmi_clientnumber_type, не найден
517 В данных WMID, указанного в lmi_client_number нет проверенного номера телефона
518 На WMID, указанном в lmi_clientnumber_type недостаточно средств
519 Кошелек, найденный по указанному в lmi_clientnumber_type WMID, используется для приема средств при помощи Merchant и производить оплату с него не разрешается
520 По е-мейлу, указанному в lmi_clientnumber_type не найдено ни одного WMID
521 По указанному в lmi_client_number е-мейлу найден WMID, но в его аттестате нет проверенного номера телефона
522 По е-мейлу, указанному в lmi_clientnumber_type найден WMID, но на нем недостаточно средств
523 По е-мейлу, указанному в lmi_clientnumber_type найден WMID, но он используется для приема средств при помощи Merchant и производить оплату с него не разрешается
524 Сумма платежа превышает дневной лимит, установленный по-умолчанию
525 WMID найден, но для него не включена опция платежей по СМС. В то же время, эта опция включена для другого WMID, найденного по номеру телефона. Пожалуйста, используйте этот второй WMID для оплаты
526 Возможность оплаты отключена пользователем для данного телефона/WMID/е-мейла
527 Требуемый кошелек не найден в списке кошельков указанного (найденного) WMID плательщика
528 Сумма платежа превышает дневной лимит, установленный владельцем
529 Сумма платежа превышает недельный лимит, установленный владельцем
530 Сумма платежа превышает месячный лимит, установленный владельцем
531 На кошельке (указанном пользователем для СМС-платежей) недостаточно средств
532 СМС-платежи для найденного WMID отключены системой
532 Платежи с кошелька нужного типа отключены пользователем
533 СМС-платежи для найденного WMID отключены системой
535 Обнаружено слишком много отправленных СМС без совершения платежей для данного WMID/е-мейла/телефона
543 Попытка платежа с данного Чека на такую же сумму, с таким же номером и тому же продавцу была совершена менее 15 минут назад. Повторите попытку позже.
550 Номер платежа, указанный в lmi_wminvoiceid не зарегистрирован в системе как платеж с WebMoney.Check
551 Пользователь отказался от оплаты через WebMoney Check платежа lmi_wminvoiceid
553 Пользователь начал процесс оплаты через WM Check, но не указал код из СМС. Провести платеж при помощи WM.Check без введения кода из СМС невозможно.
555 Номер платежа, указанный в lmi_wminvoiceid не зарегистрирован в системе как СМС-платеж Webmoney
556 Указанный в lmi_clientnumber_code код неверен
557 Пользователь отказался от оплаты lmi_wminvoiceid
558 СМС для lmi_wminvoiceid не было отправлено XMLTransRequest
565 Использовать интерфейс в рабочем режиме могут владельцы начальных и выше аттестатов
566 Владельцу wmid, который был найден по телефону необходимо войти авторизоваться в своем WMID
571 WM.Check, указанный в lmi_client_number WebMoney, не существует
572 WM.Check, указанный в lmi_client_number WebMoney относится к другому типу титульных знаков (например, у продавца кошелек типа WMZ, а WebMoney check содержит кошелек типа WME)
573 На WM.Check, указанный в lmi_client_number недостаточно средств
Данные тексты ошибок рекомендуется транслировать покупателю как инструкцию к действию, т.е. непосредтсвенно в интерфейсе (приложении) продавца.
500 Сообщение от WebMoney Transfer: вы неверно указали код, полученный по SMS для оплаты с вашего WebMoney-чека, возможно это код от другого платежа, дождитесь кода и попробуйте указать его снова.
501 Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее.
502 Только уникальное значение номера платежа в системе учета продавца является допустимым. Возможно вы уже делали или пытались делать платеж с таким номером и вам необходимо начать все снова.
503 Сообщение от WebMoney Transfer: В данный момент реализована возможность оплаты только для следующих типов кошельков WMZ, WME, WMX, WMG, WMK, WMH, WML. Вы пытаетесь заплатить на кошелек с типов ВМ-валюты, который пока не поддерживается.
504 Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее.
505 Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее.
506 Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее.
507 Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее.
508 Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее.
509 Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей (кошелек в тестовом режиме), попробуйте, пожалуйста, позднее.
510 Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей (кошелек в тестовом режиме), попробуйте, пожалуйста, позднее.
511 В данный момент можно заплатить только введя номер телефона или WM-идентификатор или E-mail, другие способы пока не поддерживаются.
512 По указанному вами телефону не найден ни один WM-идентификатор
513 По указанному вами телефону найден WM-идентификатор, но данный телефон не проверен, пожалуйста перейдите на passport.webmoney.ru и там в личных данных проверьте свой номер телефона, получив SMS и введя код проверки.
514 В WM-идентификаторе, который был найден по указанному вами телефону нет достаточного для оплаты количества средств
515 В WM-идентификаторе, который был найден по указанному вами телефону найден кошелек с достаточным для оплаты количеством средств, но этот кошелек настроен на прием оплаты в merchant.webmoney и заплатить с него нельзя. Пожалуйста, или пополните другой кошелек или зайдите на https://security.webmoney.ru/asp/trustlistmerch.asp и укажите точно какой именно кошелек необходимо использовать для оплаты в этом типе платежей по телефону.
516 Указанный WM-идентификатор не найден в системе.
517 Найден указанный вами WM-идентификатор, но телефон прописанный в нем не проверен, пожалуйста, перейдите на passport.webmoney.ru и там в личных данных проверьте свой номер телефона, получив SMS и введя код проверки.
518 Найден указанный вами WM-идентификатор, но на его кошельке средств для оплаты недостаточно.
519 В WM-идентификаторе, который был найден, есть кошелек с достаточным для оплаты количеством средств, но этот кошелек настроен на прием оплаты в merchant.webmoney и заплатить с него нельзя. Пожалуйста, или пополните другой кошелек или зайдите на https://security.webmoney.ru/asp/trustlistmerch.asp и укажите точно какой именно кошелек необходимо использовать для оплаты в этом типе платежей по телефону.
520 По указанному вами E-mail не найден ни один WM-идентификатор.
521 По указанному вами E-mail найден WM-идентификатор, но телефон в нем не проверен. Пожалуйста, перейдите на passport.webmoney.ru и там в личных данных проверьте свой номер телефона, получив SMS и введя код проверки.
522 На кошельках WM-идентификатора, который был найден по указанному вами E-mail, средств для оплаты недостаточно.
523 В WM-идентификаторе, который был найден по указанному вами E-mail, есть кошелек с достаточным для оплаты количеством средств, но этот кошелек настроен на прием оплаты в merchant.webmoney и заплатить с него нельзя. Пожалуйста, или пополните другой кошелек или зайдите на https://security.webmoney.ru/asp/trustlistmerch.asp и укажите точно какой именно кошелек необходимо использовать для оплаты в этом типе платежей по телефону.
524 Вы пытаетесь заплатить сумму, которая превышает лимит, установленный по умолчанию или назначенный вами. Отрегулировать лимиты для каждого типа кошельков можно на странице https://security.webmoney.ru/asp/trustlistmerch.asp
525 Указанный вами WM-идентификатор найден, но в нем не включена опция оплаты по SMS, она включена в другом WM-идентификаторе с тем же телефоном. Либо используйте его, либо включите опцию в этом ВМИД на странице https://security.webmoney.ru/asp/trustlistmerch.asp
526 По введенным вами данным найден WM-идентификатор, в котором опция оплаты по SMS была выключена владельцем WM-идентификатора. Включить ее опять можно на странице https://security.webmoney.ru/asp/trustlistmerch.asp
527 По введенным вами данным найден WM-идентификатор, но в нем нет подходящего для оплаты кошелька (или кошелек не настроен), произведите настройку кошелька на сайте https://security.webmoney.ru/asp/trustlistmerch.asp
528 Сумма платежа превышает назначенный вами (или по умолчанию) дневной лимит для платежей такого типа, регулировка лимитов находится на странице https://security.webmoney.ru/asp/trustlistmerch.asp
529 Сумма платежа превышает назначенный вами (или по умолчанию) недельный лимит для платежей такого типа, регулировка лимитов находится на странице https://security.webmoney.ru/asp/trustlistmerch.asp
530 Сумма платежа превышает назначенный вами (или по умолчанию) месячный лимит для платежей такого типа, регулировка лимитов находится на странице https://security.webmoney.ru/asp/trustlistmerch.asp
531 Назначенный вами (или по умолчанию) кошелек для платежей по SMS не имеет достаточной суммы.
532 По введенным вами данным найден WM-идентификатор, но кошелек требуемого типа не настроен на оплату через SMS, обратитесь к странице https://security.webmoney.ru/asp/trustlistmerch.asp
532 Для найденного WM-идентификатора платежи по SMS невозможны, обратитесь, пожалуйста в тех. поддержку системы WebMoney Transfer
533 Для найденного WM-идентификатора платежи по SMS невозможны, обратитесь, пожалуйста в тех. поддержку системы WebMoney Transfer
534 Вы уже платили данным способом (SMS), но с кошелька другого типа, к сожалению пока мы не можем автоматически включить вам возможность оплаты для этого типа кошелька. Установите для нужного кошелька лимиты на оплату на странице https://security.webmoney.ru/asp/trustlistmerch.asp и попробуйте снова.
535 Слишком много SMS не закончившихся оплатой отправлено на Ваш телефон, пожалуйста, подождите и попробуйте позднее.
540 Возникает только при вызове первого запроса интерфейса с указанным emulated_flag=1, означает что запрос в режиме эмуляции успешен.
543 Несколько минут назад вы уже пытались платить этому продавцу на эту же сумму и с этим же номером платежа, попробуйте пожалуйста позднее.
550 Что-то идет не так, вы пытаетесь подтвердить платеж, который не зарегистрирован в системе как платеж с WebMoney.Check, обратитесь, пожалуйста, с этой проблемой к своему продавцу.
551 Вы отказались от оплаты данного платежа с помощью WebMoney.Check, чтобы все же заплатить надо начинать снова.
553 Данный платеж пока еще не оплачен. Вы оплачиваете его через WebMoney чек, при этом вы не указали код, высланный вам по SMS.
555 Что-то идет не так, вы пытаетесь подтвердить платеж, который не зарегистрирован в системе как платеж с WebMoney, обратитесь, пожалуйста, с этой проблемой к своему продавцу.
556 Либо данный платеж пока еще не оплачен (если вы оплачиваете счет через какую-либо программу или сайт по управлению WM-кошельками), либо вы указали неверный код, высланный вам по SMS.
557 Вы отказались от оплаты данного платежа с помощью WebMoney, чтобы все же заплатить надо начинать снова.
558 SMS не была отправлена по данному платежу.
565 В данный момент Ваш продавец приостановил прием платежей
566 Вам необходимо авторизоваться в Вашем WMID и попробовать повторно выполнить платёж
571 Вы указали номер телефона по которому не зарегистрирован WebMoney.Check и поиск подходящего WM-идентификатора в системе по указанному телефону также ничего не дал (возможно WMID с таким телефоном есть, но на нем нет средств или нужного типа кошелька).
572 Вы указали номер телефона, по которому зарегистрирован WebMoney.Check, но его тип не совпадает с типом кошелька продавца, например, вы пытаетесь чеком с WME-балансом заплатить продавцу на WMZ-кошелек.
573 Вы указали номер телефона по которому не зарегистрирован WebMoney.Check, либо на нем нет требуемой для оплаты суммы, если на данном телефоне есть регистрация в WebMoney, то на найденных WMID нет необходимой суммы требуемого типа WM-валюты.
-22 Код не может быть больше 7 цифр

см. также
XML-интерфейсы
Подключение опции оплаты с помощью SMS
Ролик, демонстрирующий оплату через X20
Демонстрационное приложение для iOS в исходниках + пример кода для сайта
Библиотека для работы с интерфейсом X20 и демонстрационное приложение для Android
Тематический сайт интерфейса