Конвертация валют
Общая информация
При проведении платежа в общем случае могут задействоваться три валюты: валюта счёта пользователя, валюта платежа и валюта счёта мерчанта. Если все эти валюты одинаковы, то конвертация, то есть пересчёт суммы из одной валюты в другую, не требуется, тогда как в иных ситуациях она необходима.
Допустим, пользователь выбирает рублёвую карту для перевода средств в евро на счёт мерчанта, открытый в фунтах стерлингов. В таком случае сумма платежа последовательно конвертируется из рублей в евро и из евро в фунты. Первый из этих пересчётов выполняется на стороне эмитента или альтернативной платёжной системы (и не контролируется со стороны ECommPay), а второй — на стороне платёжной платформы ECommPay.
Мерчант также может проводить конвертацию на своей стороне и в запросах на проведение операций отправлять сразу сконвертированную сумму в нужной валюте.
Для платежей, проводимых через Gate, в платёжной платформе поддерживается конвертация с выбором валюты мерчантом — без предоставления пользователю возможности выбора валюты платежа. Такая конвертация поддерживается при проведении выплат, а также разовых оплат с использованием любых платёжных методов. Для конвертации используются валютные курсы одного из следующих источников:
Курсы валют указанных банков обновляются один раз в день.
Для каждого проекта используется один базовый источник курсов валют и дополнительные — на случаи, когда необходимый курс не предоставляется со стороны базового источника. Базовый источник выбирается на стороне ECommPay.
Информацию о конвертации, выполненной на стороне платёжной платформы, можно получать в оповещениях о результатах платежей, в интерфейсе Dashboard и в регулярных отчётах, отправляемых на заданные адреса электронной почты. Эту информацию рекомендуется учитывать при сверках с ECommPay, потому что учёт операций по счёту мерчанта со стороны эмитента или альтернативной платёжной системы, как правило, ведётся в валюте этого счёта.
Также следует учитывать, что сумма операции и сумма фактически списанная со счёта пользователя могут не совпадать, так как на дату инициирования платежа и дату фактического списания средств курсы конвертации как правило отличаются. По факту компенсации в таких случаях пользователю следует обращаться к эмитенту карты или организации, где открыт счёт.
Чтобы узнать, какие платёжные методы в какой валюте поддерживают конвертацию, следует обращаться к описанию этого метода или к курирующему менеджеру ECommPay.
Подключение
Для подключения конвертации на стороне веб-сервиса выполнять какие-либо действия не требуется.
Использование
Для использования этого варианта конвертации со стороны веб-сервиса не требуется действий, отличных от стандартных при проведении оплаты.
Информация о выполненной конвертации передаётся в оповещениях о результатах платежей — в объекте operation
, где в объекте sum_initial
указываются исходные сумма и валюта, а в объекте sum_converted
— конечные сумма и валюта с учётом конвертации. Эти объекты входят в стандартную структуру оповещения, описание которой представлено в разделе Оповещения.
В следующем примере в оповещении содержится информация о том, что при проведении оплаты в размере 100 USD
выполнена конвертация в 519,41 PHP
.
Рис.: Пример данных из оповещения о результатах оплаты с конвертацией
{ "project_id":42, "payment":{ "id":"15dd47055381e8375e7b2d0cb16f", "type":"purchase", "status":"success", "date":"2019-09-17T11:50:29+0000", "method":"dragonpay", "sum":{ "amount":10000, // Сумма, переданная в запросе "currency":"USD" // Код исходной валюты, переданный в запросе }, "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, // Сумма, переданная в запросе "currency":"USD" // Код исходной валюты, переданный в запросе }, "sum_converted":{ "amount":519410, // Сумма с учётом конвертации "currency":"PHP" // Код конечной валюты }, "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...==" }