Sofort

Обзор

Введение

Sofort — метод, позволяющий проводить платежи в евро с использованием банковских счетов и платёжных карт в некоторых странах Европы. Для этого метода в платёжной платформе ecommpay поддерживаются оплаты. Вместе с тем, для выполнения возвратов по оплатам, проведённым методом Sofort, могут использоваться выплаты комплементарным методом Выплаты на банковские счета в ЕЗПЕ (SEPA).

В этой статье представлена информация о работе с методом Sofort: обзорный раздел с общими сведениями и последующие разделы с информацией о действиях, необходимых со стороны мерчанта для решения разных задач.

Прим.:

Для работы с методом Sofort в настоящее время поддерживается два варианта: новый, описанный в данном разделе, и старый, описанный в разделе Sofort (legacy).

Подробности о разнице между этими вариантами и о способах перехода со старого на новый стоит уточнять у курирующих менеджеров ecommpay.

Характеристика

Тип платёжного метода банковские платежи
Платёжные инструменты
  • банковские счета
  • платёжные карты
Регионы использования AT, BE, DE, CH, ES, NL
Валюты платежей EUR
Конвертация валют на стороне ecommpay
Разовые оплаты +
Повторяемые оплаты
Полные возвраты
Частичные возвраты
Выплаты
Опротестования
Особенности
  • при проведении оплат может использоваться процедура получения подтверждения о зачислении средств; для её подключения необходимо обращаться к курирующему менеджеру ecommpay
  • для выполнения возвратов можно использовать выплаты комплементарным методом Выплаты на банковские счета в ЕЗПЕ (SEPA)
Организация и стоимость подключения по согласованию с курирующим менеджером ecommpay; дополнительную информацию можно получить в ecommshop

Схема работы

В проведении отдельного платежа с использованием метода Sofort задействуются веб-сервис мерчанта, один из интерфейсов, а также технические средства сервиса Sofort.



Основные операции

Для проведения оплат с использованием метода Sofort применяются интерфейсы Gate и Payment Page, при этом ограничения по суммам и времени выполнения операций зависят от банков, поддерживающих оплату этим методом.

Сценарии использования

Оплаты с использованием метода Sofort проводятся с перенаправлением пользователей к сервису Sofort. При этом для оплат могут использоваться два варианта: с подтверждением зачисления средств на счёт получателя и без подтверждения. Такие подтверждения могут быть полезны при работе с некоторыми банками, поскольку обработка платежей на стороне сервиса Sofort и этих банков может занимать продолжительное время (до семи дней и больше) и первичные подтверждения о проведении платежей впоследствии могут опровергаться.

Сценарии выполнения операций через основные интерфейсы платёжной платформы соответствуют представленным на схемах. При использовании дополнительных возможностей (таких как платёжные ссылки) сценарии выполнения операций методом Sofort соответствуют специфике этих возможностей.

Подтверждение зачисления средств

В проведении оплат с использованием метода Sofort могут участвовать банки, и в некоторых случаях обработка платежей на стороне этих банков и сервиса Sofort может занимать продолжительное время (до семи дней и больше). В связи с этим возможны ситуации, когда первичная информация о проведении или отклонении платежа не соответствует итоговому результату (например, при получении информации об отклонении платежа средства могут быть зачислены на счёт получателя позднее, и наоборот).

Чтобы обеспечить корректное уведомление мерчантов о состоянии платежей в таких случаях, в платёжной платформе ecommpay используется процедура подтверждения зачисления средств получателю. При подключении метода Sofort следует согласовывать с курирующим менеджером использование этой процедуры, а также перевод платежей, по которым получено подтверждение о том, что средства не зачислены, в статус reversed или decline (для удобства контроля и анализа платежей).

Подтверждение зачисления средств выполняется следующим образом: после выполнения пользователем всех необходимых действий платёж поступает в обработку на стороне сервиса Sofort, а пользователь возвращается к платёжному интерфейсу (Payment Page или веб-сервиса), где получает информацию о приёме платежа в обработку. В таком случае на стороне платёжной платформы формируется операция payment confirmation, при этом платежу присваивается статус awaiting confirmation до получения со стороны сервисного провайдера информации о зачислении средств и к веб-сервису отправляется соответствующее оповещение о состоянии платежа.

