Indonesian Virtual Accounts

Обзор

Введение

Indonesian Virtual Accounts — метод, позволяющий проводить платежи в индонезийских рупиях с использованием наличных, банковских счетов и платёжных карт в Индонезии. Для этого метода в платёжной платформе ecommpay поддерживаются оплаты.

Этот метод является самым популярным альтернативным методов в Индонезии. При использовании этого метода пользователь переводит средства на виртуальный банковский счёт с помощью банкомата, мобильного приложения или сайта банка. Виртуальный счёт, номер которого состоит из 16 цифр, создаётся для каждого пользователя при оплате и используется для дифференциации платежей. ecommpay создаёт виртуальные счёта в межбанковской сети, каждый из которых уникален и используется только для одного платежа. Средства, полученные при помощи платежей, проведённых с использованием разных виртуальных счетов, объединяются на одном счёте мерчанта.

При оплате пользователь использует предоставленную информацию для того чтобы совершить банковский перевод на виртуальный счёт, пока не истечёт срок действия этого счёта. Для перевода пользователь может использовать:

  • банкомат,
  • мобильное приложение банка,
  • сайт банка.

Большая часть (80 %) платежей в Индонезии проводятся с использованием виртуальных счетов. ecommpay предоставляет проведение платежей с использованием виртуальных счетов при участии крупных банков, работающих в Индонезии — Mandiri, Permata, Danamon, CIMB.

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

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

Тип платёжного метода банковские платежи
Платёжные инструменты
  • наличные
  • банковские счета
  • платёжные карты
Регионы использования ID
Валюты платежей IDR
Конвертация валют на стороне ecommpay
Разовые оплаты +
Повторяемые оплаты
Полные возвраты
Частичные возвраты
Выплаты
Опротестования
Особенности при работе с Payment Page поддерживаются разные варианты выбора банка, подробнее
Организация и стоимость подключения по согласованию с курирующим менеджером ecommpay; дополнительную информацию можно получить в ecommpay shop

Схема работы

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



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

Для проведения платежей и выполнения операций с использованием метода Indonesian Virtual Accounts могут применяться различные интерфейсы платёжной платформы. Так, оплаты могут проводиться через Payment Page, Gate и Dashboard (с применением платёжных ссылок). При этом, независимо от используемых интерфейсов, для этого метода характерны следующие свойства и ограничения.

При работе с методом Indonesian Virtual Accounts, независимо от используемых интерфейсов, актуальны следующие свойства и ограничения.

Суммы, IDR ¹ Время ²
Минимум Максимум базовое предельное
Оплаты * * 48 часов
Прим.:
  1. Информацию об ограничениях сумм необходимо уточнять у курирующего менеджера ecommpay.
  2. Базовое и предельное время определяются следующим образом:
    • Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время определяется для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа (подробнее).
    • Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус decline. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ecommpay.

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

Проведение оплат с использованием метода Indonesian Virtual Accounts осуществляется с перенаправлением пользователей к сервису провайдера.

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

Вместе с тем, к особенностям работы с методом Indonesian Virtual Accounts можно отнести то, что для каждого платежа с использованием этого метода должен быть выбран конкретный банк. При работе через Payment Page, как правило, выбор банка осуществляется пользователем уже в платёжной форме, но при вызовах Payment Page с предварительным выбором метода и банка, а также при инициировании оплат через Gate банк должен быть выбран на стороне веб-сервиса и в запросах должен указываться идентификатор этого банка. Возможные варианты выбора банка при работе через Payment Page описаны в разделе Оплаты через Payment Page этой статьи, а способы работы с идентификаторами банков — в следующем подразделе, Поддержка со стороны банков.

Вместе с тем, для оплат этим методом поддерживаются разные варианты выбора банка; они описаны в разделе Оплаты через Payment Page этой статьи.

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

В следующей таблице в ознакомительных целях приведены названия и идентификаторы банков, поддерживающих работу с методом Indonesian Virtual Accounts.

Рис. 3. Список банков
Банк ID
Bank Sahabat Sampoerna VA 4391
Permata Virtual Account 433
Mandiri Virtual Account 434
Maybank Virtual Account 2831
BNI Virtual Account 2931
BRI Virtual Account 499
Sinarmas Virtual Account 562

