WebMoney

Wiki

Interface X20

X20 interface. Making transactions through the merchant.webmoney service without leaving the seller's site (resource, service, application)

The interface enables users to accept payments from WebMoney Transfer clients directly on a site, from a service, an application, a game console (hereinfater referred to as the seller's application) without redirecting clients to any other sites in the system. All payments are processed in the same way as they would be if the client paid as usual via merchant.wmtransfer.com

This becomes possible thanks to an ability of the system to allow users to authorize the withdrawal of funds from their WebMoney purse (or a WebMoney Check Service) in a number of ways (3 to date):

  • Confirmation by a code sent to the client's mobile phone in an SMS message
  • Confirmation by a USSD request sent to the client's mobile phone
  • Confirmation by settling a WM invoice sent to the client. At the moment, payments against WM payment requests are supported by all mobile (and all other) applications intended for managing WebMoney Transfer purses.

In case of autorization with SMS\USSD there is additional fee charged from customer depending on currency of payment: 0.9 WMR, 0.04 WMZ, 0.03 WME, 0.25 WMU.

The interface uses the same method of seller indentification and authentication as the X18 interface (WMSigner or SHA256 or MD5 or Secret key) and can be used by regular sellers working with merchant.webmoney, as well as owners of WMID Capitaller or sellers registered in the processing.webmoney service.

The work of the interface can be described using an imaginary example. Let's assume that a client is using an application running on a game console and is going to pay for some product or service (e.g a game download).

When WebMoney is selected as the payment method, the system prompts the user for his/her phone number, WM identifier or email (or takes this information from the user's profile automatically) to initiate a transaction.

The application (the server part of the seller's application) sends this information (along with other payment parameters, the payment amount, etc) in the first XML request of this interface. This query triggers a search for a client matching these parameters and generates an SMS code, a USSD request or a WM payment request.

Once the query has been successfully executed, the seller's application asks the user to enter the confirmation code sent by SMS or confirm that a USSD code has been received and approved or that a WM invoice has been received and paid. If confirmed, the application sends the second XML request of the interface that triggers a transaction and sends the user the same type of response he/she would have received if they had used the regular merchant.webmoney service.

<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>
The interface accepts data in JSON format as well:
  • method - POST
  • Content-Type - "text/json"
  • request format:
{
   "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 format is accepted as well

  • Method - GET
  • Content-Type - "text/jsonp"
  • The parameter to transmit the name of the callback function - callback
  • Request parameters:
parameter get-param for JSONP purpose description
wmid wmid A WM-identifier of the recipient or signature The WMID that owns the purse that the lmi_payment_no payment was sent to via the merchant.webmoney.ru service or the WMID that signed the request if the WMSigner authentication method was used. If this WMID is not the owner of the purse that received the payment, there must be a trust issued for generating payment requests on behalf of this identifier
lmi_payee_purse lpp WM purse of the payment recipient The number of a purse registered and configured in the merchant.webmoney service that the seller will receive payments to
lmi_payment_no lpn Payment number The integer number of the payment in the seller's accounting system that must be generated by the seller's application. This parameter is completely identical (even has the same name) to the parameter passed to the merchant.wmtransfer.com service from the payment form and taken from the lmi_payment_no hidden input field. Note that if the merchant.wmtransfer.com service is not configured to accept unique lmi_payment_no for lmi_payee_purse purses only, it may result in situations when two payments will be made and registered by the seller's accounting system for the same payment number if he/she generates the same lmi_payment_no for different purchases. Make sure that every purchase in the seller's accounting system has a unique lmi_payment_no number.
lmi_payment_amount lpa Payment amount The payment amount that the seller wants to receive from the buyer in the same currency as used by the seller's lmi_payee_purse purse. The amount must be greater than zero, the decimal part must be seperated with a period.
lmi_payment_desc lpd Payment purpose Description of a product or service specified by the seller. If present, it's added to the payment purpose part of the WebMoney transfer operation. Max size - 255 characters
lmi_payment_desc_base64 lpdb64 Payment purpose Product or service description in UTF-8 and Base64 encoded after. Formed by seller. If exists - decoded result substitutes instead of LMI_PAYMENT_DESC. Allows to ignore encoding on merchant's web-site.
lmi_clientnumber lcn Client details A mobile number with country and city codes (numbers only, no plus sign, brackets or other characters - e.g 16467659847 for the US), or a client's WM identifier (12 digits only) or a client's email address. The interface will automatically find a WM identifier or WebMoney Check that can be used for making the payment.
lmi_clientnumber_type lcnt Data type The type of data sent in the lmi_clientnumber parameter. Use 0 for a phone number, 1 for a WMID and 2 for an email address
lmi_sms_type lst SMS type This field defines the type of transaction confirmation. If the value is 1, an SMS message will be sent to the client. If the value is 2, the client will receive a USSD request. If the value is 3, the system will attempt to automatically determine (based on the client's settings and analysis of previous purchases) the preferred method (SMS will be chosen as the default method if this attempt fails). If the value is 4, neither an SMS message nor a USSD request is sent and the system generates an invoice that can be settled through a mobile or any other WebMoney application. In this case, however, the WebMoney Check payment option will not be available, as it requires validation by an SMS code. Please note that regardless of the value of this parameter (from 1 to 4), if the interface determines that the payment will be made from a WM identifier (not from a WebMoney Check that requires a mobile number), a WM invoice will be generated anyway (the client may not receive an SMS or USSD request (if the interface is called with an SMS confirmation option), but will be able to pay using any mobile purse management application and the payment will go through in a regular manner).
The thing is that the seller's application may not send a confirmation code (or send a zero value) in the confirmation request or even send any code and the response will return the details of a successful payment. If it is digit 5 then customer will receive sms and WM-invoice is not going to be issued in other words payment would be possible ONLY through (with) x20 and with sms confirmation through x20 interface. The optimal value for all cases is 3.
sign Request signature Requests are signed with WMID keys using the WMSigner method. A signature consists of the following parameters: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type. Please note that if the lmi_payee_purse purse does not belong to a WMID identifier, this identifier must have permissions set at security.webmoney.ru to generate payment requests for the lmi_payee_purse purse. If this request authentication option is used, md5 and secret_key parameters should be left empty or be omitted altogether.
sha256 Request signature Requests are signed using the "SHA256" method (http://en.wikipedia.org/wiki/SHA256). The signature is comprised of the following parameters: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type + secret_key. If this request authentication option is used, sign, md5 and secret_key parameters should be left empty or be omitted altogether. Please note that when generating a string for processing by the sha256 algorithm, the system uses the value of the secret word from the purse settings in the merchant.wmtransfer.com service as the value of the secret_key parameter. The request itself must contain ONLY the sha256 encrypted value and the secret_key parameter should be undefined or empty!!!
md5 Request signature Requests are signed using the "MD5" method (http://en.wikipedia.org/wiki/MD5). The signature is comprised of the following parameters: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type + secret_key. If this request authentication option is used, sign and secret_key parameters should be left empty or be omitted altogether. Please note that when generating a string for processing by the MD5 algorithm, the system uses the value of the secret word from the purse settings in the merchant.wmtransfer.com service as the value of the secret_key parameter. The request itself must contain ONLY the MD5 encrypted value and the secret_key parameter should be undefined or empty!!!
secret_key lsk secret word This parameter is used for passing the value of the secret word from the settings of the lmi_payee_purse purse in the merchant.wmtransfer.com service. Please note that when this method is used, https connection authentication checks (for determining the validity and association with the root server certificate of https://merchant.wmtransfer.com/) aimed at preventing DNS phishing and other types of fraud are the responsibility of the party sending the request. If this request authentication option is used, sign, sha256 and md5 parameters should be left empty or be omitted altogether.
lang l response language This parameter transmits 'ru-RU' or 'en-US' value for Russian and English languages of the interface correspondingly. This value determines both the language in which SMS (USSD) requests are sent to the user and the language in which answers in 'userdec' tag are sent.
lmi_shop_id lsi shop number This parameter is obligatory for aggregators only ( these are transitional services that accept payments for third parties). This field should be used by aggregators to transmit the Megastock catalogue http://www.megastock.ru/ registration number of a store which the given payment is accepted for.
emulated_flag ef emulated flag This flag may be of use in case of necessity to emulate a call of the first request in the interface. The flag may be assigned 0 or 1. In case it is assigned 0, nothing happens. Otherwise the call is made in emulation mode. That means that no real actions occur, no invoice issued, no SMS sent to user, payment initiation is not registered etc., but with that, the 'error 540' response means that a repeated call of the interface with the same parameters and the flag disabled will succeed (in other words, the user is found in the System, there are funds on his purses etc.). In case of any other error response, the same one will be received if the interface is called with the same parameters and the flag disabled.
  • Response format:
<?xml version="1.0"?>
<merchant.response>
    <operation  wminvoiceid="">
        <realsmstype></realsmstype>
    </operation> 
    <retval>0</retval> 
    <retdesc></retdesc>
    <userdesc></userdesc>  
</merchant.response> 
  • Response format (JSON):
{
   "operation": 
     {
       "wminvoiceid":(int),
       "wmtransid":(int),
       "realsmstype":(int)
     },
   "retval":(int),
   "retdesc":(string),
   "userdesc":(string)
}
  • Response parameters:
parameter purpose description
wminvoiceid WM invoice number Unique invoice number in the WMT system
realsmstype Type of SMS sent If the value is 1, an SMS message was sent to the client, 2 - a USSD request, 4 - nothing was sent
retval Error number A numeric error code, in case the request generated an error
retdesc Error description A text description of the error for the developers of the seller's application explaining why the system failed to execute the request successfully
userdesc Information for the client In case of an error, this text can be sent to the client as an instruction that will help prevent this error in the future

The primary task of the seller's application is to receive and save the corresponding wminvoiceid value after the first request is successfully executed.

The second payment confirmation request cannot be made without this value. If this value is not received or saved for some reason (dropped connection, timeout and other non-standard or undocumented errors), you need to re-send the first request without changing it and leaving all the parameteres intact.

If the status of the request remains undefined and the wminvoiceid value is not received, resending the request with any of its parameters changed (for instance, the payment amount) will generate another payment request and a new SMS message, which may potentially result in a situation with the client paying BOTH invoices, although the logic of the seller's application implies that only one payment is possible.

If you need to cancel the payment for any wminvoiceid, you can use the confirmation interface with payment cancellation parameters for this wminvoiceid. In this case, if the payment had't been made before the cancellation request was submitted, it will not be processed and the seller's application will be able to generate another payment request without the risk of receiving the payment for the previously generated invoice.

The seller's application can also request the status of a wminvoiceid payment request at any time by calling the X18 interface or calling the secondary confirmation interface XMLTransConfirm.asp

Note! If your merchant purse operates in test mode (e.g. it is a developer's test purse), then no real transactions are performed. Calling the interface in test mode will fully emulate a real transaction. In other words, if you don't receive error messages when calling the interface in test mode (the transaction isn't performed because of the test mode), then the transaction will surely succeed in operational mode if the call is made with exactly the same parameters.

<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>
</merchant.request>

The interface accepts data in JSON format

  • Method - POST
  • Content-Type - "text/json"
  • Request format:
{
   "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 format is accepted as well

  • Method - GET
  • Content-Type - "text/jsonp"
  • The parameter to transmit the name of the callback function - callback
  • Request parameters:
parameter get-param for JSONP purpose description
wmid wmid A WM-identifier of the recipient or signature The WMID that owns the purse that the lmi_payment_no payment was sent to via the merchant.webmoney.ru service or the WMID that signed the request if the WMSigner authentication method was used. If this WMID is not the owner of the purse that received the payment, there must be a trust issued for generating payment requests on behalf of this identifier
lmi_payee_purse lpp WM purse of the payment recipient The number of a purse registered and configured to work in the merchant.webmoney service that will be used by the seller to accept payments
lmi_clientnumber_code lcnc Cliet code This field contains a numeric code that the client receives to his/her mobile phone for payment confirmation. If no SMS is sent to the client (a USSD request is sent or the payment is expected to be made using a mobile purse management program), the value of the field should be 0. If an SMS message was sent to the client, but the client paid using a purse management application, setting this field to 0 will also be successful, since no code validation will be performed. If you pass -1 in this field and the payment is not made by the time the request is executed, the invoice will be canceled and the client won't be able to use it in the future.
lmi_wminvoiceid lwid WM invoice number The number of the wminvoiceid invoice from the response to the previous request
sign Request signature Requests are signed with WMID keys using the WMSigner method and the signature consists of the following parameters: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code. Please note that if the lmi_payee_purse purse does not belong to a WMID identifier, this identifier must have permissions set at security.wmtransfer.com to generate payment requests for the lmi_payee_purse purse. If this request authentication option is used, sha256, md5 and secret_key parameters should be left empty or be omitted altogether.
sha256 Request signature Requests are signed using the "SHA256" method (http://en.wikipedia.org/wiki/SHA256) and the signature is comprised of the following parameters: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code+secret_key. If this request authentication option is used, sign, md5 and secret_key parameters should be left empty or be omitted altogether. Please note that when generating a string for processing by the sha256 algorithm, the system uses the value of the secret word from the purse settings in the merchant.wmtransfer.com service as the value of the secret_key parameter. The request itself must contain ONLY the MD5 encrypted value and the secret_key parameter should be undefined or empty!!!
md5 Request signature Requests are signed using the "MD5" method (http://en.wikipedia.org/wiki/MD5) and the signature is comprised of the following parameters: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code+secret_key. If this request authentication option is used, sign, sha256 and secret_key parameters should be left empty or be omitted altogether. Please note that when generating a string for processing by the MD5 algorithm, the system uses the value of the secret word from the purse settings in the merchant.wmtransfer.com service as the value of the secret_key parameter. The request itself must contain ONLY the MD5 encrypted value and the secret_key parameter should be undefined or empty!!!
secret_key lsk secret word This parameter is used for passing the value of the secret word from the settings of the lmi_payee_purse purse in the merchant.wmtransfer.com service. Please note that when this method is used, https connection authentication checks (for determining the validity and association with the root server certificate of https://merchant.wmtransfer.com/) aimed at preventing DNS phishing and other types of fraud are the responsibility of the party sending the request. If this request authentication option is used, sign, sha256 and md5 parameters should be left empty or be omitted altogether.
lang l response language This parameter transmits 'ru-RU' or 'en-US' value for Russian and English languages of the interface correspondingly. This value determines both the language in which SMS (USSD) requests are sent to the user and the language in which answers in 'userdec' tag are sent.
  • Response format:
<?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> 
</merchant.response> 
  • Response format (JSON):
{
   "operation": 
     {
       "wminvoiceid":(int),
       "wmtransid":(int),
       "amount":(float),
       "operdate":(string),
       "purpose":(string),
       "pursefrom":(string),
       "wmidfrom":(string)
     },
   "retval":(int),
   "retdesc":(string),
   "userdesc":(string)
   "smssentstate":(string)
}
  • Response parameters:
parameter purpose description
wminvoiceid WM invoice number Unique invoice number in the WMT system
wmtransid WM transaction number A unique transaction number. Only if this parameter contains a positive number greater than 0, it means that the transaction was successful. For regular sellers using the merchant.webmoney service, the presence of this unique transaction number means that the client's payment has been received and charged to the purse. For sellers using processing.webmoney, the presence of the wmtransid value signifies the receipt of the payment, its addition to the current registry and queueing for inclusion into the next bank wire from this registry. For sellers with a Capitaller WMID who configured it to receive payments through merchant.webmoney, it means that the payment has been received to the incoming purse and will be distributed shortly according to the policy of the automated budget tool. If the seller's application does not have a wmtransid number (it wasn't registered or saved in its own accounting systsem), no products or services can be sold and no account can be refilled. In the request is terminated due to a connection timeout or interruption, it should be re-sent until a wmtranid value or a clear retval error code value is received.
amount Payment amount The payment amount in the WM currency of the same type as that in the seller's purse.
operdate Payment date The date of the wmtransid payment (according to the system server clock).
pursefrom Client's purse The number of the client's WM purse that was used in the transaction. If the payment was made from a WebMoney Check (the initializaion request contained a mobile phone number, the system identified a check associated with this phone number and sent a confirmation SMS message), a Paymer purse of a corresponding type (e.g. Z000000000001 (or R, G, U, B, E) ) will be used
wmidfrom Client's WMID The WMID of the client that initiated the transaction. If the payment was made from a WebMoney Check, the system will use a WMID of the Paymer check system 000000000000
retval Error code A numeric erorr code if the execution of the request generated an error
retdesc Error description A text description for the devevopers of the seller's application that explains why the request could not be executed successfully
userdesc Information for the client In case of an error, this text can be sent to the user as an instruction that will help avoid this error in the future
smssentstate SMS sending status If the interface is terminated with 553 error (when the payment is made via Webmoney Check and LMI_CLIENTNUMBER_CODE=0 is transmitted to ascertain the payment state) or with 556 error (when the payment had been made from a WM-purse and hasn't yet been completed) then the given tag is added to the response (if SMS or USSD had been sent, i.e. LMI_SMS_TYPE= 1,2,3) and contains the status of SMS ot USSD
BUFFERED - waiting to be sent
SENDING - is being sent to the operator
SENDED – sent to the operator
DELIVERED- delivered
NON_DELIVERED - not delivered
SUSPENDED - postponed to repeat
HLRPENDING – The message is postponed until the verification of the SIM card identification according to the HLR.
HLRMISMATCH – verification of the SIM card identification has identified the mismatches according to the HLR (to confirm the change of the SIM card the user can use the link https://security.wmtransfer.com/asp/resetphs.asp)

Please remember that if you need to return a payment, you can use a commission-free return interface called Interface X14. It works with all kinds of payments accepted through this interface and returns the money either to the payer's purse or his/her mobile phone account associated with a WebMoney Check.

Descriptions of errors returned by the interface:

retval retdesc
-100 general request parsing error
-1 merchant.request/wmid is incorrect
-2 merchant.request/lmi_payee_purse is incorrect
-3 merchant.request/lmi_payement_no is incorrect
-4 value of merchant.request/lmi_payment_amount is incorrect
-5 merchant.request/lmi_payment_desc is incorrect, less than 5 symbols or greater than 235 symbols
-6 merchant.request/lmi_clientnumber is incorrect, less than 5 symbols or greater than 50 symbols
-7 merchant.request/lmi_clientnumber_type is incorrect, must be specified 1 digit
-7 merchant.request/lmi_clientnumber_type is incorrect, must be specified 0, 1,2,3
-1 merchant.request/wmid is incorrect
-9 sign not right
-9 sign not right:planstr
-9 MD5 or SHA256 not right:planstr(this planstr without secret_key)
-2 merchant.request/request_wminvoiceid is incorrect, less than 5 symbols or greater than 25 symbols
-2 merchant.request/request_clientnumber_code is incorrect, less than 5 symbols or greater than 25 symbols
-8 Attempt to deposit check to purse failed:PaymerResultNum
501 Merchant purse not found or purse not in active and work mode
502 Only unique lmi_payment_no allowed
503 Only WMZ, WME, WMR, WMU, WMG, WMB purses allowed
504 Specified WMID in wmid tag not found
505 Specified WMID is not owner for lmi_payee_purse and don`t have trust access for create invoice
506 Secret key for lmi_payee_purse not specified
507 Specified secret key for lmi_payee_purse - wrong
509 Sorry, X20 doesn`t work in test mode with free purpose, please turn on your merchant purse in operating(work) mode (http://merchant.webmoney.ru) or use fixed test parameter of lmi_payment_desc tag for test payments (lmi_payment_desc=X20 test payment).
510 Payment from WebMoney.Check is not allowed, because merchant purse is operating in test mode
511 Specified in lmi_clientnumber_type wrong, only phone, wmid or e-mail allowed
512 WMID not found by specified in lmi_clientnumber_type phone
513 Specified in lmi_client_number phone not checked,
514 WMID found by specified in lmi_clientnumber_type phone have not enough money
515 Purse found by specified in lmi_clientnumber_type phone used for active merchant interface and payment not allowed
516 Specified in lmi_clientnumber_type WMID not found
517 Specified in lmi_client_number WMID have no checked phone,
518 Specified in lmi_clientnumber_type WMID have not enough money
519 Purse found by specified in lmi_clientnumber_type WMID used for active merchant interface and payment not allowed
520 WMID not found by specified in lmi_clientnumber_type email
521 WMID found by specified in lmi_client_number email, but it have no no checked phone
522 WMID found by specified in lmi_clientnumber_type email have not enough money
523 Purse found by specified in lmi_clientnumber_type email, but it used for active merchant interface and payment not allowed
524 Payment amount exceed default daily limit
525 WMID found , but it have no enabled payment option by sms, so this option enabled in another WMID found by phone, please use that WMID for payments
526 Payments disabled by user for specified phone/wmid/email
527 Require purse not found for specified(found) WMID
532 Payments disabled by user for required purse type
528 Payment amount exceed daily limit, specified by user
529 Payment amount exceed weekly limit, specified by user
530 Payment amount exceed monthly limit, specified by user
531 Purse (specified by user for sms payments) have not enough money
532 SMS payments for found WMID disabled by system
533 SMS payments for found WMID disabled by system
535 Too mach SMS without payments found for specified WMID/email/phone
543 Less than 15 minutes ago, it is WebMoney check already try to pay same amount with same number to same merchant, try again later
550 Specified lmi_wminvoiceid not registred for sms payment by Webmoney Check
551 User canceled payment lmi_wminvoiceid by WebMoney Check
555 Specified lmi_wminvoiceid not registred for sms payment by Webmoney Purse
557 User canceled payment lmi_wminvoiceid by WebMoney Purse
556 Specified lmi_clientnumber_code wrong
558 SMS for lmi_wminvoiceid not send by XMLTransRequest
571 Specified in lmi_client_number WebMoney check not exists
572 Specified in lmi_client_number WebMoney check have wrong WM type (example - merchant have WMZ purse, but WebMoney check - WMR type)
573 Specified in lmi_client_number WebMoney check have no enough money
These error messages should be displayed to the buyer as instructions for action, that is, they should be displayed directly in the merchant interface (application).
500 Message from WebMoney Transfer : specified SMS-code is wrong. Maybe it`s code from another payment, wait for the code and try to specify it again.
501 Message from WebMoney Transfer : for now your Merchant has stopped accepting payments by SMS, please try again later.
502 Only unique lmi_payment_no allowed
503 Message from WebMoney Transfer : Only the following purse types can be used for payment: WMZ, WME, WMR, WMU, WMG, WMB. You`ve tried the wrong purse type.
504 Message from WebMoney Transfer : for now your Merchant has stopped accepting payments by SMS, please try again later.
505 Message from WebMoney Transfer : for now your Merchant has stopped accepting payments by SMS, please try again later.
506 Message from WebMoney Transfer : for now your Merchant has stopped accepting payments by SMS, please try again later.
507 Message from WebMoney Transfer : for now your Merchant has stopped accepting payments by SMS, please try again later.
508 Message from WebMoney Transfer : for now your Merchant has stopped accepting payments by SMS, please try again later.
509 Message from WebMoney Transfer : for now your Merchant has stopped accepting payments by SMS, please try again later.
510 Message from WebMoney Transfer : for now your Merchant has stopped accepting payments by SMS, please try again later.
511 You can only pay by entering your phone number, WMID or E-mail, other payment methods are not available yet.
512 No WMID was found via the specified phone number.
513 The specified phone number is not verified, go to passport.webmoney.ru and verify your phone number by entering the verification code, received via SMS.
514 WMID found via the specified phone number has insufficient funds.
515 WMID found via the specified phone number has a purse with enough funds, but this purse is set up for merchant.webmoney and can not be used for this payment. Please either top up another purse or go to https://security.wmtransfer.com/asp/trustlistmerch.asp and specify the purse which shall be used for SMS payment.
516 The specified WMID can not be found.
517 The specified WMID has unverified phone, go to passport.wmtransfer.com and verify your phone number by entering the verification code, received via SMS.
518 The specified WMID was found but it has insufficient funds.
519 The specified WMID has a purse with enough funds, but this purse is set up for merchant.webmoney and can not be used for this payment. Please either top up another purse or go to https://security.wmtransfer.com/asp/trustlistmerch.asp and specify the purse which shall be used for SMS payment.
520 No WMID was found via the specified E-mail.
521 WMID found via the specified E-mail has unverified phone number, go to passport.wmtransfer.com and verify your phone number by entering the verification code, received via SMS.
522 WMID found via the specified E-mail has insufficient funds.
523 WMID found via the specified E-mail has a purse with enough funds, but this purse is set up for merchant.webmoney and can not be used for this payment. Please either top up another purse or go to https://security.wmtransfer.com/asp/trustlistmerch.asp and specify the purse which shall be used for SMS payment.
524 You are trying to make a payment which exceeds the specified limit, you can fix limits for each purse type at https://security.wmtransfer.com/asp/trustlistmerch.asp
525 The specified WMID is found but the SMS payment option is not enabled for this WMID, this option is enabled for another WMID of this phone number. Either use WMID with enabled SMS payment option, or enable this option at https://security.wmtransfer.com/asp/trustlistmerch.asp
526 WMID found via details you`ve provided has disabled SMS payment option; to enable it, go to https://security.wmtransfer.com/asp/trustlistmerch.asp
527 WMID found via details you`ve provided doesn`t have a required purse type.
528 The payment amount exceeds the daily limit for such payments; to fix limits, go to https://security.wmtransfer.com/asp/trustlistmerch.asp
529 The payment amount exceeds the weekly limit for such payments; to fix limits, go to https://security.wmtransfer.com/asp/trustlistmerch.asp
530 The payment amount exceeds the monthly limit for such payments; to fix limits, go to https://security.wmtransfer.com/asp/trustlistmerch.asp
531 The specified (or default) purse for SMS payments has insufficient funds.
532 WMID found via details you`ve provided doesn`t have a purse with enabled SMS payment option, go to https://security.wmtransfer.com/asp/trustlistmerch.asp
532 SMS payments are not allowed for this WMID, please contact WebMoney Transfer support team - support.wmtransfer.com
533 SMS payments are not allowed for this WMID, please contact WebMoney Transfer support team - support.wmtransfer.com
534 Go to https://security.wmtransfer.com/asp/trustlistmerch.asp for enable SMS payment for needed purse type.
535 Too many SMS (or USSD) without payment, please try again later.
540 It appears only in case of invoking of the first request of interface with the specified emulated_flag=1. It means that the request in emulation mode is succesful.
543 You`ve already tried to make a payment with the same number, for the same amount, to the same merchant, please try again later.
550 Something goes wrong, you`re trying to confirm the payment, which is not registered in the system as a payment WebMoney.Check, please refer to this problem to your merchant
551 You have refused to pay this payment by WebMoney.Check, to pay all the same we should start again.
553 This payment has not yet been paid. You pay for it through WebMoney.Check, while you did not specify the code sent to you by SMS.
555 Something goes wrong, you`re trying to confirm the payment, which is not registered in the system as a payment WebMoney, please refer to this problem to your merchant
556 Or the payment has not yet been paid for (if you pay for USSD or through any WebMoney Keeper), or you entered an incorrect code sent to you via SMS.
557 You have refused to pay this payment by WebMoney, to pay all the same we should start again.
558 SMS was not sent on the payment, please try again from merchant`s site.
561 Message from WebMoney Transfer : USSD payment is not yet confirmed, you have probably already cancel the payment, otherwise wait for confirmation.
571 The phone number you`ve provided has no registered WebMoney.Check, your WMID can not be found (WMID with this phone number may exist, but it may have no funds or a required purse type).
572 The phone number you`ve provided has registered WebMoney.Check, but it doesn`t coincide with the Merchant`s purse type, e.g. you are trying to pay with WMR check to the merchant with WMU purse.
573 The phone number you`ve provided has no registered WebMoney.Check, or it has insufficient funds.
-22 The code can not be more than 8 digits

An example of interface usage (call emulation and requests) is available at https://merchant.webmoney.ru/conf/paymobile.asp. You must be a member of the merchant.webmoney service to see the document.

See also: XML-interfaces
Demo application for iOS with source code and php example code for website AppPizzaDemo.zip

Thematic website of this interface