По итогам выполнения операции payment confirmation ей может присваиваться один из следующих статусов:

  • success — при получении подтверждения со стороны сервисного провайдера о зачислении средств получателю. В этом случае платежу присваивается статус success и к веб-сервису отправляется итоговое оповещение с информацией о результате оплаты.
  • decline — при получении информации со стороны сервисного провайдера о том, что средства не зачислены получателю. В этом случае, с учётом свойств проекта, заданных при подключении, допустимы следующие сценарии:
    • На стороне платёжной платформы автоматически формируется операция reversal и к веб-сервису последовательно отправляются соответствующие оповещения: промежуточное, с информацией о том, что средства не были зачислены, и итоговое, с информацией о возврате средств и переводе платежа в статус reversed.
    • Платёж переводится в статус decline и к веб-сервису направляется итоговое оповещение с информацией об отклонении оплаты.

Контролировать изменение статусов платежей при использовании этой процедуры также можно через интерфейс Dashboard.

Использование процедуры зачисления средств при работе через Payment Page и Gate представлено в соответствующих разделах этой статьи. С дополнительными вопросами о работе с процедурой можно обращаться к специалистам ecommpay.

Оплаты через Payment Page

Общая информация

Для проведения оплаты через Payment Page с использованием метода Sofort со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять одно или несколько оповещений. Полная схема проведения оплаты выглядит следующим образом.



Рис.: Проведение оплаты через Payment Page без подтверждения зачисления средств. Описание шагов

  1. Пользователь на стороне веб-сервиса инициирует оплату.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
  3. Запрос на проведение оплаты поступает в платёжную платформу.
  4. В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи.
  5. Осуществляется подготовка Payment Page согласно параметрам проекта и вызова.
  6. Пользователю отображается платёжная форма.
  7. Пользователь выбирает для оплаты метод Sofort.
  8. В платёжную платформу передаётся запрос на проведение оплаты с использованием метода Sofort.
  9. В платёжной платформе выполняются обработка полученного запроса и его отправка в сервис Sofort.
  10. В сервисе Sofort выполняется обработка запроса на оплату.
  11. От сервиса Sofort к платёжной платформе передаются данные для перенаправления пользователя к сервису Sofort.
  12. Данные для перенаправления пользователя передаются к Payment Page.
  13. Пользователь перенаправляется к сервису Sofort.
  14. Пользователь выбирает банк для оплаты, подтверждает оплату и перенаправляется на страницу ожидания результата.
  15. В сервисе Sofort выполняется обработка платежа.
  16. Информация о результате оплаты отображается пользователю в сервисе Sofort.
  17. Пользователь перенаправляется к Payment Page.
  18. От сервиса Sofort к платёжной платформе направляется информация о результате оплаты.
  19. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  20. От платёжной платформы к Payment Page направляется информация о результате оплаты.
  21. Информация о результате оплаты отображается пользователю на Payment Page.


Рис.: Проведение оплаты через Payment Page с подтверждением зачисления средств. Описание шагов

  1. Пользователь на стороне веб-сервиса инициирует оплату.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
  3. Запрос на проведение оплаты поступает в платёжную платформу.
  4. В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи.
  5. Осуществляется подготовка Payment Page согласно параметрам проекта и вызова.
  6. Пользователю отображается платёжная форма.
  7. Пользователь выбирает для оплаты метод Sofort.
  8. В платёжную платформу передаётся запрос на проведение оплаты с использованием метода Sofort.
  9. В платёжной платформе выполняются обработка полученного запроса и его отправка в сервис Sofort.
  10. В сервисе Sofort выполняется обработка запроса на оплату.
  11. От сервиса Sofort к платёжной платформе передаются данные для перенаправления пользователя к сервису Sofort.
  12. Данные для перенаправления пользователя передаются к Payment Page.
  13. Пользователь перенаправляется к сервису Sofort.
  14. Пользователь выполняет необходимые действия для оплаты.
  15. На стороне сервиса Sofort выполняется обработка платежа.
  16. Пользователь перенаправляется к Payment Page.
  17. От сервиса Sofort к платёжной платформе направляется уведомление о состоянии платежа.
  18. От платёжной платформы к веб-сервису направляется оповещение о состоянии платежа.
  19. От платёжной платформы к веб-сервису передаётся информация об обработке платежа на стороне сервиса Sofort.
  20. Пользователю на Payment Page отображается информация об обработке платежа на стороне сервиса Sofort.
  21. После получения информации о зачислении средств получателю от сервиса Sofort к платёжной платформе направляется информация о результате оплаты.
  22. От платёжной платформы к веб-сервису направляется оповещение с информацией о результате оплаты.

