Trustly
Обзор
Trustly — платёжный метод для проведения платежей с помощью интернет-банкинга. Оплаты и повторяемые оплаты осуществляются через Payment Page и Gate, возвраты и выплаты — через Gate.
Характеристика
Тип платёжного метода | банковские платежи |
---|---|
Платёжные инструменты |
|
Регионы использования | AT, BE, BG, CY*, CZ, DE, DK, EE, ES, FI, FR*, GB, GR*, HR*, HU, IE, IT, LT, LU*, LV, MT*, NL, NO, PL, PT*, RO, SE, SI, SK |
Валюты платежей | BGN, CZK, DKK, EUR, GBP, HUF, NOK, PLN, RON, SEK |
Конвертация валют | На стороне Trustly |
Оплаты | + |
Выплаты | + |
Оплаты по сохранённым данным | + ** |
Полные возвраты | + |
Частичные возвраты | + |
Опротестования | – |
Особенности |
|
Организация и стоимость подключения | По согласованию с курирующим менеджером ecommpay |
* Для данных стран доступно только проведение выплат.
** Оплаты по сохранённым данным доступны только для пользователей, которые являются клиентами некоторых шведских банков.
Схема работы
В проведении отдельного платежа с использованием Trustly задействуются веб-сервис мерчанта, один из интерфейсов и платёжная платформа ecommpay, а также технические средства Trustly.
Основные операции
Интерфейсы | Суммы, EUR (или эквивалент) | Время** | ||||||
---|---|---|---|---|---|---|---|---|
Payment Page | CMS Plug-ins | Gate | Dashboard | минимум | максимум | базовое | предельное | |
Оплаты | + | – | + | – | 1,00 | – | * | * |
Выплаты | – | – | + | – | – | – | * | * |
Оплаты по сохранённым данным | + | – | + | – | – | – | * | * |
Полные возвраты | – | – | + | – | – | – | * | * |
Частичные возвраты | – | – | + | – | – | – | * | * |
* Как правило, проведение платежей с использованием сервиса Trustly укладывается в несколько минут, но в некоторых случаях оно может занимать большее время — вплоть до двух банковских дней и, при пересечении с выходными и праздничными днями, даже более. Подробную информацию при необходимости можно получить у курирующего менеджера ecommpay.
- Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время, определяемое для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа.
- Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус
decline
. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ecommpay.
Сценарии использования
Проведение оплат с использованием метода Trustly выполняется с перенаправлением пользователей к сервису Trustly, проведение выплат — без перенаправления пользователей, проведение возвратов — с уведомлением пользователей через веб-сервис мерчанта.
Рис.: Оплата через Payment Page
Рис.: Оплата через Gate
Рис.: Возврат через Gate
Рис.: Выплата через Gate
Детальные сведения о том, что необходимо делать со стороны мерчанта для проведения платежей, а также о том, что можно использовать для анализа информации о проведённых платежах и операциях, представлены далее.
Оплаты через Payment Page
Общая информация
Для оплаты через Payment Page с использованием метода Trustly со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате оплаты. При этом метод Trustly можно сделать предварительно выбранным (подробнее — в разделе Предварительный выбор платёжных методов). Полная схема проведения оплаты представлена далее.
Рис.: Проведение оплаты через Payment Page
- Пользователь на стороне веб-сервиса инициирует оплату.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
- Запрос на проведение оплаты поступает в платёжную платформу.
- Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
- Осуществляется генерация Payment Page согласно настройкам проекта и параметрам вызова.
- Пользователю отображается сгенерированная платёжная форма.
- Пользователь выбирает для оплаты интернет-банкинг Trustly.
- Запрос на проведение оплаты через Trustly поступает в платёжную платформу.
- Выполняются дальнейшая обработка запроса и его отправка в сервис Trustly, если в запросе переданы все необходимые параметры для проведения платежа. В противном случае у пользователя запрашиваются дополнительные параметры.
- На стороне Trustly выполняется обработка запроса на оплату.
- От сервиса Trustly к платёжной платформе передаются данные для перенаправления пользователя в сервис Trustly.
- Данные для перенаправления пользователя передаются к Payment Page.
- Пользователь перенаправляется в сервис Trustly.
- Пользователь выполняет необходимые действия для оплаты.
- На стороне сервиса Trustly выполняется обработка платежа.
- От сервиса Trustly к платёжной платформе направляется результат оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- От платёжной платформы к Payment Page направляется результат проведения оплаты.
- Результат оплаты отображается пользователю на Payment Page.
Информация о формате запросов и параметрах вызова Payment Page при работе с Trustly, а также о формате оповещений о результатах оплат приведена далее; общая информация о работе с API см. в разделе Описание Payment Page API.
Формат запросов
При формировании запросов на открытие платёжной формы с применением метода Trustly необходимо учитывать следующее:
- Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
project_id
— идентификатор проекта, полученный от ecommpay при интеграции;payment_id
— идентификатор платежа, уникальный в рамках проекта;payment_currency
— валюта платежа в формате ISO-4217 alpha-3;payment_amount
— сумма платежа в дробных единицах;customer_id
— идентификатор пользователя в рамках проекта.
- Валютой платежа может быть любая, указанная в разделе Характеристика.
-
Для проведения оплаты необходимы дополнительные параметры. Они не являются обязательными для открытия Payment Page, но всегда запрашиваются у пользователя, если не были переданы в запросе. Дополнительные (обязательные) параметры для проведения оплаты:
customer_first_name
— имя пользователя,customer_last_name
— фамилия пользователя,customer_email
— адрес электронной почты пользователя,customer_country
— код страны в формате ISO 3166-1 alpha-2,language_code
— язык платёжной формы в формате ISO 639-1 alpha-2.
- Для предварительного выбора метода Trustly необходимо указывать код платёжного метода в параметре
force_payment_method
—online-banking-trustly
. -
Также могут быть запрошены дополнительные параметры, которые зависят от типа бизнеса мерчанта. Эти параметры можно передать в запросе на открытие платёжной формы или оставить их для заполнения пользователем на Payment Page.
Список возможных параметров:identify_doc_number
— номер документа, подтверждающего личность пользователя;payment_extra_param
— объект с дополнительными данными:beneficiary
— информация о получателе перевода денежных средств:party_type
— тип получателя (PERSON
илиORGANISATION
),first_name
— имя получателя (для организации значение параметра может быть пустым),last_name
— фамилия пользователя или наименование организации-получателя,country
— код страны в формате ISO 3166-1 alpha-2.
- Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры вызова платёжной формы.
- После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.
Таким образом, корректный запрос на открытие платёжной формы с применением метода Trustly должен содержать идентификаторы проекта, платежа и пользователя, а также валюту и сумму платежа и подпись:
EPayWidget.run( { payment_id: 'X03936', payment_amount: 1000, payment_currency: 'EUR', project_id: 100, customer_id: '1234567', signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HASCQ9vySO\/R LCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg==" } )
EPayWidget.run( { "payment_id": "X03936", "payment_amount": 1000, "payment_currency": 'EUR', "project_id": 100, "signature": "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HASCQ9vySO\/R LCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg==", "customer_id": "1234567", "customer_first_name": "John", "customer_last_name": "Smith", "customer_email": "john.smith@test.com" "customer_country": "SE", "language_code": "en", "identify_doc_number": "SE987546-654", "payment_extra_param": { "beneficiary": { "party_type": "PERSON", "first_name": "Eddy", "last_name": "Stockmann", "country": "SE" } } } )
Формат оповещений
Для оповещений о результатах оплат с применением метода Trustly используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 200
пользователь 1
успешно совершил оплату на сумму 20,00 EUR
.
Рис.: Пример оповещения о проведенной оплате
{ "project_id": 200, "payment": { "id": "ECT_TEST_1561994171758", "type": "purchase", "status": "success", "date": "2019-07-01T15:26:40+0000", "method": "trustly", "sum": { "amount": 2000, "currency": "EUR" }, "description": "ECT_TEST_1561994171752" }, "customer": { "id": "1" }, "operation": { "id": 28970000003316, "type": "sale", "status": "decline", "date": "2019-07-01T15:26:40+0000", "created_date": "2019-07-01T15:26:08+0000", "request_id": "63088b14f83a0bb48882dedfe2cc7fa6aaff", "sum_initial": { "amount": 2000, "currency": "EUR" }, "sum_converted": { "amount": 2000, "currency": "EUR" }, "provider": { "id": 1246, "payment_id": "1076832", "date": "2019-07-01T15:26:39+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "GLZgBiriazPCzp3Kj+Pso7V1FNJvNc0WssilWp0lPfM0sUV0Bv3LZl KumYVzCi6wy9eTBEyl14X4HYxNwZJ94Q==" } }
В следующем примере оплата была отклонена владельцем аккаунта.
Рис.: Пример оповещения об отказе в проведении оплаты
{
"project_id": 200,
"payment": {
"id": "ECT_TEST_1561994171758",
"type": "purchase",
"status": "decline",
"date": "2019-07-01T15:26:40+0000",
"method": "trustly",
"sum": {
"amount": 2000,
"currency": "EUR"
},
"description": "ECT_TEST_1561994171752"
},
"customer": {
"id": "1"
},
"operation": {
"id": 28970000003316,
"type": "sale",
"status": "decline",
"date": "2019-07-01T15:26:40+0000",
"created_date": "2019-07-01T15:26:08+0000",
"request_id": "63088b14f83a0bb48882dedfe2cc7fa6aaff",
"sum_initial": {
"amount": 2000,
"currency": "EUR"
},
"sum_converted": {
"amount": 2000,
"currency": "EUR"
},
"provider": {
"id": 1246,
"payment_id": "1076832",
"date": "2019-07-01T15:26:39+0000",
"auth_code": ""
},
"code": "20301",
"message": "Account owner cancelled operation"
},
"signature": "GLZgBiriazPCzp3Kj+Pso7V1FNJvNc0WssilWp0lPfM0sUV0Bv3LZl
KumYVzCi6wy9eTBEyl14X4HYxNwZJ94Q=="
}
}
Дополнительные материалы
Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы:
Оплаты через Gate
Общая информация
Для оплаты через Gate с использованием метода Trustly со стороны веб-сервиса необходимо:
- Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay.
- Осуществить перенаправление в сервис Trustly.
- Принять оповещение от платежной платформы ecommpay о результате оплаты.
Полная схема проведения оплаты представлена далее.
Рис.: Проведение оплаты через Gate
- Пользователь на стороне веб-сервиса инициирует оплату через Trustly.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate.
- Запрос на проведение оплаты поступает в платёжную платформу ecommpay.
- Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи. В случае отсутствия обязательных параметров будет отправлен запрос на уточнение параметров (при поддержке данной функциональности в веб-сервисе мерчанта).
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
- В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис Trustly.
- На стороне Trustly выполняется обработка запроса на оплату.
- От сервиса Trustly к платёжной платформе передаются данные для перенаправления пользователя к сервису Trustly.
- От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя в Trustly в объекте redirect_data.
- Пользователь перенаправляется в сервис Trustly.
- Пользователь выполняет необходимые действия для оплаты.
- На стороне сервиса Trustly выполняется обработка платежа.
- От сервиса Trustly к платёжной платформе направляется уведомление о результате оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- От веб-сервиса пользователю направляется результат оплаты.
Информация о формате запросов и параметрах инициации оплат методом Trustly через Gate, а также о формате оповещений о результатах оплат приведена далее, общая информация о работе с API см. в разделе Работа с API.
Формат запросов
При работе с запросами на оплаты с применением метода Trustly необходимо учитывать следующее:
- Должен использоваться запрос
/v2/payment/online-banking/trustly/sale
, отправляемый методом POST. Этот запрос относится к группе запросов интернет-банкинга: /v2/payment/online-banking/{payment_method}/sale. - В запросе должны использоваться следующие объекты и параметры:
general
— основные сведения:project_id
— идентификатор проекта,payment_id
— идентификатор платежа,signature
— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
customer
— сведения о пользователе:id
— идентификатор, уникальный в рамках проекта,ip_address
— используемый IP-адрес,first_name
— имя,last_name
— фамилия,email
— адрес электронной почты,country
— код страны в формате ISO 3166-1 alpha-2,language
— код языка в формате ISO 639-1.
payment
— сведения о платеже:amount
— сумма платежа в дробных единицах,currency
— валюта платежа в формате ISO-4217 alpha-3;
return_url
— URL для перенаправления пользователя:success
— при успехе,decline
— при неудаче.
- Валютой платежа может быть любая, указанная в разделе Характеристика.
- Дополнительно может потребоваться передавать некоторые из следующих параметров:
additional_data.beneficiary
— информация о получателе перевода денежных средств:party_type
— тип получателя (PERSON
илиORGANISATION
),first_name
— имя получателя (для организации значение параметра может быть пустым),last_name
— фамилия пользователя или наименование организации-получателя,country
— код страны в формате ISO 3166-1 alpha-2.
Список дополнительных параметров для проведения платежа зависит от типа бизнеса мерчанта. Если веб-сервис мерчанта поддерживает уточнение дополнительных параметров, то после отправки запроса, содержащего только обязательные параметры, придёт оповещение со списком дополнительных параметров, необходимых для проведения платежа.
В противном случае все указанные в пунктах 2 и 4 параметры необходимо передавать в запросе на оплату.
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Таким образом, корректный запрос на оплату с применением метода Trustly должен содержать основные данные запроса, информацию о пользователе, платеже и URL для перенаправления:
Рис.: Пример запроса на оплату (при поддержке запросов на уточнение параметров)
{ "general": { "project_id": 200, "payment_id": "ECT_TEST_1561994171758", "signature": "+e6gss++zs/St78SnjYwwOdf+fejG8RLjoSlFUdMLR5EJ0pBSulQK lBQQi3wCFVYnEm7M13MAerP3eTOLViNkA==" }, "customer": { "id": "123", "email": "example@mail.com", "first_name": "John", "last_name": "Johnson" }, "payment": { "amount": 2000, "currency": "EUR" } }
Форматы данных для перенаправления пользователей
Для перенаправления пользователя от веб-сервиса к сервису Trustly необходимо принять оповещение от платёжной платформы, содержащее ссылку для перенаправления в параметре redirect_data.url и данные для отправки в теле запроса redirect_data.body, и использовать эти параметры при открытии HTML-страницы сайта методом, указанным в redirect_data.method.
Далее приведён фрагмент оповещения, содержащего данные для перенаправления.
"redirect_data": {
"body": [],
"method": "GET",
"url": "https://example.com/en/v1.1/payment/903d8cd4-b8e9-066727d8826c"
}
Формат оповещений
Для оповещений о результатах оплат с применением метода Trustly используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 200
пользователь 1
успешно совершил оплату на сумму 20,00 EUR
.
Рис.: Пример оповещения о проведенной оплате
{ "project_id": 200, "payment": { "id": "ECT_TEST_1561994171758", "type": "purchase", "status": "success", "date": "2019-07-01T15:26:40+0000", "method": "trustly", "sum": { "amount": 2000, "currency": "EUR" }, "description": "ECT_TEST_1561994171752" }, "customer": { "id": "1" }, "operation": { "id": 28970000003316, "type": "sale", "status": "decline", "date": "2019-07-01T15:26:40+0000", "created_date": "2019-07-01T15:26:08+0000", "request_id": "63088b14f83a0bb48882dedfe2cc7fa6aaff", "sum_initial": { "amount": 2000, "currency": "EUR" }, "sum_converted": { "amount": 2000, "currency": "EUR" }, "provider": { "id": 1246, "payment_id": "1076832", "date": "2019-07-01T15:26:39+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "GLZgBiriazPCzp3Kj+Pso7V1FNJvNc0WssilWp0lPfM0sUV0Bv3LZl KumYVzCi6wy9eTBEyl14X4HYxNwZJ94Q==" } }
В следующем примере оплата была отклонена владельцем аккаунта.
Рис.: Пример оповещения об отказе в проведении оплаты
{
"project_id": 200,
"payment": {
"id": "ECT_TEST_1561994171758",
"type": "purchase",
"status": "decline",
"date": "2019-07-01T15:26:40+0000",
"method": "trustly",
"sum": {
"amount": 2000,
"currency": "EUR"
},
"description": "ECT_TEST_1561994171752"
},
"customer": {
"id": "1"
},
"operation": {
"id": 28970000003316,
"type": "sale",
"status": "decline",
"date": "2019-07-01T15:26:40+0000",
"created_date": "2019-07-01T15:26:08+0000",
"request_id": "63088b14f83a0bb48882dedfe2cc7fa6aaff",
"sum_initial": {
"amount": 2000,
"currency": "EUR"
},
"sum_converted": {
"amount": 2000,
"currency": "EUR"
},
"provider": {
"id": 1246,
"payment_id": "1076832",
"date": "2019-07-01T15:26:39+0000",
"auth_code": ""
},
"code": "20301",
"message": "Account owner cancelled operation"
},
"signature": "GLZgBiriazPCzp3Kj+Pso7V1FNJvNc0WssilWp0lPfM0sUV0Bv3LZl
KumYVzCi6wy9eTBEyl14X4HYxNwZJ94Q=="
}
}
Дополнительные материалы
Для организации работы с оплатами через Gate также могут быть полезны следующие материалы:
Повторяемые оплаты через Payment Page
Общая информация
Метод Trustly поддерживает проведение повторяемых оплат трёх типов: экспресс-оплаты, регулярные оплаты и автооплаты. Подробнее о типах повторяемых оплат — Регистрация повторяемых оплат.
Регистрация повторяемых оплат через Payment Page может быть проведена при проведении первоначального платежа, когда пользователь даёт согласие на проведение повторяемых оплат на платёжной форме Trustly. Далее экспресс-оплаты могут проводиться без повторной авторизации пользователя на платёжной форме Trustly через Payment Page и Gate. Регулярные и автооплаты проводятся без участия пользователя через Gate (подробнее — в разделе Повторяемые оплаты через Gate).
Регистрация повторяемых оплат
- оповещение о проведении успешной оплаты,
- повторное оповещение о проведении успешной оплаты с информацией о зарегистрированных повторяемых оплатах (на следующий рабочий день).
Информация о зарегистрированном повторяемом платеже содержится в объекте recurring
.
Рис.: Пример оповещения о регистрации повторяемых оплат
{ "project_id": 1625, "payment": { "id": "ID_1234567890000", "type": "purchase", "status": "success", "date": "2019-09-16T15:18:02+0000", "method": "trustly", "sum": { "amount": 100, "currency": "EUR" }, "description": "Trustly sale transaction" }, "account": { "number": "1902377919" }, "customer": { "id": "123" }, "recurring": { "id": 1007592570, "currency": "EUR", "valid_thru": "2020-01-31T00:00:00+0000" }, "operation": { "id": 6841000003665, "type": "sale", "status": "success", "date": "2019-09-16T15:18:03+0000", "created_date": "2019-09-16T15:15:13+0000", "request_id": "==request id==", "sum_initial": { "amount": 100, "currency": "EUR" }, "sum_converted": { "amount": 100, "currency": "EUR" }, "provider": { "id": 1322, "payment_id": "1784257774", "date": "2019-09-16T15:18:02+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "ajfgtBiriazPCzp3Kj+Pso7V1FNJvNc0WssilWp0lPfM0sUV0Bv3LZl KumYVzCi6wy9eTBEyl14X4HYxNwZJ94Q==" }
Проведение экспресс-оплат
После успешной регистрации экспресс-оплаты могут проходить без авторизации пользователя с использованием сохранённых данных. В таком случае они проходят по следующей схеме:
Рис.: Проведение экспресс-оплаты через Payment Page
- Пользователь на стороне веб-сервиса инициирует оплату.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
- Запрос на проведение оплаты поступает в платёжную платформу.
- Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
- Осуществляется генерация Payment Page согласно настройкам проекта и параметрам вызова.
- Пользователю отображается сгенерированная платёжная форма.
- Пользователь выбирает для оплаты метод Trustly.
- Пользователю отображается список сохранённых платёжных инструментов.
- Пользователь выбирает сохранённый платёжный инструмент.
- Запрос на проведение оплаты через Trustly поступает в платёжную платформу.
- Выполняются дальнейшая обработка запроса и его отправка в сервис Trustly.
- На стороне Trustly выполняется обработка запроса на оплату.
- От сервиса Trustly к платёжной платформе направляется результат оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- От платёжной платформы к Payment Page направляется результат проведения оплаты.
- Результат оплаты отображается пользователю на Payment Page.
Формат оповещений
Для оповещений о результатах экспресс-оплат с применением метода Trustly используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 1625
для пользователя 123
проведена повторяемая оплата на сумму 1,00 EUR
.
Рис.: Пример оповещения о проведённой повторяемой оплате
{ "project_id": 1625, "payment": { "id": "ID_1568639174831", "type": "recurring", "status": "success", "date": "2019-09-17T07:12:03+0000", "method": "trustly", "sum": { "amount": 100, "currency": "EUR" }, "description": "Trustly COF purchase" }, "customer": { "id": "123" }, "recurring": { "id": 1007592570, "currency": "EUR" }, "operation": { "id": 2110000003671, "type": "recurring", "status": "success", "date": "2019-09-17T07:12:03+0000", "created_date": "2019-09-17T07:10:02+0000", "request_id": "63088b14f83a0bb48882dedfe2cc7fa6aaff", "sum_initial": { "amount": 100, "currency": "EUR" }, "sum_converted": { "amount": 100, "currency": "EUR" }, "provider": { "id": 1322, "payment_id": "1562050323", "date": "2019-09-17T07:12:01+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "khgsuyriazPCzp3Kj+Pso7V1FNJvNc0WssilWp0lPfM0sUV0Bv3LZl sgjhVzCi6wy9eTBEyl14X4HYxNwZJ94Q==" }
Повторяемые оплаты через Gate
Общая информация
Метод Trustly поддерживает проведение повторяемых оплат трёх типов: экспресс-оплаты, регулярные оплаты и автооплаты. Подробнее о типах повторяемых оплат — Общая информация.
Регистрация повторяемых оплат может быть выполнена двумя способами: при проведении первоначальной оплаты и во время проверки действительности платёжного инструмента. В обоих случаях пользователь даёт согласие на проведение повторяемых оплат на платёжной форме Trustly. Далее экспресс-оплаты могут проводиться без повторной авторизации пользователя на платёжной форме Trustly через Payment Page и Gate. Регулярные и автооплаты проводятся без участия пользователя через Gate.
Регистрация с помощью проверки действительности счёта
Схема регистрации повторяемых оплат с помощью запроса на проверку действительности счёта представлена далее.
Рис.: Схема регистрации через Gate
- Пользователь на стороне веб-сервиса инициирует проверку счёта в Trustly.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение проверки через Gate.
- Запрос на проведение проверки поступает в платёжную платформу ecommpay.
- Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
- В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис Trustly.
- На стороне Trustly выполняется обработка запроса на проверку.
- От сервиса Trustly к платёжной платформе передаются данные для перенаправления пользователя к сервису Trustly.
- От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя в Trustly в объекте redirect_data.
- Пользователь перенаправляется в сервис Trustly.
- Пользователь выполняет необходимые действия для проверки счёта и соглашается на регистрацию повторяемых оплат.
- На стороне сервиса Trustly выполняется проверка счёта пользователя.
- От сервиса Trustly к платёжной платформе направляется результат проверки.
- От платёжной платформы к веб-сервису направляется оповещение о результате проверки.
- От сервиса Trustly к платёжной платформе направляется подтверждение регистрации повторяемых платежей. Данное оповещение обычно отправляется на следующий рабочий день после проведения проверки действительности счёта.
- От платёжной платформы к веб-сервису направляется повторное оповещение о результатах проверки с информацией о зарегистрированных повторяемых оплатах.
Формат запросов на проверку действительности счёта пользователя
При работе с запросами на оплаты с применением метода Trustly необходимо учитывать следующее:
- Должен использоваться запрос
/v2/payment/online-banking/trustly/account_verification
, отправляемый методом POST. Этот запрос относится к группе запросов на проверку действительности платёжного инструмента: /v2/payment/online-banking/{payment_method}/account_verification. - В запросе должны использоваться следующие объекты и параметры:
general
— основные сведения:project_id
— идентификатор проекта,payment_id
— идентификатор платежа,signature
— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
customer
— сведения о пользователе:id
— идентификатор, уникальный в рамках проекта,ip_address
— используемый IP-адрес;
payment
— сведения о платеже:amount
— сумма (всегда равна0
),currency
— валюта платежа в формате ISO-4217 alpha-3;
return_url
— URL для перенаправления пользователя:success
— при успехе,decline
— при неудаче;
recurring_register
— признак необходимости регистрации повторяемых оплат. Значение параметра должно бытьtrue
.recurring
— сведения о регистрации повторяемых оплат:type
— тип регистрируемых повторяемых оплат (экспресс-оплаты —C
, регулярные оплаты —R
, автооплаты —U
),- Параметры, обязательные только для регулярных оплат:
time
— время проведения повторяемой оплаты,expiry_year
— год окончания действия подписки,expiry_month
— месяц окончания действия подписки,expiry_day
— день окончания действия подписки,interval
— интервал между платежами в единицах выбранного периода,amount
— сумма повторяемой оплаты,period
— периодичность проведения повторяемых оплат (D
— каждый день,W
— каждую неделю,M
— каждый месяц,Q
— каждый квартал илиY
— каждый год),scheduled_payment_id
— идентификатор следующей повторяемой оплаты,start_date
— дата и время следующей повторяемой оплаты.
- Валютой платежа может быть любая, указанная в разделе Характеристика.
Рис.: Пример запроса на проверку действительности счёта пользователя для регистрации повторяемых оплат
{
"general": {
"project_id": 1625,
"payment_id": "ID_1234567890001"
},
"customer": {
"id": "123",
"ip_address": "1.2.3.4"
},
"payment": {
"amount": 0,
"currency": "EUR"
},
"recurring_register": true,
"recurring": {
"type": "U",
"expiry_year": 2020,
"expiry_month": 1
}
}
Формат оповещений
Рис.: Пример оповещения о действительности счёта пользователя в Trustly
{ "project_id": 1625, "payment": { "id": "ID_1234567890001852", "type": "account_verification", "status": "success", "date": "2019-09-17T07:19:03+0000", "method": "trustly", "sum": { "amount": 0, "currency": "EUR" }, "description": "Trustly account verification" }, "account": { "number": "1902377919" }, "customer": { "id": "123", "phone": "123456789" }, "operation": { "id": 4311000003631, "type": "account verification", "status": "success", "date": "2019-09-17T07:19:03+0000", "created_date": "2019-09-17T07:16:47+0000", "request_id": "482f8f5649984daa9e09a4e0dfa03170947b5fd842", "sum_initial": { "amount": 0, "currency": "EUR" }, "sum_converted": { "amount": 0, "currency": "EUR" }, "provider": { "id": 1322, "payment_id": "1212450138", "date": "2019-09-17T07:19:02+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "SkqaFkJww6bqUnh+4qslJyIRKlwjqenv5knXcTTaTLMCUT1Jjs2zHrbFl w5sKRxtDRmnwlwKNGQqROpCrpOCNw==" }
Рис.: Пример оповещения о регистрации повторяемых оплат
{ "project_id": 1625, "payment": { "id": "ID_1234567890001", "type": "account_verification", "status": "success", "date": "2019-09-09T11:28:25+0000", "method": "trustly", "sum": { "amount": 0, "currency": "EUR" }, "description": "Trustly account verification" }, "account": { "number": "7840142519" }, "customer": { "id": "123", "phone": "40000000361" }, "recurring": { "id": 63374, "currency": "EUR", "valid_thru": "2035-01-31T00:00:00+0000" }, "operation": { "id": 6517218122349, "type": "account verification", "status": "success", "date": "2019-09-09T11:28:27+0000", "created_date": "2019-09-09T11:28:20+0000", "request_id": "482f8f5649984daa9e09a4e0dfa03170947b5fd842", "sum_initial": { "amount": 0, "currency": "EUR" }, "sum_converted": { "amount": 0, "currency": "EUR" }, "provider": { "id": 1407, "payment_id": "15680285012", "date": "2019-09-09T11:28:25+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "SkqaFkJww6bqUnh+4qslJyIRKlwjqenv5knXcTTaTLMCUT1Jjs2zHrbFl w5sKRxtDRmnwlwKNGQqROpCrpOCNw==" }
Регистрация с помощью первоначального платежа
- оповещение о проведении успешной оплаты,
- повторное оповещение о проведении успешной оплаты с информацией о зарегистрированных повторяемых оплатах (на следующий рабочий день).
Рис.: Пример оповещения о регистрации повторяемых оплат
{ "project_id": 1625, "payment": { "id": "ID_1234567890000", "type": "purchase", "status": "success", "date": "2019-09-16T15:18:02+0000", "method": "trustly", "sum": { "amount": 100, "currency": "EUR" }, "description": "Trustly sale transaction" }, "account": { "number": "1902377919" }, "customer": { "id": "123" }, "recurring": { "id": 1007592570, "currency": "EUR", "valid_thru": "2020-01-31T00:00:00+0000" }, "operation": { "id": 6841000003665, "type": "sale", "status": "success", "date": "2019-09-16T15:18:03+0000", "created_date": "2019-09-16T15:15:13+0000", "request_id": "khafkuasf575akhafykhaj0cd7absw", "sum_initial": { "amount": 100, "currency": "EUR" }, "sum_converted": { "amount": 100, "currency": "EUR" }, "provider": { "id": 1322, "payment_id": "1784257774", "date": "2019-09-16T15:18:02+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "ajfgtBiriazPCzp3Kj+Pso7V1FNJvNc0WssilWp0lPfM0sUV0Bv3LZl KumYVzCi6wy9eTBEyl14X4HYxNwZJ94Q==" }
Проведение экспресс-оплат
После регистрации платежи проводятся без авторизации пользователя с использованием сохранённых данных. В таком случае они проводятся по следующей схеме:
Рис.: Проведение экспресс-оплат через Gate
- Пользователь на стороне веб-сервиса инициирует оплату через Trustly с использованием сохранённых данных.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate.
- Запрос на проведение оплаты поступает в платёжную платформу ecommpay.
- Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
- В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис Trustly.
- На стороне Trustly выполняется обработка запроса на оплату.
- От сервиса Trustly к платёжной платформе направляется уведомление о результате оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- От веб-сервиса пользователю направляется результат оплаты.
Формат запросов для экспресс-оплат
При работе с запросами на проведение экспресс-оплат с применением метода Trustly необходимо учитывать следующее:
- Должен использоваться запрос
v2/payment/online-banking/trustly/sale/saved
, отправляемый методом POST. Этот запрос относится к группе запросов: /v2/payment/online-banking/{payment_method}/sale/saved. - В запросе должны использоваться следующие объекты и параметры:
general
— основные сведения:project_id
— идентификатор проекта,payment_id
— идентификатор платежа,signature
— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
customer
— сведения о пользователе:id
— идентификатор, уникальный в рамках проекта,ip_address
— используемый IP-адрес,
payment
— сведения о платеже:amount
— сумма,currency
— валюта платежа в формате ISO-4217 alpha-3;
return_url
— URL для перенаправления пользователя:success
— при успехе,decline
— при неудаче;
recurring_id
— идентификатор повторяемой оплаты.
- Валютой платежа может быть любая, указанная в разделе Характеристика.
Таким образом, корректный запрос на проведение экспресс-оплаты с применением метода Trustly должен содержать основные данные запроса, информацию о пользователе, платеже, URL для перенаправления, а также идентификатор повторяемой оплаты:
Рис.: Пример запроса
{ "general": { "project_id": 1625, "payment_id": "ID_1568639174831" }, "customer": { "id": "123", "ip_address": "1.1.1.1" }, "payment": { "amount": 100, "currency": "EUR", "description": "Trustly one-click transaction" }, "recurring": { "id": 62944 } }
Формат запросов для регулярных оплат и автооплат
- Должен использоваться запрос
/v2/payment/online-banking/trustly/recurring
, отправляемый методом POST. Этот запрос относится к группе запросов на проведение платежей через интернет-банкинг: /v2/payment/online-banking/{payment_method}/recurring. - В запросе должны использоваться следующие объекты и параметры:
general
— основные сведения:project_id
— идентификатор проекта,payment_id
— идентификатор платежа,signature
— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
customer
— сведения о пользователе:id
— идентификатор, уникальный в рамках проекта,ip_address
— используемый IP-адрес,
payment
— сведения о платеже:amount
— сумма,currency
— валюта платежа в формате ISO-4217 alpha-3;
recurring_id
— идентификатор зарегистрированной повторяемой оплаты.
- Валютой платежа может быть любая, указанная в разделе Характеристика.
Таким образом, корректный запрос на повторяемую оплату с применением метода Trustly должен содержать основные данные запроса, информацию о пользователе, платеже и идентификатор повторяемой оплаты:
Рис.: Пример запроса
{ "general": { "project_id": 1625, "payment_id": "ID_1568639174831" }, "customer": { "id": "123", "ip_address": "1.1.1.1" }, "payment": { "amount": 100, "currency": "EUR", "description": "Trustly recurring transaction" }, "recurring": { "id": 1007592570 } }
Формат оповещений
Для оповещений о результатах повторяемых оплат с применением метода Trustly используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 1625
для пользователя 123
проведена повторяемая оплата на сумму 1,00 EUR
.
Рис.: Пример оповещения о проведённой повторяемой оплате
{ "project_id": 1625, "payment": { "id": "ID_1568639174831", "type": "recurring", "status": "success", "date": "2019-09-17T07:12:03+0000", "method": "trustly", "sum": { "amount": 100, "currency": "EUR" }, "description": "Trustly COF purchase" }, "customer": { "id": "123" }, "recurring": { "id": 1007592570, "currency": "EUR" }, "operation": { "id": 2110000003671, "type": "recurring", "status": "success", "date": "2019-09-17T07:12:03+0000", "created_date": "2019-09-17T07:10:02+0000", "request_id": "63088b14f83a0bb48882dedfe2cc7fa6aaff", "sum_initial": { "amount": 100, "currency": "EUR" }, "sum_converted": { "amount": 100, "currency": "EUR" }, "provider": { "id": 1322, "payment_id": "1562050323", "date": "2019-09-17T07:12:01+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "khgsuyriazPCzp3Kj+Pso7V1FNJvNc0WssilWp0lPfM0sUV0Bv3LZl sgjhVzCi6wy9eTBEyl14X4HYxNwZJ94Q==" }
Возвраты через Gate
Общая информация
Trustly поддерживает проведение полных и частичных возвратов. Для проведения возврата через Gate с использованием метода Trustly со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Полная схема проведения возврата представлена далее.
Рис.: Проведение возврата через Gate
- Пользователь запрашивает возврат.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение возврата.
- Запрос на проведение возврата поступает в платёжную платформу ecommpay.
- Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
- В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис Trustly.
- На стороне Trustly выполняется обработка платежа.
- От Trustly к платёжной платформе направляется оповещение о результате.
- От платёжной платформы к веб-сервису направляется оповещение о результате.
- От веб-сервиса пользователю направляется результат возврата.
Информация о формате запросов и параметрах инициации возвратов методом Trustly через Gate, а также о формате оповещений о результатах выплат приведена далее, общая информация о работе с API см. в разделе Работа с API.
Формат запросов
При работе с запросами на возврат с применением метода Trustly необходимо учитывать следующее:
- Должен использоваться запрос
/v2/payment/online-banking/trustly/refund
, отправляемый методом POST. Этот запрос относится к группе запросов интернет-банкинга: /v2/payment/online-banking/{payment_method}/refund. - В запросе должны использоваться следующие объекты и параметры:
general
— основные сведения:project_id
— идентификатор проекта,payment_id
— идентификатор платежа, по которому проводится возврат,signature
— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
customer
— сведения о пользователе:ip_address
— используемый IP-адрес;
payment
— сведения о платеже:amount
— сумма возврата в дробных единицах валюты (обязательный при частичном возврате),currency
— валюта возврата в формате ISO-4217 alpha-3 (обязательный при частичном возврате),description
— комментарий или описание возврата.
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Таким образом, корректный запрос на частичный возврат с применением метода Trustly должен содержать идентификаторы проекта и платежа, подпись, сумма и валюта возврата:
Рис.: Пример запроса на возврат
"general": {
"project_id": 239,
"payment_id": "182",
"signature": "of8k9xerKSKpFBR4XL1QFaDH3p9Mh0CIcjmOwSwKJ7agjhcaukyKLTZYO56
lCv+f1M0Sf/7eg=="
},
"customer": {
"ip_address": "1.2.3.4"
},
"payment": {
"amount": 10000,
"currency": "EUR"
"description": "test refund"
}
Формат оповещений
Для оповещений о результатах возврата с применением метода Trustly используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 1625
для пользователя 125
был успешно проведён возврат на счёт № 1902377919
.
Рис.: Пример оповещения о проведенном возврате
{
"project_id": 1625,
"payment": {
"id": "ID_1234567890000",
"type": "purchase",
"status": "partially refunded",
"date": "2019-09-18T12:25:39+0000",
"method": "trustly",
"sum": {
"amount": 500,
"currency": "EUR"
},
"description": "test payment"
},
"account": {
"number": "1902377919"
},
"customer": {
"id": "123"
},
"operation": {
"id": 6841000003971,
"type": "refund",
"status": "success",
"date": "2019-09-18T12:25:39+0000",
"created_date": "2019-09-18T12:25:36+0000",
"request_id": "719ecb2f23f3d482fabb0c5994700fb36b020735ba3c2ae",
"sum_initial": {
"amount": 500,
"currency": "EUR"
},
"sum_converted": {
"amount": 500,
"currency": "EUR"
},
"provider": {
"id": 1322,
"payment_id": "1784257774",
"date": "2019-09-18T12:25:37+0000",
"auth_code": ""
},
"code": "0",
"message": "Success"
},
"signature": "xCafDfCf+h8/5+SB+o6vUQDVS7+C11AZm955u4nasFDam/fdxqmNnnY
KGzFXZZZChOTwnZxttFi+nDhLMcYMzA=="
}
В следующем примере возврат был отклонён по причине того, что аккаунт пользователя истёк или недоступен.
Рис.: Пример оповещения об отказе в проведении возврата
{
"project_id": 1625,
"payment": {
"id": "ID_1234567890000",
"type": "purchase",
"status": "success",
"date": "2019-09-18T12:25:39+0000",
"method": "trustly",
"sum": {
"amount": 500,
"currency": "EUR"
},
"description": "test payment"
},
"account": {
"number": "1902377919"
},
"customer": {
"id": "123"
},
"operation": {
"id": 6841000003971,
"type": "refund",
"status": "decline",
"date": "2019-09-18T12:25:39+0000",
"created_date": "2019-09-18T12:25:36+0000",
"request_id": "719ecb2f23f3d482fabb0c5994700fb36b020735ba3c2ae",
"sum_initial": {
"amount": 500,
"currency": "EUR"
},
"sum_converted": {
"amount": 500,
"currency": "EUR"
},
"provider": {
"id": 1322,
"payment_id": "1784257774",
"date": "2019-09-18T12:25:37+0000",
"auth_code": ""
},
"code": "20106",
"message": "Customer account is no longer available"
},
"signature": "xCafDfCf+h8/5+SB+o6vUQDVS7+C11AZm955u4nasFDam/fdxqmNnnY
KGzFXZZZChOTwnZxttFi+nDhLMcYMzA=="
}
Дополнительные материалы
Для организации работы с возвратами через Gate также могут быть полезны следующие материалы:
Выплаты через Gate
Общая информация
Для выплаты через Gate с использованием метода Trustly со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате выплаты. Полная схема проведения выплаты представлена далее.
Рис.: Проведение выплаты через Gate
- Пользователь на стороне веб-сервиса инициирует выплату через Trustly.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение выплаты через Gate.
- Запрос на проведение выплаты поступает в платёжную платформу.
- Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
- В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис Trustly.
- На стороне Trustly выполняется обработка платежа.
- От Trustly к платёжной платформе направляется оповещение о результате.
- От платёжной платформы к веб-сервису направляется оповещение о результате.
- От веб-сервиса пользователю направляется результат выплаты.
Если выплате после подтверждения со стороны сервиса Trustly присвоен статус success
, но зачислить средства пользователю по каким-либо причинам невозможно, то после получения уведомления об этом в платёжной платформе инициируется отмена выплаты. В этом случае со стороны веб-сервиса дополнительно необходимо принять оповещение об отмене выплаты, описание формата которого представлено в разделе Формат оповещений.
Информация о формате запросов и параметрах инициации выплат методом Trustly через Gate, а также о формате оповещений о результатах выплат приведена далее, общая информация о работе с API см. в разделе Работа с API.
Формат запросов
При работе с запросами на выплаты с применением метода Trustly необходимо учитывать следующее:
- Должен использоваться запрос к конечной точке
/v2/payment/online-banking/trustly/payout
, отправляемый методом POST. Этот запрос относится к группе запросов интернет-банкинга: /v2/payment/online-banking/{payment_method}/payout. - В запросе должны использоваться следующие объекты и параметры:
- general — объект, содержащий основные идентификационные сведения запроса:
- project_id — идентификатор проекта, полученный от ecommpay при интеграции;
- payment_id — идентификатор платежа, уникальный в рамках проекта;
- signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
- payment — объект, содержащий сведения о платеже:
- amount — сумма выплаты в дробных единицах,
- currency — валюта платежа в формате ISO-4217 alpha-3;
- customer — объект, содержащий сведения о пользователе:
- id — идентификатор, уникальный в рамках проекта,
- first_name — имя,
- last_name — фамилия,
- ip_address — используемый IP-адрес,
- account — объект, содержащий сведения о банковском счёте получателя:
- number — номер счёта,
- clearinghouse — страна, в которой зарегистрирован межбанковский расчётный центр, с которым сотрудничает банк получателя. Допустимые значения параметра указаны в таблице Соответствие значений параметров,
- bank_code — международный банковский идентификационный код (БИК или SWIFT) или код, специфичный для межбанковских расчётных центров некоторых стран, указанных в таблице Соответствие значений параметров (в таких случаях значение параметра определяется регулярным выражением),
Допустимые значения параметров number и bank_code зависят от значения параметра clearinghouse. Значение параметра number определяется регулярными выражениями, соответствующими указанному значению параметра clearinghouse. Значение параметра bank_code определятся регулярными выражениями только когда в значении этого параметра не требуется указать БИК или SWIFT-код, в остальных случаях значение не определяется регулярным выражением (соответствующие ячейки таблицы не заполнены). В следующей таблице указаны соответствия значений параметра clearinghouse и регулярных выражений.
Табл. 1. Соответствие значений параметров clearinghouse bank_code number AUSTRIA ^AT[0-9]{18}$ BELGIUM ^BE[0-9]{14}$ BULGARIA ^BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}$ CROATIA ^HR[0-9]{2}[0-9]{7}[0-9]{10}$ CYPRUS ^CY[0-9]{10}[0-9A-Z]{16}$ CZECH_REPUBLIC ^[0-9]{4}$ ^[0-9]{16}$ DENMARK ^[0-9]{4}$ ^[0-9]{4,10}$ ESTONIA ^[0-9]{2}$ ^[0-9]{4,14}$ FINLAND ^FI[0-9]{16}$ FRANCE ^FR[0-9]{12}[0-9A-Z]{11}[0-9]{2}$ GERMANY ^DE[0-9]{20}$ GREECE ^GR[0-9]{25}$ HUNGARY ^[0-9]{8}$ ^[0-9]{24}$ IRELAND ^IE[0-9]{2}[A-Z]{4}[0-9]{14}$ ITALY ^IT[0-9]{2}[A-Z][0-9]{10}[0-9A-Z]{12}$ LATVIA ^LV[0-9]{2}[A-Z]{4}[0-9A-Z]{13}$ LITHUANIA ^LT[0-9]{18}$ LUXEMBOURG ^LU[0-9]{18}$ MALTA ^MT[0-9]{2}[A-Z]{4}[0-9]{5}[0-9A-Z]{18}$ NETHERLANDS ^NL[0-9]{2}[A-Z]{4}[0-9]{10}$ NORWAY ^[0-9]{4}$ ^[0-9]{7}$ POLAND ^PL[0-9]{26}$ PORTUGAL ^[0-9]{8}$ ^[0-9]{13}$ ROMANIA ^RO[0-9]{2}[A-Z]{4}[0-9A-Z]{16}$ SLOVAKIA ^SK[0-9]{22}$ SLOVENIA ^SI56[0-9]{15}$ SPAIN ^ES[0-9]{22}$ SWEDEN ^[0-9]{4,5}$ ^[0-9]{1,15}$ UNITED_KINGDOM ^[0-9]{6}$ ^[0-9]{8}$
- general — объект, содержащий основные идентификационные сведения запроса:
- Мерчантам, оказывающим услуги, связанные с переводами денежных средств на электронные кошельки или в другие кредитные организации, когда отправителем является не мерчант, но третья сторона, необходимо указать данные отправителя в объекте
additional_data.sender
:party_type
— тип отправителя: "PERSON" или "ORGANISATION",first_name
— имя отправителя или название организации,last_name
— фамилия отправителя илиnull
для организации,address
— адрес отправителя (за исключением страны),country
— страна отправителя в формате ISO 3166-1 alpha-2.
- Валютой платежа может быть любая, указанная в разделе Характеристика.
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Таким образом, корректный запрос на выплату с применением метода Trustly должен содержать идентификаторы проекта и платежа, подпись, валюту и сумму платежа данные пользователя и банковского счёта:
Рис.: Пример запроса на выплату
{ "general": { "project_id": 112, "payment_id": "ECT_TEST_156" }, "payment": { "amount": 100, "currency": "EUR", "description": "Trustly account payout" }, "customer": { "id": "123", "first_name": "Ada", "last_name": "Lovelace", "ip_address": "1.1.1.1" }, "account": { "clearinghouse": "SWEDEN", "bank_code": "1234", "number": "21312" } }
Формат оповещений
Для оповещений о результатах выплат с применением метода Trustly используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 1625
для пользователя 123
была успешно проведена выплата в размере 50,00 EUR
.
Рис.: Пример оповещения о проведенной выплате
{ "project_id": 1625, "payment": { "id": "ECT_TEST_1568711984262232", "type": "payout", "status": "success", "date": "2019-09-18T07:18:03+0000", "method": "trustly", "sum": { "amount": 5000, "currency": "EUR" }, "description": "Trustly payout" }, "account": { "number": "1902377919" }, "customer": { "id": "123" }, "operation": { "id": 20988000004401, "type": "payout", "status": "success", "date": "2019-09-18T07:18:03+0000", "created_date": "2019-09-18T07:12:38+0000", "request_id": "821d7c5b4d08587252da9834ab50590d8d4d976d26801a", "sum_initial": { "amount": 5000, "currency": "EUR" }, "sum_converted": { "amount": 5000, "currency": "EUR" }, "provider": { "id": 1322, "payment_id": "3063307773", "date": "2019-09-18T07:13:03+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "fKyx/vYDhDNxQ0myVETvkXfj7r+4Z1lcEp/7dbL4ip+XtpiYp/onBiqLn QkeKm+cVJJ71MlOSgr5CXprwe8LPw==" }
В следующем примере выплата была отклонена из-за недостатка средств на счёте для выплаты.
Рис.: Пример оповещения об отказе в проведении выплаты
{ "project_id": 1625, "payment": { "id": "ECT_TEST_1568711984262232", "type": "payout", "status": "decline", "date": "2019-09-18T07:18:03+0000", "method": "trustly", "sum": { "amount": 5000, "currency": "EUR" }, "description": "Trustly payout" }, "account": { "number": "1902377919" }, "customer": { "id": "123" }, "operation": { "id": 20988000004401, "type": "payout", "status": "decline", "date": "2019-09-18T07:18:03+0000", "created_date": "2019-09-18T07:12:38+0000", "request_id": "821d7c5b4d08587252da9834ab50590d8d4d976d26801a", "sum_initial": { "amount": 5000, "currency": "EUR" }, "sum_converted": { "amount": 5000, "currency": "EUR" }, "provider": { "id": 1322, "payment_id": "3063307773", "date": "2019-09-18T07:13:03+0000", "auth_code": "" }, "code": "3028", "message": "Insufficient funds on merchant balance" }, "signature": "jfhgfvYDhDNxQ0myVETvkXfj7r+4Z1lcEp/7dbL4ip+XtpiYp/onBiqLn QkeKm+cVJJ71MlOSgr5CXprwe8LPw==" }
В следующем примере выплата была отменена из-за отказа со стороны банка.
Рис.: Пример оповещения об отмене выплаты
{ "customer": { "id": "123999" }, "account": { "number": "20227678" }, "project_id": 10801, "payment": { "id": "16042021_002", "type": "payout", "status": "reversed", "date": "2021-04-16T14:41:57+0000", "method": "trustly", "sum": { "amount": 100, "currency": "EUR" }, "description": "Trustly Payout" }, "operation": { "id": 13858010014811, "type": "payout reversal", "status": "success", "date": "2021-04-16T14:41:57+0000", "created_date": "2021-04-16T14:41:57+0000", "request_id": "153cb9c8b675-9c397f2dbec1bc-00013859", "sum_initial": { "amount": 100, "currency": "EUR" }, "sum_converted": { "amount": 100, "currency": "EUR" }, "code": "0", "message": "Success", "provider": { "id": 1322, "payment_id": "6777981238" } }, "signature": "S3Hc3cND9GVS1zITz/UVEE8ZEVWqEw==" } }
Дополнительные материалы
Для организации работы с выплатами через Gate также могут быть полезны следующие материалы:
Анализ результатов проведения платежей
Как и при работе с другими платёжными методами, которые предоставляет ecommpay, при использовании метода Trustly доступны разные способы анализа информации о платежах и операциях с применением этого метода — как в отдельности, так и в совокупности с другими методами.
Всю необходимую информацию можно получать и анализировать средствами Dashboard, в том числе с помощью аналитических панелей на вкладке Analytics.
Также можно выгружать нужную информацию для последующего анализа с помощью специализированных аналитических средств сторонних разработчиков:
- Dashboard позволяет выгружать данные в форматах CSV и XLS с помощью инструментов на вкладке Платежи. При этом можно выполнять разовые выгрузки информации на локальный компьютер и задействовать периодическую выгрузку и отправку информации на заданные адреса электронной почты.
- Data API позволяет получать информацию в формате JSON и отправлять ее на заданный URL — для этого применяются запросы /operations/get.
С любыми вопросами о возможностях анализа можно обращаться в службу технической поддержки ecommpay.