Versions Compared

Key

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

Зміст

Table of Contents
minLevel1
maxLevel2


Опис

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

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

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

Warning

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


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

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

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_token

Status
colourGreen
titleОБОВ'ЯЗКОВИЙ

String

Токен картки

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

first_name

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

String

Ім'я клієнта

Max 256 символів

Warning

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

last_name

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

String

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

Max 256 символів

Warning

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

phone

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

String

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

Max 32 символа

email

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

String

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

Max 128 символів

hash

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

String

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

Code Block
languagephp
md5(
  strtoupper(
    $client_pass.
    strrev($card_token)
  )
)

taxn

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

String

ІПН клієнта

Max 16 символів

channel_id

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

String

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

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


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

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

Postman Collection


Тестування

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


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

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

Callback & Responce

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

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

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

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

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

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