Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Этот функционал будет активирован после вашего запроса в групповом чате.


Содержание


Описание

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

Минимальная сумма - отсутствует.

Максимальная сумма - 300 000 грн.

Этот функционал работает в два этапа. При успешном запросе общая сумма попадает в холд, после чего необходимо будет провести подтверждение списания для зачисления средств на ваш счет.

Подтверждение списания возможно несколькими способами:

  1. Вручную в нашем личном кабинете

  2. Настроить на стороне PSP Platon автоматическое списание в срок от 1 часа до 29 дней, о чем просьба сообщить в чат

  3. Настроить автоматическое списание по API запросу списания с холда под вашу бизнес-логику

Внимание! Подтверждение списания и возврат производится в полном объеме суммы кредита. Частичное списание или частичный возврат запрещены.


Чеклист интеграции

  • Привести сайт / приложение к соответствию требованиям.
  • Передать тех поддержке PSP Platon ссылку для Callback.
  • Сообщить в тех поддержке PSP Platon ваши IP адреса сервера сайта или о том, что будет использоваться приложение (в этом случае ограничения по IP будут сняты).
  • Провести интеграцию данного API.
  • Отобразить клиенту форму для ввода номера телефона, который привязан к Приватбанк.
  • Отобразить клиенту выбор количества платежей на ваш выбор в в промежутках от 2 до 24 платежей (включительно).
  • Отправить запрос с вашего сервера / приложения согласно данного API.
  • Получить Response или Callback со статусом платежа от PSP Platon.
  • Уведомить клиента об успешном / не успешном запросе на оплату частями.

Рекомендации

Рекомендуем клиенту самостоятельно вводить свой номер телефона в Приватбанк. Если у вас в системе уже есть номер телефона клиента, мы не рекомендуем подставлять его в данный запрос, так как возможны ситуации, когда у клиента есть несколько номеров телефонов и тот, что был записан у вас ранее может не совпадать с финансовым номером клиента в приложении Приват24.

Рекомендуем отобразить уведомление, о том что клиенту поступит push-уведомление в приложение Приват24 для ознакомления с договором оплаты частями и решения о согласии с условиями.

Рекомендуем отобразить уведомление, что клиенту необходима карта Приватбанк.

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

Рекомендуем отобразить уведомление, что первый платеж будет списан с клиента сразу.


Требования к сайту

 SSL сертификат

У вашего сайта должен быть SSL сертификат.

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

 Логотипы платежных систем и PSP Platon

В футере вашего сайта необходимо разместить логотипы платежных систем и PSP Platon.

Скачайте подходящие под стиль вашего сайта варианты логотипов.

Unable to render {include} The included page could not be found.
 TLS 1.2

Необходима поддержка протокола TLS не ниже версии 1.2


API параметры

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/post/

Параметр

Значение

Описание

Особенности

action
ОБЯЗАТЕЛЬНО

SALE_PART

Код платежного метода

client_key
ОБЯЗАТЕЛЬНО

String

API ключ мерчанта

Ключ предоставляется на почту мерчанту

order_id
ОБЯЗАТЕЛЬНО

String

ID платежа в системе мерчанта

Max 32 символа

order_amount
ОБЯЗАТЕЛЬНО

Number

Сумма платежа

Верный вариант

1000.00

Неверные варианты

1000
1000.0
1,000.0
1,000.00

order_currency
ОБЯЗАТЕЛЬНО

UAH

Валюта платежа

Оплата возможна только в национальной валюте гривне

order_description
ОБЯЗАТЕЛЬНО

String

Описание платежа

Для кириллических символов необходимо использовать формат UTF-8

Max 255 символов

payer_ip
ОБЯЗАТЕЛЬНО

Number

IP-адрес плательщика

В формате "ХХХ.ХХХ.ХХХ.ХХХ"

IPv6 на данный момент не поддерживается

term_url_3ds
ОБЯЗАТЕЛЬНО

String

Ссылка по которой будет отправлен клиент после успешной оплаты при прохождении 3DS

Max 255 символов

payer_email
ОБЯЗАТЕЛЬНО

String

Почта плательщика

