Currency conversion

Overview

In general, a payment may involve three currencies: customer account currency, payment currency, and merchant account currency. If all the three currencies are the same, there is no need for currency conversion, otherwise you need to convert payment amount between currencies.

Suppose that customer uses their rouble-denominated card to pay some euros to merchant whose account is denominated in pound. The payment amount is consecutively converted from roubles to euros, and then from euros to pounds. The first conversion operation is performed by issuer or by alternative payment system. The second conversion operation is performed by the ECommPay payment platform.

You can also perform the conversion on your side and send the converted amount in the desired currency in the requests for operations performing.

For payments that use Gate, the ECommPay payment platform offers Automatic payment currency selection: the customer cannot select payment currency while the exchange rate is dictated by the payment system. This option is available for payouts and one-time purchase by using all payment methods. The payment platform uses exchange rates from one of the following sources:

The rates in all the sources are updated daily.

By default, each merchant project uses only one source which is assigned byECommPay. Although, the ECommPay payment platform may use rates from a different source if the default source fails to provide the required exchange rate.

You can get the information about conversion operations performed by the payment platform from the callbacks with payment results, from Dashboard, or from regular reports sent to email addresses you specify. We recommend that you use this information for reconciliation with ECommPay, because issuer and alternative payment system use the merchant account currency to keep record of the merchant transactions.

It should be also taken into account that the operation amount and the amount actually debited from the customer's account may not be the same, since currency exchange rates usually differ on the date when the payment was initiated and the date when the funds were actually debited. For conversion and compensation in such cases, the customer should contact the card issuer or the organization where the account is opened.

To find out which payment methods in which currencies support conversion, please refer to the description of this method or to the ECommPay key account manager.

Setup

You do not need to update your web service to support automatic payment currency selection.

Usage

Automatic payment currency selection does not require any additional efforts and is automatically performed during payment procedure.

Any conversion information is added in payment result callbacks into two objects embedded into the operation object: the sum_initial object contains the amount and the currency before conversion while the sum_converted object contains the amount and the currency after the conversion operation. For more information about these objects, see Callbacks.

Below you will find the example of payment with a conversion operation in which 100 USD are converted into 519,41 PHP debited to merchant account denominated in Philippine peso.

Figure: Sample callback with the result of a payment that requires currency conversion

{ 
  "project_id":42,
  "payment":{ 
    "id":"15dd47055381e8375e7b2d0cb16f",
    "type":"purchase",
    "status":"success",
    "date":"2019-09-17T11:50:29+0000",
    "method":"dragonpay",
    "sum":{ 
      "amount":10000, // Initially requested amount
      "currency":"USD" // Initial requested currency
    },
    "description":""
  },
  "operation":{ 
    "id":200004157,
    "type":"sale",
    "status":"success",
    "date":"2019-09-17T11:50:29+0000",
    "created_date":"2019-09-16T13:17:31+0000",
    "request_id":"622d6f7f9e6bce298676b38e45",
    "sum_initial":{ 
      "amount":10000, // Initially requested amount
      "currency":"USD" // Initially requested currency
    },
    "sum_converted":{ 
      "amount":519410, // Amount after conversion
      "currency":"PHP" // Automatically selected target currency
    },
    "provider":{ 
      "id":1165,
      "payment_id":"DY3TU78",
      "date":"2019-09-16T21:17:39+0000",
      "auth_code":"",
      "endpoint_id":"BPI"
    },
    "code":"0",
    "message":"Success"
  },
  "signature":"MJv7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm...=="
}