Приватный
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 Успешный платеж
Cтатусы требующие подтверждения платежа
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