Обязательно валидная почта.

Отсутствие пробелов.

Max 255 символа

payer_phone
ОБЯЗАТЕЛЬНО

Number

Финансовый номер телефона плательщика привязанный к Приватбанк

Обязательный формат телефона +380XXXXXXXXX

ext4
ОБЯЗАТЕЛЬНО

String

"{"available_parts_count":"n"}"

JSON с количеством выбранных клиентом платежей от 3 до 25 (включительно), например "{"available_parts_count":"6"}"

channel_id
ОБЯЗАТЕЛЬНО

privat_parts

Признак оплаты частями монобанк

hash
ОБЯЗАТЕЛЬНО

String

Контрольная подпись

md5(
  strtoupper($pass).
  strrev($order_id)
)

async
НЕ ОБЯЗАТЕЛЬНО

Y
N

Включить асинхронный режим

В асинхронном режиме обязательное использование коллбеков.
По умолчанию значение N

payer_first_name
НЕ ОБЯЗАТЕЛЬНО

String

Имя плательщика

Max 32 символа без пробелов

payer_last_name
НЕ ОБЯЗАТЕЛЬНО

String

Фамилия плательщика

Max 32 символа без пробелов

payer_address
НЕ ОБЯЗАТЕЛЬНО

String

Адрес плательщика

Max 256 символа
Укажите NA, если нет данных

payer_country
НЕ ОБЯЗАТЕЛЬНО

String

Страна плательщика

Стандарт ISO 3166-1 alpha-2
В формате "ХХ"
2 символа
Укажите NA, если нет данных

payer_state
НЕ ОБЯЗАТЕЛЬНО

String

Штат плательщика

Обязательный параметр для стран US, CA, AU

Стандарт ISO 3166-2
В формате "ХХ"
2 символа
Укажите NA, если нет данных

payer_city
НЕ ОБЯЗАТЕЛЬНО

String

Город плательщика

Max 32 символа
Укажите NA, если нет данных

payer_zip
НЕ ОБЯЗАТЕЛЬНО

String

Почтовый индекс плательщика

Max 32 символа
Укажите NA, если нет данных

ext1, ext2, ext3, ext5, ext6, ext7, ext8, ext9, ext10
НЕ ОБЯЗАТЕЛЬНО

String

10 дополнительных полей

Max 1024 символа в каждом ext поле


Примеры запроса

 Пример запроса на PHP
<?php
  $client_pass = '***';
  $data['action'] = 'SALE_PART';
  $data['client_key'] = '***';
  $data['order_id'] = '546-4588';
  $data['order_amount'] = '1000.00';
  $data['order_currency'] = 'UAH';
  $data['order_description'] = 'test';
  $data['payer_first_name'] = 'Ivan';
  $data['payer_last_name'] = 'Ivanov';
  $data['payer_phone'] = '+380111111111';
  $data['payer_email'] = 'sale@gmail.com';
  $data['payer_ip'] = '213.186.115.164';
  $data['channel_id'] = 'privat_parts';
  $data['term_url_3ds'] = 'https://google.com';
  $data['ext4'] = '{"available_parts_count":"6"}';
  $hash = md5(
            strtoupper($client_pass).
            strrev($data['order_id'])
          );
?>

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>sale</title>
  </head>
  <body onload="javascript:document.forms[0].submit()">
    <form action="https://secure.platononline.com/post-unq/" method="post">
      <input type="hidden" name="action" value="<?=$data['action']?>" />
      <input type="hidden" name="client_key" value="<?=$data['client_key']?>" />
      <input type="hidden" name="order_id" value="<?=$data['order_id']?>" />
      <input type="hidden" name="order_amount" value="<?=$data['order_amount']?>" />
      <input type="hidden" name="order_currency" value="<?=$data['order_currency']?>" />
      <input type="hidden" name="order_description" value="<?=$data['order_description']?>" />
      <input type="hidden" name="payer_first_name" value="<?=$data['payer_first_name']?>" />
      <input type="hidden" name="payer_last_name" value="<?=$data['payer_last_name']?>" />
      <input type="hidden" name="payer_phone" value="<?=$data['payer_phone']?>" />
      <input type="hidden" name="payer_email" value="<?=$data['payer_email']?>" />
      <input type="hidden" name="payer_ip" value="<?=$data['payer_ip']?>" />
      <input type="hidden" name="term_url_3ds" value="<?=$data['term_url_3ds']?>" />
      <input type="hidden" name="channel_id" value="<?=$data['channel_id']?>" />
      <input type="hidden" name="ext4" value="<?=$data['ext4']?>" />
      <input type="hidden" name="hash" value="<?=$hash?>" />
    </form>                                             
  </body>
