Callback 3.0 public

Уведомление о смене статуса платежа server->server

После смены статуса платежа, если был указан параметр server_url, на Ваше API будет отправлен POST запрос с двумя параметрами data и signature , где:

data - результат функции base64_encode( $json_string )

signature - результат функции base64_encode( sha1( $private_key . $data . $private_key, 1 ) )

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 Страна карты отправителя. Цифровой 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 Описание товара.
Проверка Callback сигнатуры
#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
POST_DATA='base64_post_string'
POST_SIGNATURE='tp+ZLmKm1/E83dIzUpx5ljcttP4='
# SIGNATURE is base64 encode result from sha1 binary hash from concatenate string ${PRIVATE_KEY}${POST_DATA}${PRIVATE_KEY}
SIGNATURE=$(echo -n "${PRIVATE_KEY}${POST_DATA}${PRIVATE_KEY}" | openssl dgst -binary -sha1 | base64)

if [ "x${POST_SIGNATURE}" == "x${SIGNATURE}" ]
then
echo "ok"
else
echo "invalid signature: ${POST_SIGNATURE} != ${SIGNATURE}"
fi


# POST_DATA in this example
# base64_post_string

# SIGNATURE in this example
# tp+ZLmKm1/E83dIzUpx5ljcttP4=
$sign = base64_encode( sha1( 
$private_key .  
$data . 
$private_key 
, 1 ));
LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY);
String sign = liqpay.str_to_sign(
PRIVATE_KEY + 
$data +
PRIVATE_KEY
);    
System.out.println(sign);
 ">  
liqpay = LiqPay(PUBLIC_KEY, PRIVATE_KEY)
sign = liqpay.str_to_sign(
PRIVATE_KEY +
$data +
PRIVATE_KEY
)
liqpay = Liqpay::Liqpay.new(
:public_key  => 'public_key',
:private_key => 'private_key'
)
sign = liqpay.str_to_sign(
PRIVATE_KEY + 
$data +
PRIVATE_KEY
)
Sign = liqpay:str_to_sign(
<<PRIVATE_KEY/binary,  
Data/binary,
PRIVATE_KEY/binary>>
).
var LiqPay = require('liqpay');
var liqpay = new LiqPay(public_key, private_key);
var sign = liqpay->str_to_sign(
PRIVATE_KEY +
data +
PRIVATE_KEY
);
my $liqpay = Liqpay->new($public_key,$private_key);
my $sign = $liqpay->str_to_sign(
PRIVATE_KEY + 
$data +
PRIVATE_KEY
);