Banks of India

Обзор

Banks of India — метод интернет-банкинга для проведения платежей через банки Индии. Оплаты осуществляются через Payment Page и Gate, выплаты — через Gate или Dashboard (Old Dashboard), возвраты — через Gate.

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

Тип платёжного метода интернет-банкинг
Регионы использования IN
Валюты платежей INR
Конвертация валют на стороне ECommPay
Оплаты +
Выплаты +
Оплаты по сохранённым данным
Полные возвраты +
Частичные возвраты
Опротестования
Особенности
  • Для работы с этим методом через Payment Page поддерживается каскадное проведение оплат. Информацию о поддержке этой возможности можно получить в разделе Каскадное проведение платежей и у курирующего менеджера ECommPay
  • Доступны два способа выбора банка: на стороне Payment Page или на стороне провайдера. Подключаемый способ необходимо уточнять у курирующего менеджера ECommPay
  • Выплаты обрабатываются только в рабочее время провайдера: понедельник – пятница с 10:30 до 19:00 (GMT+8). В нерабочие часы и выходные дни выплаты не обрабатываются. Подробную информацию уточняйте у курирующего менеджера ECommPay
Организация и стоимость подключения по согласованию с курирующим менеджером ECommPay

Схема работы

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



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

Интерфейсы Суммы, INR Время**
Payment Page CMS Plug-ins Gate Dashboard (Old Dashboard) минимум максимум базовое предельное
Оплаты + + * * в течение 5 минут 60 минут
Выплаты + + 1 000,00 500 000,00 * *
Полные возвраты +

* Информацию необходимо уточнять у курирующего менеджера ECommPay.

** Базовое и предельное время определяются следующим образом:

  • Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время, определяемое для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа.
  • Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус decline. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ECommPay.

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

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

Рис.: Оплата через Payment Page с выбором банка на стороне Payment Page



Рис.: Оплата через Payment Page с выбором банка на стороне провайдера



Рис.: Оплата через Gate с перенаправлением на сайт банка



Рис.: Оплата через Gate с выбором банка на стороне провайдера



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



Рис.: Возврат через Gate



Поддержка со стороны банков

Проведение выплат с применением метода Banks of India осуществляется через банки, поддерживающие работу с этим методом. Банкам соответствуют свои идентификаторы, которые используются при инициировании выплат через Gate.

Далее в таблице в ознакомительных целях представлена информация об этих банках, которую следует уточнять у курирующего менеджера ECommPay или по запросу /v2/info/banks/{payment_method}/{operationType}/list, отправляемым методом POST через Gate API: /v2/info/banks/india/sale/list для уточнения списка банков, поддерживающих проведение оплат, или /v2/info/banks/india/payout/list — проведение выплат. Запрос должен содержать идентификаторы проекта и платежа, подпись, валюту и сумму платежа, как указано в примере. Важно передавать реальные данные о платеже, но в случае если платёж еще не сформирован, для идентификатора платежа в запросе можно указать случайное значение.

Рис.: Пример запроса списка банков

{
  "general": {
    "project_id": 200,
    "payment_id": "ORDER_155860015",
    "signature": "K6jllym+PtObocZtr345st...=="
  },
  "payment": {
    "amount": 1500,
    "currency": "INR"
  }
}
Табл. 1. Список банков
Банк ID
Axis Bank 401
Bank of Baroda 416
Bank of India 408
Canara Bank 405
Central Bank of India 414
HDFC Bank 412
ICICI Bank 406
IDBI Bank 409
Indian Bank 402
Karnataka Bank 411
Kotak Mahindra Bank 404
Punjab National Bank 407
Standard Charter Bank 410
State Bank of India 403
Union Bank of India 415
Yes Bank 413

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

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

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

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

Доступны два способа выбора банка: на стороне Payment Page или на стороне провайдера.

Рис.: Схема проведения оплаты с выбором банка на Payment Page



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

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

