note

Зміст

Зміст


note

Опис

Опис

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

В запитів використовується раніше отриманий та збережений вами CARD_TOKEN, який можна отримати з callback при верифікації картки.

Додатково рекомендуємо ознайомитись з розділом /wiki/spaces/docs/pages/1323303006

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


note

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

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

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

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_token

String

Токен картки

card_token з коллбекупервинної транзакції

first_name

String

Ім'я клієнта

Max 256 символів

Обов'язково, якщо сума виплати більше 30000 грн.

last_name

String

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

Max 256 символів

Обов'язково, якщо сума виплати більше 30000 грн.

phone

String

Телефон клієнта

Max 32 символа

email

String

Валідний емейл клієнта

Max 128 символів

hash

String

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

md5(
  strtoupper(
    $client_pass.
    strrev($card_token)
  )
)

taxn

String

ІПН клієнта

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

channel_id

String

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

Використовується для додаткового банківського термінала


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_token'] = '*****';
  $data['card_exp_month'] ='01'; // тільки для тестових реквізитів;
  $data['card_exp_year'] = '2024'; // тільки для тестових реквізитів;
  $data['hash'] = md5(
                    strtoupper(
                        $client_pass.
                        strrev($data['card_token'])
                    )
                    );

  $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

Тестування

Тестування

Для тестування використайте card_token отриманий з Callback при успішній транзакції з використанням наших тестових реквізитів.


note

Перевірка транзакції

Перевірка транзакції


note

Callback & Responce

Callback & Responce

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

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_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)

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' => 'CREDIT2CARD',
  '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":"CREDIT2CARD",
  "result":"SUCCESS",
  "status":"WAITING",
  "order_id":"5774734",
  "trans_id":"28262-75863-96848",
  "trans_date":"2020-02-25 10:46:26"
}

note

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

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


note

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

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