Публічний
Checkout
Персоналізована платіжна сторінка - 8 методів оплати

Схема роботи checkout
Підключення
  1. Створіть компанію в LiqPay за посиланням:
    Після реєстрації для Вашої компанії автоматично будуть створені унікальні ключі доступу до API:
    public_key - унікальний ідентифікатор Вашої компанії в системі LiqPay
    private_key - секретний ключ доступу до API
  2. Відповідно до технічної документації сформуйте запит на API
Формування запиту до API при самостійній інтеграції:
Приклад використання SDK:
#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
JSON="{ 
\"version\" : 3,
\"public_key\" : \"${PUBLIC_KEY}\", 
\"action\" : \"pay\", 
\"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)
echo "data: ${DATA}"
echo "signature: ${SIGNATURE}"

# DATA in this example
# eyAidmVyc2lvbiIgOiAzLCAicHVibGljX2tleSIgOiAieW91cl9wdWJsaWNfa2V5IiwgImFjdGlv
# biIgOiAicGF5IiwgImFtb3VudCIgOiAxLCAiY3VycmVuY3kiIDogIlVTRCIsICJkZXNjcmlwdGlv
# biIgOiAiZGVzY3JpcHRpb24gdGV4dCIsICJvcmRlcl9pZCIgOiAib3JkZXJfaWRfMSIgfQ==

# SIGNATURE in this example
# QvJD5u9Fg55PCx/Hdz6lzWtYwcI=
$liqpay = new LiqPay($public_key, $private_key);
$html = $liqpay->cnb_form(array(
'action'         => 'pay',
'amount'         => '1',
'currency'       => 'USD',
'description'    => 'description text',
'order_id'       => 'order_id_1',
'version'        => '3'
));
HashMap<String, String> params = new HashMap<String, String>();
params.put("action", "pay");
params.put("amount", "1");
params.put("currency", "USD");
params.put("description", "description text");
params.put("order_id", "order_id_1"); 
params.put("version", "3"); 
LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY);
String html = liqpay.cnb_form(params);    
System.out.println(html);
 
liqpay = LiqPay(public_key, private_key)
html = liqpay.cnb_form({
"action"         : "pay",
"amount"         : "1",
"currency"       : "USD",
"description"    : "description text",
"order_id"       : "order_id_1",
"version"        : "3"
})
liqpay = Liqpay::Liqpay.new(
:public_key  => 'public_key',
:private_key => 'private_key'
)
html = liqpay.cnb_form({
:action         => "pay",
:amount         => "1",
:currency       => "USD",
:description    => "description text",
:order_id       => "order_id_1",
:version        => "3"
})
LiqPay = liqpay:init(PublicKey, PrivateKey),
Html = liqpay:cnb_form([ 
{<<"action">>,      <<"pay">>}, 
{<<"amount">>,      <<"1">>}, 
{<<"currency">>,    <<"USD">>}, 
{<<"description">>, <<"description text">>}, 
{<<"order_id">>,    <<"order_id_1">>},
{<<"version">>,     <<"3">>}
], LiqPay)
var LiqPay = require('liqpay');
var liqpay = new LiqPay(public_key, private_key);
var html = liqpay.cnb_form({
'action'         : 'pay',
'amount'         : '1',
'currency'       : 'USD',
'description'    : 'description text',
'order_id'       : 'order_id_1',
'version'        : '3'
});
my $liqpay = Liqpay->new($public_key,$private_key);
my $html = $liqpay->cnb_form({
'action'         => 'pay',
'amount'         => '1',
'currency'       => 'USD',
'description'    => 'description text',
'order_id'       => 'order_id_1',
'version'        => '3'
}
);
Приклад HTML-форми:
	<form method="POST" action="https://www.liqpay.ua/api/3/checkout" 
	accept-charset="utf-8">
	<input type="hidden" name="data" value="eyAidmVyc2lvbiIgOiAzLCAicHVibGljX2tleSIgOiAieW91cl9wdWJsaWNfa2V5IiwgImFjdGlv
	biIgOiAicGF5IiwgImFtb3VudCIgOiAxLCAiY3VycmVuY3kiIDogIlVTRCIsICJkZXNjcmlwdGlv
	biIgOiAiZGVzY3JpcHRpb24gdGV4dCIsICJvcmRlcl9pZCIgOiAib3JkZXJfaWRfMSIgfQ=="/>
	<input type="hidden" name="signature" value="QvJD5u9Fg55PCx/Hdz6lzWtYwcI="/>
	<input type="image" 
	src="//static.liqpay.ua/buttons/p1ru.radius.png"/>
	</form>