Рис.: Схема проведения оплаты с выбором банка на стороне провайдера



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

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

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

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

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в минорных единицах,
    • customer_id — идентификатор пользователя в рамках проекта.
  2. В зависимости от провайдера, обрабатывающего платёж, для проведения оплаты может потребоваться указывать данные пользователя в следующих параметрах:
    • customer_first_name — имя,
    • customer_last_name — фамилия,
    • customer_phone — номер телефона,
    • customer_email — адрес электронной почты,
    • customer_zip — почтовый индекс,
    • customer_city — город,
    • customer_address — адрес в указанном городе.
    Если параметры отсутствуют в запросе, на Payment Page пользователю отображаются поля для ввода недостающих значений. Подробнее об уточнении параметров — в разделе Дополнение информации о платеже.
  3. При использовании платёжного метода Banks of India можно настраивать отображение страницы Payment Page с выбором метода оплаты.

    По умолчанию банки, поддерживающие проведение оплат методом Banks of India, объединены в группу и отображаются одной кнопкой Banks of India, поэтому выбор банка осуществляется в два этапа.

    Оплата через Payment Page с выбором банка на стороне сервиса провайдера

    При использовании платёжного метода Banks of India с выбором банка на стороне сервиса провайдера сначала выбирается метод Banks of India на Payment Page, а затем выполняется выбор конкретного банка на стороне сервиса провайдера. В данном случае можно настраивать отображение Payment Page с предварительно выбранным платёжным методом Banks of India. Для этого необходимо передать код online-indian-banks в параметре force_payment_method.

    Оплата через Payment Page с выбором банка на стороне Payment Page

    При использовании платёжного метода Banks of India с выбором банка на стороне Payment Page сначала выбирается метод Banks of India среди прочих, а затем на следующей странице с перечнем банков выбирается конкретный банк. Существует несколько вариантов отображения страницы Payment Page с выбором метода оплаты:

    • Отображение каждого банка группы отдельной кнопкой. Для этого необходимо передавать параметр split_banks со значением true в строке payment_methods_options.
      payment_methods_options={"online_indian_banks": {"split_banks": true}}
      
    • Отображение кнопок конкретных банков (одного или нескольких). В списке методов может присутствовать метод Banks of India. Для этого необходимо передавать идентификаторы банков в параметре banks_id. Для отображения нескольких банков необходимо перечислять идентификаторы этих банков через запятую c пробелом.
      payment_methods_options={"online_indian_banks": {"split_banks": true, "banks_id": [416, 415]}}
    • Отображение только банков группы без других методов. Для этого используется предварительный выбор метода Banks of India. Необходимо передавать код платежного метода online-indian-banks в параметре force_payment_method. Пользователю открывается страница с выбором банков, минуя страницу с выбором метода оплаты.
    • Отображение сайта конкретного банка. Для этого используется предварительный выбор метода Banks of India. Необходимо передавать код платежного метода online-indian-banks в параметре force_payment_method и идентификатор банка banks_id в параметре payment_methods_options. Перенаправление пользователя на сайта банка осуществляется без подтверждения готовности оплатить, минуя страницы с выбором метода оплаты и с выбором банков.

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

          { 
            payment_id: 'X03936', 
            payment_amount: 200000, 
            payment_currency: 'INR', 
            project_id: 115,
            customer_id: 'customer123',
            customer_first_name: 'John',
            customer_last_name: 'Smith',
            customer_email: 'smith@example.com',
            customer_zip: '400009',
            customer_city: 'Mumbai',
            customer_address: '99, Chakla Street, Masjid Bunder (east)'
            force_payment_method: 'online-indian-banks',
            payment_methods_options={"online_indian_banks": {"banks_id": [416]}},
            signature: "kUi2x9dKHAVNU0FYlSCQ9vySUkDJrOcZzUCwX6R\/ekpZhkIQg=="
          }
  4. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  5. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

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

    { 
      payment_id: 'ID_183', 
      payment_amount: 10000, 
      payment_currency: 'INR', 
      project_id: 238,
      customer_id: 'customer123',
      customer_first_name: 'John',
      customer_last_name: 'Smith',
      customer_email: 'smith@example.com',
      customer_zip: '400009',
      customer_city: 'Mumbai',
      customer_address: '99, Chakla Street, Masjid Bunder (east)'
      signature: "hlhydUV+SmGJYhm6G.....5JuyamXS/BYQ1M2IUgBuVxa93HwzBbEjF9Veg=="
    }

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 239 была успешно проведена оплата в размере 10,00 INR.

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