Поскольку со временем состав доступных банков может меняться, для получения актуальной информации рекомендуется использовать POST-запрос к конечной точке /v2/info/banks/indonesia-va/sale/list, которая относится к группе конечных точек /v2/info/banks/{payment_method}/{operationType}/list Gate API. В этом запросе должны указываться идентификатор проекта, идентификатор, валюта и сумма платежа и подпись к этим данным; при этом рекомендуется передавать реальные данные о платеже, но допускается и указание произвольных значений.

Рис. 4. Пример данных из запроса на получение списка банков
{
  "general": {
    "project_id": 200,
    "payment_id": "ORDER_155860015",
    "signature": "K6jllym+PtObocZtr345st...=="
  },
  "payment": {
    "amount": 1000000,
    "currency": "IDR"
  }
}
Рис. 5. Пример данных из ответа с информацией о банках
[
  {
    "id": 433, // Индентификатор банка
    "abbr": "PMBVA", // Служебная аббревиатура банка, используемая в платформе
    "name": "Permata VA", // Основное (международное) название банка
    "nativeName": "Permata VA", // Локальное (национальное или региональное) название банка
    "currencies": [ // Массив с информацией о валютах, поддерживаемых банком
      {
        "id": 982, // Идентификатор валюты в платёжной платформе
        "alpha_3_4217": "IDR", // Буквенный код валюты платежа в формате ISO-4217 alpha-3
        "number_3_4217": "360", // Цифровой код валюты платежа в формате ISO-4217 alpha-3
        "exponent": 2 // Число дробных разрядов валюты
      }
    ]
  },
  {
    "id": 434, 
    "abbr": "MDRIVA", 
    "name": "Mandiri VA", 
    "nativeName": "Mandiri VA", 
    "currencies": [
      {
        "id": 982,
        "alpha_3_4217": "IDR",
        "number_3_4217": "360",
        "exponent": 2
      }
    ]
  },
  {
    "id": 2931, 
    "abbr": "BNIVA", 
    "name": "BNI Virtual Account", 
    "nativeName": "BNI VA", 
    "currencies": [
      {
        "id": 982,
        "alpha_3_4217": "IDR",
        "number_3_4217": "360",
        "exponent": 2
      }
    ]
  }
]

С вопросами о работе с банками, поддерживающими метод Indonesian Virtual Accounts, можно обращаться к курирующему менеджеру ecommpay.

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

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

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

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


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