Информация о форматах запросов и оповещений, используемых для проведения оплат методом Sofort через Payment Page, приведена далее в этом разделе; общая информация о работе с Payment Page API — в отдельной статье Организация взаимодействия.

Формат запросов

При формировании запросов на открытие платёжной формы с применением метода Sofort необходимо учитывать следующее:

  1. Должен использоваться базовый минимум параметров, обязательный для любого платежа:
    • project_id — идентификатор проекта, полученный от ecommpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — код валюты платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в дробных единицах валюты;
    • customer_id — идентификатор пользователя в рамках проекта.
  2. Должен использоваться базовый минимум параметров: project_id, payment_id, payment_currency, payment_amount, customer_id.
  3. Для открытия Payment Page на определённом языке необходимо передать код этого языка в значении параметра language_code, подробнее — в статье Управление языком платёжной формы.
  4. Для предварительного выбора метода Sofort необходимо указывать код этого метода в параметре force_payment_methodsofort.
  5. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  6. После указания всех целевых параметров необходимо составлять подпись (подробнее).

Таким образом, корректный запрос на открытие платёжной формы с применением метода Sofort должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор пользователя и подпись.

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 10000,
   "payment_currency": "EUR",
   "customer_id": "customer1",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

Рис.: Пример достаточного набора данных для запроса на оплату

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 10000,
   "payment_currency": "EUR",
   "customer_id": "customer1",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

Формат оповещений

Для оповещений, используемых при работе с методом Sofort, используется типовой формат, описание которого представлено в разделе Оповещения. В следующих примерах представлены данные из оповещений о различных ситуациях при проведении оплат без подтверждения зачисления средств и с таким подтверждением.

