OVO Wallet

Обзор

OVO Wallet — метод для проведения платежей с использованием электронного кошелька. Оплаты осуществляются через Payment Page и Gate, выплаты — через Gate.

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

Тип платёжного метода платежи с использованием электронных кошельков
Платёжные инструменты электронные кошельки
Регионы использования ID
Валюты платежей IDR
Конвертация валют +
Оплаты +
Выплаты +
Оплаты по сохранённым данным
Полные возвраты
Частичные возвраты
Опротестования
Особенности При использовании этого метода все платежи в валюте IDR являются целочисленными. В запросах с указанием валюты IDR следует округлять суммы до целых чисел, иначе дробная часть отсекается при обработке платежа в платёжной платформе. При указании в запросах других валют сумма платежа конвертируется на стороне ecommpay с округлением до 1 000,00 IDR.
Организация и стоимость подключения по согласованию с курирующим менеджером ecommpay

Схема работы

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



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

Интерфейсы Суммы, IDR Время **
Payment Page CMS Plug-ins Gate Dashboard минимум максимум базовое предельное
Оплаты + + 10 000,00 2 000 000,00 до KYC*

10 000 000,00 после KYC

1 минута 85 секунд
Выплаты + + 10 000,00 25 000 000,00 1 минута 45 дней

* KYC (Know Your Customer) — это процедура, которая позволяет финансовым организациям проверять клиентов, чтобы обезопасить себя от мошенников.

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

EPayWidget.run(
    { payment_id: 'X03936', 
      payment_amount: 1000000, 
      payment_currency: 'IDR', 
      project_id: 12345,
      customer_id: 'customer1'
      customer_account_number: '081211111111'
      signature: "kUi2x9dKHAVNU0FYldJrxh4yo...wX6R\/ekpZhkIQg=="
    }
)

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

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

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

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

{
        "project_id": 439,
        "payment": {
            "id": "EP8417-7f12",
            "type": "purchase",
            "status": "success",
            "date": "2021-06-09T13:41:43+0000",
            "method": "ovo",
            "sum": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "description": ""
        },
        "account": {
            "number": "123"
        },
        "operation": {
            "id": 1711,
            "type": "sale",
            "status": "success",
            "date": "2021-06-09T13:41:43+0000",
            "created_date": "2021-06-09T13:41:39+0000",
            "request_id": "c66bf3ecb02c4c19a11b2cd6e2c460712f2ed86f52-00000001",
            "sum_initial": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 6682,
                "payment_id": "",
                "auth_code": "",
                "date": "2021-06-09T13:41:42+0000"
            }
        },
        "signature": "ab51MI5wDVMO8jL/9wTwpwD2COA1m8ZXXDceGoTLIxAaiZihRQ=="
    }

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

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

{
        "project_id": 439,
        "payment": {
            "id": "EPe5bd-2f88",
            "type": "purchase",
            "status": "decline",
            "date": "2021-06-09T13:44:40+0000",
            "method": "ovo",
            "sum": {
                "amount": 20000,
                "currency": "IDR"
            },
            "description": ""
        },
        "account": {
            "number": "9544544545"
        },
        "operation": {
            "id": 1712,
            "type": "sale",
            "status": "decline",
            "date": "2021-06-09T13:44:40+0000",
            "created_date": "2021-06-09T13:44:34+0000",
            "request_id": "2b4241e02c5e1e9e75156d60a78591da0b4ca1-00000001",
            "sum_initial": {
                "amount": 20000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 20000,
                "currency": "IDR"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 6682,
                "payment_id": "",
                "auth_code": "",
                "date": "2021-06-09T13:44:38+0000"
            }
        },
        "signature": "aWYu87AYwbcAq9kyR1FgBSFN9Yd+oUMsLEJk9rMwRaLaT1mPiP36Q=="
    }

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

{
    "general": {
        "project_id": 2373,
        "payment_id": "test123129",
        "signature": "6/E1dobuXL+JLua7pbgXm9QBqxv9JgM1EwBc3ovVQ=="
    },
    "payment": {
        "amount": 1000000,
        "currency": "IDR"
    },
    "account": {
        "number": "081211111111",
    },
    "customer": {
        "ip_address": "1.1.1.1",
        "id": "customer1"
    }
}

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

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

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

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

{
        "project_id": 439,
        "payment": {
            "id": "EP8417-7f12",
            "type": "purchase",
            "status": "success",
            "date": "2021-06-09T13:41:43+0000",
            "method": "ovo",
            "sum": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "description": ""
        },
        "account": {
            "number": "123"
        },
        "operation": {
            "id": 1711,
            "type": "sale",
            "status": "success",
            "date": "2021-06-09T13:41:43+0000",
            "created_date": "2021-06-09T13:41:39+0000",
            "request_id": "c66bf3ecb02c4c19a11b2cd6e2c460712f2ed86f52-00000001",
            "sum_initial": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 6682,
                "payment_id": "",
                "auth_code": "",
                "date": "2021-06-09T13:41:42+0000"
            }
        },
        "signature": "ab51MI5wDVMO8jL/9wTwpwD2COA1m8ZXXDceGoTLIxAaiZihRQ=="
    }

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

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

