Приватний
Створення компанії
Реєстрація нової компанії в LiqPay для агентської схеми
Що таке API створення компанії?
Реєстрація нової компанії в LiqPay для підключення до партнерської (агентської) схеми. Нова компанія автоматично пов'язана з Вашою головною компанією.Як працює API створення компанії
- Ви відправляєте запит на API - вказуєте назву, сайт і логотип нової компанії.
- Для установки еквайрингової комісії банку для нової компанії Ви можете передати в запиті % або фіксований розмір комісії.
- У відповідь від API LiqPay Ви отримуєте публічний і приватний ключі нової компанії.
Підключення
Server-Server
Для отримання доступу до API необхідно:
Відправити запит
Методи інтеграції
Самостійна інтеграція згідно з документацією
Є питання?
Звертайтесь до нашого технічного відділу на пошту:
liqpay.support@privatbank.ua
Необхідні URL для роботи в залежності від обраної моделі:
- https://www.liqpay.ua/api/request — Server-Server;
- https://www.liqpay.ua/api/3/checkout — Client-Server;
Для виклику API LiqPay необхідно передати параметри data і signature (Server - Server) POST методом або перенаправити клієнта (Client-Server) використовуючи POST метод, де:
data
- json рядок з параметрами APIs закодована функцією base64, base64_encode( json_string ),
signature
- унікальний підпис кожного запиту base64_encode( sha3-256( private_key + data + private_key) ),
base64_encode
- повертає рядок, закодований методом base64,
sha3-256
- повертає хеш у вигляді бінарного рядку з 32 байт (64 символи).
Формування data і signature, приклад:
Для підключення прийому оплати через LiqPay, формуємо json рядок з параметрами виклику апі, де:
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| version | Required | Number | Версія API. Наприклад: 7 | |
| public_key | Required | String | Публічний ключ - ідентифікатор створеної компанії. Наприклад: i00000000 | |
| private_key | Required | String | Приватний ключ створеної компанії (не надається нікому крім Вашого розробника). Наприклад: a4825234f4bae72a0be04eafe9e8e2bada209255 | |
| action | Required | String | Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, subscribe - регулярний платіж, paydonate - пожертва, auth - предавторізація картки | |
| amount | Required | Number | Сума платежу. Наприклад: 5, 7.34 | |
| currency | Required | String | Валюта платежу. Можливі значення:USD, EUR, UAH. Додаткові валюти можуть бути встановлені за запитом компанії | |
| description | Required | String | Призначення платежу | |
| order_id | Required | String | Унікальний ID покупки у Вашому магазині. Максимальна довжина 255 символів |
Більше параметрів в документації
Приклад створення json_string:
json_string =
{"public_key":"i00000000","version":7,"action":"pay","amount":"3","currency":"UAH","description":"test","order_id":"000001"}Приклад кодування json_string функцією base64_encode, компанія отримує data:
data = eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ==
Приклад формування signature, компанія формує рядок sign_string шляхом конкатенації private_key + data + private_key:
sign_string = a4825234f4bae72a0be04eafe9e8e2bada209255eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ==a4825234f4bae72a0be04eafe9e8e2bada209255
Після застосування функцій base64_encode( sha3-256( sign_string) ) отримуємо рядок:
signature = 0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s=
Приклад відправки запиту до LiqPay:
1.Для перенаправлення клієнта на сторінку оплати LiqPay (Client - Server) необхідно сформувати HTML-форму:
<form method="POST" action="https://www.liqpay.ua/api/3/checkout" accept-charset="utf-8">
<input type="hidden" name="data"
value="eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ=="/>
<input type="hidden" name="signature" value="0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s="/><input
type="image" src="//static.liqpay.ua/buttons/payUk.png"/></form>
<input type="hidden" name="data"
value="eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ=="/>
<input type="hidden" name="signature" value="0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s="/><input
type="image" src="//static.liqpay.ua/buttons/payUk.png"/></form>
2.Для взаємодії (Server - Server) отримані data і signature необхідно відправити на url https://www.liqpay.ua/api/request:
curl --silent -XPOST https://www.liqpay.ua/api/request --data-
urlencodedata="eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ=="/>
--data-urlencode
signature="0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s="
urlencodedata="eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ=="/>
--data-urlencode
signature="0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s="
3.Статус операції буде відправлений на server_url
4.Успішне завершення оплати
Приклад використання SDK:
#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
API_URL='https://www.liqpay.ua/api/request'
JSON="{
\"action\" : \"agent_shop_create\",
\"version\" : 3,
\"public_key\" : \"${PUBLIC_KEY}\",
\"phone\" : \"380950000001\",
\"site\" : \"agent1.site.com\",
\"description\" : \"site description\",
\"email\" : \"email@gmail.com\",
\"name\" : \"Site name\"
}"
# 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' => 'agent_shop_create',
'version' => '3',
'phone' => '380950000001',
'site' => 'agent1.site.com',
'description' => 'site description',
'email' => 'email@gmail.com',
'name' => 'Site name',
'card' => '4731195301524634',
'card_exp_month' => '03',
'card_exp_year' => '22',
'card_cvv' => '111'
));
HashMap<String, String> params = new HashMap<String, String>();
params.put("action", "agent_shop_create");
params.put("version", "3");
params.put("phone", "380950000001");
params.put("site", "agent1.site.com");
params.put("description", "site description");
params.put("email", "email@gmail.com");
params.put("name", "Site name");
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("result"));
from liqpay import LiqPay
liqpay = LiqPay(public_key, private_key)
res = liqpay.api("request", {
"action" : "agent_shop_create",
"version" : "3",
"phone" : "380950000001",
"site" : "agent1.site.com",
"description" : "site description",
"email" : "email@gmail.com",
"name" : "Site name",
"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 => "agent_shop_create",
:version => "3",
:phone => "380950000001",
:site => "agent1.site.com",
:description => "site description",
:email => "email@gmail.com",
:name => "Site name",
:card => "4731195301524634",
:card_exp_month => "03",
:card_exp_year => "22",
:card_cvv => "111"
})
LiqPay = liqpay:init(PublicKey, PrivateKey),
Res = liqpay:api("request", [
{<<"action">>, <<"agent_shop_create">>},
{<<"version">>, <<"3">>},
{<<"phone">>, <<"380950000001">>},
{<<"site">>, <<"agent1.site.com">>},
{<<"description">>, <<"site description">>},
{<<"email">>, <<"email@gmail.com">>},
{<<"name">>, <<"Site name">>},
{<<"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" : "agent_shop_create",
"version" : "3",
"phone" : "380950000001",
"site" : "agent1.site.com",
"description" : "site description",
"email" : "email@gmail.com",
"name" : "Site name",
"card" : "4731195301524634",
"card_exp_month" : "03",
"card_exp_year" : "22",
"card_cvv" : "111"
}, function( json ){
console.log( json.result );
});
my $liqpay = Liqpay->new($public_key,$private_key);
my $res = $liqpay->api("request",
{
'action' => 'agent_shop_create',
'version' => '3',
'phone' => '380950000001',
'site' => 'agent1.site.com',
'description' => 'site description',
'email' => 'email@gmail.com',
'name' => 'Site name',
'card' => '4731195301524634',
'card_exp_month' => '03',
'card_exp_year' => '22',
'card_cvv' => '111'
}
);
var c = liqpay.New("my_public_key", "my_private_key", nil)
// Creating the request map with all necessary parameters
request:=map[string]interface{}{
"action": "agent_shop_create",
"version": 3,
"public_key": "my_public_key",
"phone": "380950000001",
"card": "4731195301524634",
"card_exp_month": "03",
"card_exp_year": "22",
"card_cvv": "111",
"site": "agent1.site.com",
"description": "site description",
"email": "email@gmail.com",
"name": "Site name",
}
resp, err := c.Send("request", request)
if err != nil {
fmt.Printf("error %v", err.Error())
return
}
fmt.Printf("response: %#v", resp)
Параметри для формування data:
Основні
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| version | Required | Number | Версія API. Поточне значення - 7 | |
| public_key | Required | String | Публічний ключ - ідентифікатор магазину. Отримати ключ можна в налаштуваннях магазину | |
| action | Required | String | agent_shop_create | |
| description | Required | String | Опис магазину | |
| Required | String | E-mail магазину. Заборонені домени підсанкційних країн: by, .ir, .iq, .cu, .ni, .sy, .mm, .kr, .ru, .ve, .af, .cd, .so, .ss, .sd, .ye, .zw, .ly | ||
| name | Required | String | Назва магазину (uk, en) | |
| phone | Required | String | Номер телефону магазину | |
| site | Required | String | URL сайту магазину | |
| iban | Required** | String | IBAN для прийому платежів в цьому магазині. Максимальна довжина 34 символи | |
| company | Required** | String | Найменування компанії (uk, en) | |
| okpo | Required** | String | ОКПО рахунку | |
| amount_procent_agent | Optional | Number | Комісія агента в процентах | |
| amount_static_agent | Optional* | Number | Комісія агента статична | |
| currency_static_agent | Optional* | String | Валюта статичної комісії агента | |
| can_reports | Optional | String | Дозволяє власнику головної компанії переглядати історію платежів створеної компанії, передати значення true | |
| can_checkout_edit | Optional | String | Дозволяє власнику головної компанії редагувати налаштування сторінки оплати створеної компанії, передати значення true | |
| logo | Optional | String | URL логотипа магазину | |
| public_phone | Optional | String | Публічний телефон магазину |
** При відшкодуванні на розрахунковий рахунок компанії
Параметри для агрегаторів
Вкажіть дані підприємства, для якого створюється компанія
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| law_okpo | Required | String | ЄДРПОУ підприємства. Максимальна довжина 255 символів | |
| law_name | Required | String | Назва підприємства. Максимальна довжина 255 символів | |
| law_iban | Required | String | Iban підприємства. Максимальна довжина 255 символів | |
| law_contacts | Required | Object | Контактні дані підприємства | |
| law_cto_info | Required | Object | Інформація про керівника підприємства | |
| law_owners_info | Required | Array | Інформація про кінцевого бенефіціарного власника(-ів) підприємства | |
| law_co_owners_info | Required | Array | Інформація про власника(-ів) істотної участі |
Контактні дані підприємства (об'єкт law_contacts)
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| phone | Optional | String | Контактний телефон підприємства | |
Optional | String | Контактний email підприємства |
Інформація про керівника підприємства (об'єкт law_cto_info)
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| name | Optional | String | ПІБ керівника підприємства | |
| inn | Optional | String | ІПН керівника підприємства | |
| birth_date | Optional | String | Дата народження керівника підприємства. Введіть дату в такому форматі: 2015-03-31 | |
| citizenship | Optional | String | Громадянство керівника підприємства. Напишіть назву країни латинськими буквами. Приклад: Ukraine | |
| residency | Optional | String | Резиденство керівника підприємства |
Інформація про власника(-ів) підприємства (масив law_owners_info)
У масив можна передати до трьох об'єктів з даними про власників.
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| name | Optional | String | ПІБ власника підприємства | |
| inn | Optional | String | ІПН власника підприємства | |
| birth_date | Optional | String | Дата народження власника підприємства. Введіть дату в такому форматі: 2015-03-31 | |
| citizenship | Optional | String | Громадянство власника підприємства. Напишіть назву країни латинськими буквами. Приклад: Ukraine | |
| share_in_capital | Optional | String | Частка власника в статутному капіталі підприємства | |
| residency | Optional | String | Резиденство власника підприємства |
Інформація про власника(-ів) істотної участі (масив law_co_owners_info)
У масив можна передати до десяти об'єктів із даними про власників істотної участі
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| name | Optional | String | ПІБ власника істотної участі. Передавати, якщо власником є фізична особа | |
| inn | Optional | String | ІПН власника істотної участі. Передавати, якщо власником є фізична особа | |
| birth_date | Optional | String | Дата народження власника істотної участі. Передавати, якщо власником є фізична особа | |
| citizenship | Optional | String | Громадянство власника істотної участі. Напишіть назву країни латинськими літерами. Приклад: Ukraine. Передавати, якщо власником є фізична особа | |
| share_in_capital | Optional | String | Розмір частки власника. Передавати як для фізичних осіб, так і для юридичних осіб | |
| residency | Optional | String | Резиденство власника істотної участі. Передавати, якщо власником є фізична особа | |
| company_name | Optional | String | Назва підприємства. Максимальна довжина 255 символів. Передавати, якщо власником є юридична особа | |
| company_okpo | Optional | String | ЄДРПОУ підприємства. Максимальна довжина 255 символів. Передавати, якщо власником є юридична особа |
Параметри відповіді:
| Parameter | Type | Description | |
|---|---|---|---|
| private_key | String | Приватний ключ компанії | |
| public_key | String | Публічний ключ компанії | |
| status | String | Можливі значення: success - Успішний платіж | |
| result | String | Результат виконання запиту ok, error |
Приклад відповіді:
{
"result" :"ok",
"public_key": "i59535170441",
"private_key": "A4iOYADwxEnd0EIObBR0Plq6P1B83ko7RrjyEBFE",
"status": "success”
}
Необхідні URL для роботи в залежності від обраної моделі:
- https://www.liqpay.ua/api/registration/request — Server-Server;
- https://www.liqpay.ua/api/3/checkout — Client-Server;
Для виклику API LiqPay необхідно передати параметри data і signature (Server - Server) POST методом або перенаправити клієнта (Client-Server) використовуючи POST метод, де:
data
- json рядок з параметрами APIs закодована функцією base64, base64_encode( json_string ),
signature
- унікальний підпис кожного запиту base64_encode( sha3-256( private_key + data + private_key) ),
base64_encode
- повертає рядок, закодований методом base64,
sha3-256
- повертає хеш у вигляді бінарного рядку з 32 байт (64 символи).
Формування data і signature, приклад:
Для підключення прийому оплати через LiqPay, формуємо json рядок з параметрами виклику апі, де:
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| version | Required | Number | Версія API. Наприклад: 7 | |
| public_key | Required | String | Публічний ключ - ідентифікатор створеної компанії. Наприклад: i00000000 | |
| private_key | Required | String | Приватний ключ створеної компанії (не надається нікому крім Вашого розробника). Наприклад: a4825234f4bae72a0be04eafe9e8e2bada209255 | |
| action | Required | String | Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, subscribe - регулярний платіж, paydonate - пожертва, auth - предавторізація картки | |
| amount | Required | Number | Сума платежу. Наприклад: 5, 7.34 | |
| currency | Required | String | Валюта платежу. Можливі значення:USD, EUR, UAH. Додаткові валюти можуть бути встановлені за запитом компанії | |
| description | Required | String | Призначення платежу | |
| order_id | Required | String | Унікальний ID покупки у Вашому магазині. Максимальна довжина 255 символів |
Більше параметрів в документації
Приклад створення json_string:
json_string =
{"public_key":"i00000000","version":7,"action":"pay","amount":"3","currency":"UAH","description":"test","order_id":"000001"}Приклад кодування json_string функцією base64_encode, компанія отримує data:
data = eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ==
Приклад формування signature, компанія формує рядок sign_string шляхом конкатенації private_key + data + private_key:
sign_string = a4825234f4bae72a0be04eafe9e8e2bada209255eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ==a4825234f4bae72a0be04eafe9e8e2bada209255
Після застосування функцій base64_encode( sha3-256( sign_string) ) отримуємо рядок:
signature = 0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s=
Приклад відправки запиту до LiqPay:
1.Для перенаправлення клієнта на сторінку оплати LiqPay (Client - Server) необхідно сформувати HTML-форму:
<form method="POST" action="https://www.liqpay.ua/api/3/checkout" accept-charset="utf-8">
<input type="hidden" name="data"
value="eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ=="/>
<input type="hidden" name="signature" value="0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s="/><input
type="image" src="//static.liqpay.ua/buttons/payUk.png"/></form>
<input type="hidden" name="data"
value="eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ=="/>
<input type="hidden" name="signature" value="0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s="/><input
type="image" src="//static.liqpay.ua/buttons/payUk.png"/></form>
2.Для взаємодії (Server - Server) отримані data і signature необхідно відправити на url https://www.liqpay.ua/api/request:
curl --silent -XPOST https://www.liqpay.ua/api/request --data-
urlencodedata="eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ=="/>
--data-urlencode
signature="0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s="
urlencodedata="eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwIiwidmVyc2lvbiI6NywiYWN0aW9uIjoicGF5IiwiYW1vdW50IjoiMyIsImN1cnJlbmN5IjoiVUFIIiwiZGVzY3JpcHRpb24iOiJ0ZXN0Iiwib3JkZXJfaWQiOiIwMDAwMDEifQ=="/>
--data-urlencode
signature="0adgJ8F2Ds5HCVkcz4AlmdLMRoIJf7IxsL3QmeFRz/s="
3.Статус операції буде відправлений на server_url
4.Успішне завершення оплати
Приклад використання SDK:
#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
API_URL='https://www.liqpay.ua/api/registration/request'
JSON="{
\"action\" : \"agent_shop_register\",
\"version\" : 3,
\"public_key\" : \"${PUBLIC_KEY}\",
\"phone\" : \"380950000001\",
\"url_site\" : \"agent1.site.com\",
\"description\" : \"site description\",
\"email\" : \"email@gmail.com\",
\"name\" : \"Site name\"
}"
# 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("registration/request", array(
'action' => 'agent_shop_register',
'version' => '3',
'phone' => '380950000001',
'url_site' => 'agent1.site.com',
'description' => 'site description',
'email' => 'email@gmail.com',
'name' => 'Site name',
));
HashMap<String, String> params = new HashMap<String, String>();
params.put("action", "agent_shop_register");
params.put("version", "3");
params.put("phone", "380950000001");
params.put("url_site", "agent1.site.com");
params.put("description", "site description");
params.put("email", "email@gmail.com");
params.put("name", "Site name");
LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY);
HashMap<String, Object> res = liqpay.api("registration/request", params);
System.out.println(res.get("result"));
from liqpay import LiqPay
liqpay = LiqPay(public_key, private_key)
res = liqpay.api("registration/request", {
"action" : "agent_shop_register",
"version" : "3",
"phone" : "380950000001",
"url_site" : "agent1.site.com",
"description" : "site description",
"email" : "email@gmail.com",
"name" : "Site name",
})
liqpay = Liqpay::Liqpay.new(
:public_key => 'public_key',
:private_key => 'private_key'
)
res = liqpay.api("registration/request", {
:action => "agent_shop_register",
:version => "3",
:phone => "380950000001",
:url_site => "agent1.site.com",
:description => "site description",
:email => "email@gmail.com",
:name => "Site name",
})
LiqPay = liqpay:init(PublicKey, PrivateKey),
Res = liqpay:api("registration/request", [
{<<"action">>, <<"agent_shop_register">>},
{<<"version">>, <<"3">>},
{<<"phone">>, <<"380950000001">>},
{<<"url_site">>, <<"agent1.site.com">>},
{<<"description">>, <<"site description">>},
{<<"email">>, <<"email@gmail.com">>},
{<<"name">>, <<"Site name">>},
], LiqPay).
var LiqPay = require('liqpay');
var liqpay = new LiqPay(public_key, private_key);
liqpay.api("registration/request", {
"action" : "agent_shop_register",
"version" : "3",
"phone" : "380950000001",
"url_site" : "agent1.site.com",
"description" : "site description",
"email" : "email@gmail.com",
"name" : "Site name",
}, function( json ){
console.log( json.result );
});
my $liqpay = Liqpay->new($public_key,$private_key);
my $res = $liqpay->api("registration/request",
{
'action' => 'agent_shop_register',
'version' => '3',
'phone' => '380950000001',
'url_site' => 'agent1.site.com',
'description' => 'site description',
'email' => 'email@gmail.com',
'name' => 'Site name',
}
);
var c = liqpay.New("my_public_key", "my_private_key", nil)
// Creating the request map with all necessary parameters
request:=map[string]interface{}{
"action": "agent_shop_register",
"version": 3,
"public_key": "my_public_key",
"phone": "380950000001",
"site": "agent1.site.com",
"description": "site description",
"email": "email@gmail.com",
"name": "Site name",
}
resp, err := c.Send("request", request)
if err != nil {
fmt.Printf("error %v", err.Error())
return
}
fmt.Printf("response: %#v", resp)
Параметри для формування data:
Основні
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| version | Required | Number | Версія API. Поточне значення - 7 | |
| public_key | Required | String | Публічний ключ - ідентифікатор магазину. Отримати ключ можна в налаштуваннях магазину | |
| action | Required | String | agent_shop_register | |
| phone | Required | String | Номер телефону магазину | |
| Required | String | E-mail магазину. Заборонені домени підсанкційних країн: by, .ir, .iq, .cu, .ni, .sy, .mm, .kr, .ru, .ve, .af, .cd, .so, .ss, .sd, .ye, .zw, .ly | ||
| name | Required | String | Назва магазину (uk, en) | |
| url_site | Optional* | String | URL сайту магазину | |
| url_app_iphone | Optional* | String | URL на додаток у App Store | |
| url_app_android | Optional* | String | URL на додаток у Play Market | |
| telegram | Optional* | String | Посилання на Telegram-бота | |
| viber | Optional* | String | Посилання на Viber-бота | |
Optional* | String | Посилання на аккаунт в Instagram | ||
Optional* | String | Посилання на групу у Facebook | ||
| iban | Required | String | IBAN для прийому платежів в цьому магазині. Максимальна довжина 34 символи | |
| okpo | Required | String | ОКПО рахунку | |
| company | Required | String | Найменування компанії (uk, en) | |
| mcc_code | Required | String | Код МСС. Для отримання списку скористайтеся action: agent_info_mcc_codes. | |
| docs | Optional | Array | Перелік документів, необхідних для активації компанії відповідно до МСС. Деякі МСС можуть не вимагати ніяких документів. Для отримання детального списку скористайтеся action: agent_info_mcc_docs. | |
| amount_procent_agent | Optional* | Number | Комісія агента в процентах | |
| amount_static_agent | Optional* | Number | Комісія агента статична | |
| currency_static_agent | Optional | String | Валюта статичної комісії агента | |
| can_reports | Optional | String | Дозволяє власнику головної компанії переглядати історію платежів створеної компанії, передати значення true | |
| can_checkout_edit | Optional | String | Дозволяє власнику головної компанії редагувати налаштування сторінки оплати створеної компанії, передати значення true | |
| logo | Optional | String | URL логотипа магазину | |
| url_callback_status | Optional | String | URL для отримання даних про зміну статуса магазину (5 - активовано, 6 - заблоковано) |
* Одне з посилань на компанію повинно бути заповнене.
Параметри для агрегаторів
Вкажіть дані підприємства, для якого створюється компанія
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| law_okpo | Required | String | ЄДРПОУ підприємства. Максимальна довжина 255 символів | |
| law_name | Required | String | Назва підприємства. Максимальна довжина 255 символів | |
| law_iban | Required | String | Iban підприємства. Максимальна довжина 255 символів | |
| law_contacts | Required | Object | Контактні дані підприємства | |
| law_cto_info | Required | Object | Інформація про керівника підприємства | |
| law_owners_info | Required | Array | Інформація про кінцевого бенефіціарного власника(-ів) підприємства | |
| law_co_owners_info | Required | Array | Інформація про власника(-ів) істотної участі |
Документи необхідні для активації компанії (масив docs)
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| file | Required | String | base64_encoded_data | |
| doc_id | Optional | Number | Повертається від API agent_info_mcc_docs | |
| name | Required | String | Назва документу. Якщо завантажуємо документ зі списку від API agent_info_mcc_docs, то назва з відповіді | |
| file_name | Required | String | Назва файла |
Контактні дані підприємства (об'єкт law_contacts)
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| phone | Optional | String | Контактний телефон підприємства | |
Optional | String | Контактний email підприємства |
Інформація про керівника підприємства (об'єкт law_cto_info)
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| name | Optional | String | ПІБ керівника підприємства | |
| inn | Optional | String | ІПН керівника підприємства | |
| birth_date | Optional | String | Дата народження керівника підприємства. Введіть дату в такому форматі: 2015-03-31 | |
| citizenship | Optional | String | Громадянство керівника підприємства. Напишіть назву країни латинськими буквами. Приклад: Ukraine | |
| residency | Optional | String | Резиденство керівника підприємства |
Інформація про власника(-ів) підприємства (масив law_owners_info)
У масив можна передати до трьох об'єктів з даними про власників.
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| name | Optional | String | ПІБ власника підприємства | |
| inn | Optional | String | ІПН власника підприємства | |
| birth_date | Optional | String | Дата народження власника підприємства. Введіть дату в такому форматі: 2015-03-31 | |
| citizenship | Optional | String | Громадянство власника підприємства. Напишіть назву країни латинськими буквами. Приклад: Ukraine | |
| share_in_capital | Optional | String | Частка власника в статутному капіталі підприємства | |
| residency | Optional | String | Резиденство власника підприємства |
Інформація про власника(-ів) істотної участі (масив law_co_owners_info)
У масив можна передати до десяти об'єктів із даними про власників істотної участі
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| name | Optional | String | ПІБ власника істотної участі. Передавати, якщо власником є фізична особа | |
| inn | Optional | String | ІПН власника істотної участі. Передавати, якщо власником є фізична особа | |
| birth_date | Optional | String | Дата народження власника істотної участі. Передавати, якщо власником є фізична особа | |
| citizenship | Optional | String | Громадянство власника істотної участі. Напишіть назву країни латинськими літерами. Приклад: Ukraine. Передавати, якщо власником є фізична особа | |
| share_in_capital | Optional | String | Розмір частки власника. Передавати як для фізичних осіб, так і для юридичних осіб | |
| residency | Optional | String | Резиденство власника істотної участі. Передавати, якщо власником є фізична особа | |
| company_name | Optional | String | Назва підприємства. Максимальна довжина 255 символів. Передавати, якщо власником є юридична особа | |
| company_okpo | Optional | String | ЄДРПОУ підприємства. Максимальна довжина 255 символів. Передавати, якщо власником є юридична особа |
Параметри callback-а
| Parameter | Type | Description | |
|---|---|---|---|
| activation_status | Number | Статус активації компанії. 5 - компанія активована, 6 - компанія заблокована | |
| company_name | String | Повне найменування компанії | |
| create_date | String | Дата створення | |
| String | E-mail компанії | ||
| name | String | Найменування компанії | |
| okpo | String | ОКПО рахунку | |
| phone | String | Телефон | |
| public_key | String | Публічний ключ | |
| refund_number | String | Рахунок відшкодування компанії | |
| update_date | String | Дата оновлення | |
| url | String | URL компанії |
Доступні МСС:
Параметри для формування data
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| action | Required | String | agent_info_mcc_codes | |
| version | Required | Number | Версія API. Поточне значення - 7 | |
| public_key | Required | String | Публічний ключ - ідентифікатор магазину. Отримати ключ можна в налаштуваннях магазину | |
| language | Optional | String | Локаль в якій повернути відповідь. За замовчуванням — українська мова. Значення en, uk |
Приклад відповіді
| Parameter | Type | Description | |
|---|---|---|---|
| mcc_codes | Array | Масив із даними кодів | |
| result | String | Результат виконання запиту | |
| status | String | Статус виконання запиту |
Дані MCC (массив mcc_codes)
| Parameter | Type | Description | |
|---|---|---|---|
| id | Number | Ідентифікатор | |
| mcc_code | Number | Значення МСС. Порожній для категорії кодів, містить значення для МСС | |
| name | String | Назва коду чи категорії кодів | |
| parent_id | Number | Ідентифікатор категорії кодів. Порожній для категорій кодів, містить значення для МСС |
Документи:
Параметри для формування data
| Parameter | Required | Type | Description | |
|---|---|---|---|---|
| action | Required | String | agent_info_mcc_docs | |
| version | Required | Number | Версія API. Поточне значення - 7 | |
| mcc_code | Required | Number | Значення коду MCC. Максимальна довжина 4 символи | |
| public_key | Required | String | Публічний ключ - ідентифікатор магазину. Отримати ключ можна в налаштуваннях магазину | |
| language | Optional | String | Локаль в якій повернути відповідь. За замовчуванням — українська мова. Значення en, uk |
Приклад відповіді
| Parameter | Type | Description | |
|---|---|---|---|
| result | String | Результат виконання запиту | |
| status | String | Статус виконання запиту | |
| expected_docs | Array | Масив із даними документів, необхідних для отриманого МСС |
Дані MCC (массив expected_docs)
| Parameter | Type | Description | |
|---|---|---|---|
| doc_id | Number | Ідентифікатор документа | |
| doc_type | String | Тип документа: required - обов'язковий документ, allof - замінити документ можна рештою всіх документів зі списку, optional - необов'язковий документ. | |
| name | String | Назва документу | |
| alt_docs | Array | Масив ідентифікаторів документів, які можуть замінити поточний документ | |
| description | String | Опис документа |
Параметри відповіді:
| Parameter | Type | Description | |
|---|---|---|---|
| result | String | Результат виконання запиту ok, error |
Приклад відповіді:
{
"result": "ok",
}