note

Зміст

Зміст


note

Опис

Опис

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

Увага! Цей запит на виплату в цілях безпеки використовує перевірку унікальності по order_id для виключення випадків дублів запитів на видачу. У випадку відправки мерчантом декількох однакових запитів з різницею в часі від меньше 1 сек до 10 хв (що не дозволить системі за такий термін провести перевірку на унікальність) - PSP Platon не бере на себе відповідальність за відшкодування лишніх виданих коштів.


note

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

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

  • Провести інтеграцію API методу.
  • Надати тех підтримці PSP Platon посилання для Callback.
  • Повідомити тех підтримці PSP Platon ваші IP адреса серверів для додавання в білий список.
  • Провести виплату використовуючи тестові реквізити / реальну картку (активується після підписання договору).
  • Отримати Callback та / або Response.

note

Вимоги

Вимоги

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


note

API параметри

API параметри

HTTP METHOD: POST

API ENDPOINT: https://secure.platononline.com/p2p-unq/

Параметр

Значення

Опис

Особливості

action

CREDIT2CARD

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

client_key

String

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

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

order_id

String

Унікальний ордера мерчанта

Max 255 символів

order_amount

Number

Сума виплати

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

1000.00

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

1000
1000.0
1,000.0
1,000.00

order_currency

UAH

Валюта

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

order_description

String

Опис

Max 1024 символа

card_number

Number

Повний номер картки

16 символів

first_name

String

Ім'я отримувача

Max 256 символів

Обов'язково, якщо order_amount більше або рівний 30000 грн.

last_name

String

Прізвище отримувача

Max 256 символів

Обов'язково, якщо order_amount більше або рівний 30000 грн.

phone

String

Телефон отримувача

Max 32 символи

email

String

Валідний емейл отримувача

Max 128 символів

hash

String

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

md5(
  strtoupper(
    $client_pass.
    strrev(
      substr($card_number,0,6).
      substr($card_number,-4)
    )
  )
);

taxn

String

ІНН отримувача

Обов'язково, якщо order_amount більше або рівний 30000 грн.

id_docs

Files

Підписані документи отримувача (паспорт, ІНН)

channel_id

String

Додатковий платіжний канал

Дозволяє використати інший банківський термінал

req_token

Y

Створення токену картки

Для отримання card_token


note

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

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

<?php
  $client_pass = '***';
  $data['action'] = 'CREDIT2CARD';
  $data['client_key'] = '***';
  $data['order_id'] = 'X1345';
  $data['order_amount'] = '1000.00';
  $data['order_currency'] = 'UAH';
  $data['order_description'] = 'credit test';
  $data['card_number'] = '4111111111111111';
  $data['card_exp_month'] ='01'; // тільки для тестових реквізитів;
  $data['card_exp_year'] = '2024'; // тільки для тестових реквізитів;
  $data['hash'] = md5(
            strtoupper(
              $client_pass.
              strrev(
                substr($data['card_number'],0,6).
                substr($data['card_number'],-4)
              )
            )
          );

  $url = 'https://secure.platononline.com/p2p-unq/';
  $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, http_build_query($data));
  $result = curl_exec($crq);
  if (curl_errno($crq)) {
    echo 'ERROR: '.curl_error($crq);
  }else{
    echo $result;
  }
  curl_close($crq);

Postman Collection


note

Тестування

Тестування


note

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

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


note

Callback та Response

Callback та Response

При успішній виплаті:

array (
  'action' => 'CREDIT2CARD',
  'result' => 'SUCCESS',
  'status' => 'SETTLED',
  'order_id' => '1328876',
  'trans_id' => '27894-89059-67608',
  'trans_date' => '2020-01-13 20:55:05',
  'hash' => '********************************',
  'card_hash' => 'cc1c30cfbfe57b068b1f6c4c336791282256b2efc8cf52e85cc2e5fa2a62047a',
  'fee_type' => 'TRANSACTION',
  'fee' => '0.5',
)