{
        "project_id": 439,
        "payment": {
            "id": "EPe5bd-2f88",
            "type": "purchase",
            "status": "decline",
            "date": "2021-06-09T13:44:40+0000",
            "method": "ovo",
            "sum": {
                "amount": 20000,
                "currency": "IDR"
            },
            "description": ""
        },
        "account": {
            "number": "9544544545"
        },
        "operation": {
            "id": 1712,
            "type": "sale",
            "status": "decline",
            "date": "2021-06-09T13:44:40+0000",
            "created_date": "2021-06-09T13:44:34+0000",
            "request_id": "2b4241e02c5e1e9e75156d60a78591da0b4ca1-00000001",
            "sum_initial": {
                "amount": 20000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 20000,
                "currency": "IDR"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 6682,
                "payment_id": "",
                "auth_code": "",
                "date": "2021-06-09T13:44:38+0000"
            }
        },
        "signature": "aWYu87AYwbcAq9kyR1FgBSFN9Yd+oUMsLEJk9rMwRaLaT1mPiP36Q=="
    }

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

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

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

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

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



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

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

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

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

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

  1. Должен использоваться запрос /v2/payment/wallet/ovo/payout, отправляемый методом POST.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — основные сведения:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа,
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • payment — сведения о платеже:
      • amount — сумма платежа в дробных единицах валюты;
      • currency — код валюты платежа в формате ISO-4217 alpha-3;
    • customer — объект, содержащий сведения о пользователе:
      • id — идентификатор пользователя в веб-сервисе,
      • ip_address — IP-адрес,
    • account — сведения об учётной записи пользователя:
      • number — идентификатор учётной записи OVO (должен содержать не более 15 цифр, без использования других символов),
      • customer_name — полное имя пользователя.
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

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

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

{
    "general": {
    "project_id": 2853,
    "payment_id": "test-002",
    "signature": "M1vT4q9c8hA8xCjEwGFSAkn+aJmGA4jH6bgBOp8DTf8d/XdoV+vd7Q=="
  },
  "payment": {
    "amount": 10000,
    "currency": "IDR"
  },
  "customer": {
    "id": "payoutTest",
    "ip_address": "114.124.147.206"
  },
  "account": {
    "number": "081211111111",
     "customer_name": "John Doe"
  }
}

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

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

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

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

{
        "project_id": 439,
        "payment": {
            "id": "164601_32630630",
            "type": "payout",
            "status": "success",
            "date": "2021-06-09T13:46:08+0000",
            "method": "ovo",
            "sum": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "description": ""
        },
        "account": {
            "number": "1234"
        },
        "customer": {
            "id": "customer1"
        },
        "operation": {
            "id": 1713,
            "type": "payout",
            "status": "success",
            "date": "2021-06-09T13:46:08+0000",
            "created_date": "2021-06-09T13:46:03+0000",
            "request_id": "5b164bbbb2dcf7ec1d6190a7212ec90b6a9d528a-00000001",
            "sum_initial": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 1000000,
                "currency": "IDR"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 6682,
                "payment_id": "ecf16ae5-6419",
                "auth_code": "",
                "date": "2021-06-09T13:46:06+0000"
            }
        },
        "signature": "upl29ym7t+r0aYiZOaJl/9chb34gmyEd5Z2SG+p3iVVEsoDnp+2YyQ=="
    }

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

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

{
        "project_id": 439,
        "payment": {
            "id": "164753_53114954",
            "type": "payout",
            "status": "decline",
            "date": "2021-06-09T13:48:00+0000",
            "method": "ovo",
            "sum": {
                "amount": 40000,
                "currency": "IDR"
            },
            "description": ""
        },
        "account": {
            "number": "456"
        },
        "customer": {
            "id": "customer2"
        },
        "operation": {
            "id": 1714,
            "type": "payout",
            "status": "decline",
            "date": "2021-06-09T13:48:00+0000",
            "created_date": "2021-06-09T13:47:54+0000",
            "request_id": "2d61a590c26ea70a7474077a7d9869b06bc48025f68-00000001",
            "sum_initial": {
                "amount": 40000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 40000,
                "currency": "IDR"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 6682,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "WEXldjWeZanWbwyD9Sfui3XJcSvHXmgxnALsxX/8UTQF7DkNPT0oQ=="
    }

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

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

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

При использовании интерфейса Dashboard можно проводить одиночные и массовые выплаты методом OVO Wallet с единичной и пакетной отправкой запросов, называемые соответственно одиночными и массовыми.

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

    При этом должен использоваться файл формата CSV, структура которого соответствует требованиям, представленным в разделе Сведения о массовых платежах, а параметры выплат должны соответствовать требованиям, представленным в разделе Выплаты через Gate этой статьи (за исключением пункта о подписи).

Более подробная информация о проведении выплат через Dashboard представлена в отдельной статье.

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

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

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

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

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

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