Приватний
P2P платежі
Переказ коштів з картки на картку, телефон, email або розрахунковый рахунок

Схема роботи API p2p платежі
Формування запиту до API при самостійній інтеграції:
Приклад використання SDK:
#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
API_URL='https://www.liqpay.ua/api/request'
JSON="{ 
	\"action\" : \"p2p\",
    \"version\" : 3,
    \"public_key\" : \"${PUBLIC_KEY}\", 
    \"phone\" : \"380950000001\",
    \"amount\" : 1,
    \"currency\" : \"USD\",
    \"description\" : \"description text\",
    \"order_id\" : \"order_id_1\",
    \"card\" : \"4731195301524634\",
    \"card_exp_month\" : \"03\",
    \"card_exp_year\" : \"22\",
    \"card_cvv\" : \"111\",
    \"receiver_card\" : \"4731195301524633\"
}"
# DATA is base64_encode result from JSON string
DATA=$(echo -n ${JSON} | base64)
# SIGNATURE is base64 encode result from sha1 binary hash from concatenate string ${PRIVATE_KEY}${DATA}${PRIVATE_KEY}
SIGNATURE=$(echo -n "${PRIVATE_KEY}${DATA}${PRIVATE_KEY}" | openssl dgst -binary -sha1 | base64)
# REQ is json response from liqpay
REQ=$(curl --silent -XPOST ${API_URL} --data-urlencode data="${DATA}" --data-urlencode signature="${SIGNATURE}")
echo "Result: ${REQ}"
$liqpay = new LiqPay($public_key, $private_key);
$res = $liqpay->api("request", array(
'action'         => 'p2p',
'version'        => '3',
'phone'          => '380950000001',
'amount'         => '1',
'currency'       => 'USD',
'description'    => 'description text',
'order_id'       => 'order_id_1',
'receiver_card'  => '4731195301524633',
'card'           => '4731195301524634',
'card_exp_month' => '03',
'card_exp_year'  => '22',
'card_cvv'       => '111'
));
HashMap<String, String> params = new HashMap<String, String>();
params.put("action", "p2p");
params.put("version", "3");
params.put("phone", "380950000001");
params.put("amount", "1");
params.put("currency", "USD");
params.put("description", "description text");
params.put("order_id", "order_id_1"); 
params.put("receiver_card", "4731195301524633");  
params.put("card", "4731195301524634");
params.put("card_exp_month", "03");
params.put("card_exp_year", "22");
params.put("card_cvv", "111");
LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY);
HashMap<String, Object> res = liqpay.api("request", params);    
System.out.println(res.get("status"));
from liqpay import LiqPay

liqpay = LiqPay(public_key, private_key)
res = liqpay.api("request", {
"action"         : "p2p",
"version"        : "3",
"phone"          : "380950000001",
"amount"         : "1",
"currency"       : "USD",
"description"    : "description text",
"order_id"       : "order_id_1",
"receiver_card"  : "4731195301524633",
"card"           : "4731195301524634",
"card_exp_month" : "03",
"card_exp_year"  : "22",
"card_cvv"       : "111"
})
liqpay = Liqpay::Liqpay.new(
:public_key  => 'public_key',
:private_key => 'private_key'
)
res = liqpay.api("request", {
:action         => "p2p",
:version        => "3",
:phone          => "380950000001",
:amount         => "1",
:currency       => "USD",
:description    => "description text",
:order_id       => "order_id_1",
:receiver_card  => "4731195301524633",
:card           => "4731195301524634",
:card_exp_month => "03",
:card_exp_year  => "22",
:card_cvv       => "111"
})
LiqPay = liqpay:init(PublicKey, PrivateKey),
Res = liqpay:api("request", [
{<<"action">>, <<"p2p">>},
{<<"version">>, <<"3">>}, 
{<<"phone">>, <<"380950000001">>}, 
{<<"amount">>, <<"1">>}, 
{<<"currency">>, <<"USD">>}, 
{<<"description">>, <<"description text">>}, 
{<<"order_id">>, <<"order_id_1">>}, 
{<<"receiver_card">>, <<"4731195301524633">>}, 
{<<"card">>, <<"4731195301524634">>}, 
{<<"card_exp_month">>, <<"03">>}, 
{<<"card_exp_year">>, <<"22">>}, 
{<<"card_cvv">>, <<"111">>}
], LiqPay)
var LiqPay = require('liqpay');
var liqpay = new LiqPay(public_key, private_key);
liqpay.api("request", {
"action"         : "p2p",
"version"        : "3",
"phone"          : "380950000001",
"amount"         : "1",
"currency"       : "USD",
"description"    : "description text",
"order_id"       : "order_id_1",
"receiver_card"  : "4731195301524633",
"card"           : "4731195301524634",
"card_exp_month" : "03",
"card_exp_year"  : "22",
"card_cvv"       : "111"
}, function( json ){
console.log( json.status );
});
my $liqpay = Liqpay->new($public_key,$private_key);
my $res = $liqpay->api("request",
{
'action'         => 'p2p',
'version'        => '3',
'phone'          => '380950000001',
'amount'         => '1',
'currency'       => 'USD',
'description'    => 'description text',
'order_id'       => 'order_id_1',
'receiver_card'  => '4731195301524633',
'card'           => '4731195301524634',
'card_exp_month' => '03',
'card_exp_year'  => '22',
'card_cvv'       => '111'
}
);
Init("my_public_key", "my_private_key")
Api("request", map[string]interface{}{
    "action": "p2p",
    "version": 3,
    "public_key": PublicKey,
    "phone": "380950000001",
    "amount": 1,
    "currency": "UAH",
    "description": "Test payment",
    "order_id": "order_id_1",
    "card": "4731195301524634",
    "card_exp_month": "03", 
    "card_exp_year": "22",
    "card_cvv": "111",
    "receiver_card": "4731195301524633",
})

