Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
InfoЦей функціонал буде активовано після вашого запиту в груповому чаті
Info

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


Зміст

Table of Contents
minLevel1
maxLevel2
include
outlinefalse
indent0px
stylecircle
exclude
typelist
class
printablefalse

Опис

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

Info

Використовуючи цей розділ ви зможете реалізувати онлай та оффлайн оплату частинами.

Для використання в оффлайні вам необхідно інтегрувати це API до вашого ПЗ. Механізм взаємодії в такому випадку буде наступним:

  • Клієнт в оффлайн магазині говорить, що хоче оплатити частинами Monobank.

  • Менеджер просить назвати номер телефону прив'язаного до Monobank та вводить його разом з кількістю частин в вашому ПЗ, та відправляє запит

    Мінімальна сума - 300 грн.

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


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

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

  • Після успішного підтвердження клієнтом в додатку до вас в систему буде відправлено коллбек з даними про платіж по результату якого менеджер може вибити чек та видати товар.

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

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

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

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

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

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

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

    Warning

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

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

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

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

    Panel
    panelIconIdatlassian-check_mark
    panelIcon:check_mark:
    bgColor#E3FCEF

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

    Tip

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

    Tip

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

    Tip

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

    Tip

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

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

    Expand
    titleSSL сертифікат

    У вашого сайту має бути валідний SSL сертифікат.

    Для перевірки валідності та терміну дії вашого SSL сертифіката рекомендуємо скористатися сервісом за посиланням.

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

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

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

    Include PageЛоготипи для розміщенняЛоготипи для розміщення
    Expand
    titleTLS 1.2

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

    API параметры

    HTTP METHOD: POST

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

    Параметр

    Значение

    Описание

    Особенности

    action

    Status
    colourGreen
    titleобязательно

    SALE_PART

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

    client_key

    Status
    colourGreen
    titleобязательно

    String

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

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

    order_id

    Status
    colourGreen
    titleобязательно

    String

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

    Max 32 символа

    order_amount

    Status
    colourGreen
    titleобязательно

    Number

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

    Tip

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

    1000.00

    Warning

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

    1000
    1000.0
    1,000.0
    1,000.00

    order_currency

    Status
    colourGreen
    titleобязательно

    UAH

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

    Info

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

    order_description

    Status
    colourGreen
    titleобязательно

    String

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

    Note

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

    Max 255 символов

    payer_ip

    Status
    colourGreen
    titleобязательно

    Number

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

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

    Note

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

    term_url_3ds

    Status
    colourGreen
    titleобязательно

    String

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

    Max 255 символов

    payer_email

    Status
    colourGreen
    titleобязательно

    String

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

    Info

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

    Info

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

    Max 255 символа

    payer_phone

    Status
    colourGreen
    titleобязательно

    Number

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

    Info

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

    ext4

    Status
    colourGreen
    titleобязательно

    String

    "{"available_parts_count":"n"}"

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

    channel_id

    Status
    colourGreen
    titleобязательно

    privat_parts

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

    hash

    Status
    colourGreen
    titleобязательно

    String

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

    Code Block
    languagephp
    md5(
      strtoupper($pass).
      strrev($order_id)
    )

    async

    Status
    colourYellow
    titleне обязательно

    Y
    N

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

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

    payer_first_name

    Status
    colourYellow
    titleне обязательно

    String

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

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

    payer_last_name

    Status
    colourYellow
    titleне обязательно

    String

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

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

    payer_address

    Status
    colourYellow
    titleне обязательно

    String

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

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

    payer_country

    Status
    colourYellow
    titleне обязательно

    String

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

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

    payer_state

    Status
    colourYellow
    titleне обязательно

    String

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

    Note

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

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

    payer_city

    Status
    colourYellow
    titleне обязательно

    String

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

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

    payer_zip

    Status
    colourYellow
    titleне обязательно

    String

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

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

    ext1, ext2, ext3, ext5, ext6, ext7, ext8, ext9, ext10

    Status
    colourYellow
    titleне обязательно

    String

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

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

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

    Expand
    titleПример запроса на PHP
    Code Block
    languagephp
    <?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>

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

    Expand
    titleПолный список методов получения результата транзакции
    Include PageОтримання результату транзакціїОтримання результату транзакції

    Callback

    Expand
    titleОсобенности работы с Callback
    Include PageРобота з CallbackРобота з Callback Expand
    titleБезопасность
    Include PageБезпекаБезпека

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

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

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

    Expand
    titleПромежуточный Response для редиректа на страницу ожидания результата
    Code Block
    languagejson
    {
      "action":"SALE",
      "result":"REDIRECT",
      "status":"REDIRECT",
      "order_id":"546-4588",
      "trans_id":"39649-42645-29973",
      "trans_date":"2023-10-05 08:24:24",
      "redirect_url":"https:\/\/payparts2.privatbank.ua\/ipp\/v2\/payment?token=172F1869B9954BE8BFF6FD493294EAD",
      "redirect_params":null,
      "redirect_method":"GET"
    }
    Expand
    titleПромежуточный Callback для редиректа на страницу ожидания результата
    Code Block
    languagejson
    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:\/\/payparts2.privatbank.ua\/ipp\/v2\/payment?token=172F1869B9954BE8BFF6FD493294EAD',
      'redirect_params' => null,
      'redirect_method" => 'GET',
    )

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

    Expand
    titleResponse при успешном списании
    Code Block
    languagejson
    {
      "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

    Expand
    titleCallback при успешном списании
    Code Block
    languagephp
    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

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

    Code Block
    md5(
      strtoupper(
        strrev(email).
        client_pass.
        trans_id
      )
    )
    Info

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

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

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

    Параметр

    Описание

    action

    SALE

    result

    SUCCESS

    status

    SETTLED

    order_id

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

    trans_id

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

    trans_date

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

    descriptor

    NULL

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

    Параметр

    Описание

    action

    SALE

    result

    SUCCESS

    status

    SETTLED

    order_id

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

    trans_id

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

    trans_date

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

    descriptor

    NULL

    hash

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

    Code Block
    md5(
      strtoupper(
        strrev(email).
        client_pass.
        trans_id
      )
    )
    Info

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

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

    Expand
    titleResponse при неуспешном списании
    Code Block
    languagejson
    {
      "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

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

    Expand
    titleCallback при неуспешном списании
    Code Block
    languagephp
    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

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

    Code Block
    md5(
      strtoupper(
        strrev(email).
        client_pass.
        trans_id
      )
    )
    Info

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

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

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

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

    Expand
    titleResponse о принятии запроса в обработку
    Code Block
    languagejson
    {
      "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синхронный режим):

    Expand
    titleПромежуточный Response для редиректа на страницу ожидания результата
    Code Block
    languagejson
    {
      "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"
    }
    Expand
    titleПромежуточный Callback для редиректа на страницу ожидания результата
    Code Block
    languagejson
    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',
    )

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

    Expand
    titleCallback при успешном списании
    Code Block
    languagephp
    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

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

    Code Block
    md5(
      strtoupper(
        strrev(email).
        client_pass.
        trans_id
      )
    )
    Info

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

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

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

    Параметр

    Описание

    action

    SALE

    result

    SUCCESS

    status

    SETTLED

    order_id

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

    trans_id

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

    trans_date

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

    descriptor

    NULL

    hash

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

    Code Block
    md5(
      strtoupper(
        strrev(email).
        client_pass.
        trans_id
      )
    )
    Info

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

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

    Expand
    titleCallback при неуспешном списании
    Code Block
    languagephp
    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

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

    Code Block
    md5(
      strtoupper(
        strrev(email).
        client_pass.
        trans_id
      )
    )
    Info

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

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

    ExpandtitleСписок ошибок, их причин и возможных решений.
    •  Редіректити платника на сторінку оформлення оплати частинами Приватбанк.
    •  Отримати Response або Callback зі статусом платежа PSP Platon після проведення платником дій в додатку Приватбанк.
    •  Повідомити клієнту про успішність / не успішність оплати частинами.

    Рекомендації

    Tip

    Рекомендуємо відобразити повідомлення, що клієнту необхідна активна картка Приватбанк.

    Tip

    Рекомендуємо відобразити повідомлення, що перше списання коштів з клієнта відбудеться одразу, тобто у клієнта має бути відповідна сума на основному балансі.


    Вимоги до сайту

    Include Page
    Вимоги до сайтів та додатків
    Вимоги до сайтів та додатків

    API параметри

    HTTP METHOD: POST

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

    Параметр

    Значення

    Опис

    Особливості

    action

    Status
    colourGreen
    titleобов'язковий

    SALE_PART

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

    client_key

    Status
    colourGreen
    titleобов'язковий

    String

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

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

    order_id

    Status
    colourGreen
    titleобов'язковий

    String

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

    Max 32 символи

    order_amount

    Status
    colourGreen
    titleобов'язковий

    Number

    Сума оплати

    Info

    Мінімальна сума оплати частинами Приватбанк - 300.00

    Tip

    Вірний варіант

    1000.00

    Warning

    Невалідні варіанти

    1000
    1000.0
    1,000.0
    1,000.00

    order_currency

    Status
    colourGreen
    titleобов'язковий

    UAH

    Валюта

    Info

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

    order_description

    Status
    colourGreen
    titleобов'язковий

    String

    Опис

    Note

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

    Max 255 символів

    payer_ip

    Status
    colourGreen
    titleобов'язковий

    Number

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

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

    Note

    IPv6 на даний момент не підтримується та за наявності буде приводити до помилки.

    term_url_3ds

    Status
    colourGreen
    titleобов'язковий

    String

    Посилання по якому буде відправлено платника після спроби оплати

    Max 255 символів

    payer_email

    Status
    colourGreen
    titleобов'язковий

    String

    Пошта платника

    Info

    Обов'язково валідна пошта.

    Info

    Відсутність пробілів.

    Max 255 символів

    payer_phone

    Status
    colourGreen
    titleобов'язковий

    Number

    Фінансовий номер телефону платника прив'язаний до Приватбанк

    Info

    Обов'язковий формат телефону +380XXXXXXXXX

    ext4

    Status
    colourGreen
    titleобов'язковий

    String

    "{"available_parts_count":"n"}"

    JSON з кількістю обраних частин від 2 до 24 (включно), наприклад "{"available_parts_count":"6"}"

    channel_id

    Status
    colourBlue
    titleопція

    String

    hash

    Status
    colourGreen
    titleобов'язковий

    String

    Контрольний підпис

    Code Block
    languagephp
    md5(
      strtoupper($pass).
      strrev($order_id)
    )

    async

    Status
    colourYellow
    titleне обов'язковий

    Y
    N

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

    В асинхронному режимі обов'язкове використання коллбеків.
    Стандартне значення N

    payer_first_name

    Status
    colourYellow
    titleне обов'язковий

    String

    Ім'я платника

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

    payer_last_name

    Status
    colourYellow
    titleне обов'язковий

    String

    Прізвище платника

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

    payer_address

    Status
    colourYellow
    titleне обов'язковий

    String

    Адреса платника

    Max 256 символи
    ВказатиNA, якщо немає даних

    payer_country

    Status
    colourYellow
    titleне обов'язковий

    String

    Країна платника

    Стандарт ISO 3166-1 alpha-2
    В форматі "ХХ"
    2 символа
    Вказати NA, якщо немає даних

    payer_state

    Status
    colourYellow
    titleне обов'язковий

    String

    Штат платника

    Стандарт ISO 3166-2
    В форматі "ХХ"
    2 символа
    Вказати NA, якщо немає даних

    payer_city

    Status
    colourYellow
    titleне обов'язковий

    String

    Місто плателника

    Max 32 символи
    Вказати NA, якщо немає даних

    payer_zip

    Status
    colourYellow
    titleне обов'язковий

    String

    Поштовий індекс платника

    Max 32 символи

    ext1, ext2, ext3, ext5, ext6, ext7, ext8, ext9, ext10

    Status
    colourYellow
    titleне обов'язковий

    String

    10 додаткових полів

    Max 1024 символи в кажному ext полі


    Приклад запиту

    Expand
    titleПриклад запиту на PHP
    Code Block
    languagephp
    <?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['term_url_3ds'] = 'https://google.com';
      $data['ext4'] = '{"available_parts_count":"6"}';
      $data['hash'] = md5(
                        strtoupper($client_pass).
                        strrev($data['order_id'])
                      );
    
    $url = 'https://secure.platononline.com/post/';
    $crq = curl_init();
    curl_setopt($crq, CURLOPT_URL, $url);
    curl_setopt($crq, CURLOPT_HEADER, 0);
    curl_setopt($crq, CURLOPT_POST, 1);
    curl_setopt($crq, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($crq, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($crq, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($crq, CURLOPT_POSTFIELDS, $data);
    $result = curl_exec($crq);
    if (curl_errno($crq)) {
      echo 'ERROR: '.curl_error($crq);
    }else{
      echo $result;
    }
    curl_close($crq);
    Info

    Postman Collection


    Тестування

    Тестовий режим вмикається опціонально на боці PSP Platon.

    Для тестування після редіректа клієнта на сторінку оформлення оплати частинами Приватбанк необхідно ввести тестові реквізити:

    Телефон - 988748970

    Пароль - password8970

    Info

    Увага! При бойовому використанні, якщо було введено телефон який у клієнта підв'язано в Приватбанк і у нього є додаток на телефоні, то замість редіректа в браузер буде редірект в додаток. В інших випадках клієнту відкриється форма Приватбанка для авторизації в браузері.


    Перевірка оплат

    Expand
    titleСписок методів отримання результату транзакції
    Include Page
    Отримання результату транзакції
    Отримання результату транзакції

    Callback

    Expand
    titleОсобливості роботи з Callback
    Include Page
    Робота з Callback
    Робота з Callback
    Expand
    titleБезпека
    Include Page
    Безпека
    Безпека

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

    Стандартний режим роботи. Передавати async = N не потрібно.


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

    Цей режим активується при передачі async = Y. В цьому режимі є обов'язковим використання коллбеків.

    Принципової різниці у використанні синхронного або асинхронного режимів немає. Вам необхідно вибрати в залежності від найбільш зручного варіанту реалізації саме під ваш проект.


    Include Page
    Callback / Response - SALE_PART Приватбанк
    Callback / Response - SALE_PART Приватбанк

    Помилки запитів

    Expand
    titleСписок помилок та рішень
    Include Page
    Помилки та рішення при запитах
    Помилки та рішення при запитах