{
        "project_id": 239,
        "payment": {
            "id": "EP8550-ad59",
            "type": "purchase",
            "status": "success",
            "date": "2020-05-13T09:06:45+0000",
            "method": "India banks",
            "sum": {
                "amount": 1000,
                "currency": "INR"
            },
            "description": "test"
        },
        "customer": {
            "id": "345435435"
        },
        "operation": {
            "id": 548,
            "type": "sale",
            "status": "success",
            "date": "2020-05-13T09:06:45+0000",
            "created_date": "2020-05-13T09:05:47+0000",
            "request_id": "7b0f630c3f2f395bba2738cf9086622bd4dd50bd3-00000001",
            "sum_initial": {
                "amount": 1000,
                "currency": "INR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "INR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2080,
                "payment_id": "15141-1589360772-25",
                "auth_code": ""
            }
        },
        "signature": "rSV33iKYiOVpXctCvTGTg3...GLZny35xplogtGYT1w=="
    }

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

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

{
        "project_id": 239,
        "payment": {
            "id": "EP8550-ad59",
            "type": "purchase",
            "status": "decline",
            "date": "2020-05-13T09:06:45+0000",
            "method": "India banks",
            "sum": {
                "amount": 1000,
                "currency": "INR"
            },
            "description": "test"
        },
        "customer": {
            "id": "123"
        },
        "operation": {
            "id": 548,
            "type": "sale",
            "status": "decline",
            "date": "2020-05-13T09:06:45+0000",
            "created_date": "2020-05-13T09:05:47+0000",
            "request_id": "7b0f630c3f2f395bba2738cf9086622bd4dd50bd3-00000002",
            "sum_initial": {
                "amount": 1000,
                "currency": "INR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "INR"
            },
            "code": "20000",
            "message": "decline",
            "provider": {
                "id": 2080,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "rSV33iKYiOVpXctCvTGTg3...GLZny35xplogtGYT1g=="
    }

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

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

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

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

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

  1. Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay.
  2. Осуществить перенаправление пользователя на сайт банка (или на страницу выбора банка), поддерживающего работу с методом Banks of India.
  3. Принять оповещение о результате оплаты.

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

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



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

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

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



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

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

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

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

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

  1. Должен использоваться запрос /v2/payment/banks/india/sale, отправляемый методом POST. Этот запрос относится к группе запросов /v2/payment/banks/{payment_method}/sale.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
      • payment_id — идентификатор платежа, уникальный в рамках проекта;
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма платежа в минорных единицах валюты,
      • currency — валюта платежа в формате ISO-4217 alpha-3;
    • customer — сведения о пользователе:
      • id — идентификатор в рамках проекта,
      • ip_address — используемый IP-адрес;
    • account — объект, содержащий сведения о банковском счёте пользователя:
      • bank_id — идентификатор банка. Данный параметр не является обязательным при использовании способа выбора банка на стороне сервиса провайдера;
    • return_url — объект, содержащий URL для перенаправления пользователя в веб-сервис:
      • success — URL для перенаправления пользователя при успешной оплате.
  3. В зависимости от провайдера, обрабатывающего платёж, может потребоваться указывать данные пользователя. Если параметры отсутствуют в запросе, список недостающих параметров отправляется в оповещении на уточнение. Подробнее об уточнении параметров — в разделе Дополнение информации о платеже.

    Рекомендуется использовать следующие объекты и параметры:

    • customer — объект, содержащий сведения о пользователе:
      • first_name — имя пользователя,
      • last_name — фамилия пользователя,
      • phone — номер телефона,
      • email — адрес электронной почты,
      • zip — почтовый индекс,
      • city — город,
      • address — адрес в указанном городе.
  4. Дополнительно могут использоваться все параметры, указанные в спецификации.

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

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

{
  "general": {
    "project_id": 123,
    "payment_id": "ORDER_1558600157",
    "signature": "+K6jllym+PtObocZ...A4NcWxfWJTXdESkijfsBeR6bKROUsslA=="
  },
  "customer": {
    "email": "waynen@example.com",
    "first_name": "John",
    "last_name": "Waynen",
    "phone": "123456789",
    "zip": "400009",
    "city": "Mumbai",
    "address": "99, Chakla Street, Masjid Bunder (east)",
    "ip_address": "1.2.3.4",
    "id": "customer1"
  },
  "payment": {
    "amount": 1500,
    "currency": "INR"
  },
  "return_url": {
    "success": "https://www.example.com"
  }
}

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

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

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

  "redirect_data": {
    "body": {...},
    "method": "GET",
    "url": "https://example.com/payment/initialize/api/123"
  }

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 239 была успешно проведена оплата в размере 10,00 INR.

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

{
        "project_id": 239,
        "payment": {
            "id": "EP8550-ad59",
            "type": "purchase",
            "status": "success",
            "date": "2020-05-13T09:06:45+0000",
            "method": "India banks",
            "sum": {
                "amount": 1000,
                "currency": "INR"
            },
            "description": "test"
        },
        "customer": {
            "id": "345435435"
        },
        "operation": {
            "id": 548,
            "type": "sale",
            "status": "success",
            "date": "2020-05-13T09:06:45+0000",
            "created_date": "2020-05-13T09:05:47+0000",
            "request_id": "7b0f630c3f2f395bba2738cf9086622bd4dd50bd3-00000001",
            "sum_initial": {
                "amount": 1000,
                "currency": "INR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "INR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2080,
                "payment_id": "15141-1589360772-25",
                "auth_code": ""
            }
        },
        "signature": "rSV33iKYiOVpXctCvTGTg3...GLZny35xplogtGYT1w=="
    }

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

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

{
        "project_id": 239,
        "payment": {
            "id": "EP8550-ad59",
            "type": "purchase",
            "status": "decline",
            "date": "2020-05-13T09:06:45+0000",
            "method": "India banks",
            "sum": {
                "amount": 1000,
                "currency": "INR"
            },
            "description": "test"
        },
        "customer": {
            "id": "123"
        },
        "operation": {
            "id": 548,
            "type": "sale",
            "status": "decline",
            "date": "2020-05-13T09:06:45+0000",
            "created_date": "2020-05-13T09:05:47+0000",
            "request_id": "7b0f630c3f2f395bba2738cf9086622bd4dd50bd3-00000002",
            "sum_initial": {
                "amount": 1000,
                "currency": "INR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "INR"
            },
            "code": "20000",
            "message": "decline",
            "provider": {
                "id": 2080,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "rSV33iKYiOVpXctCvTGTg3...GLZny35xplogtGYT1g=="
    }

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

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

Возвраты через Gate

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

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



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

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

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

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

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

  1. Должен использоваться запрос /v2/payment/banks/india/refund, отправляемый методом POST. Этот запрос относится к группе запросов /v2/payment/banks/{payment_method}/refund.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
      • payment_id — идентификатор платежа, уникальный в рамках проекта;
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью к данным);
    • payment — объект, содержащий сведения о возврате:
      • description — комментарий или описание возврата.
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

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

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

{
  "general": {
    "project_id": 101,
    "payment_id": "ECT_TEST_1572258898441234343232",
    "signature": "NUpXRpdrU/rRcwEa/jQYoYbXA/YIc/dgeuncPmD/BJZGZvt59GbTSAUKHI/WrQ=="
  },
  "payment": {
    "description":"test_refund"
  }

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 197 был успешно проведён возврат в размере 350,00 INR.

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

{
        "project_id": 197,
        "payment": {
            "id": "TEST_554862",
            "type": "purchase",
            "status": "refunded",
            "date": "2020-09-09T10:02:18+0000",
            "method": "India banks",
            "sum": {
                "amount": 0,
                "currency": "INR"
            },
            "merchant_refund_id": "TEST_554862",
            "description": "TEST_554862"
        },
        "customer": {
            "id": "1",
            "phone": "1234567890"
        },
        "operation": {
            "id": 90266010010271,
            "type": "refund",
            "status": "success",
            "date": "2020-09-09T10:02:18+0000",
            "created_date": "2020-09-09T09:46:14+0000",
            "request_id": "6b77b588d77d5c27be31be7b72bf9adf...b1c85eda238b73cac-00090267",
            "sum_initial": {
                "amount": 35000,
                "currency": "INR"
            },
            "sum_converted": {
                "amount": 35000,
                "currency": "INR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 1751,
                "payment_id": "4952688",
                "auth_code": ""
            }
        },
        "signature": "WUZUy26FHZglsro9PYFr89suJAciQ...5Fev4NtHl56VGTgX9m/g=="
    }

В следующем примере возврат был отклонён, так как значение суммы в запросе на возврат больше суммы в оплате.

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

{
        "project_id": 197,
        "payment": {
            "id": "TEST_554863",
            "type": "purchase",
            "status": "success",
            "date": "2020-09-09T10:02:18+0000",
            "method": "India banks",
            "sum": {
                "amount": 35000,
                "currency": "INR"
            },
            "merchant_refund_id": "TEST_554863",
            "description": "TEST_554863"
        },
        "customer": {
            "id": "1",
            "phone": "1234567890"
        },
        "operation": {
            "id": 90266010010272,
            "type": "refund",
            "status": "decline",
            "date": "2020-09-09T10:02:18+0000",
            "created_date": "2020-09-09T09:46:14+0000",
            "request_id": "6b77b588d77d5c27be31be7b72bf9adf...b1c85eda238b73cac-00090268",
            "sum_initial": {
                "amount": 35000,
                "currency": "INR"
            },
            "sum_converted": {
                "amount": 35000,
                "currency": "INR"
            },
            "code": "3283",
            "message": "Refund amount more than init amount"
            }
        },
        "signature": "WUZUy26FHZglsro9PYFr89suJAciQ...5Fev4NtHl56VGTgX9m/g=="
    }

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

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

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

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

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



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

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

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

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

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

  1. Должен использоваться запрос /v2/payment/banks/india/payout, отправляемый методом POST. Этот запрос относится к группе запросов /v2/payment/banks/{payment_method}/payout.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ECommPay при интеграции,
      • payment_id — идентификатор платежа, уникальный в рамках проекта,
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма платежа в минорных единицах валюты,
      • currency — валюта платежа в формате ISO-4217 alpha-3;
    • customer — объект, содержащий сведения о пользователе:
      • id — идентификатор пользователя на стороне веб-сервиса,
      • ip_address — используемый IP-адрес,
      • first_name — имя пользователя,
      • last_name — фамилия пользователя,
      • phone — номер телефона,
      • email — адрес электронной почты,
      • address — адрес проживания;
    • account — объект, содержащий сведения о счёте получателя:
      • number — номер счёта,
      • bank_code — код филиала банка в финансовой системе Индии (IFSC),
      • bank_id — идентификатор банка,
      • customer_name — полное имя держателя банковского счета.
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на выплату с применением метода Banks of India должен содержать идентификаторы проекта и платежа, подпись, номер счёта и данные пользователя, валюту и сумму платежа, а также сведения о счёте получателя:

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

{
  "general": {
    "project_id": 818,
    "payment_id": "ORDER_I1558600157",
    "signature": "+K6jllym+PtObocZ1yS...xfWJTXdESkijfsBeR6bKROUsslA=="
  },
  "payment": {
    "amount": 150000,
    "currency": "INR"
  },
  "customer": {
    "id": "24900",
    "ip_address": "1.2.3.4"
  },
  "account": {
    "customer_name": "John Waynen",
    "bank_code": "test_code",
    "bank_id": 401,
    "number": "5588994446666"
  }
}

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 239 была успешно проведена выплата в размере 1000,00 INR.

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

{
        "project_id": 239,
        "payment": {
            "id": "ORDER53",
            "type": "payout",
            "status": "success",
            "date": "2020-05-21T13:23:32+0000",
            "method": "India banks",
            "sum": {
                "amount": 100000,
                "currency": "INR"
            },
            "description": "description"
        },
        "account": {
            "number": "123456"
        },
        "customer": {
            "id": "24901"
        },
        "operation": {
            "id": 1386,
            "type": "payout",
            "status": "success",
            "date": "2020-05-21T13:23:32+0000",
            "created_date": "2020-05-21T13:23:28+0000",
            "request_id": "e48da2df266940ce5f534c84cae31237ca774b6fb-00000002",
            "sum_initial": {
                "amount": 100000,
                "currency": "INR"
            },
            "sum_converted": {
                "amount": 100000,
                "currency": "INR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2080,
                "payment_id": "15141-1589360772-26",
                "auth_code": ""
            }
        },
        "signature": "UvYafKv8g7aXBIqVVEWAl7KCF8y...Wt8F+7erV2ugNHq6Wv3lJE8Q=="
    }

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

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

{
        "project_id": 239,
        "payment": {
            "id": "ORDER54",
            "type": "payout",
            "status": "decline",
            "date": "2020-05-21T13:23:32+0000",
            "method": "India banks",
            "sum": {
                "amount": 1000,
                "currency": "INR"
            },
            "description": "description"
        },
        "account": {
            "number": "123456"
        },
        "customer": {
            "id": "24900"
        },
        "operation": {
            "id": 1386,
            "type": "payout",
            "status": "decline",
            "date": "2020-05-21T13:23:32+0000",
            "created_date": "2020-05-21T13:23:28+0000",
            "request_id": "e48da2df266940ce5fdc7ae31237ca774b6fb-00000001",
            "sum_initial": {
                "amount": 1000,
                "currency": "INR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "INR"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 2080,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "UvYafKv8g7aXBIqVVEWAl7KCF8y...Wt8F+7erV2ugNHq6Wv3lJE8Q=="
    }

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

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

Выплаты через Dashboard (Old Dashboard)

Для проведения выплат через Dashboard (Old Dashboard) со стороны мерчанта необходимо инициировать запросы на выплаты и принять уведомления об их успешной обработке. Инициировать такие выплаты можно двумя способами:
  • как единичную выплату — в этом случае для каждой выплаты необходимо указать доступные для данного метода валюту и сумму, выбрать метод и заполнить все поля, отображаемые в интерфейсе с учётом выбранного метода;
  • в рамках массового платежа — в этом случае все параметры выплат необходимо задать в файле формата CSV с учётом требований, представленных в разделе Выплаты через Gate (кроме пункта о подписи).

Информация о проведении выплат отображается в разделе Платежи интерфейса Dashboard (Old Dashboard).

Более подробная информация о проведении выплат через Dashboard (Old Dashboard) представлена в разделе Проведение выплат.

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

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

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

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

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

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