Публичный
Оплата наличными
Отложенная оплата наличными в терминалах самообслуживания ПриватБанка

Схема работы API оплата наличными
Формирование запроса к API при самостоятельной интеграции:
Пример использования SDK:
#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
API_URL='https://www.liqpay.ua/api/request'
JSON="{ 
    \"action\" : \"paycash\",
    \"version\" : 3,
    \"public_key\" : \"${PUBLIC_KEY}\", 
    \"phone\" : \"380950000001\",
    \"amount\" : 1,
    \"currency\" : \"USD\",
    \"description\" : \"description text\",
    \"order_id\" : \"order_id_1\"
}"
# 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'         => 'paycash',
'version'        => '3',
'phone'          => '380950000001',
'amount'         => '1',
'currency'       => 'USD',
'description'    => 'description text',
'order_id'       => 'order_id_1'    
));
HashMap<String, String> params = new HashMap<String, String>();
params.put("action", "paycash");
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"); 

LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY);
HashMap<String, Object> res = liqpay.api("request", params);    
System.out.println(res.get("status"));
  
liqpay = LiqPay(public_key, private_key)
res = liqpay.api("request", {
"action"         : "paycash",
"version"        : "3",
"phone"          : "380950000001",
"amount"         : "1",
"currency"       : "USD",
"description"    : "description text",
"order_id"       : "order_id_1"
})
liqpay = Liqpay::Liqpay.new(
:public_key  => 'public_key',
:private_key => 'private_key'
)
res = liqpay.api("request", {
:action         => "paycash",
:version        => "3",
:phone          => "380950000001",
:amount         => "1",
:currency       => "USD",
:description    => "description text",
:order_id       => "order_id_1"
})
LiqPay = liqpay:init(PublicKey, PrivateKey),
Res = liqpay:api("request", [
{<<"action">>,      <<"paycash">>}, 
{<<"version">>,     <<"3">>}, 
{<<"phone">>,       <<"380950000001">>}, 
{<<"amount">>,      <<"1">>}, 
{<<"currency">>,    <<"USD">>}, 
{<<"description">>, <<"description text">>}, 
{<<"order_id">>,    <<"order_id_1">>}
], LiqPay)
var LiqPay = require('liqpay');
var liqpay = new LiqPay(public_key, private_key);
liqpay.api("request", {
"action"         : "paycash",
"version"        : "3",
"phone"          : "380950000001",
"amount"         : "1",
"currency"       : "USD",
"description"    : "description text",
"order_id"       : "order_id_1"
}, function( json ){
console.log( json.status );
});
my $liqpay = Liqpay->new($public_key,$private_key);
my $res = $liqpay->api("request",
{
'action'         => 'paycash',
'version'        => '3',
'phone'          => '380950000001',
'amount'         => '1',
'currency'       => 'USD',
'description'    => 'description text',
'order_id'       => 'order_id_1'
}
);
Init("my_public_key", "my_private_key")
Api("request", map[string]interface{}{
    "action": "paycash",
    "version": 3,
    "public_key": PublicKey,
    "phone": "380950000001",
    "amount": 1,
    "currency": "UAH",
    "description": "Test payment",
    "order_id": "order_id_1",
})
Параметры для формирования data:
Основные
Parameter Required Type Description
version Required Number Версия API. Текущее значение - 3
public_key Required String Публичный ключ - идентификатор магазина. Получить ключ можно в настройках магазина
action Required String paycash
amount Required Number Сумма платежа.Например: 5, 7.34
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 (без +)
expired_date Optional String Время до которого клиент может оплатить счет по UTC. Передается в формате 2016-04-24 00:00:00
language Optional String Язык клиента ru, uk, en
prepare Optional String Предподготовка платежа. Этот режим позволяет определить все ли данные заполнены, нужна ли 3DS проверка карты, не превышен ли лимит. Средства с карты плательщика не списываются. Для включения режима необходимо передать значение 1
server_url Optional String URL API в Вашем магазине для уведомлений об изменении статуса платежа (сервер->сервер). Максимальная длина 510 символов. Подробнее
Параметры расщепления платежа
split_rules Optional String Платеж с расщеплением суммы на нескольких получателей. В этом параметре указывается JSON массив с правилами расщепления платежа. При использовании параметра split_rules происходит одно списание с клиента и несколько зачислений получателям. Эквайринговая комиссия взимается с каждого магазина в массиве split_rules. Пример JSON строки:
[
  {
    "public_key": "i000000001",
    "amount": 1,
    "commission_payer": "sender",
    "server_url": "https://server1/callback"
  },
  {
    "public_key": "i000000002",
    "amount": 2,
    "commission_payer": "receiver",
    "server_url": "https://server2/callback"
  }
]
Другие параметры
customer Optional String Уникальный идентификатор пользователя на сайте мерчанта. Максимальная длина 100 символов.
dae Optional String Длинная запись Detail Addenda.
Параметр dae представляет собой JSON строку, к которой применили функцию base64. JSON может содержать следующие параметры:
{
  "airLine": "Avia", // абревиатура авиакомпании, max 4 символов.
  "ticketNumber": "ACSFD12354SA", // номер билета, max 15 символов. 
  "passengerName": "John Doe", // имя пассажира, max 29 символов.
  "flightNumber": "742", // номер рейса, max 5 цифр.
  "originCity": "DP", // код города/аэропорта вылета, max 5 символов.
  "destinationCity": "NY", // код города/аэропорта назначения, max 5 символов.
  "departureDate": "100514" // дата вылета в формате YYMMDD, max 6 цифр.
}
Пример параметра dae: ewogICJhaXJMaW5lIjogIkROSVBST0FWSUEiLAogICJ0aWNrZXROdW1iZXIiOiAiQUNTRkQxMjM1NFNBIiwKICAicGFzc2VuZ2VyTmFtZSI6ICJKb2huIERvZSIsCiAgImZsaWdodE51bWJlciI6ICI3NDIiLAogICJvcmlnaW5DaXR5IjogIkRQIiwKICAiZGVzdGluYXRpb25DaXR5IjogIk5ZIiwKICAiZGVwYXJ0dXJlRGF0ZSI6ICIxMDA1MTQiCn0=
info Optional String Информация для добавления данных к платежу. Например: "External information for payments"
product_category Optional String Категория товара. Максимальная длина 25 символов.
product_description Optional String Описание товара. Максимальная длина 500 символов.
product_name Optional String Название товара. Максимальная длина 100 символов.
product_url Optional String Адрес страницы с товаром. Максимальная длина 2000 символов.
Пример ответа:
{
  "action": "paycash",
  "payment_id": 165168,
  "status": "cash_wait",
  "version": 3,
  "type": "cash",
  "public_key": "i000000000",
  "acq_id": 414963,
  "order_id": "98R1U1OV1485849059893399",
  "liqpay_order_id": "NYMK3AE61501685438251925",
  "description": "description",
  "sender_phone": "380950000001",
  "sender_first_name": "first name",
  "sender_last_name": "last name",
  "amount": 0.1,
  "currency": "UAH",
  "sender_commission": 0.0,
  "receiver_commission": 0.0,
  "agent_commission": 0.0,
  "amount_debit": 0.1,
  "amount_credit": 0.1,
  "commission_debit": 0.0,
  "commission_credit": 0.0,
  "currency_debit": "UAH",
  "currency_credit": "UAH",
  "sender_bonus": 0.0,
  "amount_bonus": 0.0,
  "mpi_eci": "7",
  "is_3ds": false,
  "transaction_id": 165168
}
Параметры ответа
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
commission_credit Number Комиссия с получателя в валюте currency_credit
commission_debit Number Комиссия с отправителя в валюте currency_debit
currency String Валюта платежа
currency_credit String Валюта транзакции credit
currency_debit String Валюта транзакции debit
description 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
public_key String Публичный ключ магазина
receiver_commission Number Комиссия с получателя в валюте платежа
sender_bonus Number Бонус отправителя в валюте платежа
sender_commission Number Комиссия с отправителя в валюте платежа
sender_first_name String Имя отправителя
sender_last_name String Фамилия отправителя
sender_phone String Телефон отправителя
status String Статус платежа.
Возможные значения:
Конечные статусы платежа
error Неуспешный платеж. Некорректно заполнены данные
failure Неуспешный платеж
success Успешный платеж
Другие статусы платежа
cash_wait Ожидается оплата наличными в ТСО
transaction_id Number Id транзакции в системе LiqPay
type String Тип платежа
version Number Версия API. Текущее значение - 3