«Платежи посредством переводов с карты на карту через партнёра»

Обзор

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

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

Тип платёжного метода P2P
Регионы использования RU
Валюты платежей RUB
Конвертация валют на стороне ECommPay
Оплаты +
Выплаты +
Оплаты по сохранённым данным
Полные возвраты
Частичные возвраты
Опротестования
Особенности
Организация и стоимость подключения по согласованию с курирующим менеджером ECommPay

Схема работы

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

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

Интерфейсы Суммы, RUB
Payment Page CMS Plug-ins Gate Dashboard (Old Dashboard) Минимум Максимум
Оплаты + + * *
Выплаты + 10,00 150 000,00

* Ограничения сумм на оплаты зависят от банков-эмитентов.

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

Проведение оплат с использованием метода выполняется с перенаправлением пользователей к сервису партнёра, проведение выплат — с уведомлением пользователей через веб-сервис мерчанта.

Рис.: Оплата через Payment Page



Рис.: Оплата через Gate



Рис.: Выплата через Gate



Детальные сведения о том, что необходимо делать со стороны мерчанта для проведения платежей, а также о том, что можно использовать для анализа информации о проведённых платежах и операциях, представлены далее.

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

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

Для оплаты через Payment Page с использованием метода со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay и принять оповещение о результате оплаты. При этом метод можно сделать предварительно выбранным (подробнее — в разделе Предварительный выбор платежного метода). Полная схема проведения оплаты представлена далее.



Рис.: Проведение оплаты через Payment Page

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

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

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

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency* — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount* — сумма платежа в минорных единицах.
    Прим.: * При предварительном выборе метода параметры payment_currency и payment_amount не являются обязательными, поскольку пользователь задаёт сумму платежа при переводе денежных средств с использованием приложения или сайта банка.
  2. Дополнительно должен использоваться параметр customer_id — идентификатор пользователя в рамках проекта.
  3. Для предварительного выбора метода необходимо указывать код платёжного метода в параметре force_payment_methodcard-p2p.
  4. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  5. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