Как правило, после того как пользователь на стороне веб-сервиса подтверждает готовность перейти к оплате, он перенаправляется к Payment Page, выбирает платёжный метод и, в случае работы с методом Indonesian Virtual Accounts, дополнительно выбирает один из доступных банков. Вместе с тем, в некоторых ситуациях могут быть актуальны другие варианты выбора платёжного метода и банка. Например, при открытии Payment Page можно сразу перенаправлять пользователя к выбору банка либо ограничивать список поддерживаемых банков для отдельного платежа и отображать пользователю только кнопки выбора целевых банков. Конкретный вариант выбора платёжного метода и банка определяется через параметры, указанные в запросе на открытие Payment Page (подробнее далее), при этом допустимы следующие варианты:

  • 1 — при открытии платёжной формы в ней последовательно отображаются отдельные страницы для выбора метода и банка, и пользователь выбирает сначала метод, а затем банк (этот вариант используется по умолчанию);
  • 2 — при открытии платёжной формы в ней отображается страница с кнопками выбора методов и банков для данного метода, и пользователь выбирает один из этих банков;
  • 3 — при открытии платёжной формы в ней отображается страница с кнопками выбора всех доступных банков для данного метода, и пользователь выбирает один из этих банков;
  • 4 — при открытии платёжной формы в ней отображается страница с кнопками выбора заданных банков для данного метода, и пользователь выбирает один из этих банков;
  • 5 — при открытии платёжной формы в ней отображается страница подтверждения перенаправления к сервису заданного банка, и пользователь соглашается с этим перенаправлением.

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

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

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

  1. Должен использоваться базовый минимум параметров, обязательный для любого платежа:
    • project_id — идентификатор проекта, полученный от ecommpay при интеграции.
    • payment_id — идентификатор платежа, уникальный в рамках проекта.
    • payment_currency — код валюты платежа в формате ISO-4217 alpha-3.
    • payment_amount — сумма платежа в дробных единицах валюты. В запросах на оплаты с указанием валюты IDR необходимо округлять суммы до целых чисел. Если в запросе указывается иная валюта, то сумма платежа конвертируется на стороне ecommpay в эквивалентную сумму в валюте IDR и также округляется до целых чисел. При этом округление выполняется в большую сторону (например, если в результате конвертации получается сумма 200 000,05 IDR, то такая сумма округляется до 200 001,00 IDR).
    • customer_id — идентификатор пользователя в рамках проекта.
  2. Должен использоваться базовый минимум параметров: project_id, payment_id, payment_currency, payment_amount, customer_id.
  3. Вариант выбора банка может определяться следующим образом:

    1. Через выбор в Payment Page метода и банка (1) — как вариант по умолчанию, применяемый, если не указываются параметр force_payment_method и объект payment_methods_options, упоминаемые в подпунктах 2–5.
    2. Через выбор в Payment Page банка среди доступных методов (2) — для этого в объекте payment_methods_options необходимо указывать объект indonesia_va, содержащий параметр split_banks со значением true:
      "payment_methods_options": "{\"indonesia_va\": {\"split_banks\": true}}"
    3. Через выбор в Payment Page банка из числа доступных (3) — для этого в параметре force_payment_method необходимо указывать код предварительного выбора метода online-indonesian-banks.
    4. Через выбор в Payment Page банка из числа заданных (4) — для этого необходимо указывать:
      • код online-indonesian-banks в параметре force_payment_method;
      • объект payment_methods_options с объектом indonesia_va, который должен содержать параметр split_banks со значением true и объект banks_id с массивом, включающим в себя идентификаторы целевых банков:
        "payment_methods_options": "{\"indonesia_va\": {\"split_banks\": true, \"banks_id\": [2831, 2931]}}"
    5. Через подтверждение в Payment Page перенаправления к сервису заданного банка (5) — для этого необходимо указывать:
      • код online-indonesian-banks в параметре force_payment_method;
      • объект payment_methods_options с объектом indonesia_va, который должен содержать параметр split_banks со значением true и объект banks_id с массивом, включающим в себя идентификатор целевого банка:
        "payment_methods_options": "{\"indonesia_va\": {\"split_banks\": true, \"banks_id\": [2831]}}"
  4. Дополнительно может потребоваться указывать имя и фамилию пользователя в параметрах customer_first_name и customer_last_name. Необходимость использования этих параметров следует уточнять у курирующего менеджера ecommpay.
  5. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  6. После указания всех целевых параметров необходимо составлять подпись (подробнее).

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

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "IDR",
   "customer_id": "customer1",
   "customer_first_name": "John",
   "customer_first_name": "Doe",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}
Рис. 13. Пример достаточного набора данных для запроса на оплату
{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "IDR",
   "customer_id": "customer1",
   "customer_first_name": "John",
   "customer_first_name": "Doe",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

Вместе с тем, в случае с выбором из заданных банков (4), запрос на открытие Payment Page может содержать расширенный набор данных.

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "IDR",
   "customer_id": "customer1",
   "customer_first_name": "John",
   "customer_first_name": "Doe",
   "force_payment_method": "online-indonesian-banks",
   "payment_methods_options": "{\"indonesia_va\": {\"split_banks\": true, \"banks_id\": [2831, 2931]}}",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 200 была проведена оплата в размере 200 000,00 IDR.

Рис. 14. Пример данных из оповещения о проведении оплаты
 {
        "project_id": 200,
        "payment": {
            "id": "9770802",
            "type": "purchase",
            "status": "success",
            "date": "2020-02-22T22:44:46+0000",
            "method": "indonesia-va",
            "sum": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "description": "test"
        },
        "account": {
            "number": "8856113600001045"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 52084000029401,
            "type": "sale",
            "status": "success",
            "date": "2020-02-22T22:44:46+0000",
            "created_date": "2020-02-22T17:30:42+0000",
            "request_id": "59b48b4c2d0a2b6a-00052085",
            "sum_initial": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 1164,
                "payment_id": "644206",
                "auth_code": "",
                "date": "2020-02-22T22:44:45+0000"
            }
        },
        "signature": "Hekd6+86S592dHNLADZ8LaBC5/JSKObUxTvkUuCZL4phAiFQA=="
    }

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