Рис.: Пример данных из оповещения о проведении оплаты (без подтверждения зачисления средств)

 {
        "project_id": 8791,
        "payment": {
            "id": "test_02",
            "type": "purchase",
            "status": "success",
            "date": "2022-02-19T14:25:25+0000",
            "method": "sofort",
            "sum": {
                "amount": 10000,
                "currency": "EUR"
            },
            "description": "payment_02"
        },
        "account": {
            "number": "2300568"
        },
        "operation": {
            "id": 141539000182,
            "type": "sale",
            "status": "success",
            "date": "2022-02-19T14:25:25+0000",
            "created_date": "2022-02-19T14:25:24+0000",
            "request_id": "9d22c3bad2913b488"
                "amount": 10000,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "EUR"
            },
            "provider": {
                "id": 11339,
                "payment_id": "1228",
                "date": "2022-02-19T14:25:24+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "of8k9xerKSKpFBRh0CIcjmOwSwKJ7KLTZYO56lCv+f1M0Sf/7eg=="
    }

Рис.: Пример данных из оповещения об отклонении оплаты (без подтверждения зачисления средств)

{
        "project_id": 8791,
        "payment": {
            "id": "TEST_154996862174000",
            "type": "purchase",
            "status": "decline",
            "date": "2022-02-12T10:56:22+0000",
            "method": "sofort",
            "sum": {
                "amount": 10000,
                "currency": "EUR"
            },
            "description": "TEST_154996174000"
        },
        "customer": {
            "id": "customer123"
        },
        "operation": {
            "id": 9172000183,
            "type": "sale",
            "status": "decline",
            "date": "2022-02-12T10:56:22+0000",
            "created_date": "2022-02-12T10:56:18+0000",
            "request_id": "11d4a9cb74c0681927ad7",
            "sum_initial": {
                "amount": 10000,
                "currency": "EUR"
            },
            "provider": {
                "id": 1100,
                "payment_id": "",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "n/1oVdS/mE0AlVOUDbbNqasdfghjiRz0yJRrqn7HiBOEIObz2tN5SLw=="
    }
}

Рис.: Пример данных из оповещения о состоянии платежа (с подтверждением зачисления средств)

{
        "project_id": 8792,
        "payment": {
            "id": "E4364-fc4d",
            "type": "purchase",
            "status": "awaiting confirmation", // статус платежа
            "date": "2022-04-12T08:46:13+0000",
            "method": "sofort",
            "sum": {
                "amount": 10000,
                "currency": "EUR"
            },
            "description": ""
        },
        "account": {
            "number": "DE06000123456789"
        },
        "customer": {
            "id": "customer123"
        },
        "operation": {
            "id": 77,
            "type": "payment confirmation",
            "status": "success",
            "date": "2022-04-12T08:46:13+0000",
            "created_date": "2022-04-12T08:45:01+0000",
            "request_id": "935948575ce85f651ac81f6c412c205eee9a01f0-00000001",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "EUR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 15203,
                "payment_id": "212225-7590-6710",
                "auth_code": "",
                "endpoint_id": "TD0XXX",
                "date": "2022-04-12T08:45:29+0000"
            }
        },
        "signature": "AvFBWWqia+EItai8yr7yLWl+24bRAouEm59YzlMCUxl/Dhlw5QRFpw5+Q=="
    }

Рис.: Пример данных из оповещения о проведении оплаты (с подтверждением зачисления средств)

{
        "project_id": 8792,
        "payment": {
            "id": "PAYMENT_5524",
            "type": "purchase",
            "status": "success",    // итоговый статус платежа
            "date": "2022-07-18T07:36:19+0000",
            "method": "sofort",
            "sum": {
                "amount": 100,
                "currency": "EUR"
            },
            "description": "PAYMENT_5524"
        },
        "customer": {
            "id": "customer123"
        },
        "account": {
            "number": "DE0123456789"
        },
        "operation": {
            "id": 55221,
            "type": "sale",
            "status": "success",
            "date": "2022-07-18T07:36:19+0000",
            "created_date": "2022-07-18T07:33:01+0000",
            "request_id": "a0dd90bd188cc93104d8776f3f23ff66-00023585...",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 9491,
                "payment_id": "212BAB0",
                "auth_code": "",
                "endpoint_id": "ABCXXX",
                "date": "2022-07-18T07:36:13+0000"
            }
        },
        "signature": "RVbY4YUVF0a+K28YPr2//P+mPht24BjO9lPWvRLla4Bic5KdiRg=="
}

Рис.: Пример данных из оповещения с информацией о том, что средства не зачислены