</html>

Проверка платежей

 Полный список методов получения результата транзакции
Unable to render {include} The included page could not be found.

Callback

 Особенности работы с Callback
Unable to render {include} The included page could not be found.
 Безопасность
Unable to render {include} The included page could not be found.

Синхронный режим:

Данный режим работает по умолчанию. Передавать async = N не нужно.

При успешном редиректе (синхронный режим):

 Промежуточный Response для редиректа на страницу ожидания результата
{
  "action":"SALE",
  "result":"REDIRECT",
  "status":"REDIRECT",
  "order_id":"546-45811465476r4367",
  "trans_id":"36618-67917-29503",
  "trans_date":"2022-10-19 13:39:51",
  "redirect_url":"https:\/\/google.com",
  "redirect_params":null,
  "redirect_method":"GET"
}
 Промежуточный Callback для редиректа на страницу ожидания результата
array (
  'action' => 'SALE',
  'result' => 'REDIRECT',
  'status' => 'REDIRECT',
  'order_id' => '546-45811465476r4367',
  'trans_id' => '36618-67917-29503',
  'trans_date' => '2022-10-19 13:39:51',
  'redirect_url' => 'https:\/\/google.com',
  'redirect_params' => null,
  'redirect_method" => 'GET',
)

При успешной оплате (синхронный режим):

 Response при успешном списании
{
  "action":"SALE",
  "result":"SUCCESS",
  "status":"PENDING",
  "order_id":"4385302",
  "trans_id":"28261-34099-19648",
  "descriptor":null,
  "trans_date":"2020-02-25 06:50:09"
}

Параметр

Описание

action

SALE

result

SUCCESS

status

PENDING

order_id

Уникальный ордер ID транзакции в системе мерчанта

trans_id

Уникальный ордер ID транзакции в системе Platon

trans_date

Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)

descriptor

NULL

 Callback при успешном списании
array (
  'action' => 'SALE',
  'result' => 'SUCCESS',
  'status' => 'PENDING',
  'order_id' => '4385323',
  'trans_id' => '28261-47789-28578',
  'trans_date' => '2020-02-25 07:12:58',
  'descriptor' => NULL,
  'hash' => '********************************',
)

Параметр

Описание

action

SALE

result

SUCCESS

status

PENDING

order_id

Уникальный ордер ID транзакции в системе мерчанта

trans_id

Уникальный ордер ID транзакции в системе Platon

trans_date

Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)

descriptor

NULL

hash

Зашифрованная подпись для проверки достоверности коллбека

md5(
  strtoupper(
    strrev(email).
    client_pass.
    trans_id
  )
)

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.

При неуспешной оплате (синхронный режим):

 Response при неуспешном списании
{
  "action":"SALE",
  "result":"DECLINED",
  "status":"DECLINED",
  "order_id":"4092002",
  "trans_id":"28076-29879-99538",
  "trans_date":"2020-02-03 20:49:47",
  "decline_reason":"Declined by processing"
}

Параметр

Описание

action

SALE

result

DECLINED

status

DECLINED

order_id

Уникальный ордер ID транзакции в системе мерчанта

trans_id

Уникальный ордер ID транзакции в системе Platon

trans_date

Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)

descriptor

NULL

decline_reason

Причина отмены транзакции

 Callback при неуспешном списании
array (
  'action' => 'SALE',
  'result' => 'DECLINED',
  'status' => 'DECLINED',
  'order_id' => '4092002',
  'trans_id' => '28076-29879-99538',
  'trans_date' => '2020-02-03 20:49:47',
  'decline_reason' => 'Declined by processing',
  'hash' => '********************************',
)