Таким образом, корректный запрос на открытие платёжной формы с предварительно выбранным методом должен содержать идентификаторы проекта, пользователя и платежа, код платёжного метода и подпись:

    { payment_id: 'X03936', 
      force_payment_method: 'card-p2p',
      customer_id: '001',
      project_id: 12, 
      signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8...VUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 239 для пользователя user45 была успешно проведена оплата в размере 100,00 RUB. Сумма оплаты в оповещении является суммой, указанной пользователем при переводе средств с использованием приложения или сайта банка.

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

{
        "customer": {
            "id": "user45"
        },
        "project_id": 1625,
        "payment": {
            "id": "ID_748492",
            "type": "purchase",
            "status": "success",
            "date": "2020-04-22T14:48:20+0000",
            "method": "card-p2p",
            "sum": {
                "amount": 10000,
                "currency": "RUB"
            },
            "description": "ID_748492"
        },
        "operation": {
            "id": 54851000040741,
            "type": "sale",
            "status": "success",
            "date": "2020-04-22T14:48:20+0000",
            "created_date": "2020-04-22T14:45:37+0000",
            "request_id": "7efb61c83c91645a05d1cbf...c9924f4ff19a36596a-00054852",
            "sum_initial": {
                "amount": 10000,
                "currency": "RUB"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "RUB"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2721,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "A9w013/aPMSTIFkleQ4GaUcawu...kTav8yNuSChjPdHbgC5OimQ=="
    }

В следующем примере оплата была отклонена.

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

{
        "customer": {
            "id": "2"
        },
        "project_id": 1625,
        "payment": {
            "id": "ID_748493",
            "type": "purchase",
            "status": "decline",
            "date": "2020-04-22T15:48:20+0000",
            "method": "card-p2p",
            "sum": {
                "amount": 10000,
                "currency": "RUB"
            },
            "description": "ID_748492"
        },
        "operation": {
            "id": 54851000040741,
            "type": "sale",
            "status": "decline",
            "date": "2020-04-22T15:48:20+0000",
            "created_date": "2020-04-22T14:45:37+0000",
            "request_id": "7efb61c83c91645a05d1cbf...c9924f4ff19a36596a-00054853",
            "sum_initial": {
                "amount": 10000,
                "currency": "RUB"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "RUB"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 2721,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "A9w013/aPMSTIFkleQ4GaUcawu...kTav8yNuSChjPdHbgC5UnmQ=="
    }

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

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

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

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

Для оплаты через Gate с использованием метода со стороны веб-сервиса необходимо:

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

Полная схема проведения оплаты представлена далее.



Рис.: Проведение оплаты через Gate

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

Информация о формате запросов и параметрах инициации оплат методом через Gate, а также о формате оповещений о результатах оплат приведена далее, общая информация о работе с API см. в разделе Работа с API.

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

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

  1. Должен использоваться запрос /v2/payment/card-p2p/sale, отправляемый методом POST.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
      • payment_id — идентификатор платежа, уникальный в рамках проекта;
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • customer — сведения о пользователе:
      • id — идентификатор пользователя в веб-сервисе,
      • ip_address — используемый IP-адрес;
    • return_url — объект, содержащий URL для перенаправления пользователя в веб-сервис:
      • return — URL для перенаправления пользователя по нажатию кнопки на любом шаге оплаты.
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на оплату с применением метода должен содержать идентификаторы проекта и платежа, подпись, IP-адрес и идентификатор пользователя, а также URL для перенаправления:

Рис.: Пример запроса на оплату

{ 
   "general": { 
      "project_id": 874,
      "payment_id": "561719496",
      "signature": "fCkXYCxiTjiN9Ak...r3wcXQggExZHbeXH/VPAMbywQ=="
   },
   "customer": { 
      "id": "245",
      "ip_address": "1.2.3.4"
   },
    "return_url": {
      "return": "http://example.com/return"
   }  
}

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

Для перенаправления пользователя от веб-сервиса на сайт партнёра необходимо принять оповещение от платёжной платформы, содержащее ссылку для перенаправления в параметре redirect_data.url и данные для отправки в теле запроса redirect_data.body, и использовать эти параметры при открытии HTML-страницы сайта методом, указанным в redirect_data.method.

Далее приведён фрагмент оповещения, содержащего данные для перенаправления.

"redirect_data": {
    "body": {},
    "method": "GET",
    "url": "https://api.p2pbank.online/example_test"
  }

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 239 для пользователя user45 была успешно проведена оплата в размере 100,00 RUB. Сумма оплаты в оповещении является суммой, указанной пользователем при переводе средств с использованием приложения или сайта банка.

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

{
        "customer": {
            "id": "user45"
        },
        "project_id": 1625,
        "payment": {
            "id": "ID_748492",
            "type": "purchase",
            "status": "success",
            "date": "2020-04-22T14:48:20+0000",
            "method": "card-p2p",
            "sum": {
                "amount": 10000,
                "currency": "RUB"
            },
            "description": "ID_748492"
        },
        "operation": {
            "id": 54851000040741,
            "type": "sale",
            "status": "success",
            "date": "2020-04-22T14:48:20+0000",
            "created_date": "2020-04-22T14:45:37+0000",
            "request_id": "7efb61c83c91645a05d1cbf...c9924f4ff19a36596a-00054852",
            "sum_initial": {
                "amount": 10000,
                "currency": "RUB"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "RUB"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2721,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "A9w013/aPMSTIFkleQ4GaUcawu...kTav8yNuSChjPdHbgC5OimQ=="
    }

В следующем примере оплата была отклонена.

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

{
        "customer": {
            "id": "2"
        },
        "project_id": 1625,
        "payment": {
            "id": "ID_748493",
            "type": "purchase",
            "status": "decline",
            "date": "2020-04-22T15:48:20+0000",
            "method": "card-p2p",
            "sum": {
                "amount": 10000,
                "currency": "RUB"
            },
            "description": "ID_748492"
        },
        "operation": {
            "id": 54851000040741,
            "type": "sale",
            "status": "decline",
            "date": "2020-04-22T15:48:20+0000",
            "created_date": "2020-04-22T14:45:37+0000",
            "request_id": "7efb61c83c91645a05d1cbf...c9924f4ff19a36596a-00054853",
            "sum_initial": {
                "amount": 10000,
                "currency": "RUB"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "RUB"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 2721,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "A9w013/aPMSTIFkleQ4GaUcawu...kTav8yNuSChjPdHbgC5UnmQ=="
    }

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

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

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

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

Для выплаты через Gate с использованием данного метода со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay и принять оповещение о результате выплаты. Полная схема проведения выплаты представлена далее.



Рис.: Проведение выплаты через Gate

  1. Пользователь на стороне веб-сервиса инициирует выплату.
  2. От веб-сервиса на заданный URL ECommPay передаётся запрос на проведение выплаты через Gate.
  3. Запрос на проведение выплаты поступает в платёжную платформу.
  4. Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
  6. В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис партнёра.
  7. На стороне партнёра выполняется обработка платежа.
  8. От партнёра к платёжной платформе направляется оповещение о результате.
  9. От платёжной платформы к веб-сервису направляется оповещение о результате.
  10. От веб-сервиса пользователю направляется результат выплаты.
Прим.: Проведение выплат через сервис партнёра аналогично проведению выплат с использованием платёжных карт. Для проведения выплаты должен использоваться запрос /v2/payment/card/payout, отправляемый методом POST.

Подробная информация о формате запросов и параметрах инициации выплат через Gate, а также о формате оповещений о результатах выплат приведена в разделе Выплаты, общую информацию о работе с API см. в разделе Работа с API.

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

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

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

Как и при работе с другими платёжными методами, которые предоставляет ECommPay, при использовании метода партнёра доступны разные способы анализа информации о платежах и операциях с применением этого метода — как в отдельности, так и в совокупности с другими методами.

Всю необходимую информацию можно получать и анализировать средствами Dashboard (Old Dashboard), в том числе с помощью аналитических панелей на вкладке Analytics.

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

  • Dashboard (Old Dashboard) позволяет выгружать данные в форматах CSV и XLS с помощью инструментов на вкладке Платежи. При этом можно выполнять разовые выгрузки информации на локальный компьютер и задействовать периодическую выгрузку и отправку информации на заданные адреса электронной почты.
  • Data API позволяет получать информацию в формате JSON и отправлять ее на заданный URL — для этого применяются запросы /operations/get.

С любыми вопросами о возможностях анализа можно обращаться в службу технической поддержки ECommPay.