Invoice for Bots public

Формування інвойсу ботами для подальшої оплати

Документація по налаштуванню ботів в Facebook і Telegram Corezoid

Документація API Invoice Bot:

Request
Param Required Type Description
version yes Number Версія API. Поточне значення - 3
public_key yes String Публічний ключ - ідентифікатор магазина. Отримати ключ можна в налаштуваннях магазина
merchant_public_key yes String Публічний ключ магазину агента
action yes String Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, subscribe - регулярний платіж, paydonate - пожертва, auth - предавторизація картки
action yes String invoice_bot
order_id yes String order_id успішного платежу
email yes String email для відправки квитанції
compensation_id no* String compensation_id проводки зачисления
resp_format no* String Можливий формат звіту json, csv, xml. Якщо параметр не переданий, буде переданий json.
date no** String Якщо невідомий параметр compensation_id, то передається дата, за яку потрібно отримати список compensation_id
phone yes String Телефон платника. На цей номер буде відправлений OTP пароль підтвердження платежу. Телефон вказується в міжнародному форматі (Україна +380 , Росія +7 ). Наприклад: +380950000001 (з +) або 380950000001 (без +)
amount yes Number сума платежу.Наприклад: 5, 7.34
currency yes String Валюта платежу. Приклад значення: USD, EUR, RUB, UAH BYN KZT. Додаткові валюти можуть бути встановлені за запитом компанії.
description yes String Призначення платежу.
order_id yes String Унікальний ID покупки у Вашому магазині.Максимальна довжина 255 символів.
confirm yes String Ознака підтвердження запиту. Можливі значення: yes, no
card yes String Номер картки платника
card_exp_month yes String Місяць терміну дії картки платника.Наприклад: 08
card_exp_year yes String Рік терміну дії картки платника.Наприклад:19
card_cvv yes String CVV/CVV2
card_token yes String Токен картки платника.Наприклад: B5BВB0D00B88B00ED00A00D0D
card_track yes String Трек картки платника.Наприклад:1111222233334444=1703000000000000000
imei yes String IMEI пристрою
receiver_card yes String Номер картки одержувача
bitcoin_addr yes String Гаманець Bitcoin який необхідно поповнити
ip yes String IP клiєнта.
email yes String E-mail клієнта для відправки інвойсу
channel_type yes String Канал бота. Підтримувані значення: telegram
account yes String ID користувача в месенджері
language no String Мова клієнта ru, uk, en.
sandbox no String Включає тестовий режим. Кошти з картки платника не списуються. Для включення тестового режиму необхідно передати значення 1. Всі тестові платежі будуть мати статус sandbox - успішний тестовий платіж.
prepare no String Предподготовка платежа. Этот режим позволяет определить все ли данные заполнены, нужна ли 3DS проверка карты, не превышен ли лимит. Средства с карты плательщика не списываются. Для включения режиима необходимо передать значение 1.
recurringbytoken no String Цей параметр дозволяє генерувати card_token платника, який ви отримаєте в callback запиті на server_url. card_token дозволяє проводити платежі без введення реквізитів картки платника, використовуючи API paytoken. Для отримання card_token необхідно передати в запиті значення: 1
server_url no String URL API у Вашому магазині для повідомлень про зміну статусу платежу ( сервер -> сервер ). Максимальна довжина 510 символів. Докладніше
result_url no String URL у Вашому магазині на який покупець буде переадресовано після завершення покупки в разі переадресації клієнта на сторінку 3ds 3DS-verify. Максимальна довжина 510 символів.
receiver_card_token no String Токен картки одержувача. Наприклад: B5BВB0D00B88B00ED00A00D0D
result_url no String URL у Вашому магазині на який покупець буде переадресовано після завершення покупки. Максимальна довжина 510 символів.
paytypes no String Параметр в якому передаються способи оплати, які будут відображені на чекауті. Можливі значення card - оплата карткою, liqpay - через кабінет liqpay, privat24 - через кабінет приват24, masterpass - через кабінет masterpass, moment_part - розстрочка, cash - готівкою, invoice - рахунок на e-mail, qr - сканування qr-коду. Якщо параметр не переданий, то застосовуються налаштування магазину, вкладка Checkout.
verifycode no String Можливе значення Y. Динамічний код верифікації, генерується і повертається в Callback. Також згенерований код буде переданий в транзакції верифікації для відображення у виписці по картці клієнта. Працює для action= auth.
token no String token платежа
otp no String Одноразовий OTP пароль, який Клієнт отримав на свій телефон
date_from no String Дата початку звіту в форматі timestamp в мілісекундах
date_to no String Дата закінчення звіту в форматі timestamp в мілісекундах
resp_format no String Можливий формат звіту json, csv, xml. Якщо параметр не переданий, буде переданий json.
phone yes String Номер телефону магазину
public_phone no String Публічний телефон магазину
logo no String URL логотипу магазину
site yes String URL сайту магазину
description yes String Опис магазина
email yes String E-mail магазина
name yes String Назва магазина
card yes * String Номер картки для прийому платежів в цьому магазині
card_exp_month yes * String Місяць терміну дії картки
card_exp_year yes * String Рік терміну дії картки
card_cvv yes * String CVV/CVV2
account yes ** String Номер рахунку для прийому платежів в цьому магазині
mfo yes ** String МФО рахунку
okpo yes ** String ОКПО рахунку
company yes ** String Найменування рахунку
amount_procent_agent no Number Комісія агента в процентах
amount_static_agent no * Number Комісія агента статична
currency_static_agent no * String Валюта статичної комісії агента
expired_date no String Час до якого клієнт може оплатити рахунок за UTC. Передається в форматі 2016-04-24 00:00:00
action_payment no String Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, subscribe - регулярний платіж, paydonate - пожертва
goods no String Список товарів
[
  {
    "amount": 1,
    "count": 2,
    "unit": "шт.",
    "name": "USB"
  },
  {
    "amount": 10,
    "count": 1,
    "unit": "шт.",
    "name": "Телефон"
  }
]
Параметри по відправнику
sender_first_name no String Iм'я вiдправника
sender_last_name no String Прiзвище вiдправника
sender_country_code no String Країна карти вiдправника. Цифровий ISO 3166-1 код
sender_city no String Мiсто вiдправника
sender_address no String Адреса вiдправника
sender_postal_code no String Поштовий iндекс вiдправника
Параметры по получателю
receiver_first_name no String ім'я одержувача
receiver_last_name no String Прізвище одержувача
Параметри регулярного платежу
subscribe no String Регулярний платіж.Можливі значення: 1
subscribe_date_start no String якщо.
Час необхідно вказувати в наступному форматі 2015-03-31 00:00:00 по UTC . Якщо вказана минула дата, то підписка буде активована з поточної дати отримання запиту
subscribe_periodicity no String Періодичність списання коштів.
Можливі значення:
month - раз на місяць
year - раз на рік
Параметри акредитива
letter_of_credit no String Щоб включити прийом платежів за акредитивом передайте параметр із значенням 1
letter_of_credit_date no String Дата закінчення терміну акредитива по UTC. Передається в форматі 2015-04-24 00:00:00
3DS параметри
mpi_pares no String Параметр, возвращаемый страницей ACS pares.
Этот параметр передается, только если предварительно было использовано API MPI
mpi_md no String Параметр, возвращаемый страницей ACS MD.
Этот параметр передается, только если предварительно было использовано API MPI
Другие параметры
product_url no String Адреса сторінки з товаром. Максимальна довжина 2000 символів.
product_category no String Категория товара. Максимальная длина 25 символов.
product_name no String Название товара. Максимальная длина 100 символов.
product_description no String Описание товара. Максимальная длина 500 символов.
expired_date no String Час до якого клієнт може оплатити рахунок, а також час життя сесії чекаута по UTC. Передається в форматі 2016-04-24 00:00:00
info no String Информация для добавления к данным платежа. Наприклад: "External information for payments"
customer no String Уникальный идентификатор пользователя на сайте мерчанта. Максимальная длина 100 символов.
mpi_action no String Параметр, определяющий тип платежа. Можливі значення:
pay - Эквайринг
p2p - Переказ з картки на картку
verifycode no String Динамический код авторизации
suburl no String URL субмерчанта
dae no String Длинная запись Detail Addenda.
Параметра dae представляет собой JSON строку, к которой применили функцию base64. JSON может содержать следующие параметры:
- Назва поля,
- Формат [S/N]XXX,
- S - рядок,
- N - число,
- XXX - довжина,
- Опис поля.
{
  "airLine": "S4", // абревіатура авіакомпанії, 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: ewogICJhaXJMaW5lIjogIkROSVBST0FWSUEiLAogICJ0aWNr
ZXROdW1iZXIiOiAiQUNTRkQxMjM1NFNBIiwKICAicGFzc2VuZ2VyTmFtZSI6ICJKb2huIERvZSIs
CiAgImZsaWdodE51bWJlciI6ICI3NDIiLAogICJvcmlnaW5DaXR5IjogIkRQIiwKICAiZGVzdGluY
XRpb25DaXR5IjogIk5ZIiwKICAiZGVwYXJ0dXJlRGF0ZSI6ICIxMDA1MTQiCn0=
split_rules no 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"
  }
]
#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
API_URL='https://www.liqpay.com/api/request'
JSON="{ 
	\"action\" : \"invoice_bot\",
    \"version\" : 3,
    \"public_key\" : \"${PUBLIC_KEY}\", 
    \"amount\" : 200,
    \"currency\" : \"USD\",
    \"order_id\" : \"order_id_1\",
    \"channel_type\" : \"telegram\", 
    \"account\" : \"1234567\"
}"
# DATA is besa64 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_bot',
'version'   => '3',
'amount'    => '200',
'currency'  => 'USD',
'order_id'  => 'order_id_1',
'channel_type'  => 'telegram',
'account'  => '1234567'
));
HashMap params = new HashMap();
params.put("action", "invoice_bot");
params.put("version", "3");
params.put("amount", "200");
params.put("currency", "USD");
params.put("order_id", "order_id_1");
params.put("channel_type", "telegram");
params.put("account", "1234567");

LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY);
HashMap res = liqpay.api("request", params);		
System.out.println(res.get("result"));
liqpay = LiqPay(public_key, private_key)
res = liqpay.api("request", {
"action"    : "invoice_bot",
"version"   : "3",
"amount"    : "1",
"currency"  : "USD",
"order_id"  : "order_id_1",
"channel_type"  : "telegram",
"account"  : "1234567"
})
liqpay = Liqpay::Liqpay.new(
:public_key  => 'public_key',
:private_key => 'private_key'
)
res = liqpay.api("request", {
:action   => "invoice_bot",
:version  => "3",
:amount   => "1",
:currency => "USD",
:order_id => "order_id_1",
:channel_type => "telegram",
:account => "1234567"
})
LiqPay = liqpay:init(PublicKey, PrivateKey),
Res = liqpay:api("request", [
{<<"action">>, <<"invoice_bot">>},
{<<"version">>, <<"3">>}, 
{<<"email">>, <<"client-email@gmail.com">>}, 
{<<"amount">>, <<"1">>}, 
{<<"currency">>, <<"USD">>}, 
{<<"order_id">>, <<"order_id_1">>}, 
{<<"channel_type">>, <<"telegram">>}, 
{<<"account">>, <<"1234567">>}
], LiqPay)
var LiqPay = require('liqpay');
var liqpay = new LiqPay(public_key, private_key);
liqpay.api("request", {
"action"   : "invoice_bot",
"version"  : "3",
"email"    : "client-email@gmail.com",
"amount"   : "1",
"currency" : "USD",
"order_id" : "order_id_1",
"channel_type" : "telegram",
"account" : "1234567"
}, function( json ){
console.log( json.result );
});
my $liqpay = Liqpay->new($public_key,$private_key);
my $res = $liqpay->api("request",
{
'action'   => 'invoice_bot',
'version'  => '3',
'email'    => 'client-email@gmail.com',
'amount'   => '1',
'currency' => 'USD',
'order_id' => 'order_id_1',
'channel_type' => 'telegram',
'account' => '1234567'
}
);
Response
Param Type Description
err_code String Код ошибки.
err_description String Описание ошибки.
version Number Версія API. Поточне значення - 3
result String Результат виконання запиту ok або error.
bot_name String Ім'я бота гаманця LiqPay
bot_in_contacts Bollean Цей параметр вказує чи додав клієнт бота гаманця LiqPay собі в контакти або його потрібно попросити додати бота.
status String Статус платежу.
Можливі значення:
Конечные статусы платежа
success Успішний платіж
failure Неуспешный платеж
error Неуспешный платеж. Некорректно заполнены данные
subscribed Підписка успішно оформлена
unsubscribed Підписка успішно деактивовано
reversed Платеж возвращен
sandbox Тестовий платіж
Cтатусы требующие подтверждения платежа
otp_verify Требуется OTP подтверждение клиента. OTP пароль отправлен на номер телефона Клиента.
Для завершения платежа, требуется выполнить otp_verify.
3ds_verify Требуется 3DS верификация.
Для завершения платежа, требуется выполнить 3ds_verify.
cvv_verify Требуется ввод CVV карты отправителя.
Заполните параметр card_cvv и повторите запрос.
sender_verify Требуется ввод данных отправителя.
Заполните параметры sender_first_name, sender_last_name, sender_country_code, sender_city, sender_address, sender_postal_code и повторите запрос.
receiver_verify Требуется ввод данных получателя.
Заполните параметры receiver_first_name, receiver_last_name и повторите запрос.
phone_verify Очікується введення телефону клієнтом
ivr_verify Очікується підтвердження дзвінком ivr
pin_verify Очікується підтвердження pin-code
captcha_verify Очікується підтвердження captcha
password_verify Очікується підтвердження пароля додатка Приват24
senderapp_verify Очікується підтвердження в додатку Sender
Cтатусы ожидающие обработку платежа
processing Платіж обробляється
prepared Платіж створений, очікується його завершення відправником
wait_bitcoin Очікується переказ bitcoin від клієнта
wait_secure Платіж на перевірці
wait_accept Гроші з клієнта списані, але магазин ще не пройшов перевірку. Якщо магазин не пройде активацію протягом 90 днів, платежі будуть автоматично скасовані
wait_lc Захищений платіж. Кошти з клієнта списані, очікується підтвердження отримання товару
hold_wait Сума успішно заблокована на рахунку відправника
cash_wait Очікується оплата готівкою в ТСО.
wait_qr Очікується сканування QR-коду клієнтом.
wait_sender Очікується підтвердження оплати клієнтом в додатку Privat24/Sender.
wait_card Не встановлений спосіб відшкодування у одержувача
wait_compensation Платіж успішний, буде зарахований в щодобовій проводці
invoice_wait Інвойс створений успішно, очікується оплата
wait_reserve Кошти за платежем зарезервовані для проведення повернення за раніше поданою заявкою
type String Тип платежу.
qr_code String QR-код за яким клієнт може здійснити оплату
bitcoin_amount Number Сума в BTC
bitcoin_addr String Гаманець Bitcoin на який клієнт повинен перевести bitcoin_amount
bitcoin_addr String Гаманець Bitcoin який необхідно поповнити
bitcoin_rate String Курс Bitcoin
err_erc String Код ошибки.
redirect_to String Ссылка на которую необходимо перенаправить клиента для прохождения 3DS верификации.
token String Token платежу.
card_token String Token карты оправителя
payment_id Number Id платежу в системі LiqPay
id Number Id платежу в системі LiqPay
public_key String Публичный ключ магазина
acq_id Number ID еквайера
order_id String Order_id платежу
liqpay_order_id String Order_id платежа в системе Liqpay
description String Комментарий к платежу
sender_phone String Телефон оправителя
sender_card_mask2 String Карта отправителя
sender_card String Карта отправителя
sender_card_bank String Банк отправителя
sender_card_country String Країна карти вiдправника. Цифровий ISO 3166-1 код
sender_user_ip String IP адрес отправителя
sender_card_type String Тип картки відправника
paytype String Способ оплаты
ip String IP адрес отправителя
info String Дополнительная информация о платеже
customer String Уникальный идентификатор пользователя на сайте мерчанта. Максимальная длина 100 символов.
amount Number сума платежу
currency String Валюта платежу
sender_commission Number Комиссия с отправителя в валюте платежа
receiver_commission Number Комиссия с получателя в валюте платежа
agent_commission Number Комиссия агента в валюте платежа
amount_debit Number Сумма транзакции debit в валюте currency_debit
amount_credit Number Сумма транзакции credit в валюте currency_credit
commission_debit Number Комиссия с отправителя в валюте currency_debit
commission_credit Number Комиссия с получателя в валюте currency_credit
currency_debit String Валюта транзакции debit
currency_credit String Валюта транзакции credit
sender_bonus Number Бонус отправителя в валюте платежа
amount_bonus Number Бонус отправителя в валюте транзакции debit
refund_amount Number Сумма возврата
completion_date String Дата списания средств
authcode_debit String Код авторизации по транзакции debit
authcode_credit String Код авторизации по транзакции credit
rrn_debit String Уникальный номер транзакции в системе авторизации и расчетов обслуживающего банка Retrieval Reference number
rrn_credit String Уникальный номер транзакции в системе авторизации и расчетов обслуживающего банка Retrieval Reference number
arrn_debit String Уникальный номер транзакции в системе авторизации и расчетов обслуживающего банка Acquirer's Reference Number
arrn_credit String Уникальный номер транзакции в системе авторизации и расчетов обслуживающего банка Acquirer's Reference Number
verifycode String Код верификации
action String Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, paysplit - разбивка суммы, subscribe - регулярний платіж, paydonate - пожертва
is_3ds Boolean Можливі значення:
true - транзакція пройшла з 3DS перевіркою,
false - транзакція пройшла без 3DS перевірки
ecommerce_auth_code_debit String Код авторизації
trans_type String Тип транзакції. Можливі значення r - reverse, hc - hold_compl, pr - purchase, rf - refund
create_date String Дата створення платежу
end_date String Дата завершення/зміни платежу
mpi_req_pareq String Параметр, необходимый для аутентификации отправителя на странице ACS
mpi_req_md String Параметр, необходимый для аутентификации отправителя на странице ACS
mpi_req_url String адрес страницы банка-эмитента карты (ACS страница), на которую нужно перенаправить клиента для прохождения 3D-Secure
mpi_status String N - карта не участвует, перенаправление клиента для прохождения 3D-Secure не требуется,
U - не удалось проверить карту на участие, перенаправление клиента для прохождения 3D-Secure не требуется,
Y - карта поддерживает сервис 3D-Secure и в параметре mpi_req_url будет присутствовать адрес страницы банка-эмитента, куда нужно будет передать методом POST параметры mpi_req_pareq и mpi_req_md в следующей форме:

	<form name="MPIform" action='${mpi_req_url}' method="POST">
		 <input type="hidden" name="PaReq" value='${mpi_req_pareq}'>
		 <input type="hidden" name="MD" value='${mpi_req_md}'>
		 <input type="hidden" name="TermUrl" value='${TermUrl}'>
	</form>
	

де TermUrl – адреса сторінки, на яку емітент поверне відповідь з параметрами Pares і MD.
Для проведення платежу з вже пройдених 3DS при створенні платежу необхідно передати параметри mpi_pares і mpi_md, зі значеннями Pares і MD, які були отримані від ACS банку емітента.
public_key String Публічний ключ мерчанта
private_key String Приватний ключ мерчанта
data String Дані
product_url String Адреса сторінки з товаром.
product_category String Категория товара.
product_name String Название товара.
product_description String Описание товара.
{
"result": "ok",
"bot_name": "LiqPayWallet",
"bot_in_contacts" : true
}