{
        "project_id": 8792,
        "payment": {
            "id": "PAYMENT_6617",
            "type": "purchase",
            "status": "awaiting confirmation",    // статус платежа
            "date": "2022-07-18T07:51:24+0000",
            "method": "sofort",
            "sum": {
                "amount": 100,
                "currency": "EUR"
            },
            "description": "PAYMENT_6617"
        },
        "customer": {
            "id": "customer123"
        },
        "account": {
            "number": "DE0123456789"
        },
        "operation": {
            "id": 10103681,
            "type": "payment confirmation", 
            "status": "decline",    // подтверждение того, что средства не зачислены
            "date": "2022-07-18T07:52:25+0000",
            "created_date": "2022-07-18T07:51:24+0000",
            "request_id": "752d-7aac86523ffcc8f19bab54b1e93c14...",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 0123,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "RRBu5U1woawhuYXdpf5lHB6OEsp9SGuiJI3AWvOXhKqtw=="
    }

Рис.: Пример данных из оповещения о возврате средств

{
        "project_id": 8792,
        "payment": {
            "id": "PAYMENT_6017",
            "type": "purchase",
            "status": "reversed",    // статус платежа
            "date": "2022-07-18T07:52:27+0000",
            "method": "sofort",
            "sum": {
                "amount": 0,
                "currency": "EUR"
            },
            "description": "PAYMENT_6017"
        },
        "customer": {
            "id": "customer123"
        },
        "account": {
            "number": "DE0123456789"
        },
        "operation": {
            "id": 2010691,
            "type": "reversal",
            "status": "success",
            "date": "2022-07-18T07:52:27+0000",
            "created_date": "2022-07-18T07:52:26+0000",
            "request_id": "a4037d3ce2d1812c1-45c98e4898e2854a1325-00086743...",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2345,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "LcsU5RU0LiHfP5Sc/6LVxMt5+Q8w21RGUZehQW0SpHt1VpB7MmV8bg=="
    }

Дополнительные материалы

Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы:

Оплаты через Gate

Общая информация

Схема проведения оплаты через Gate с использованием метода Sofort зависит от использования процедуры подтверждения о зачислении средств. В общем случае для оплаты через Gate с использованием метода Sofort со стороны веб-сервиса необходимо:

  1. Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay.
  2. Осуществить перенаправление в сервис Sofort.
  3. Принять одно или несколько оповещений от платежной платформы ecommpay.

Полная схема проведения оплаты выглядит следующим образом.



Рис.: Проведение оплаты через Gate без подтверждения зачисления средств. Описание шагов

  1. Пользователь на стороне веб-сервиса инициирует оплату с использованием метода Sofort.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate.
  3. Запрос на проведение оплаты поступает в платёжную платформу ecommpay.
  4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
  6. В платёжной платформе выполняются дальнейшая обработка запроса (с проверкой согласованности параметров) и его оправка в сервис Sofort.
  7. В сервисе Sofort выполняется обработка запроса на оплату.
  8. От сервиса Sofort к платёжной платформе передаются данные для перенаправления пользователя к сервису Sofort.
  9. От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя к сервису Sofort.
  10. Пользователь перенаправляется к сервису Sofort.
  11. Пользователь выполняет необходимые действия для оплаты.
  12. В сервисе Sofort выполняется обработка платежа.
  13. Пользователю отображается информация о результате оплаты.
  14. Пользователь перенаправляется к веб-сервису.
  15. От сервиса Sofort к платёжной платформе направляется информация о результате оплаты.
  16. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  17. На стороне веб-сервиса обеспечивается информирование пользователя о результате оплаты.


Рис.: Проведение оплаты через Gate с подтверждением зачисления средств. Описание шагов

  1. Пользователь на стороне веб-сервиса инициирует оплату с использованием метода Sofort.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate.
  3. Запрос на проведение оплаты поступает в платёжную платформу ecommpay.
  4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
  6. В платёжной платформе выполняются дальнейшая обработка запроса (с проверкой согласованности параметров) и его оправка в сервис Sofort.
  7. В сервисе Sofort выполняется обработка запроса на оплату.
  8. От сервиса Sofort к платёжной платформе передаются данные для перенаправления пользователя к сервису Sofort.
  9. От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя к сервису Sofort.
  10. Пользователь перенаправляется к сервису Sofort.
  11. Пользователь выполняет необходимые действия для оплаты.
  12. На стороне сервиса Sofort выполняется обработка платежа.
  13. Пользователь перенаправляется к веб-сервису.
  14. От сервиса Sofort к платёжной платформе направляется уведомление о состоянии платежа.
  15. От платёжной платформы к веб-сервису направляется оповещение о состоянии платежа.
  16. От веб-сервиса пользователю направляется информация о приёме платежа в обработку на стороне сервиса Sofort.
  17. После получения информации о зачислении средств от сервиса Sofort к платёжной платформе направляется информация о результате оплаты.
  18. От платёжной платформы к веб-сервису направляется оповещение с информацией о результате оплаты.

Информация о форматах запросов и оповещений, используемых для проведения оплат методом Sofort через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.

Формат запросов

При работе с запросами на оплаты с применением метода Sofort необходимо учитывать следующее:

  1. Для инициирования каждой оплаты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/online-banking/sofort/sale. Эта точка относится к группе /v2/payment/online-banking/{payment_method}/sale.
  2. В каждом запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ecommpay при интеграции;,
      • payment_id — идентификатор платежа, уникальный в рамках проекта;,
      • signature — подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма платежа в дробных единицах валюты;,
      • currency — код валюты платежа в формате ISO-4217 alpha-3;,
    • customer — объект, содержащий сведения о пользователе:
      • id — идентификатор пользователя, уникальный в рамках проекта;,
      • ip_address — IP-адрес пользователя, актуальный для инициируемого платежа.
  3. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

Таким образом, корректный запрос на оплату с применением метода Sofort должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор и IP-адрес пользователя, а также подпись.

{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "amount": 1000,
    "currency": "EUR"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "192.0.2.0"
  }
}

Рис.: Пример достаточного набора данных для запроса на оплату

{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "amount": 1000,
    "currency": "EUR"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "192.0.2.0"
  }
}

