WebMoney

Overview

WebMoney is a payment method that allows to process payments by using WM e-wallets. Purchases can be processed by using Payment Page and Gate, payouts and refunds are processed by using Gate.

General information

Payment method type E-wallet payments
Countries and regions No limits
Payment currencies WMB (BYN), WME (EUR), WMK (KZT), WMR (RUB), WMU (UAH), WMV (VND), WMZ (USD)
Currency conversion On the ECommPay side (For more information about currency conversion, see Currency conversion)
Purchases +
Payouts +
Stored credentials payments
Full refunds +
Partial refunds +
Chargebacks
Notes
  • In the WebMoney payment method, there are several purchase scenarios:
    • When the WebMoneyLight purchase, a customer is redirected to the WebMoney payment form in order to transfer funds to the merchant WM e-wallet.
    • When the WebMoneyClassic purchase, a customer uses the WebMoney service independently in order to pay an invoice.
    • When the WebMoneyClassic using the X20 interface purchase, a customer pays an invoice or pays without leaving Payment Page, confirming the purchase by using code from the SMS or paying an invoice.
  • For payment request using the WebMoneyClassic method with X20 interface two encryption methods (SHA256 and WMSigner) are used. For more information about signature generation refer to the ECommPay key account manager.
  • Within the WebMoneyClassic purchase, you can set the invoice validity period and perform refunds.
  • Protected payouts are available in order to prevent erroneous transfers and protect from fraudsters.
  • In the WebMoney service, payment currencies are title units that are national currency equivalents. Title units are kept track of in their WM wallets. Only the Belarusian residents are allowed to pay in WMB, as well as the Vietnamese residents are allowed to pay in WMV.

    On Payment Page, the WebMoneyClassic purchase amounts are displayed in both title units and national currencies, however only national currencies are used for requests and response parameters.

Onboarding and access fee Refer to your key account manager ECommPay.

Interaction diagram

Payment processing by using the WebMoney payment method requires merchant web service, one of ECommPay interfaces, and the ECommPay payment platform, as well as the WebMoney service.

Operations support

Interfaces Amounts Times**
Payment Page CMS Plug-ins Gate Dashboard (Old Dashboard) minimum maximum basic threshold
Purchases + - + - 0,01 in any title units

Depending on a WM passport*

Under 1 minute 35 days
Payouts - - + - 0,01 in any title units

Depending on a WM passport*

Under 1 minute 35 days
Full refunds - - + - 0,01 in any title units

Depending on a WM passport*

Under 1 minute 35 days
Partial refunds - - + - 0,01 in any title units

Depending on a WM passport*

Under 1 minute 35 days

* Each of the WebMoney service member has a WM passport, which is a digital certificate issued based on the personal data provided by the member. Maximum amount limits may vary depending on the type of WM passport.

** The basic and threshold times are defined as follows:

  • The basic time is the average estimated time between the moment a payment is initiated in the payment platform to the moment the payment result is sent to the initiator. The basic time evaluation is made on the assumption of normal operation of all technical facilities and communication channels and typical customer behaviour (if any input from customer is required). Use the basic time to estimate when to react to the absence of payment result notifications or when to check payment status.
  • The threshold time is the maximum possible time between the moment a payment is initiated in the payment platform to the moment the initiator receives the callback with the payment result. A payment is automatically declined, if its waiting time exceeds the threshold time. For individual setting of the threshold time limit, contact ECommPay technical support.

Processing scenarios

In the WebMoney method, there are several purchase scenarios:

  • The WebMoneyLight purchase—customer redirection to the WebMoney form.
  • The WebMoneyClassic purchase—customer invoicing in the merchant web service.
  • The WebMoneyClassic purchase using the X20 interface—customer pays without leaving Payment Page, confirming the purchase by using code from the SMS or paying an invoice

Payout and refund processing involves sending notification to customers from the merchant web service.

Figure: The WebMoneyLight purchase by using Payment Page

Figure: The WebMoneyClassic purchase by using Payment Page

Figure: The WebMoneyClassic (using the X20 interface) purchase by using Payment Page

Figure: The WebMoneyLight purchase by using Gate

Figure: The WebMoneyClassic purchase by using Gate

Figure: Refund by using Gate

Figure: Payout by using Gate

The sections that follow provide detailed information about what you need to perform payments and how you can analyse the information on payments and operations.

Purchase by using Payment Page

General information

In the WebMoney method, there are several purchase scenarios:

  • The WebMoneyLight purchase—customer redirection to the WebMoney form.
  • The WebMoneyClassic purchase—customer invoicing in the merchant web service.
  • The WebMoneyClassic purchase using the X20 interface—customer pays without leaving Payment Page, confirming the purchase by using code from the SMS or paying an invoice

You can eneble different scenarios for the projects, for more information contact the key account manager ECommPay. When processing any of the purchase scenarios by using Payment Page, the merchant web service is required to send a request with all the required parameters and signature to the ECommPay URL and get the callback with the payment result from the payment platform. When opening Payment Page, you can either allow your customer to select the WebMoneyLight or WebMoneyClassic purchase from the list of other payment methods on Payment Page or have Payment Page opened with one of them selected. For more information about preselecting payment methods, see Preselecting payment methods.

The following diagrams provide the detailed picture of the payment processing procedure.