Параметри для формування data:
Основні
Parameter Required Type Description
version Required Number Версія API. Поточне значення - 3
public_key Required String Публічний ключ - ідентифікатор магазину. Отримати ключ можна в налаштуваннях магазину
action Required String Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, subscribe - регулярний платіж, paydonate - пожертва, auth - предавторізація картки
amount Required Number Сума платежу. Наприклад: 5, 7.34
currency Required String Валюта платежу. Можливі значення: USD, EUR, RUB, UAH
description Required String Призначення платежу.
order_id Required String Унікальний ID покупки у Вашому магазині. Максимальна довжина 255 символів.
expired_date Optional String Час до якого клієнт може оплатити рахунок за UTC. Передається в форматі 2016-04-24 00:00:00
language Optional String Мова клієнта ru, uk, en
paytypes Optional String Параметр в якому передаються способи оплати, які будуть відображені на чекауті. Можливі значення card - оплата карткою, liqpay - через кабінет liqpay, privat24 - через кабінет приват24, masterpass - через кабінет masterpass, moment_part - розстрочка, cash - готівкою, invoice - рахунок на e-mail, qr - сканування qr-коду. Якщо параметр не переданий, то застосовуються настройки магазину, вкладка Checkout.
result_url Optional String URL у Вашому магазині на який покупець буде переадресовано після завершення покупки. Максимальна довжина 510 символів.
sandbox Optional String Включає тестовий режим. Кошти з картки платника не списуються. Для включення тестового режиму необхідно передати значення 1. Всі тестові платежі будуть мати статус sandbox - успішний тестовий платіж.
server_url Optional String URL API в Вашому магазині для повідомлень про зміну статусу платежу (сервер->сервер). Максимальна довжина 510 символів. Детальніше
verifycode Optional String Можливе значення Y. Динамічний код верифікації, генерується і повертається в Callback. Так само згенерований код буде переданий в транзакції верифікації для відображення у виписці по картці клієнта. Працює для action= auth.
Параметри розщеплення платежу
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"
  }
]
Параметри відправника
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 Поштовий індекс відправника
Параметри захищеного платежу
letter_of_credit Optional String Щоб включити прийом платежів за акредитивом передайте параметр із значенням1
letter_of_credit_date Optional String Дата закінчення терміну акредитива в наступному форматі 2015-03-31 00:00:00 по UTC.
Параметри регулярного платежу
subscribe Optional String Регулярний платіж. Можливі значення: 1
subscribe_date_start Optional String Дата першого платежу. Час необхідно вказувати в такому форматі 2015-03-31 00:00:00 по UTC. Якщо вказана минула дата, то підписка буде активована з поточної дати отримання запиту
subscribe_periodicity Optional String Періодичність списання коштів. Можливі значення:
month - раз на місяць
year - раз на рік
Параметри для оплати в 1 клік
customer Optional String Унікальний ідентифікатор клієнта на сайті мерчанта. При передачі параметра LiqPay запам'ятовує платіжні реквізити клієнта і його ідентифікатор - подальша оплата може бути проведена в 1 клік. Максимальна довжина 100 символів.
(При використанні параметра для Masterpass 1 клік, в даному полі передається валідный номер телефону платника)
recurringbytoken Optional String Дозволяє генерувати card_token платника, який ви отримаєте в callback запиті на server_url. card_token дозволяє проводити платежі без введення реквізитів картки платника, використовуючи API оплати за токеном - тобто в 1 клік. Для отримання card_token необхідно передати в запиті значення: 1
customer_user_id Optional String Ідентифікатор користувача в системі мерчанта, передається при кожній оплаті користувача (не повинен збігатися з customer, використовується для оплати за допомогою гаманця Masterpass 1 клік)
Інші параметри
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 символів.
Буде корисно
Callback
Отримання статусу та інформації про платіж
Errors
Відомості та помилки, які повертаються у відповіді системою LiqPay