Для проверки достоверности полученного callback, рекомендуем сверять подпись hash по формуле md5(strtoupper(client_pass.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Параметр

Описание

action

CREDIT2CARD

result

SUCCESS

status

SETTLED

order_id

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

trans_id

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

trans_date

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

card_token

Зашифрованный токен карты для последующих транзакций по card_token

card_hash

Уникальное зашифрованное значение номера карты, которое будет возвращаться в коллбеке при оплате, верификации, погашении и выплате средств на карту.

Этот параметр даст вам возможность в вашей системе:

  • Привязать карту под клиента.

  • Проверить не использовал ли другой клиент эту же карту.

  • Проверить какие кредиты, товары и услуги погашаются данной картой.

  • Отслеживать мошенничество, когда клиент использует ту же карту с другого аккаунта, например, чтобы повторно воспользоваться акцией.

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

fee_type

Признак каким образом взимается комиссия:

  • ACT - по актам.

  • TRANSACTION - потранзакционно.

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

fee

Сумма комиссии с мерчанта по транзакции в ГРН

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

hash

Зашифрованная проверочная подпись

{
  "action":"CREDIT2CARD",
  "result":"SUCCESS",
  "status":"SETTLED",
  "order_id":"1328876",
  "trans_id":"27894-89059-67608",
  "trans_date":"2020-01-13 20:55:05"
}

При невдалій виплаті:

array (
  'action' => 'CREDIT2CARD',
  'result' => 'DECLINED',
  'status' => 'DECLINED',
  'order_id' => '560404',
  'trans_id' => '27894-80158-07868',
  'trans_date' => '2020-01-13 20:40:15',
  'decline_reason' => '9858: Restricted Card',
  'hash' => '********************************',
  'card_hash' => '31c9ea919afdc5361ca31cc9e3c4874af6bdd374601e7ef8e6c72b3d9ef0933f',
)

Для проверки достоверности полученного callback, рекомендуем сверять подпись hash по формуле md5(strtoupper(client_pass.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Параметр

Описание

action

CREDIT2CARD

result

DECLINED

status

DECLINED

order_id

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

trans_id

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

trans_date

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

card_token

Зашифрованный токен карты для последующих транзакций по card_token

decline_reason

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

hash

Зашифрованная проверочная подпись

{
  "action":"CREDIT2CARD",
  "result":"DECLINED",
  "status":"DECLINED",
  "order_id":"560404",
  "trans_id":"27894-80158-07868",
  "trans_date":"2020-01-13 20:40:15",
  "decline_reason":"9858: Restricted Card"
}

Проміжна відповідь у випадку технічних негараздів:

При отриманні Callback з таким статусом необхідно очікувати Callback з фінальним статусом транзакції.

Симулювати такий Callback в тестовому середовищі неможливо.

array (
  'action' => 'CREDIT2CARDTOKEN',
  'result' => 'SUCCESS',
  'status' => 'WAITING',
  'order_id' => '5774734',
  'trans_id' => '28262-75863-96848',
  'trans_date' => '2020-02-25 10:46:26',
  'hash' => '********************************',
)

Для проверки достоверности полученного callback, рекомендуем сверять подпись hash по формуле md5(strtoupper(client_pass.trans_id.strrev(substr(card_number,0,6).substr(card_number,-4))))

Параметр

Описание

action

CREDIT2CARD

result

SUCCESS

status

WAITING

order_id

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

trans_id

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

trans_date

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

card_token

Зашифрованный токен карты для последующих транзакций по card_token

hash

Зашифрованная проверочная подпись

При отриманні Response з таким статусом необхідно очікувати Response з фінальним статусом транзакції.

Симулювати такий Response в тестовому середовищі неможливо.

{
  "action":"CREDIT2CARDTOKEN",
  "result":"SUCCESS",
  "status":"WAITING",
  "order_id":"5774734",
  "trans_id":"28262-75863-96848",
  "trans_date":"2020-02-25 10:46:26"
}

note

Помилки при виплатах

Помилки при виплатах


note

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

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