Параметри для формування data:
Основні
Parameter Required Type Description
version Required Number Версія API. Поточне значення - 3
public_key Required String Публічний ключ - ідентифікатор магазину. Отримати ключ можна в налаштуваннях магазину
action Required String p2p
amount Required Number Сума платежу. Наприклад: 5, 7.34
card Required String Номер картки платника
card_cvv Required String CVV/CVV2
card_exp_month Required String Місяць терміну дії картки платника. Наприклад: 08
card_exp_year Required String Рік терміну дії картки платника. Наприклад: 19
currency Required String Валюта платежу. Можливі значення: USD, EUR, RUB, UAH
description Required String Призначення платежу.
ip Required String IP клієнта
order_id Required String Унікальний ID покупки у Вашому магазині. Максимальна довжина 255 символів.
phone Required String Телефон платника. На цей номер буде відправлений OTP пароль підтвердження платежу. Телефон вказується в міжнародному форматі (Україна +380, Росія +7). Наприклад: +380950000001 (з +) або +380950000001 (без +)
language Optional String Мова клієнта ru, uk, en
prepare Optional String Попередня підготовка платежу. Цей режим дозволяє визначити всі дані заповнені, чи потрібна 3DS перевірка карти, чи не перевищено ліміт. Засоби з карти платника не списуються. Для включення режиму необхідно передати значення 1
server_url Optional String URL API в Вашому магазині для повідомлень про зміну статусу платежу (сервер->сервер). Максимальна довжина 510 символів. Детальніше
Параметри для переказу на розрахунковий рахунок
receiver_account Required String Номер рахунку отримувача.
receiver_mfo Required String МФО рахунку одержувача.
receiver_okpo Required String ОКПО рахунку одержувача.
receiver_company Required String Найменування розрахункового рахунку отримувача.
Параметри для переказу на картку
receiver_card Required String Номер картки одержувача
Параметри для переказу на токен картки
receiver_card_token Required String Токен картки одержувача. Наприклад: B5BВB0D00B88B00ED00A00D0D
Параметри для переказу по номеру телефону
receiver_phone Required String Номер телефону одержувача.
Параметри для переказу по email
receiver_email Required String Email одержувача
Параметри відправника
sender_address NEW Optional String Адреса відправника
sender_city Optional String Місто відправника
sender_country_code Optional String Код країни відправника. Цифровий ISO 3166-1 код
sender_first_name Optional String Ім'я відправника
sender_last_name Optional String Прізвище відправника
sender_postal_code Optional String Поштовий індекс відправника
Параметри по одержувачу
receiver_first_name Optional String Ім'я одержувача
receiver_last_name Optional String Прізвище одержувача
3DS параметри
mpi_md Optional String Параметр, що повертається сторінкою ACS MD.
Цей параметр передається, тільки якщо попередньо було використано API MPI
mpi_pares Optional String Параметр, що повертається сторінкою ACS pares.
Цей параметр передається, тільки якщо попередньо було використано API MPI
Інші параметри
customer Optional String Унікальний ідентифікатор користувача на сайті мерчанта. Максимальна довжина 100 символів.
info Optional String Інформація для додавання даних до платежу. Наприклад: "External information for payments"
Приклад відповіді:
{
  "action": "p2p",
  "payment_id": 165175,
  "status": "success",
  "version": 3,
  "paytype": "card",
  "public_key": "i000000000",
  "acq_id": 414963,
  "order_id": "98R1U1OV1485849059893399",
  "liqpay_order_id": "NYMK3AE61501685438251925",
  "description": "p2p",
  "sender_phone": "380950000001",
  "sender_first_name": "test",
  "sender_last_name": "test",
  "sender_card_mask2": "414962*99",
  "sender_card_bank": "pb",
  "sender_card_type": "visa",
  "sender_card_country": 804,
  "card_token": "2DFB515626B7341611450DE81E971E948D6F260",
  "amount": 0.02,
  "currency": "UAH",
  "sender_commission": 0.0,
  "receiver_commission": 0.0,
  "agent_commission": 0.0,
  "amount_debit": 0.02,
  "amount_credit": 0.02,
  "commission_debit": 0.0,
  "commission_credit": 0.0,
  "currency_debit": "UAH",
  "currency_credit": "UAH",
  "sender_bonus": 0.0,
  "amount_bonus": 0.0,
  "authcode_debit": "797299",
  "authcode_credit": "283300",
  "rrn_debit": "000663754506",
  "rrn_credit": "000663754513",
  "mpi_eci": "7",
  "is_3ds": false,
  "create_date": 1501686112301,
  "end_date": 1501686112301,
  "transaction_id": 165175
}
Параметри відповіді
Parameter Type Description
acq_id Number ID еквайера
action String Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, paysplit - розщеплення платежу, subscribe - створення регулярного платежу, paydonate - пожертвування, auth - предавторізація картки, regular - регулярний платіж
agent_commission Number Комісія агента в валюті платежу
amount Number Сума платежу
amount_bonus Number Бонус відправника у валюті платежу debit
amount_credit Number Сума транзакції credit в валюті currency_credit
amount_debit Number Сума транзакції debit у валюті currency_debit
authcode_credit String Код авторизації по транзакції credit
authcode_debit String Код авторизації по транзакції debit
card_token String Token картки відправника
commission_credit Number Комісія з одержувача у валюті currency_credit
commission_debit Number Комісія з відправника у валюті currency_debit
create_date String Дата створення платежу
currency String Валюта платежу
currency_credit String Валюта транзакції credit
currency_debit String Валюта транзакції debit
description String Коментар до платежу
end_date String Дата завершення/зміни платежу
is_3ds Boolean Можливі значення:
true - транзакція пройшла з 3DS перевіркою,
false - транзакція пройшла без 3DS перевірки
liqpay_order_id String Order_id платежу в системі LiqPay
mpi_eci Number Можливі значення: 5 - транзакція пройшла з 3DS (емітент і еквайєр підтримують технологію 3D-Secure), 6 - емітент картки платника не підтримує технологію 3D-Secure, 7 - операція пройшла без 3D-Secure
order_id String Order_id платежу
payment_id Number Id платежу в системі LiqPay
paytype String Спосіб оплати. Можливі значення card - оплата картою, liqpay - через кабінет liqpay, privat24 - через кабінет Приват24, masterpass - через кабінет masterpass, moment_part - розстрочка, cash - готівкою, invoice - рахунок на e-mail, qr - сканування qr-коду.
public_key String Публічний ключ магазину
receiver_commission Number Комісія з одержувача у валюті платежу
rrn_credit String Унікальний номер транзакції в системі авторизації і розрахунків обслуговуючого банку Retrieval Reference number
rrn_debit String Унікальний номер транзакції в системі авторизації і розрахунків обслуговуючого банку Retrieval Reference number
sender_bonus Number Бонус відправника у валюті платежу
sender_card_bank String Банк відправника
sender_card_country String Країна картки відправника. Цифровий ISO 3166-1 код
sender_card_mask2 String Карта відправника
sender_card_type String Тип картки відправника MC/Visa
sender_commission Number Комісія з відправника у валюті платежу
sender_first_name String Ім'я відправника
sender_last_name String Прізвище відправника
sender_phone String Телефон відправника
status String Статус платежу.
Можливі значення:
Кінцеві статуси платежу
error Неуспішний платіж. Некоректно заповнені дані
failure Неуспішний платіж
reversed Платіж повернений
success Успішний платіж
Статуси що потребують підтвердження платежу
3ds_verify Потрібна 3DS верифікація.
Для завершення платежу, потрібно виконати 3ds_verify
cvv_verify Потрібне введення CVV картки відправника.
Для завершення платежу, потрібно виконати cvv_verify
otp_verify Потрібне OTP підтвердження клієнта. OTP пароль відправлений на номер телефону Клієнта.
Для завершення платежу, потрібно виконати otp_verify
receiver_verify Потрібне введення даних одержувача.
Для завершення платежу, потрібно виконати receiver_verify
sender_verify Потрібне введення даних відправника.
Для завершення платежу, потрібно виконати sender_verify
Інші статуси платежу
wait_secure Платіж на перевірці
transaction_id Number Id транзакції в системі LiqPay
version Number Версія API. Поточне значення - 3