Публічний
Інвойс
Виставлення рахунку на e-mail клієнта в режимі server-server


Створення
Схема роботи 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\" : \"invoice_send\",
    \"version\" : 3,
    \"public_key\" : \"${PUBLIC_KEY}\", 
    \"email\" : \"client-email@gmail.com\", 
    \"amount\" : 200,
    \"currency\" : \"USD\",
    \"order_id\" : \"order_id_1\",
    \"goods\" : \"[{
        \\\"amount\\\" : 100,
        \\\"count\\\" : 2,
        \\\"unit\\\" : \\\"шт.\\\",
        \\\"name\\\" : \\\"USB\\\"
    }]\",
}"
# 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'    => 'invoice_send',
'version'   => '3',
'email'     => 'client-email@gmail.com',
'amount'    => '200',
'currency'  => 'USD',
'order_id'  => 'order_id_1',
'goods'     => array(array(
'amount' => 100,
'count'  => 2,
'unit'   => 'шт.',
'name'   => 'телефон'
))
));
HashMap<String, String> params = new HashMap<String, String>();
params.put("action", "invoice_send");
params.put("version", "3");
params.put("email", "client-email@gmail.com");
params.put("amount", "200");
params.put("currency", "USD");
params.put("order_id", "order_id_1");
params.put("goods", "[{"
+ "\"amount\":100,"
+ "\"count\":2,"
+ "\"unit\":\"шт.\","
+ "\"name\":\"телефон\""
+ "}]");

LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY);
HashMap<String, Object> res = liqpay.api("request", params);		
System.out.println(res.get("result"));
liqpay = LiqPay(public_key, private_key)
res = liqpay.api("request", {
"action"    : "invoice_send",
"version"   : "3",
"email"     : "client-email@gmail.com",
"amount"    : "1",
"currency"  : "USD",
"order_id"  : "order_id_1",
"goods"     : [{
"amount" : 100,
"count"  : 2,
"unit"   : "шт.",
"name"   : "телефон"
}]
})
liqpay = Liqpay::Liqpay.new(
:public_key  => 'public_key',
:private_key => 'private_key'
)
res = liqpay.api("request", {
:action   => "invoice_send",
:version  => "3",
:email    => "client-email@gmail.com",
:amount   => "1",
:currency => "USD",
:order_id => "order_id_1",
:goods    => [{
:amount => 100,
:count  => 2,
:unit   => "шт.",
:name   => "телефон"
}]
})
LiqPay = liqpay:init(PublicKey, PrivateKey),
Res = liqpay:api("request", [
{<<"action">>, <<"invoice_send">>},
{<<"version">>, <<"3">>}, 
{<<"email">>, <<"client-email@gmail.com">>}, 
{<<"amount">>, <<"1">>}, 
{<<"currency">>, <<"USD">>}, 
{<<"order_id">>, <<"order_id_1">>}, 
{<<"goods">>, [[
{<<"amount">>, 100},
{<<"count">>, 2},
{<<"unit">>, <<"шт.">>},
{<<"name">>, <<"телефон">>},
]]}
], LiqPay)
var LiqPay = require('liqpay');
var liqpay = new LiqPay(public_key, private_key);
liqpay.api("request", {
"action"   : "invoice_send",
"version"  : "3",
"email"    : "client-email@gmail.com",
"amount"   : "1",
"currency" : "USD",
"order_id" : "order_id_1",
"goods"    : [{
"amount" : 100,
"count"  : 2,
"unit"   : "шт.",
"name"   : "телефон"
}]
}, function( json ){
console.log( json.result );
});
my $liqpay = Liqpay->new($public_key,$private_key);
my $res = $liqpay->api("request",
{
'action'   => 'invoice_send',
'version'  => '3',
'email'    => 'client-email@gmail.com',
'amount'   => '1',
'currency' => 'USD',
'order_id' => 'order_id_1',
'goods'    => [{
'amount' => 100,
'count'  => 2,
'unit'   => 'шт.',
'name'   => 'телефон'
}]
}
);
Init("my_public_key", "my_private_key")
Api("request", map[string]interface{}{
    "action": "invoice_send",
    "version": 3,
    "public_key": PublicKey,
    "order_id": "order_id_1",
    "email": "client-email@gmail.com", 
    "amount": 200,
    "currency": "USD",
    "split_rules": []interface{}{
        map[string]interface{}{
            "count": 1,
            "amount": 0.2,
            "unit": "pcs",
            "name": "unit_name",
        },
        map[string]interface{}{
            "count": 1,
            "amount": 0.2,
            "unit": "pcs",
            "name": "unit_name",
        },
    },
})
Параметри для формування data:
Основні
Parameter Required Type Description
version Required Number Версія API. Поточне значення - 3
public_key Required String Публічний ключ - ідентифікатор магазину. Отримати ключ можна в налаштуваннях магазину
action Required String invoice_send
amount Required Number Сума платежу. Наприклад: 5, 7.34
currency Required String Валюта платежу. Можливі значення: USD, EUR, RUB, UAH
description Required String Призначення платежу.
email Required String Email клієнта для відправки інвойсу (phone або email обов'язкові параметри для передачі)
order_id Required String Унікальний ID покупки у Вашому магазині. Максимальна довжина 255 символів.
phone Required String Телефон, на який буде відправлено інвойс (phone або email обов'язкові параметри для передачі)
action_payment Optional String Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, subscribe - регулярний платіж, paydonate - пожертва
expired_date Optional String Час до якого клієнт може оплатити рахунок за UTC. Передається в форматі 2016-04-24 00:00:00
goods Optional String Список товарів
[
  {
    "amount": 1,
    "count": 2,
    "unit": "шт.",
    "name": "USB"
  },
  {
    "amount": 10,
    "count": 1,
    "unit": "шт.",
    "name": "Телефон"
  }
]
language Optional String Мова клієнта ru, uk, en
result_url Optional String URL у Вашому магазині на який покупець буде переадресовано після завершення покупки. Максимальна довжина 510 символів.
server_url Optional String URL API в Вашому магазині для повідомлень про зміну статусу платежу (сервер->сервер). Максимальна довжина 510 символів. Детальніше
Приклад відповіді:
{
  "id": 6173,
  "status": "invoice_wait",
  "amount": 0.03,
  "currency": "UAH",
  "description": "Invoice",
  "order_id": "98R1U1OV1485849059893399",
  "token": "150112455893001_6480_GBe3Mxwnq2O7G0MLX4gkQLtZf2",
  "href": "https://liqpay.ua/apipay/invoice/150112455893001_6480_GBe3Mxwnq2O7G0MLX4gkQLtZf2",
  "receiver_type": "email",
  "receiver_value": "test@gmail.com",
  "action": "pay"
}
Параметри відповіді
Parameter Type Description
action String Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, paysplit - розщеплення платежу, subscribe - створення регулярного платежу, paydonate - пожертвування, auth - предавторізація картки, regular - регулярний платіж
amount Number Сума платежу
currency String Валюта платежу
description String Коментар до платежу
href String Посилання на інвойс
id Number Id платежу в системі LiqPay
order_id String Order_id платежу
receiver_type String Вид каналу отримання
receiver_value String Значення отримане в параметрі receiver_type
status String Статус платежу.
Можливі значення:
Кінцеві статуси платежу
error Неуспішний платіж. Некоректно заповнені дані
failure Неуспішний платіж
success Успішний платіж
Інші статуси платежу
invoice_wait Інвойс створений успішно, очікується оплата
token String Token платежу