Формат промежуточных оповещений для перенаправления пользователей

Для перенаправления пользователей от веб-сервиса мерчанта к сервису Sofort при проведении каждого платежа с использованием метода Sofort необходимо принять промежуточное оповещение от платёжной платформы и использовать информацию из него, включённую в объект redirect_data. Формат таких оповещений является типовым (подробнее), при этом в состав объекта redirect_data включаются следующие объекты и параметры:

  • body — объект с данными для отправки в теле запроса;
  • method — параметр с указанием HTTP-метода отправки запроса (GET или POST);
  • url — параметр со ссылкой для перенаправления.

Рис.: Пример объекта redirect_data

"redirect_data": {
            "body": [],
            "method": "GET",
            "url": "https://sofort.com/payment/9X4AP1vj&cs=13073..."
                }

Формат оповещений

Для оповещений, используемых при работе с методом Sofort, используется типовой формат, описание которого представлено в разделе Оповещения. В следующих примерах представлены данные из оповещений о различных ситуациях при проведении оплат без подтверждения зачисления средств и с таким подтверждением.

Рис.: Пример данных из оповещения о проведении оплаты (без подтверждения зачисления средств)

 {
        "project_id": 8791,
        "payment": {
            "id": "test_02",
            "type": "purchase",
            "status": "success",
            "date": "2022-02-19T14:25:25+0000",
            "method": "sofort",
            "sum": {
                "amount": 10000,
                "currency": "EUR"
            },
            "description": "payment_02"
        },
        "account": {
            "number": "2300568"
        },
        "operation": {
            "id": 141539000182,
            "type": "sale",
            "status": "success",
            "date": "2022-02-19T14:25:25+0000",
            "created_date": "2022-02-19T14:25:24+0000",
            "request_id": "9d22c3bad2913b488"
                "amount": 10000,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "EUR"
            },
            "provider": {
                "id": 11339,
                "payment_id": "1228",
                "date": "2022-02-19T14:25:24+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "of8k9xerKSKpFBRh0CIcjmOwSwKJ7KLTZYO56lCv+f1M0Sf/7eg=="
    }

Рис.: Пример данных из оповещения об отклонении оплаты (без подтверждения зачисления средств)

{
        "project_id": 8791,
        "payment": {
            "id": "TEST_154996862174000",
            "type": "purchase",
            "status": "decline",
            "date": "2022-02-12T10:56:22+0000",
            "method": "sofort",
            "sum": {
                "amount": 10000,
                "currency": "EUR"
            },
            "description": "TEST_154996174000"
        },
        "customer": {
            "id": "customer123"
        },
        "operation": {
            "id": 9172000183,
            "type": "sale",
            "status": "decline",
            "date": "2022-02-12T10:56:22+0000",
            "created_date": "2022-02-12T10:56:18+0000",
            "request_id": "11d4a9cb74c0681927ad7",
            "sum_initial": {
                "amount": 10000,
                "currency": "EUR"
            },
            "provider": {
                "id": 1100,
                "payment_id": "",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "n/1oVdS/mE0AlVOUDbbNqasdfghjiRz0yJRrqn7HiBOEIObz2tN5SLw=="
    }
}

Рис.: Пример данных из оповещения о состоянии платежа (с подтверждением зачисления средств)

{
        "project_id": 8792,
        "payment": {
            "id": "E4364-fc4d",
            "type": "purchase",
            "status": "awaiting confirmation", // статус платежа
            "date": "2022-04-12T08:46:13+0000",
            "method": "sofort",
            "sum": {
                "amount": 10000,
                "currency": "EUR"
            },
            "description": ""
        },
        "account": {
            "number": "DE06000123456789"
        },
        "customer": {
            "id": "customer123"
        },
        "operation": {
            "id": 77,
            "type": "payment confirmation",
            "status": "success",
            "date": "2022-04-12T08:46:13+0000",
            "created_date": "2022-04-12T08:45:01+0000",
            "request_id": "935948575ce85f651ac81f6c412c205eee9a01f0-00000001",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "EUR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 15203,
                "payment_id": "212225-7590-6710",
                "auth_code": "",
                "endpoint_id": "TD0XXX",
                "date": "2022-04-12T08:45:29+0000"
            }
        },
        "signature": "AvFBWWqia+EItai8yr7yLWl+24bRAouEm59YzlMCUxl/Dhlw5QRFpw5+Q=="
    }

Рис.: Пример данных из оповещения о проведении оплаты (с подтверждением зачисления средств)

{
        "project_id": 8792,
        "payment": {
            "id": "PAYMENT_5524",
            "type": "purchase",
            "status": "success",    // итоговый статус платежа
            "date": "2022-07-18T07:36:19+0000",
            "method": "sofort",
            "sum": {
                "amount": 100,
                "currency": "EUR"
            },
            "description": "PAYMENT_5524"
        },
        "customer": {
            "id": "customer123"
        },
        "account": {
            "number": "DE0123456789"
        },
        "operation": {
            "id": 55221,
            "type": "sale",
            "status": "success",
            "date": "2022-07-18T07:36:19+0000",
            "created_date": "2022-07-18T07:33:01+0000",
            "request_id": "a0dd90bd188cc93104d8776f3f23ff66-00023585...",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 9491,
                "payment_id": "212BAB0",
                "auth_code": "",
                "endpoint_id": "ABCXXX",
                "date": "2022-07-18T07:36:13+0000"
            }
        },
        "signature": "RVbY4YUVF0a+K28YPr2//P+mPht24BjO9lPWvRLla4Bic5KdiRg=="
}

