Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Зміст

Table of Contents
maxLevel2
indent0px
absoluteUrltrue
stylecircle

Опис

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

Warning

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


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

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

Вимоги

Expand
titleTLS 1.2

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


API параметри

HTTP METHOD: POST

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

Параметр

Значення

Опис

Особливості

action

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

CREDIT2CARD

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

client_key

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

String

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

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

order_id

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

String

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

Max 255 символів

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

Опис

Max 1024 символа

card_number

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

Number

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

16 символів

first_name

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

String

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

Max 256 символів

last_name

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

String

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

Max 256 символів

phone

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

String

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

Max 32 символи

email

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

String

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

Max 128 символів

hash

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

String

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

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

taxn

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

String

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

Warning

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

id_docs

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

Files

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

Warning

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

channel_id

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

String

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

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

req_token

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

Y

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

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


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

Expand
titleПриклад запиту на PHP
Code Block
languagephp
<?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);
Info

Postman Collection


Тестування

Expand
titleВикористайте наші тестові реквізити
Include Page
Тестові реквізити (IE, A2C)
Тестові реквізити (IE, A2C)

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

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

Callback та Response

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

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

Expand
titleCallback при успішній виплаті
Code Block
languagephp
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',
)
Info

Для проверки достоверности полученного 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

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

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

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

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

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

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

Info

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

fee_type

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

  • ACT - по актам.

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

Info

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

fee

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

Info

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

hash

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

Expand
titleResponse при успешной выплате
Code Block
languagejson
{
  "action":"CREDIT2CARD",
  "result":"SUCCESS",
  "status":"SETTLED",
  "order_id":"1328876",
  "trans_id":"27894-89059-67608",
  "trans_date":"2020-01-13 20:55:05"
}

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

Expand
titleCallback при невдалій виплаті
Code Block
languagephp
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',
)
Info

Для проверки достоверности полученного 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

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

Expand
titleResponse при невдалій виплаті
Code Block
languagejson
{
  "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"
}

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

Expand
titleПроміжний Callback у випадку технічних негараздів
Note

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

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

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

Для проверки достоверности полученного 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

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

Expand
titleПроміжний Response у випадку технічних негараздів
Note

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

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

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

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

Expand
titleКоди помилок та варіанти вирішень при A2C виплатах на картку
Include Page
Помилки та рішення при A2C виплаті на картку
Помилки та рішення при A2C виплаті на картку

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

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