Параметр

Описание

action

SALE

result

DECLINED

status

DECLINED

order_id

Уникальный ордер ID транзакции в системе мерчанта

trans_id

Уникальный ордер ID транзакции в системе Platon

trans_date

Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)

descriptor

NULL

decline_reason

Причина отмены транзакции

hash

Зашифрованная подпись для проверки достоверности коллбека

md5(
  strtoupper(
    strrev(email).
    client_pass.
    trans_id
  )
)

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.


Асинхронный режим:

Данный режим активируется при передаче async = Y. В этом режиме обязательно необходимо принимать callback на ваш callback url.

Промежуточный ответ (асинхронный режим):

 Response о принятии запроса в обработку
{
  "action":"SALE",
  "result":"ACCEPTED",
  "order_id":"4385302",
  "trans_id":"28261-34099-19648",
  "trans_date":"2020-02-25 06:50:09"
}

Параметр

Описание

action

SALE

result

ACCEPTED

order_id

Уникальный ордер ID транзакции в системе мерчанта

trans_id

Уникальный ордер ID транзакции в системе Platon

trans_date

Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)

При успешном редиректе (aсинхронный режим):

 Промежуточный Response для редиректа на страницу ожидания результата
{
  "action":"SALE",
  "result":"REDIRECT",
  "status":"REDIRECT",
  "order_id":"546-45811465476r4367",
  "trans_id":"36618-67917-29503",
  "trans_date":"2022-10-19 13:39:51",
  "redirect_url":"https:\/\/google.com",
  "redirect_params":null,
  "redirect_method":"GET"
}
 Промежуточный Callback для редиректа на страницу ожидания результата
array (
  'action' => 'SALE',
  'result' => 'REDIRECT',
  'status' => 'REDIRECT',
  'order_id' => '546-45811465476r4367',
  'trans_id' => '36618-67917-29503',
  'trans_date' => '2022-10-19 13:39:51',
  'redirect_url' => 'https:\/\/google.com',
  'redirect_params' => null,
  'redirect_method" => 'GET',
)

При успешной оплате (асинхронный режим):

 Callback при успешном списании
array (
  'action' => 'SALE',
  'result' => 'SUCCESS',
  'status' => 'PENDING',
  'order_id' => '4385323',
  'trans_id' => '28261-47789-28578',
  'trans_date' => '2020-02-25 07:12:58',
  'descriptor' => NULL,
  'hash' => '********************************',
)

Параметр

Описание

action

SALE

result

SUCCESS

status

PENDING

order_id

Уникальный ордер ID транзакции в системе мерчанта

trans_id

Уникальный ордер ID транзакции в системе Platon

trans_date

Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)

descriptor

NULL

hash

Зашифрованная подпись для проверки достоверности коллбека

md5(
  strtoupper(
    strrev(email).
    client_pass.
    trans_id
  )
)

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.

При неуспешной оплате (асинхронный режим):

 Callback при неуспешном списании
array (
  'action' => 'SALE',
  'result' => 'DECLINED',
  'status' => 'DECLINED',
  'order_id' => '4092002',
  'trans_id' => '28076-29879-99538',
  'trans_date' => '2020-02-03 20:49:47',
  'decline_reason' => 'Declined by processing',
  'hash' => '********************************',
)

Параметр

Описание

action

SALE

result

DECLINED

status

DECLINED

order_id

Уникальный ордер ID транзакции в системе мерчанта

trans_id

Уникальный ордер ID транзакции в системе Platon

trans_date

Время проведения транзакции в формате UTC (YYYY-MM-DD HH-MM-SS)

descriptor

NULL

decline_reason

Причина отмены транзакции

hash

Зашифрованная подпись для проверки достоверности коллбека

md5(
  strtoupper(
    strrev(email).
    client_pass.
    trans_id
  )
)

Внимание! Если при запросе на оплату не был указан email, то при проверке hash в подписи Callback следует указать пустое значение для email.


Ошибки запросов

 Список ошибок, их причин и возможных решений.
Unable to render {include} The included page could not be found.
  • No labels