Рис.: Пример данных из оповещения с информацией о том, что средства не зачислены

{
        "project_id": 8792,
        "payment": {
            "id": "PAYMENT_6617",
            "type": "purchase",
            "status": "awaiting confirmation",    // статус платежа
            "date": "2022-07-18T07:51:24+0000",
            "method": "sofort",
            "sum": {
                "amount": 100,
                "currency": "EUR"
            },
            "description": "PAYMENT_6617"
        },
        "customer": {
            "id": "customer123"
        },
        "account": {
            "number": "DE0123456789"
        },
        "operation": {
            "id": 10103681,
            "type": "payment confirmation", 
            "status": "decline",    // подтверждение того, что средства не зачислены
            "date": "2022-07-18T07:52:25+0000",
            "created_date": "2022-07-18T07:51:24+0000",
            "request_id": "752d-7aac86523ffcc8f19bab54b1e93c14...",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 0123,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "RRBu5U1woawhuYXdpf5lHB6OEsp9SGuiJI3AWvOXhKqtw=="
    }

Рис.: Пример данных из оповещения о возврате средств

{
        "project_id": 8792,
        "payment": {
            "id": "PAYMENT_6017",
            "type": "purchase",
            "status": "reversed",    // статус платежа
            "date": "2022-07-18T07:52:27+0000",
            "method": "sofort",
            "sum": {
                "amount": 0,
                "currency": "EUR"
            },
            "description": "PAYMENT_6017"
        },
        "customer": {
            "id": "customer123"
        },
        "account": {
            "number": "DE0123456789"
        },
        "operation": {
            "id": 2010691,
            "type": "reversal",
            "status": "success",
            "date": "2022-07-18T07:52:27+0000",
            "created_date": "2022-07-18T07:52:26+0000",
            "request_id": "a4037d3ce2d1812c1-45c98e4898e2854a1325-00086743...",
            "sum_initial": {
                "amount": 100,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 100,
                "currency": "EUR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2345,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "LcsU5RU0LiHfP5Sc/6LVxMt5+Q8w21RGUZehQW0SpHt1VpB7MmV8bg=="
    }

Дополнительные материалы

Для организации работы с оплатами через Gate также могут быть полезны следующие материалы:

Анализ результатов проведения платежей

Для анализа информации о платежах и операциях, как в отдельности по методу Sofort, так и в совокупности с другими методами, можно использовать:

  • инструментарий интерфейса Dashboard, с различными реестрами и аналитическими панелями;,
  • отчёты в формате CSV, выгружаемые (как разово, так и периодически) через раздел Отчёты интерфейса Dashboard;,
  • данные в формате JSON, получаемые по программным запросам через интерфейс Data API.

С вопросами по анализу информации можно обращаться к разделам документации (Dashboard и Использование Data API) и специалистам ecommpay.