Рис. 15. Пример данных из оповещения об отклонении оплаты
{
        "project_id": 200,
        "payment": {
            "id": "9770802",
            "type": "purchase",
            "status": "decline",
            "date": "2020-02-22T22:44:46+0000",
            "method": "indonesia-va",
            "sum": {
                "amount": 1000,
                "currency": "IDR"
            },
            "description": "test"
        },
        "account": {
            "number": "8856113600001046"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 52084000029401,
            "type": "sale",
            "status": "decline",
            "date": "2020-02-22T22:44:46+0000",
            "created_date": "2020-02-22T17:30:42+0000",
            "request_id": "59b48b4c2d0a2b6a-00052085",
            "sum_initial": {
                "amount": 1000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "IDR"
            },
            "code": "20101",
            "message": "Decline due to amount or frequency limit",
        },
        "signature": "Hekd6+86S592dGuYCHADZ8LaBC5/JSKObUxTvkUuCZL4phAiFQA=="
    }

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

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

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

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

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

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

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

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


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

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

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

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

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

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

  4. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

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

{
    "general": {
      "project_id": 2990,
      "payment_id": payment_id,
      "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 35000000,
      "currency": "IDR"
    },
    "customer": {
      "id": "12345",
      "ip_address": "192.0.2.0"
      "first_name": "John",
      "last_name": "Doe"
    },
    "account":{
      "bank_id": 2961
    },
    "return_url": {
      "return": "https://example.com/return"
    }
 }
Рис. 18. Пример достаточного набора данных для запроса на оплату
{
    "general": {
      "project_id": 2990,
      "payment_id": payment_id,
      "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 35000000,
      "currency": "IDR"
    },
    "customer": {
      "id": "12345",
      "ip_address": "192.0.2.0"
      "first_name": "John",
      "last_name": "Doe"
    },
    "account":{
      "bank_id": 2961
    },
    "return_url": {
      "return": "https://example.com/return"
    }
 }

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

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

  • body — объект с данными для отправки в теле запроса;
  • method — параметр с указанием HTTP-метода отправки запроса (GET или POST);
  • url — параметр со ссылкой для перенаправления.
Рис. 19. Пример объекта redirect_data
  "redirect_data": {
    "body": {},
    "method": "GET",
    "url": "https://www.example.com/pay"
  }

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 200 была проведена оплата в размере 200 000,00 IDR.

Рис. 20. Пример данных из оповещения о проведении оплаты
 {
        "project_id": 200,
        "payment": {
            "id": "9770802",
            "type": "purchase",
            "status": "success",
            "date": "2020-02-22T22:44:46+0000",
            "method": "indonesia-va",
            "sum": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "description": "test"
        },
        "account": {
            "number": "8856113600001045"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 52084000029401,
            "type": "sale",
            "status": "success",
            "date": "2020-02-22T22:44:46+0000",
            "created_date": "2020-02-22T17:30:42+0000",
            "request_id": "59b48b4c2d0a2b6a-00052085",
            "sum_initial": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 1164,
                "payment_id": "644206",
                "auth_code": "",
                "date": "2020-02-22T22:44:45+0000"
            }
        },
        "signature": "Hekd6+86S592dGuYNLADZ8LaBC5/JSKObUxTvkUuCZL4phAiFQA=="
    }

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

Рис. 21. Пример данных из оповещения об отклонении оплаты
{
        "project_id": 200,
        "payment": {
            "id": "9770802",
            "type": "purchase",
            "status": "decline",
            "date": "2020-02-22T22:44:46+0000",
            "method": "indonesia-va",
            "sum": {
                "amount": 1000,
                "currency": "IDR"
            },
            "description": "test"
        },
        "account": {
            "number": "8856113600001046"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 52084000029401,
            "type": "sale",
            "status": "decline",
            "date": "2020-02-22T22:44:46+0000",
            "created_date": "2020-02-22T17:30:42+0000",
            "request_id": "59b48b4c2d0a2b6a-00052085",
            "sum_initial": {
                "amount": 1000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "IDR"
            },
            "code": "20101",
            "message": "Decline due to amount or frequency limit",
        },
        "signature": "Hekd6+86S592dADZ8LaBC5/JSKObUxTvkUuCZL4phAiFQA=="
    }

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

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

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

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

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

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