Figure: The WebMoneyLight purchase sequence when using Payment Page

  1. Customer initiates purchase by using the web service.
  2. The merchant web service sends to the specified ECommPay URL the purchase request for processing the purchase by using Payment Page.
  3. The payment platform receives the request for processing the purchase by using Payment Page.
  4. The payment platform performs the initial request processing that involves validation of the required parameters and signature.
  5. Requested Payment Page is generated into the ECommPay payment platform as specified in the project settings and the request parameters.
  6. Payment Page is displayed to the customer.
  7. The customer selects the WebMoneyLight purchase from the list of other payment methods and agrees to use the method (or accepts the method already selected on Payment Page and agrees).
  8. The payment platform receives the purchase request for payment processing in the WebMoney service.
  9. The payment platform performs the internal purchase request processing and sends it to the WebMoney service.
  10. The purchase request is processed in the WebMoney service.
  11. The WebMoney service generates the data for redirecting the customer to the WebMoney form and sends it to the payment platform.
  12. The payment platform sends to Payment Page the data for redirecting the customer to the WebMoney form.
  13. The customer is redirected to the WebMoney form.
  14. The customer completes all the payment steps required by the WebMoneyLight purchase method.
  15. The payment is processed in the WebMoney service.
  16. The payment result information is displayed to the customer on the WebMoney form. The customer initiates redirection to the result waiting page on Payment Page.
  17. The WebMoney service sends the payment result notification to the payment platform.
  18. The payment platform sends the callback to the web service.
  19. The payment platform sends payment results to Payment Page.
  20. A page with the payment result information is displayed to the customer.

Figure: The WebMoneyClassic purchase sequence when using Payment Page

  1. Customer initiates purchase by using the web service.
  2. The merchant web service sends to the specified ECommPay URL the purchase request for processing the purchase by using Payment Page.
  3. The payment platform receives the request for processing the purchase by using Payment Page.
  4. The payment platform performs the initial request processing that involves validation of the required parameters and signature.
  5. Requested Payment Page is generated into the ECommPay payment platform as specified in the project settings and the request parameters.
  6. Payment Page is displayed to the customer.
  7. The customer selects the WebMoneyClassic purchase from the list of other payment methods and agrees to use the method (or accepts the method already selected on Payment Page and agrees).
  8. The payment platform receives the purchase request for payment processing in the WebMoney service.
  9. The notification is displayed to customer and contains information that it is required to visit the WebMoney Keeper service and pay the invoice.
  10. The payment platform performs the internal purchase request processing and sends it to the WebMoney service.
  11. The WebMoney service performs the purchase request processing and issues the invoice.
  12. The the WebMoney service sends to the payment platform response contained invoice issuing confirmation.
  13. The customer uses the WebMoney Keeper service to pay the invoice.
  14. The payment is processed in the WebMoney service.
  15. The WebMoney service sends the payment result notification to the payment platform.
  16. The payment platform sends the callback to the web service.
  17. The payment platform sends payment results to Payment Page.
  18. A page with the payment result information is displayed to the customer.


Figure: The WebMoneyClassic purchase using the X20 interface

  1. Customer initiates purchase by using the web service.
  2. The merchant web service sends to the specified ECommPay URL the purchase request for processing the purchase by using Payment Page.
  3. The payment platform receives the request for processing the purchase by using Payment Page.
  4. The payment platform performs the initial request processing that involves validation of the required parameters and signature.
  5. Requested Payment Page is generated into the ECommPay payment platform as specified in the project settings and the request parameters.
  6. Payment Page is displayed to the customer.
  7. The customer selects the WebMoneyClassic purchase from the list of other payment methods and agrees to use the method (or accepts the method already selected on Payment Page and agrees).
  8. The customer selects the identification method (phone number, email address, or WMID) and confirmation method (code from SMS or WM invoice).
  9. The payment platform receives the purchase request for payment processing in the WebMoney service.
  10. The notification is displayed to customer and contains information that it is required to visit the WebMoney Keeper service and pay the invoice.
  11. The payment platform performs the internal purchase request processing and sends it to the WebMoney service.
  12. The WebMoney service performs the purchase request processing and generates data for the purchase confirmation.
  13. The customer receives SMS with confirmation code or information about invoice.
  14. The customers confirms the purchase:
    • when choosing SMS—enters code from SMS on Payment Page or uses the WebMoney Keeper service to pay the invoice.
    • when choosing WM invoice—uses the WebMoney Keeper service to pay the invoice.
  15. The payment is processed in the WebMoney service.
  16. The WebMoney service sends the payment result notification to the payment platform.
  17. The payment platform sends the callback to the web service.
  18. The payment platform sends payment results to Payment Page.
  19. A page with the payment result information is displayed to the customer.

The sections that follow discuss in more details the request format and the Payment Page parameters to use in the WebMoney method and provide the information on the format of callbacks with payment results. For the general information on how to use the API, see Payment Page API Description.

Request format for purchases by using WebMoneyLight or WebMoneyClassic

There are several things you need to consider when using the WebMoney method:

  1. You must provide values for the basic minimum of parameters. Listed below are the parameters that are mandatory for any payment method:
    • project_id—the project ID obtained from ECommPay
    • payment_id—payment ID unique within the project
    • payment_currency—payment currency in ISO-4217 alpha-3 format
    • payment_amount—payment amount in minor units
    • customer_id—customer ID unique within the project
  2. Additionally, you need to use the following parameters:
    • payment_description—payment description.

      Payment description should be specified in the request as follows: Top-up of personal account №<customer's bank account number> on the website <URL of the merchant web service>. Example: Top-up of personal account №01234567890 on the website https://merchant.example.com/

  3. If you need to have Payment Page displayed with the WebMoneyLight or WebMoneyClassic purchase method selected, set the force_payment_method parameter to:
    • webmoney-light—the WebMoneyLight purchase method
    • webmoney—the WebMoneyClassic purchase method
  4. If required, you can also add any other additional parameters Payment Page supports.
  5. After you specify all the parameters you need, you must create the signature for the request. For instructions on how to sign a payment request, see Signature generation and verification.

Thus, a correct payment request in the WebMoney method must include project, payment and customer IDs, currency and amount of a payment in the appropriate currency, payment description, and signature, as shown in the following example:

EPayWidget.run({       payment_id:                        'ECT_TEST_1534835032773,                                                payment_amount:                        100,       payment_currency:                        'USD',       project_id:                        238,       customer_id:                        'customer1',       payment_description:                        'Top-up of personal account №01234567890 on the website https://merchant.example.com/',       signature:                        "2tlMuYxLW9Yu6RETr8pdCfmi0UPE8euD+2QgJ...=="                        })

For information about all parameters available in the WebMoney method, see Payment Page invocation parameters.

Request format for purchases by using the WebMoneyClassic method with the X20 interface

There are several things you need to consider when using the WebMoneyClassic method with the X20 interface:

  1. You must provide values for the basic minimum of parameters. Listed below are the parameters that are mandatory for any payment method:
    • project_id—the project ID obtained from ECommPay
    • payment_id—payment ID unique within the project
    • payment_currency—payment currency in ISO-4217 alpha-3 format
    • payment_amount—payment amount in minor units
    • customer_id—customer ID unique within the project
  2. Additionally, you need to use the following parameters:
    • customer_account_number—customer identifier in the WebMoney service (WMID, email address, or phone number in the 7XXXXXXXXXX or 7XXXXXXXXXX format)
    • payment_description—payment description.

      Payment description should be specified in the request as follows: Top-up of personal account №<customer's bank account number> on the website <URL of the merchant web service>. Example: Top-up of personal account №01234567890 on the website https://merchant.example.com/

  3. If you need to have Payment Page displayed with the only WebMoneyClassic purchase method selected, set the force_payment_method parameter to webmoney.
  4. If required, you can also add any other additional parameters Payment Page supports.
  5. After you specify all the parameters you need, you must create the signature for the request. For instructions on how to sign a payment request, see Signature generation and verification.

Thus, a correct payment request in the WebMoney method must include project, payment and customer IDs, currency and amount of payment in the appropriate currency, payment description, customer identifier in the WebMoney service, and signature, as shown in the following example:

EPayWidget.run({       project_id:                        123456,       payment_id:                        '1234123',       customer_id:                        '456QWE',       payment_amount:                        1000,       payment_currency:                        'USD',       payment_description:                        'Top-up of personal account №01234567890 on the website https://merchant.example.com/',       customer_account_number:                        '79528618748',       signature:                        "rVCiAULmqzRsNiVm2I8l3ip03YdAnpY%2F%2F7dKte36gD2GNNfu%2FrAGIAhfTQ8v..."                        })

For information about all parameters available in the WebMoney method, see Payment Page invocation parameters.

Callback format

In the WebMoney method, the callbacks that deliver purchase results use the standard format described in Callbacks.

Note that unlike other payment methods, in the WebMoney method, the callbacks include the payment ID that is generated by the WebMoney service and is passed in the payment_id parameter of the provider object. The successful purchase callbacks always contain the payment_id parameter value, but the declined purchase callbacks may not contain the parameter value.

The following example of callback contains an information about successful 1.00 USD WebMoneyClassic purchase made in the 238 project by using the R123456890000 customer WM wallet. Payment ID generated by the WebMoney service is 1592901328.

Figure: Example of a successful WebMoneyClassic purchase callback

{                        "project_id":                        238,                        "payment": {                        "id":                        "ECT_TEST_1534835032773",                        "type":                        "purchase",                        "status":                        "success",                        "date":                        "2018-08-21T07:05:53+0000",                        "method":                        "webmoney",                        "sum": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "description":                        "ECT_TEST_1534835032773"                        },                        "account": {                        "number":                        "R703276019842"                        },                        "operation": {                        "id":                        167000001094,                        "type":                        "sale",                        "status":                        "success",                        "date":                        "2018-08-21T07:05:53+0000",                        "created_date":                        "2018-08-21T07:05:12+0000",                        "request_id":                        "765fc31fbb98a4ac937bbdadb3303f1d13eead                                                ec -                        917                        f825e85cce20981b0686599cb14b7f383d0e6                        ",                                                "sum_initial": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "sum_converted": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "provider": {                        "id":                        1082,                        "payment_id":                        "1592901328",                        "date":                        "2018-08-21T10:05:51+0000",                        "auth_code":                        ""                        },                        "code":                        "0",                        "message":                        "Success"                        },                        "signature":                        "nEIk8lTBATPQXhZAqkiEzraA88Tgjx45cPP18thE/9iEkS                                                lE9TS20z01H7 /                        8                        nvHU2Dz + Dp1goRozWpQRXmL6jA ==                        "                        }

The following example of callback is for a payment rejected due to amount or frequency limitation and does not contain the payment ID generated by the WebMoney service.

Figure: Example of a declined WebMoneyLight purchase callback

{                        "project_id":                        238,                        "payment": {                        "id":                        "ECT_TEST_154477095843411111",                        "type":                        "purchase",                        "status":                        "decline",                        "date":                        "2018-12-14T09:41:30+0000",                        "method":                        "webmoney-light",                        "sum": {                        "amount":                        1000000000,                        "currency":                        "USD"                        },                        "description":                        "ECT_TEST_154477095843411111"                        },                        "operation": {                        "id":                        13290000002280,                        "type":                        "sale",                        "status":                        "decline",                        "date":                        "2018-12-14T09:41:30+0000",                        "created_date":                        "2018-12-14T08:41:29+0000",                        "request_id":                        "a52dc11e9d57fa3a8649671e5599544fcfc50d                                                0                        f - ebbce425f52073d89f96c67686feefe5ab01c1fd                        ",                                                "sum_initial": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "sum_converted": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "provider": {                        "id":                        1083,                        "payment_id":                        "",                        "auth_code":                        ""                        },                        "code":                        "20101",                        "message":                        "Decline due to amount or frequency limit"                        },                        "signature":                        "ukUg6gJ6RtUc2qeXTNE+iDyEh4HdikHuMaCZ4Hju                                                sN + uJA8Ze7RVztvlyWhtiXUjrL14pplG7ustFhJIJdDkvw ==                        "                        }

Related topics

The following topics might be useful when implementing payments by using Payment Page:

  • Interaction concepts
  • Signature generation and verification
  • Payment models and statuses
  • Information of operations performing

Purchase by using Gate

General information

In the WebMoney method, there are two purchase scenarios. The WebMoneyLight purchase involves customer redirection to the WebMoney form. The WebMoneyClassic purchase involves customer invoicing in the merchant web service. You can eneble different scenarios for the projects, for more information contact the key account manager ECommPay.

When processing any of the purchase scenarios by using Gate, the merchant web service is required to do the following:

  1. Send a request with all the required parameters and signature to the ECommPay URL.
  2. Interact with customer:
    • When the WebMoneyLight purchase, perform redirecting customer to the WebMoney form.
    • When the WebMoneyClassic purchase, send the invoice payment notification to customer.
  3. Get the callback with the payment result from the payment platform.

The following diagrams provide the detailed picture of the payment processing procedure.

Figure: The WebMoneyLight purchase sequence when using Gate

  1. Customer initiates purchase on the merchant web service by using the WebMoneyLight purchase method.
  2. The web service sends the request for processing the purchase by using Gate to the specified ECommPay URL.
  3. The payment platform receives the request for processing the purchase by using Gate.
  4. The payment platform performs the initial request processing that includes validation of the required parameters and signature.
  5. The payment platform sends to the web service response with request receipt confirmation and correctness check result.
  6. The payment platform performs the internal payment request processing and sends it to the WebMoney service.
  7. The purchase request is processed in the WebMoney service.
  8. The WebMoney service generates the data for redirecting the customer to the WebMoney form and sends it to the payment platform.
  9. The payment platform sends to the web service the callback that delivers the data for redirecting customer to the WebMoney form.
  10. The customer is redirected to the WebMoney form.
  11. The customer completes all the payment steps required by the WebMoneyLight purchase method.
  12. The payment is processed in the WebMoney service.
  13. The payment result information is displayed to the customer on the WebMoney form. The customer initiates redirection to the result waiting page on Payment Page.
  14. The WebMoney service sends the payment result notification to the payment platform.
  15. The payment platform sends the callback to the web service.
  16. The customer receives the payment result from the web service.

Figure: The WebMoneyClassic purchase sequence when using Gate

  1. Customer initiates purchase on the merchant web service by using the WebMoneyClassic method.
  2. The web service sends the request for processing the purchase by Gate to the specified ECommPay URL.
  3. The payment platform receives the request for processing the purchase by using Gate.
  4. The payment platform performs the initial request processing that includes validation of the required parameters and signature.
  5. The payment platform sends to the web service response with request receipt confirmation and correctness check result.
  6. The notification is displayed to customer and contains information that it is required to visit the WebMoney Keeper service and pay the invoice.
  7. The payment platform performs the internal payment request processing and sends it to the WebMoney service.
  8. The WebMoney service performs the purchase request processing and issues the invoice.
  9. The the WebMoney service sends to the payment platform response contained invoice issuing confirmation.
  10. The customer uses the WebMoney Keeper service to pay the invoice.
  11. The payment is processed in the WebMoney service.
  12. The WebMoney service sends the payment result notification to the payment platform.
  13. The payment platform sends the callback to the web service.
  14. The customer receives the payment result from the web service.

The sections that follow discuss in more details the request format and the Gate parameters to use in the WebMoney method and provide the information about formats of the data for redirecting customers and the information about the format of callbacks with payment results. For the general information on how to use the API, see API Description. For the general information on how to use the response with request receipt confirmation, see Interaction concepts.

Request format

There are several things you must consider when using purchase requests in the WebMoney method:

  1. You perform purchase by sending following requests by using POST (HTTP) method:
    • /v2/payment/webmoney-light/sale—the WebMoneyLight purchase
    • /v2/payment/webmoney/sale—the WebMoneyClassic purchase
  2. You must provide values for the basic minimum of the following objects and parameters:
    • Object general—general request identification information:
      • project_id—the project ID obtained from ECommPay
      • payment_id—payment ID unique within the project
      • signature—signature created after you specify all the required parameters. For more information about signature generation, see Signature generation and verification.
    • Object payment—payment information:
      • amount—payment amount in minor units
      • currency—payment currency in ISO-4217 alpha-3 format
    • Object customer—customer information:
      • id—customer ID unique within the project
    • Object account—customer account information:
      • number—customer WMID that is customer ID in the WebMoney service. Only for WebMoneyClassic purchase
  3. Additionally, you need to use the following parameters:
    • Object payment—payment information:
      • description—payment description.

        Payment description should be specified in the request as follows: Top-up of personal account №<customer's bank account number> on the website <URL of the merchant web service>. Example: Top-up of personal account №01234567890 on the website https://merchant.example.com/

  4. If required, you can also add any other additional parameters Gate supports.

Thus, a correct WebMoneyLight purchase request in the WebMoney method must include project, customer and payment IDs, amount and currency of the purchase, payment description, and signature, as shown in the following example:

Figure: Example of a WebMoneyLight purchase request by using Gate

{                        "general": {                        "project_id":                        238,                        "payment_id":                        "ECT_TEST_1534835032773",                        "signature":                        "2tlMuYxLW9Yu6RETr8pdCfmi0UPE8euD+2QgJ...=="                        },                        "customer": {                        "id":                        "customer1"                        },                        "payment": {                        "amount":                        100,                        "currency":                        "USD",                        "description":                        "Top-up of personal account №01234567890 on the website https://merchant.example.com/"                        }, }

A correct WebMoneyClassic purchase request in the WebMoney method must include project, customer and payment IDs, amount and currency of the purchase, payment description, customer WMID, and signature, as shown in the following example:

Figure: Example of a WebMoneyClassic purchase request by using Gate

{                        "general": {                        "project_id":                        238,                        "payment_id":                        "ECT_TEST_1534835032773",                        "signature":                        "2tlMuYxLW9Yu6RETr8pdCfmi0UPE8euD+2QgJ...=="                        },                        "payment": {                        "amount":                        100,                        "currency":                        "USD",                        "description":                        "Top-up of personal account №01234567890 on the website https://merchant.example.com/"                        },                        "customer": {                        "id":                        "customer1"                        },                        "account": {                        "number":                        "377094062589"                        } }

Formats of the customer redirection data

In the WebMoney method, when redirecting customer to the WebMoney form, it is required to do the following:

  1. Get a callback with the redirect_data object from the payment platform.
  2. Generate POST request in the format x-www-form-urlencoded by using parameter values contained in the body object.
  3. Open the full redirect URL by using POST method.

The following example of callback code contains the request method, required parameters, and URL.

Figure: Example of customer redirection data

                        "redirect_data": {                        "method":                        "POST",                        "body": {                        "LMI_PAYEE_PURSE":                        "R710575666925",                        "LMI_PAYMENT_AMOUNT":                        "1.00",                        "LMI_PAYMENT_NO":                        10,                        "LMI_PAYMENT_DESC":                        "ECT_TEST_1534835188533",                        "LMI_SIM_MODE":                        0,                        "LMI_SHOP_ID":                        123456,                        "LMI_RESULT_URL":                        "https://site.com/apswebmoney/purchaseCallback/",                        "LMI_SUCCESS_METHOD":                        1,                        "LMI_SUCCESS_URL":                        "https://site.com/process/complete-redirect?wsid=58oe0pnj86f8nm12p5mvqblc04",                        "LMI_FAIL_METHOD":                        1,                        "LMI_FAIL_URL":                        "https://site.com/process/complete-redirect?wsid=58oe0pnj86f8nm12p5mvqblc04"                        },                        "encrypted": [],                        "url":                        "https://merchant.webmoney.ru/lmi/payment.asp?at=authtype_8"                        }

Format of callback with purchase results

In the WebMoney method, the callbacks that deliver purchase results use the standard format described in Callbacks.

Note that unlike other payment methods, in the WebMoney method, the callbacks include the payment ID that is generated by the WebMoney service and is passed in the payment_id parameter of the provider object. The successful purchase callbacks always contain the payment_id parameter value, but the declined purchase callbacks may not contain the parameter value.

The following example of callback contains an information about successful 1.00 USD WebMoneyClassic purchase made in the 238 project by using the R123456890000 customer WM wallet. Payment ID generated by the WebMoney service is 1592901328.

Figure: Example of a successful WebMoneyClassic purchase callback

{                        "project_id":                        238,                        "payment": {                        "id":                        "ECT_TEST_1534835032773",                        "type":                        "purchase",                        "status":                        "success",                        "date":                        "2018-08-21T07:05:53+0000",                        "method":                        "webmoney",                        "sum": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "description":                        "ECT_TEST_1534835032773"                        },                        "account": {                        "number":                        "R703276019842"                        },                        "operation": {                        "id":                        167000001094,                        "type":                        "sale",                        "status":                        "success",                        "date":                        "2018-08-21T07:05:53+0000",                        "created_date":                        "2018-08-21T07:05:12+0000",                        "request_id":                        "765fc31fbb98a4ac937bbdadb3303f1d13eead                                                ec -                        917                        f825e85cce20981b0686599cb14b7f383d0e6                        ",                                                "sum_initial": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "sum_converted": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "provider": {                        "id":                        1082,                        "payment_id":                        "1592901328",                        "date":                        "2018-08-21T10:05:51+0000",                        "auth_code":                        ""                        },                        "code":                        "0",                        "message":                        "Success"                        },                        "signature":                        "nEIk8lTBATPQXhZAqkiEzraA88Tgjx45cPP18thE/9iEkS                                                lE9TS20z01H7 /                        8                        nvHU2Dz + Dp1goRozWpQRXmL6jA ==                        "                        }

The following example of callback is for a payment rejected due to amount or frequency limitation and does not contain the payment ID generated by the WebMoney service.

Figure: Example of a declined WebMoneyLight purchase callback

{                        "project_id":                        238,                        "payment": {                        "id":                        "ECT_TEST_154477095843411111",                        "type":                        "purchase",                        "status":                        "decline",                        "date":                        "2018-12-14T09:41:30+0000",                        "method":                        "webmoney-light",                        "sum": {                        "amount":                        1000000000,                        "currency":                        "USD"                        },                        "description":                        "ECT_TEST_154477095843411111"                        },                        "operation": {                        "id":                        13290000002280,                        "type":                        "sale",                        "status":                        "decline",                        "date":                        "2018-12-14T09:41:30+0000",                        "created_date":                        "2018-12-14T08:41:29+0000",                        "request_id":                        "a52dc11e9d57fa3a8649671e5599544fcfc50d                                                0                        f - ebbce425f52073d89f96c67686feefe5ab01c1fd                        ",                                                "sum_initial": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "sum_converted": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "provider": {                        "id":                        1083,                        "payment_id":                        "",                        "auth_code":                        ""                        },                        "code":                        "20101",                        "message":                        "Decline due to amount or frequency limit"                        },                        "signature":                        "ukUg6gJ6RtUc2qeXTNE+iDyEh4HdikHuMaCZ4Hju                                                sN + uJA8Ze7RVztvlyWhtiXUjrL14pplG7ustFhJIJdDkvw ==                        "                        }

Related topics

The following topics might be useful when implementing payments by using Gate:

  • Interaction concepts
  • Signature generation and verification
  • Payment models and statuses
  • Information of operations performing

Refund by using Gate

General information

The WebMoney method supports full and partial refunds processing. When processing a refund by using Gate, the merchant web service is required to send a request with all the required parameters and signature to the ECommPay URL and get the callback with the payment result from the payment platform.

The following diagrams provide the detailed picture of the payment processing procedure.

Figure: Refund sequence when using Gate

  1. Customer initiates refund.
  2. The web service sends the request for processing the refund by using Gate to the specified ECommPay URL.
  3. The payment platform receives the request for processing the refund by using Gate.
  4. The payment platform performs the initial request processing that includes validation of the required parameters and signature.
  5. The payment platform sends to the web service response with request receipt confirmation and correctness check result.
  6. The payment platform performs the internal payment request processing and sends it to the WebMoney service.
  7. The payment is processed in the WebMoney service.
  8. The WebMoney service sends the payment result notification to the payment platform.
  9. The payment platform sends the callback to the web service.
  10. The customer receives the payment result from the web service.

The sections that follow discuss in more details the request format and the Gate parameters to use in the WebMoney method and provide the information about the format of callbacks with payment results. For the general information on how to use the API, see API Description. For the general information on how to use the response with request receipt confirmation, see Interaction concepts.

Request format

There are several things you must consider when using refund requests in the WebMoney method:
  1. You perform refund by sending the follwing requests by using the POST HTTP method.
    • /v2/payment/webmoney/refund for purchases performed by WebMoneyClassic scenario
    • /v2/payment/webmoney-light/refund for purchases performed by WebMoneyLight scenario
  2. You must provide values for the basic minimum of the following objects and parameters:
    • general—object that contains general request identification information:
      • project_id—the project ID obtained from ECommPay
      • payment_id—payment ID unique within the project
      • signature—signature created after you specify all the required parameters. For more information about signature generation, see Signature generation and verification.
    • payment—object that contains refund information:
      • description—comment or description
      • amount—refund amount in minor units (mandatory for partial refund only)
      • currency—refund currency in ISO-4217 alpha-3 format (mandatory for partial refund only)
  3. If required, you can also add any other additional parameters Gate supports.

Thus, a correct refund request in the WebMoney method must include project and payment IDs, signature, currency and amount of the refund, as shown in the following example:

Figure: Example of a refund request

{                        "general": {                        "project_id":                        35,                        "payment_id":                        "Payment 12",                        "signature":                        "2tlMuYxLW9Yu6RETr8pdCfmi0UPE8euD+2QgJ...=="                        },                        "payment": {                        "amount":                        100,                        "currency":                        "USD",                        "description":                        "refund"                        } }

Callback format

In the WebMoney method, the callbacks that deliver refund results use the standard format described in Callbacks.

Note that unlike other payment methods, in the WebMoney method, the callbacks include the payment ID that is generated by the WebMoney service and is passed in the payment_id parameter of the provider object. The successful refund callbacks always contain the payment_id parameter value, but the declined refund callbacks may not contain the parameter value.

The following example of callback contains an information about successful 1.00 USD partial refund made in the 238 project. Payment ID generated by the WebMoney service is 1592975261.

Figure: Example of a successful refund callback

{                        "project_id":                        238,                        "payment": {                        "id":                        "ECT_TEST_1534835032773",                        "type":                        "purchase",                        "status":                        "partially refunded",                        "date":                        "2018-08-21T12:23:59+0000",                        "method":                        "webmoney",                        "sum": {                        "amount":                        90,                        "currency":                        "USD"                        },                        "description":                        "ECT_TEST_1534835032773"                        },                        "account": {                        "number":                        "R703276019842"                        },                        "operation": {                        "id":                        167000001097,                        "type":                        "refund",                        "status":                        "success",                        "date":                        "2018-08-21T12:23:59+0000",                        "created_date":                        "2018-08-21T12:23:58+0000",                        "request_id":                        "ba1d13a9346e271b0c38e73be0a93b71bb91c383-4                                                514983dd65d182656477cb8d37f91ab94fd43f9",                                                "sum_initial": {                        "amount":                        10,                        "currency":                        "USD"                        },                        "sum_converted": {                        "amount":                        10,                        "currency":                        "USD"                        },                        "provider": {                        "id":                        1082,                        "payment_id":                        "1592975261",                        "auth_code":                        ""                        },                        "code":                        "0",                        "message":                        "Success"                        },                        "signature":                        "n/KY3iKZpYObSsUj76BsSElFHi8DRlc1I3SwV                                                5zwuI5kGh/xy4UktZwdhtUWTZPJUnVyYAuURR2d9JWiQ9QJjQ=="                                                }

The following example of callback is for a declined payment and does not contain the payment ID generated by the WebMoney service.

Figure: Example of a declined refund callback

{                        "project_id":                        238,                        "payment": {                        "id":                        "ECT_TEST_1534835032773",                        "type":                        "purchase",                        "status":                        "success",                        "date":                        "2018-08-21T07:05:53+0000",                        "method":                        "webmoney",                        "sum": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "description":                        "ECT_TEST_1534835032773"                        },                        "account": {                        "number":                        "R703276019842"                        },                        "errors": [{                        "code":                        "100",                        "message":                        "General decline",                        "description":                        "Gate. Operation was declined. General Gate error"                        }],                        "operation": {                        "id":                        167000001095,                        "type":                        "refund",                        "status":                        "decline",                        "date":                        "2018-08-21T07:52:00+0000",                        "created_date":                        "2018-08-21T07:51:59+0000",                        "request_id":                        "c1bf7b7f8a73e7564142335cb4abf36a962414                                                fe -                        6                        b28fc600d4eaae0da576cc0629fc12881023ac9                        ",                                                "sum_initial": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "sum_converted": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "provider": {                        "id":                        1082,                        "payment_id":                        ""                        },                        "code":                        "100",                        "message":                        "General decline"                        },                        "signature":                        "GWffIaYEV93mpHO3KtP9mn4HDITfGFx4Fcu/4sr7H                                                5                        jxGGvJSnG6Y9hmZlaVpdZBAl9AeRHkIkF / RlSZ3R71Vw ==                        "                        }

Related topics

The following topics might be useful when implementing payments through Gate:

  • Interaction concepts
  • Signature generation and verification
  • Payment models and statuses
  • Information of operations performing

Payout by using Gate

General information

In the WebMoney method, when processing a payout by using Gate, the merchant web service is required to send a request with all the required parameters and signature to the ECommPay URL and get the callback with the payment result from the payment platform.

The following diagrams provide the detailed picture of the payment processing procedure.

Figure: Payout sequence when using Gate

  1. Customer initiates payout.
  2. The web service sends the request for processing the payout by using Gate to the specified ECommPay URL.
  3. The payment platform receives the request for processing the payout by using Gate.
  4. The payment platform performs the initial request processing that includes validation of the required parameters and signature.
  5. The payment platform sends to the web service response with request receipt confirmation and correctness check result.
  6. The payment platform performs the internal payment request processing and sends it to the WebMoney service.
  7. The payment is processed in the WebMoney service.
  8. The WebMoney service sends the payment result notification to the payment platform.
  9. The payment platform sends the callback to the web service.
  10. The customer receives the payment result from the web service.

The sections that follow discuss in more details the request format and the Gate parameters to use in the WebMoney method and provide the information about the format of callbacks with payment results. For the general information on how to use the API, see API Description. For the general information on how to use the response with request receipt confirmation, see Interaction concepts.

Request format

In WebMoney method, when processing a payout, it is available to secure the transfer with a protection code required for receiving the transfer. There are several things you must consider when using payout requests in the WebMoney method:

  1. You send payout requests by sending the /v2/payment/webmoney/payout request by using HTTP method POST.
  2. You must provide values for the basic minimum of the following objects and parameters:
    • Object general—general request identification information:
      • project_id—the project ID obtained from ECommPay
      • payment_id—payment ID unique within the project
      • signature—signature created after you specify all the required parameters. For more information about signature generation, see Signature generation and verification.
    • Object customer—customer information:
      • id—customer ID unique within the project
      • ip_address—customer IP address
    • Object account—the customer WM e-wallet information:
      • number—the number of customer WM e-wallet
    • Object payment—payout information:
      • amount—payout amount in minor units
      • currency—payout currency in ISO-4217 alpha-3 format. The payout currency should be the same as the customer wallet currency
  3. Additionally, you need to use the following parameters:
    • Object payment—payment information:
      • description—payment description.

        Payment description should be specified in the request as follows: Withdrawal from personal account №<customer's bank account number> on the website <URL of the merchant web service>. Example: Withdrawal from personal account №01234567890 on the website https://merchant.example.com/

  4. For payments with protection, you must provide values for parameters of protection code and period.

    The customer receives the funds and sees them, but is not able to use them until entering the protection code. If the customer does not enter the code within the time period specified on the web service side (the protection time), then the funds will be returned to merchant e-wallet. In this case, the payment status changes to decline.

    The protection code and time period (the period can vary from 1 to 35 days) must be specified on the web service side in the protection_code and protection_period parameters of the account object, as well as let the customer know the protection code.
  5. If required, you can also add any other additional parameters Gate supports.

Thus, a correct payment request in the WebMoney method must include project, customer and payment IDs, IP address and WMID of the customer, payout amount and currency, payment description, and signature, as shown in the following example:

Figure: Example of a non protected payout

{                        "general": {                        "project_id":                        238,                        "payment_id":                        "WM-payout-002",                        "signature":                        "2tlMuYxLW9Yu6RETr8pdCfmi0UPE8euD+2QgJ...=="                        },                        "customer": {                        "id":                        "ABC1234",                        "ip_address":                        "1.2.3.4"                        },                        "account": {                        "number":                        "R703276019842"                        },                        "payment": {                        "amount":                        100,                        "currency":                        "USD",                        "description":                        "Withdrawal from personal account №01234567890 on the website https://merchant.example.com/"                        } }

In the WebMoney method, a correct payout request must include project, customer and payment IDs, signature, IP address and WMID of the customer, payment amount and currency, payment description, protection code and period, as shown in the following example:

Figure: Example of a protected payout

{                      "general": {                      "project_id":                      238,                      "payment_id":                      "WM-payout-001",                      "signature":                      "JeY56160AFuozhpEStl7TtsdcY4A0IlcyWuK                                            XTfDH1Eam8bHffOMdED / gOMl2ocIuZVqyF82pt7xb5WWVENFDQ ==                      "                                            },                      "customer": {                      "id":                      "ABC1234",                      "ip_address":                      "1.2.3.4"                      },                      "account": {                      "number":                      "R703276019842"                      },                      "payment": {                      "amount":                      100,                      "currency":                      "USD",                      "protection_code":                      "code1",                      "protection_period":                      1,                      "description":                      "Withdrawal from personal account №01234567890 on the website https://merchant.example.com/"                      } }

Callback format

In the WebMoney method, the callbacks that deliver payout results use the standard format described in Callbacks.

Note that unlike other payment methods, in the WebMoney method, the callbacks include the payment ID that is generated by the WebMoney service and is passed in the payment_id parameter of the provider object. The successful payout callbacks always contain the payment_id parameter value, but the declined payout callbacks may not contain the parameter value.

The following example of callback contains an information about successful 1.00 USD payout made in the 238 project by using the ABC1234 customer WMID—377094062589. Payment ID generated by the WebMoney service is 1593230877.

Figure: Example of a successful payout callback

{                        "project_id":                        238,                        "payment": {                        "id":                        "WM-payout-121",                        "type":                        "payout",                        "status":                        "success",                        "date":                        "2018-08-22T13:35:41+0000",                        "method":                        "webmoney",                        "sum": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "description":                        "test payout without protection"                        },                        "account": {                        "number":                        "377094062589"                        },                        "customer": {                        "id":                        "ABC1234"                        },                        "operation": {                        "id":                        16442000001089,                        "type":                        "payout",                        "status":                        "success",                        "date":                        "2018-08-22T13:35:41+0000",                        "created_date":                        "2018-08-22T13:35:39+0000",                        "request_id":                        "511bba243a2ef3dcc7865dedc43ea8ff2c6352                                                e4 -                        0369                        a4524fef9b41a71e7c97d23077dec8198cae                        ",                                                "sum_initial": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "sum_converted": {                        "amount":                        100,                        "currency":                        "USD"                        },                        "provider": {                        "id":                        1082,                        "payment_id":                        "1593230877",                        "date":                        "2018-08-22T16:35:39+0000",                        "auth_code":                        ""                        },                        "code":                        "0",                        "message":                        "Success"                        },                        "signature":                        "uoFrPY6tVRwG9CrOivMaVtOPgLW67cZF/PhGifg1QP                                                GYh0Nc3QI / SdCW4fOfAH2uJt + BymQVkYQBkkwZ / aVFfg ==                        "                        }

The following example of callback is for a declined payout but contains the 1594601738 payment ID generated by the WebMoney service.

Figure: Example of a declined payout callback

{                        "project_id":                        238,                        "payment": {                        "id":                        "WM-payout-001=35",                        "type":                        "payout",                        "status":                        "decline",                        "date":                        "2018-08-29T21:33:22+0000",                        "method":                        "webmoney",                        "sum": {                        "amount":                        10,                        "currency":                        "USD"                        },                        "description":                        "test payout with protection"                        },                        "account": {                        "number":                        "377094062589"                        },                        "customer": {                        "id":                        "cust0007"                        },                        "operation": {                        "id":                        9744000001160,                        "type":                        "payout",                        "status":                        "decline",                        "date":                        "2018-08-29T21:33:22+0000",                        "created_date":                        "2018-08-28T14:33:20+0000",                        "request_id":                        "3fc02ef403a21531775fa44440a5f6f3372c5                                                8db-508e54208ae977d3bebf875ac3cd2afbf87764bd",                                                "sum_initial": {                        "amount":                        10,                        "currency":                        "USD"                        },                        "sum_converted": {                        "amount":                        10,                        "currency":                        "USD"                        },                        "provider": {                        "id":                        1082,                        "payment_id":                        "1594601738",                        "date":                        "2018-08-28T17:33:20+0000",                        "auth_code":                        ""                        },                        "code":                        "20000",                        "message":                        "General decline"                        },                        "signature":                        "/hv7zLOiJapRXiDfdDMW6Vlilv13SALr/Zp                                                nIEQiQltHxl09271AQI89IfVG5z/y9+WAHwsBHuPxzjf2CvAx+w=="                                                }

Related topics

The following topics might be useful when implementing payments by using Gate:

  • Interaction concepts
  • Signature generation and verification
  • Payment models and statuses
  • Information of operations performing

Testing

General information

For the WebMoney method the testing of purchases through WebMoneyLight and WebMoneyClassic by using Payment Page and Gate, purchases through WebMoneyClassic using the X20 interface by using Payment Page, payouts trough WebMoneyClassic by using Gate, as well as refunds through WebMoneyLight by using Gate are available..

Testing can be performed within a test project, to enable and disable the testing availability, contact ECommPay technical support via support@ecommpay.com.

When performing a test payment, take into account that you must specify the identifier of the test project in the requests, the currency can be any of supported ones: WMB (BYN), WME(EUR), WMK(KZT), WMR(RUB), WMU(VND), WMV(UAH), WMZ(USD) (the availability of each currency is configured separately on request), and the interfaces of the payment forms emulator of Payment Page and WebMoney may differ from the work ones.



Test payments statuses

When testing purchases or payouts the final payment status is determined by the amount specified in the request:

  • decline status with 40000 or 40400 amount
  • success status with any other amount

When testing refunds, the final payment status is determined by the amount specified in the request:

  • decline status with 50000 or 50500 amount
  • success status with any other amount

Purchases by using Payment Page

To perform a test purchase trough WebMoneyLight by using Payment Page, do the following:

  1. Send a correct test request for Payment Page opening to the payment platform.
  2. If the webmoney-light method was not specified in the request—select the method on the emulator page.
  3. Click Success or Decline depending on the specified amount.
  4. Accept a callback with information about the payment result.

To perform a test purchase trough WebMoneyClassic by using Payment Page, do the following:

  1. Send a correct test request for Payment Page opening to the payment platform.
  2. If the webmoney method was not specified in the request—select the method on the emulator page.
  3. Specify a random WMID in the data entry field and the wallet currency.
  4. Accept a callback with information about the payment result.

To perform a test purchase trough WebMoneyClassic using the X20 interface by using Payment Page, do the following:

  1. Send a correct test request for Payment Page opening to the payment platform.
  2. If the webmoney method was not specified in the request—select the method on the emulator page.
  3. Select a random identification method, specify a random identifier and select a random confirmation method.
  4. If the SMS confirmation method was selected, specify a random confirmation code.
  5. Accept a callback with information about the payment result.

The full information about purchase process by using WebMoney through Payment Page is provided in the section Purchase by using Payment Page.

Purchases by using Gate

To perform a test purchase trough WebMoneyLight by using Gate, do the following:

  1. Send a correct test request for purchase to the payment platform.
  2. Accept a callback with redirection data.
  3. Go to the received URL and click Success or Decline depending on the specified payment amount.
  4. Accept a callback with information about the payment result.

To perform a test purchase trough WebMoneyClassicby using Gate, do the following:

  1. Send a correct test request for purchase to the payment platform.
  2. Accept a callback with information about the payment result.

The full information about purchase process by using WebMoney through Gate is provided in the section Purchase by using Gate.

Payouts by using Gate

To perform a test payout by using Gate, send a correct test request to the payment platform and accept a callback with information about the payment result. The full information about payout process by using WebMoney through Gate is provided in the section Payout by using Gate.

Refunds by using Gate

To perform a test refund by using Gate, send a correct test request for refund of previously performed test purchase to the payment platform and accept a callback with information about the payment result.

The test refund performing is possible only within a day after the initial purchase. The full information about the refund process by using WebMoney through Gate is provided in the section Refund by using Gate.

Analysis of payment result

As with other payment methods ECommPay offers, when using the WebMoney method, you have several options to analyse the information about payments and operations performed by using the method—alone or in conjunction with other methods.

You can load and analyse all the necessary information in Dashboard ( Old Dashboard ), for instance you can use the analytic panels on the Analytics tab to this end.

Also, you can export the information for further analysis by using third party analytical tools. The following options are available:

  • Dashboard ( Old Dashboard ) allows you to download reports in CSV and XLS formats—by using the tools on the Payments tab. You can perform export as a one-time download to your local computer or have payment data regularly exported and delivered to email addresses you specify.
  • Data API allows you to have payment information exported in JSON format and delivered to a URL you specify. The payment information is exported by using the /operations/get queries.

If you have any further questions regarding payment data analysis, contact ECommPay technical support.