Прием платежей
curl --location --request POST 'https://api.freedompay.kz/init_payment.php' \
--form 'pg_order_id=23' \
--form 'pg_merchant_id={{merchant_id}}' \
--form 'pg_amount=25' \
--form 'pg_description=test' \
--form 'pg_salt=molbulak' \
--form 'pg_sig={{signature}}'
# Пример подписи:
'init_payment.php;25;test;{{merchant_id}};23;molbulak;{{secret_key}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_payment_id>4567788</pg_payment_id>
<pg_redirect_url>https://api.freedompay.kz/pay.html?customer=498333170d6a895148c57c53ffb18287</pg_redirect_url>
<pg_redirect_url_type>need data</pg_redirect_url_type>
<pg_salt>bdwLavL9lg6It91b</pg_salt>
<pg_sig>709633e91387c56ac6fb7cb33d1e07d8</pg_sig>
</response>
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = $requestForSignature = [
'pg_order_id' => '23',
'pg_merchant_id'=> $pg_merchant_id,
'pg_amount' => '25',
'pg_description' => 'test',
'pg_salt' => 'molbulak',
'pg_currency' => 'KZT',
'pg_check_url' => 'http://site.kz/check',
'pg_result_url' => 'http://site.kz/result',
'pg_request_method' => 'POST',
'pg_success_url' => 'http://site.kz/success',
'pg_failure_url' => 'http://site.kz/failure',
'pg_success_url_method' => 'GET',
'pg_failure_url_method' => 'GET',
'pg_state_url' => 'http://site.kz/state',
'pg_state_url_method' => 'GET',
'pg_site_url' => 'http://site.kz/return',
'pg_payment_system' => 'EPAYWEBKZT',
'pg_lifetime' => '86400',
'pg_user_phone' => '77777777777',
'pg_user_contact_email' => 'mail@customer.kz',
'pg_user_ip' => '127.0.0.1',
'pg_postpone_payment' => '0',
'pg_language' => 'ru',
'pg_testing_mode' => '1',
'pg_user_id' => '1',
// Параметр user_id должен быть уникальным для каждого пользователя!
// В случае повторяющихся значений, пользователи с одинаковым user_id смогут увидеть карты друг друга.
// Это может привести к утечке данных и нарушению конфиденциальности!
// Данная настройка осуществляется на стороне мерчанта!
'pg_recurring_start' => '1',
'pg_recurring_lifetime' => '156',
'pg_receipt_positions' => [
[
// В случае формирования чеков в Республике Узбекистан, в параметре "name" необходимо передавать
// дополнительные значения в определённой последовательности.
// Детальную информацию можно найти в разделе "Особенности формирования фискальных чеков"
'name' => 'название товара',
'count' => '1',
'tax_type' => '3',
'price' => '900',
]
],
'pg_user_id' => '1',
// Параметр user_id должен быть уникальным для каждого пользователя!
// В случае повторяющихся значений, пользователи с одинаковым user_id смогут увидеть карты друг друга.
// Это может привести к утечке данных и нарушению конфиденциальности!
// Данная настройка осуществляется на стороне мерчанта!
'pg_param1' => 'дополнительные данные',
'pg_param2' => 'дополнительные данные',
'pg_param3' => 'дополнительные данные',
];
/**
* Функция превращает многомерный массив в плоский
*/
function makeFlatParamsArray($arrParams, $parent_name = '')
{
$arrFlatParams = [];
$i = 0;
foreach ($arrParams as $key => $val) {
$i++;
/**
* Имя делаем вида tag001subtag001
* Чтобы можно было потом нормально отсортировать и вложенные узлы не запутались при сортировке
*/
$name = $parent_name . $key . sprintf('%03d', $i);
if (is_array($val)) {
$arrFlatParams = array_merge($arrFlatParams, makeFlatParamsArray($val, $name));
continue;
}
$arrFlatParams += array($name => (string)$val);
}
return $arrFlatParams;
}
// Превращаем объект запроса в плоский массив
$requestForSignature = makeFlatParamsArray($requestForSignature);
// Генерация подписи
ksort($requestForSignature); // Сортировка по ключю
array_unshift($requestForSignature, 'init_payment.php'); // Добавление в начало имени скрипта
array_push($requestForSignature, $secret_key); // Добавление в конец секретного ключа
$request['pg_sig'] = md5(implode(';', $requestForSignature)); // Полученная подпись
Название | Описание | Тип | |
---|---|---|---|
pg_order_id required | Идентификатор платежа в системе мерчанта. Рекомендуется поддерживать уникальность этого поля. Максимальная длина 50 символов Пример: 00102 | string | |
pg_merchant_id required | Идентификатор мерчанта в FreedomPay Выдается при подключении. | integer | |
pg_amount required | Сумма платежа в валюте pg_currency. Пример: 10 | number | |
pg_description required | Описание товара или услуги. Отображается покупателю в процессе платежа. Пример: Ticket | string | |
pg_salt required | Случайная строка. Пример: some random string | string | |
pg_sig required | Подпись запроса | string | |
pg_currency | Валюта, в которой указана сумма. KZT, USD, EUR. В случае выбора покупателем способа платежа в другой валюте, производится пересчет по курсу ЦБ на день платежа. См. в разделе Справочник валют Пример: KZT | string | Справочник валют |
pg_check_url | URL для проверки возможности платежа. Вызывается перед платежом, если платежная система предоставляет такую возможность. Если параметр не указан, то берется из настроек магазина. Если параметр установлен равным пустой строке, то проверка возможности платежа не производится. | string | |
pg_result_url | URL для сообщения о результате платежа. Вызывается после платежа в случае успеха или неудачи. Если параметр не указан, то берется из настроек магазина. Является обязательным, если не задан в настройках магазина. Если параметр установлен равным пустой строке, то FreedomPay не сообщает магазину о результате платежа. | string | |
pg_request_method | GET, POST или XML – метод вызова скриптов магазина Check URL, Result URL, для передачи информации от платежного гейта. Пример: POST | string | |
pg_success_url | url, на который отправляется пользователь в случае успешного платежа (только для online систем). Является обязательным, если не задан в настройках магазина. | string | |
pg_failure_url | url, на который отправляется пользователь в случае неуспешного платежа (только для online систем). Является обязательным, если не задан в настройках магазина. | string | |
pg_success_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. Если выбран метод GET или POST, то страница с подтверждением оплаты показывается пользователю на сайте freedompay.kz, и предлагается нажать кнопку, чтобы вернуться на сайт магазина. Пример: GET | string | |
pg_failure_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте freedompay.kz, и предлагается нажать кнопку, чтобы вернуться на сайт магазина. Пример: GET | string | |
pg_state_url | URL скрипта на сайте магазина, куда перенаправляется покупатель для ожидания ответа от платежной системы. Пример: http://site.kz/state | string | |
pg_state_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. AUTOGET – 302 редирект. См. Автоматическая передача информации, п.1. AUTOPOST – форма, которая автоматически сабмитится. См. Автоматическая передача информации, п.2. Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте freedompay.kz, и предлагается нажать кнопку, чтобы вернуться на сайт магазина. Если выбран метод AUTOGET или AUTOPOST, то страница с сообщением о неудавшейся оплате не показывается пользователю, и пользователь сразу передается магазину. Пример: GET | string | |
pg_site_url | URL сайта магазина для показа покупателю ссылки, по которой он может вернуться на сайт магазина после создания счета. Применяется для offline ПС (наличные). Пример: http://site.kz/return | string | |
pg_payment_system | Идентификатор платежной системы. Этот параметр передается только если выбор платежной системы совершается на сайте мерчанта. Если параметр не указан, то выбор ПС совершается на сайте freedompay.kz. Пример: EPAYWEBKZT | string | |
pg_lifetime | Default: "86400". Время (в секундах) в течение которого платеж должен быть завершен, в противном случае заказ при проведении платежа FreedomPay откажет платежной системе в проведении. Этот параметр контролируется FreedomPay, а также, если платежная система поддерживает такую возможность, и платежной системой. Минимально допустимое значение: 300 секунд (5 минут). Максимально допустимое значение: 604800 секунд (7 суток). В случае выхода за пограничные значения будет присвоено минимальное или максимальное значение, соответственно. Пример: 86400 | integer | |
pg_user_phone | Телефон пользователя (начиная с кода страны), необходим для идентификации покупателя. Если не указан, выбор будет предложен пользователю на сайте платежного гейта. Пример: 77777777777 | string | |
pg_user_contact_email | Контактный адрес электронной почты пользователя. Если указан, на этот адрес будут высылаться уведомления об изменении статуса транзакции. Пример: mail@customer.kz | string | |
pg_user_ip | IP-адрес клиента. Необходим для разбора спорных ситуаций в случае подозрения на мошенничество. Параметр можно не передавать при передаче информации через браузер пользователя, в этом случае будет записан тот IP, с которого пользователь перешёл на страницу инициализации платежа. Пример: 127.0.0.1 | string | |
pg_postpone_payment | Создание платежа с отложенной оплатой если в этом параметре передано «1». В таком случае покупатель будет перенаправлен на страницу с информацией о том, что ему было выслано письмо со ссылкой на страницу для продолжения проведения платежа. Если этот параметр присутствует в запросе, то должен быть указан также pg_user_contact_email, иначе пользователь будет перенаправлен на уточнение платежных параметров, где он сможет, указать email и попробовать отложить платеж ещё раз. Пример: 0 | integer | |
pg_language | Язык платежных страниц на сайте FreedomPay и (если возможно) платежных систем. "en", "ru". Пример: ru | string | |
pg_testing_mode | Создание платежа в тестовом режиме. Пример: 1 | integer | |
pg_user_id | ID пользователя в системе мерчанта. Пример: No65GFR755789T, 25642588 | string | |
pg_recurring_start | Флаг, принимает значение 0 или 1. Подробное описание см. в разделе Рекуррентные платежи. Для использования данного параметра Вам следует обратиться к своему менеджеру. Пример: 1 | integer | |
pg_recurring_lifetime | Время на продолжении которого мерчант рассчитывает использовать профиль рекуррентных платежей. Минимально допустимое значение 1 (1 месяц). Максимально допустимое значение: 156 (13 лет). В случае выхода за пограничные значения будет присвоено минимальное или максимальное значение, соответственно. Подробное описание см. в разделе Рекуррентные платежи. Для использования данного параметра Вам следует обратиться к своему менеджеру. Пример: 156 | integer | |
pg_receipt_positions[0][count] | Количество товара. Пример: 2 | integer | |
pg_receipt_positions[0][name] | Наименование товара. Пример: Коврик для мыши | string | |
pg_receipt_positions[0][tax_type] | Тип налога. Возможные значения: 0 - Без налога, 1 - НДС 0%, 2 - НДС 12%, 3 - НДС 12/112, 4 - НДС 18%, 5 - НДС 18/118, 6 - НДС 10%, 7 - НДС 10/110, 8 - НДС 20%, 9 - НДС 20/120 | integer | |
pg_receipt_positions[0][price] | Цена за 1 ед. товара. Пример: 1000 | number | |
pg_param1 | Дополнительный параметр 1. Пример: Дополнительная информация | string | |
pg_param2 | Дополнительный параметр 2. Пример: Дополнительная информация | string | |
pg_param3 | Дополнительный параметр 3. Пример: Дополнительная информация | string | |
pg_auto_clearing | Если 1 клиринг будет происходить сразу, в случае 0 необходимо сделать ручной клиринг. Подробное описание см. в разделе Запрос на клиринг транзакций по банковским картам. Для использования данного параметра Вам следует обратиться к своему менеджеру. Пример: 1 | integer | |
pg_payment_method | Значение - Метод платежа. wallet - Электронные деньги. internetbank, Интернет-банкинг, other - Терминалы, bankcard - Банковские карты, cash - Точки приема платежей, mobile_commerce - Мобильная коммерция. Пример: mobile_commerce | string | |
pg_timeout_after_payment | Определяет время закрытия страницы с платежом в секундах. Пример: 10 | integer | |
pg_generate_qr | В случае, если вы хотите получать QR код со ссылкой на платежную форму FreedomPay в формате base64, в параметре pg_generate_qr необходимо отправить «1» | boolean | |
pg_3ds_challenge | Определяет необходимость прохождения Challenge Flow (1 - обязательно провести Challenge Requested, 0 или пусто - метод определяется эмитентом) банк-эмитент может игнорировать данный параметр и провести платеж по своему Challenge Flow | integer | |
pg_commission_discount | В случае, если вы хотите использовать скидку на комиссию, то необходимо отправить 1. Скидка работает только на комиссию сверху. Для использования метода обратитесь к персональному менеджеру | boolean | |
pg_commission_discount_fix | Для использования фиксированной суммы скидки | number | |
pg_commission_discount_percentage | Для использования процентной скидки | number | |
pg_idempotency_key | Ключ идемпотентности. Используется для защиты от создания дубликатов запросов. Уникальное значение в рамках мерчанта, нельзя использовать одинаковый ключ для разных типов операций | string | |
pg_loyalty_id | Идентификатор в системе лояльности | string | |
pg_loyalty_amount | Сумма начисляемых единиц в системе лояльности | number | |
pg_freedom_id | Идентификатор пользователя в экосистеме Freedom | string |
Название | Описание | Тип |
---|---|---|
pg_status | Показывает результат выполнения запроса: Статус: ok, Описание: Запрос прошел успешно,Статус: error, Описание: Запрос прошел с ошибкой | string |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay cлужит ключом для всей дальнейшей работы с транзакцией | integer |
pg_redirect_url | URL для перенаправления пользователя. Может быть как на сайте freedompay.kz, так и на сайте платежной системы | string |
pg_redirect_url_type | Тип страницы, на которую происходит перенаправление. Возможные значения: need data – диалог с покупателем с целью уточнения параметров: платежной системы, номера телефона, обязательных для данной платежной системы параметров, payment system – страница сайта платежной системы либо страница с инструкциями оплаты через данную платежную систему. Страница с инструкциями может располагаться как на сайте freedompay.kz, так и на сайте мерчанта. В случае получения мерчантом ответа с pg_redirect_url_type=”need data”, мерчант может не перенаправлять покупателя по полученному URL, а уточнить недостающие параметры у себя на сайте. В этом случае после уточнения параметров и повторного запроса на создание платежной транзакции будет создана новая транзакция | string |
pg_redirect_qr | URL для перенаправления пользователя в виде QR. Передается в формате base64 | string |
pg_salt | Случайная строка | string |
pg_sig | Подпись запроса | string |
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж не разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Платеж разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип |
---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer |
pg_amount | Сумма выставленного счета (в валюте pg_currency), совпадает с pg_amount в момент инициализации платежа. Пример: 10 | number |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string |
pg_ps_amount | Сумма счета (в валюте pg_ps_currency), выставленного в платежной системе. Пример: 5 | number |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатит покупатель с учетом всех комиссий. Пример: 5 | number |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string |
pg_salt | Случайная строка. Пример: some random string | string |
pg_sig | Подпись запроса | string |
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=0' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж отменен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=1' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Заказ оплачен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип |
---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer |
pg_amount | Сумма выставленного счета в валюте pg_currency. Пример: 500 | string |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string |
pg_net_amount | Сумма счета (в валюте pg_ps_currency), выставленного в ПС. Поле может отсутствовать в случае неудачного платежа. Пример: 482.5 | string |
pg_ps_amount | Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий. Поле может отсутствовать в случае неудачного платежа. Пример:500 | string |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string |
pg_description | Описание платежа. Пример: Покупка в интернет магазине Site.kz | string |
pg_result | Результат платежа. 2 – Не завершен. 1 – успех, 0 – неудача. Пример: 1 | integer |
pg_payment_date | Дата и время совершения платежа в формате YYYY-MM-DD HH:MM:SS. Пример: 2019-01-01 12:00:00 | datetime |
pg_can_reject | 1 – платеж можно откатить назад (например, Банковские карты), 0 – платеж безотзывный. Пример: 1 | integer |
pg_user_phone | Телефон покупателя (указанный при инициализации платежа). Пример: 7077777777777 | string |
pg_user_contact_email | Email покупателя (указанный при инициализации платежа). Пример: mail@customer.kz | string |
pg_testing_mode | Тестовый режим. 1 - тестовый, 0 - боевой. Пример: 1 | integer |
pg_captured | Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек мерчанта). Если значение этого поля равно 0, мерчант должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться когда FreedomPay сделает это сам. Пример: 0 | integer |
pg_card_id | Опциональный параметр. ID карты для оплаты сохраненной картой (Deprecated). Пример: 1234 | string |
pg_card_token | Опциональный параметр.Токен карты для оплаты сохраненной картой. Пример: ef741cfc-f85e-41a0-84e6-2ba964912182 | string |
pg_card_pan | Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой. Пример: 5483-18XX-XXXX-0293 | string |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string |
pg_salt | Случайная строка. Пример: some random string | string |
pg_sig | Подпись запроса | string |
pg_discount_percent | Информация о проценте скидки, отправляется если скидка присутствует. Пример: 1.0 | string |
pg_discount_amount | Информация о сумме скидки, отправляется если скидка присутствует. Пример: 5 | string |
pg_payment_method | Метод платежа Значение: — Метод платежа: wallet — Электронные деньги, internetbank — Интернет-банкинг other — Терминалы bankcard — Банковские карты cash — Точка приема платежей mobile_commerce — Мобильная коммерция Пример: bankcard | string |
pg_card_exp | Дата истечения срока карты. Пример: 03/23 | string |
pg_card_owner | Имя держателя карты. Пример: Ivan Ivanov | string |
pg_card_brand | Код бренда карты. Пример: VI | string |
Название | Описание | Тип |
---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string |
pg_salt | Случайная строка. Пример: some random string | string |
pg_sig | Подпись запроса | string |
pg_error_code | Код ошибки. В случае ошибки параметр будет отправляться на pg_failure_url.Пример: 1000 | string |
pg_error_description | Описание ошибки. В случае ошибки параметр будет отправляться на pg_failure_url. Пример: Внутреняя ошибка сервиса | string |
curl --location --request POST 'https://api.freedompay.kz/init_payment.php' \
--form 'pg_order_id=23' \
--form 'pg_merchant_id={{paybox_merchant_id}}' \
--form 'pg_amount=25' \
--form 'pg_description=test' \
--form 'pg_payment_route=frame' \
--form 'pg_user_id=12345' \
--form 'pg_salt=molbulak' \
--form 'pg_sig={{paybox_signature}}'
# Пример подписи:
'init_payment.php;25;test;{{paybox_merchant_id}};23;molbulak;{{secret_key}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_payment_id>123456789</pg_payment_id>
<pg_redirect_url>https://api.freedompay.kz/v1/merchant/12345/card/payment?pg_payment_id=12343245dfsdfij123</pg_redirect_url>
<pg_redirect_url_type>need data</pg_redirect_url_type>
<pg_salt>some_random_string</pg_salt>
<pg_sig>your_signature</pg_sig>
</response>
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = $requestForSignature = [
'pg_order_id' => '23',
'pg_merchant_id'=> $pg_merchant_id,
'pg_amount' => '25',
'pg_description' => 'test',
'pg_salt' => 'molbulak',
'pg_payment_route' => 'frame',
'pg_currency' => 'KZT',
'pg_check_url' => 'http://site.kz/check',
'pg_result_url' => 'http://site.kz/result',
'pg_request_method' => 'POST',
'pg_success_url' => 'http://site.kz/success',
'pg_failure_url' => 'http://site.kz/failure',
'pg_success_url_method' => 'GET',
'pg_failure_url_method' => 'GET',
'pg_state_url' => 'http://site.kz/state',
'pg_state_url_method' => 'GET',
'pg_site_url' => 'http://site.kz/return',
'pg_payment_system' => 'EPAYWEBKZT',
'pg_lifetime' => '86400',
'pg_user_phone' => '77777777777',
'pg_user_contact_email' => 'mail@customer.kz',
'pg_user_ip' => '127.0.0.1',
'pg_postpone_payment' => '0',
'pg_language' => 'ru',
'pg_testing_mode' => '1',
'pg_user_id' => '1',
// Параметр user_id должен быть уникальным для каждого пользователя!
// В случае повторяющихся значений, пользователи с одинаковым user_id смогут увидеть карты друг друга.
// Это может привести к утечке данных и нарушению конфиденциальности!
// Данная настройка осуществляется на стороне мерчанта!
'pg_recurring_start' => '1',
'pg_recurring_lifetime' => '156',
'pg_receipt_positions' => [
[
'count' => '1',
'name' => 'название товара',
'tax_type' => '3',
'price' => '900',
]
],
'pg_user_id' => '1',
// Параметр user_id должен быть уникальным для каждого пользователя!
// В случае повторяющихся значений, пользователи с одинаковым user_id смогут увидеть карты друг друга.
// Это может привести к утечке данных и нарушению конфиденциальности!
// Данная настройка осуществляется на стороне мерчанта!
'pg_param1' => 'дополнительные данные',
'pg_param2' => 'дополнительные данные',
'pg_param3' => 'дополнительные данные',
];
/**
* Функция превращает многомерный массив в плоский
*/
function makeFlatParamsArray($arrParams, $parent_name = '')
{
$arrFlatParams = [];
$i = 0;
foreach ($arrParams as $key => $val) {
$i++;
/**
* Имя делаем вида tag001subtag001
* Чтобы можно было потом нормально отсортировать и вложенные узлы не запутались при сортировке
*/
$name = $parent_name . $key . sprintf('%03d', $i);
if (is_array($val)) {
$arrFlatParams = array_merge($arrFlatParams, makeFlatParamsArray($val, $name));
continue;
}
$arrFlatParams += array($name => (string)$val);
}
return $arrFlatParams;
}
// Превращаем объект запроса в плоский массив
$requestForSignature = makeFlatParamsArray($requestForSignature);
// Генерация подписи
ksort($requestForSignature); // Сортировка по ключю
array_unshift($requestForSignature, 'init_payment.php'); // Добавление в начало имени скрипта
array_push($requestForSignature, $secret_key); // Добавление в конец секретного ключа
$request['pg_sig'] = md5(implode(';', $requestForSignature)); // Полученная подпись
Название | Описание | Тип | |
---|---|---|---|
pg_order_id required | Идентификатор платежа в системе мерчанта. Рекомендуется поддерживать уникальность этого поля. Максимальная длина 50 символов Пример: 00102 | string | |
pg_merchant_id required | Идентификатор мерчанта в FreedomPay. Выдается при подключении. | integer | |
pg_amount required | Сумма платежа в валюте pg_currency. Пример: 10 | number | |
pg_description required | Описание товара или услуги. Отображается покупателю в процессе платежа. Пример:Ticket | string | |
pg_salt required | Случайная строка. Пример: some random string | string | |
pg_sig required | Подпись запроса | string | |
pg_payment_route required | Для инициализации frame. Пример: frame | string | |
pg_currency | Валюта, в которой указана сумма. KZT, USD, EUR. В случае выбора покупателем способа платежа в другой валюте, производится пересчет по курсу ЦБ на день платежа. См. в разделе Справочник валют. Пример: KZT | string | Справочник валют |
pg_check_url | URL для проверки возможности платежа. Вызывается перед платежом, если платежная система предоставляет такую возможность. Если параметр не указан, то берется из настроек мерчанта. Если параметр установлен равным пустой строке, то проверка возможности платежа не производится. | string | |
pg_result_url | URL для сообщения о результате платежа. Вызывается после платежа в случае успеха или неудачи. Если параметр не указан, то берется из настроек магазина. Является обязательным, если не задан в настройках магазина. Если параметр установлен равным пустой строке, то FreedomPay не сообщает магазину о результате платежа. | string | |
pg_request_method | GET, POST или XML – метод вызова скриптов мерчанта Check URL, Result URL, для передачи информации от платежного гейта. Пример: POST | string | |
pg_failure_url | url, на который отправляется пользователь в случае неуспешного платежа (только для online систем). Является обязательным, если не задан в настройках магазина. | string | |
pg_failure_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте freedompay.kz. Пример: GET | string | |
pg_state_url | URL скрипта на сайте мерчанта, куда перенаправляется покупатель для ожидания ответа от платежной системы. Пример: http://site.kz/state | string | |
pg_state_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. AUTOGET – 302 редирект. См. Автоматическая передача информации, п.1. AUTOPOST – форма, которая автоматически сабмитится. См. Автоматическая передача информации, п.2. Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте freedompay.kz, и предлагается нажать кнопку, чтобы вернуться на сайт мерчанта. Если выбран метод AUTOGET или AUTOPOST, то страница с сообщением о неудавшейся оплате не показывается пользователю, и пользователь сразу передается мерчанту. Пример: GET | string | |
pg_site_url | URL сайта магазина для показа покупателю ссылки, по которой он может вернуться на сайт магазина после создания счета. Применяется для offline ПС (наличные). Пример: http://site.kz/return | string | |
pg_lifetime | Default: "86400" Время (в секундах) в течение которого платеж должен быть завершен, в противном случае заказ при проведении платежа FreedomPay откажет платежной системе в проведении. Этот параметр контролируется FreedomPay’ом, а также, если платежная система поддерживает такую возможность, и платежной системой. Минимально допустимое значение: 300 секунд (5 минут). Максимально допустимое значение: 604800 секунд (7 суток). В случае выхода за пограничные значения будет присвоено минимальное или максимальное значение, соответственно. Пример: 86400 | integer | |
pg_user_phone | Телефон пользователя (начиная с кода страны), необходим для идентификации покупателя. Если не указан, выбор будет предложен пользователю на сайте платежного гейта. Пример: 77777777777 | string | |
pg_user_contact_email | Контактный адрес электронной почты пользователя. Если указан, на этот адрес будут высылаться уведомления об изменении статуса транзакции. Пример:mail@customer.kz | string | |
pg_user_ip | IP-адрес клиента. Необходим для разбора спорных ситуаций в случае подозрения на мошенничество. Параметр можно не передавать при передаче информации через браузер пользователя, в этом случае будет записан тот IP, с которого пользователь перешёл на страницу инициализации платежа. Пример: 127.0.0.1 | string | |
pg_postpone_payment | Создание платежа с отложенной оплатой если в этом параметре передано «1». В таком случае покупатель будет перенаправлен на страницу с информацией о том, что ему было выслано письмо со ссылкой на страницу для продолжения проведения платежа. Если этот параметр присутствует в запросе, то должен быть указан также pg_user_contact_email, иначе пользователь будет перенаправлен на уточнение платежных параметров, где он сможет, указать email и попробовать отложить платеж ещё раз. Пример: 0 | integer | |
pg_language | Язык платежных страниц на сайте FreedomPayа и (если возможно) платежных систем. "en", "ru". Пример: ru | string | |
pg_testing_mode | Создание платежа в тестовом режиме.Пример: 1 | integer | |
pg_user_id required | ID пользователя в системе мерчанта. Пример: No65GFR755789T, 25642588 | string | |
pg_recurring_start | Флаг, принимает значение 0 или 1. Подробное описание см. в разделе Рекурентные платежи. Для использования данного параметра Вам следует обратиться к своему менеджеру. Пример: 1 | integer | |
pg_recurring_lifetime | Время на продолжении которого магазин рассчитывает использовать профиль рекуррентных платежей. Минимально допустимое значение 1 (1 месяц). Максимально допустимое значение: 156 (13 лет). В случае выхода за пограничные значения будет присвоено минимальное или максимальное значение, соответственно. Подробное описание см. в разделе Рекуррентные платежи. Для использования данного параметра Вам следует обратиться своему менеджеру. Пример: 156 | integer | |
pg_param1 | Дополнительный параметр 1. Пример: Дополнительная информация | string | |
pg_param2 | Дополнительный параметр 2. Пример: Дополнительная информация | string | |
pg_param3 | Дополнительный параметр 3. Пример: Дополнительная информация | string | |
pg_auto_clearing | Если 1 клиринг будет происходить сразу, в случае 0 необходимо сделать ручной клиринг. Подробное описание см. в разделе Запрос на клиринг транзакций по банковским картам. Для использования данного параметра Вам следует обратиться к своему менеджеру. Пример: 1 | integer | |
pg_generate_qr | В случае, если вы хотите получать QR код со ссылкой на платежную форму FreedomPay в формате base64, в параметре pg_generate_qr необходимо отправить «1» | boolean | |
pg_commission_discount | В случае, если вы хотите использовать скидку на комиссию, то необходимо отправить 1. Скидка работает только на комиссию сверху. Для использования метода обратитесь к персональному менеджеру | boolean | |
pg_commission_discount_fix | Для использования фиксированной суммы скидки | number | |
pg_commission_discount_percentage | Для использования процентной скидки | number | |
pg_idempotency_key | Ключ идемпотентности. Используется для защиты от создания дубликатов запросов. Уникальное значение в рамках мерчанта, нельзя использовать одинаковый ключ для разных типов операций | string | |
pg_loyalty_id | Идентификатор в системе лояльности | string | |
pg_loyalty_amount | Сумма начисляемых единиц в системе лояльности | number | |
pg_freedom_id | Идентификатор пользователя в экосистеме Freedom | string |
Название | Описание | Тип | |
---|---|---|---|
pg_status | Показывает результат выполнения запроса: Статус: Описание: ok — Запрос прошел успешно, error — Запрос прошел с ошибкой | string | |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay. Служит ключом для всей дальнейшей работы с транзакцией | integer | |
pg_redirect_url | URL для перенаправления пользователя. Может быть как на сайте freedompay.kz, так и на сайте платежной системы | string | |
pg_redirect_url_type | Тип страницы, на которую происходит перенаправление. Возможные значения: need data – диалог с покупателем с целью уточнения параметров: платежной системы, номера телефона, обязательных для данной платежной системы параметров, payment system – страница сайта платежной системы либо страница с инструкциями оплаты через данную платежную систему. Страница с инструкциями может располагаться как на сайте freedompay.kz, так и на сайте мерчанта. В случае получения мерчантом ответа с pg_redirect_url_type=”need data”, мерчант может не перенаправлять покупателя по полученному URL, а уточнить недостающие параметры у себя на сайте. В этом случае после уточнения параметров и повторного запроса на создание платежной транзакции будет создана новая транзакция | string | |
pg_redirect_qr | URL для перенаправления пользователя в виде QR. Передается в формате base64 | string | |
pg_salt | Случайная строка | string | |
pg_sig | Подпись запроса | string |
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж не разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Платеж разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_amount | Сумма выставленного счета (в валюте pg_currency), совпадает с pg_amount в момент инициализации платежа. Пример: 10 | number | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_ps_amount | Сумма счета (в валюте pg_ps_currency), выставленного в платежной системе. Пример: 5 | number | |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатит покупатель с учетом всех комиссий. Пример: 5 | number | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string |
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=1' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Заказ оплачен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=0' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж отменен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_amount | Сумма выставленного счета в валюте pg_currency, совпадает с pg_amount в момент инициализции. Пример: 500 | string | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_net_amount | Сумма (в валюте pg_currency), которая будет перечислена магазину, в случае успешного завершения платежа. Пример: 482.5 | string | |
pg_ps_amount | Сумма счета (в валюте `pg_ps_currency), выставленного в ПС. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string | |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_description | Описание платежа. Пример: Покупка в интернет магазине Site.kz | string | |
pg_result | Результат платежа. 2 – Не завершен. 1 – успех, 0 – неудача. Пример: 1 | integer | |
pg_payment_date | Дата и время совершения платежа в формате YYYY-MM-DD HH:MM:SS. Пример: 2019-01-01 12:00:00 | datetime | |
pg_can_reject | 1 – платеж можно откатить назад (например, Банковские карты), 0 – платеж безотзывный. Пример: 1 | integer | |
pg_user_phone | Телефон покупателя (указанный при инициализации платежа). Пример: 7077777777777 | string | |
pg_user_contact_email | Email покупателя (указанный при инициализации платежа). Пример: mail@customer.kz | string | |
pg_testing_mode | Тестовый режим. 1 - тестовый, 0 - боевой. Пример: 1 | integer | |
pg_captured | Передается только в случае успешной оплаты банковской картой и показывает,был ли произведен клиринг в момент авторизации (что зависит только от настроек мерчанта). Если значение этого поля равно 0, мерчант должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться когда FreedomPay сделает это сам. Пример: 0 | integer | |
pg_card_id | Опциональный параметр. ID карты для оплаты сохраненной картой (Deprecated). Пример: 1234 | string | |
pg_card_token | Опциональный параметр. Токен карты для оплаты сохраненной картой. Пример: ef741cfc-f85e-41a0-84e6-2ba964912182 | string | |
pg_card_pan | Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой. Пример: 5483-18XX-XXXX-0293 | string | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string | |
pg_payment_method | Метод платежа Значение: — Метод платежа: wallet — Электронные деньги, internetbank — Интернет-банкинг other — Терминалы bankcard — Банковские карты cash — Точка приема платежей mobile_commerce — Мобильная коммерция Пример: bankcard | string | |
pg_card_exp | Дата истечения срока карты. Пример: 03/23 | string | |
pg_card_owner | Имя держателя карты. Пример: Ivan Ivanov | string | |
pg_card_brand | Код бренда карты. Пример: VI | string |
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string | |
pg_error_code | Код ошибки. В случае ошибки параметр будет отправляться на pg_failure_url. Пример: 1000 | string | |
pg_error_description | Описание ошибки. В случае ошибки параметр будет отправляться на pg_failure_url. Пример: Внутреняя ошибка сервиса | string |
<script>
(function (p, a, y, b, o, x) {
o = p.createElement(a);
x = p.getElementsByTagName(a)[0];
o.async = 1;
o.src = 'https://cdn.freedompay.kz/widget/pbwidget.js?' + 1 * new Date();
x.parentNode.insertBefore(o, x);
})(document, 'script');
</script>
function pay(amount) {
var data = {
token: Ваш токен,
payment: {
amount: amount,
language: 'ru', // Язык виджета
description: 'Описание заказа',
},
successCallback: function (payment) {
console.log(payment) // Данные о платеже
},
errorCallback: function (payment) {
console.log(payment) // Данные о платеже
}
}
var widget = new PayBox(data);
widget.create();
}
<button onclick="pay(100)">Оплатить</button>
function pay(amount) {
var data = {
token: "Ваш токен",
payment: {
order: "1",
amount: "200",
currency: "KZT",
description: "Описание заказа",
expires_at: "2020-12-12 00:00:00",
param1: "string",
param2: "string",
param3: "string",
test: 1, // testing mode
options: {
callbacks: {
result_url: "https://my-domain.com/result",
check_url: "https://my-domain.com/check"
},
custom_params: {},
user: {
email: "user@test.com",
phone: "77777777777",
},
receipt_positions: [
{
count: 2,
name: "Коврик для мыши",
tax_type: 3,
price: 1000
},
{
count: 2,
name: "Розетка",
tax_type: 3,
price: 1000
}
]
}
},
successCallback: function (payment) {
//...
},
errorCallback: function (payment) {
//...
}
}
var widget = new PayBox(data);
widget.create();
}
successCallback: function (payment) {
// при успешном платеже
alert('Заказ номер ' + payment.order + ' успешно оплачен')
},
errorCallback: function (payment) {
// при неуспешном платеже
alert('Произошла ошибка при попытке оплаты заказа номер ' + payment.order)
}
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж не разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Платеж разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_amount | Сумма выставленного счета (в валюте pg_currency), совпадает с pg_amount в момент инициализации платежа. Пример: 10 | number | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_ps_amount | Сумма счета (в валюте pg_ps_currency), выставленного в платежной системе. Пример: 5 | number | |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатит покупатель с учетом всех комиссий. Пример: 5 | number | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string |
{
"id": 12345,
"status": {
"code": "success"
},
"order": 1234,
"amount": "100.00",
"refund_amount": "0.00",
"currency": "KZT",
"description": "Описание заказа",
"payment_system": "WEBKZT",
"expires_at": "2022-01-18T05:58:58Z",
"created_at": "2022-01-17T11:58:58Z",
"updated_at": "2022-01-17T11:59:07Z",
"param1": null,
"param2": null,
"param3": null,
"options": {
"callbacks": {
"result_url": "",
"check_url": ""
},
"user": {
"email": "widget@freedompay.kz",
"phone": "77"
},
"receipt_positions": null
},
"salt": "EitR7ZYZvhpioeCU",
"sig": "05e72b0137c52c1e941c627f42cb1f39"
}
{"status": "ok"}
curl --location --request POST 'https://api.freedompay.kz/any_amount.php' \
--form 'pg_order_id=23' \
--form 'pg_merchant_id={{paybox_merchant_id}}' \
--form 'pg_amount=25' \
--form 'pg_description=test' \
--form 'pg_salt=molbulak' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=mobile_commerce'
# Пример подписи:
'any_amount.php;25;test;{{paybox_merchant_id}};23;KZT;molbulak;{{secret_key}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_payment_id>4567788</pg_payment_id>
<pg_redirect_url>https://api.freedompay.kz/any_amount?customer=498333170d6a895148c57c53ffb18287</pg_redirect_url>
<pg_redirect_url_type>need data</pg_redirect_url_type>
<pg_salt>bdwLavL9lg6It91b</pg_salt>
<pg_sig>709633e91387c56ac6fb7cb33d1e07d8</pg_sig>
</response>
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_amount' => 10,
'pg_salt' => 'some random string',
'pg_order_id'=> '00102',
'pg_description' => 'Ticket',
'pg_result_url' => 'http://site.kz/result'
];
// $request['pg_testing_mode'] = 1; //add this parameter to request for testing payments
//if you pass any of your parameters, which you want to get back after the payment, then add them. For example:
// $request['client_name'] = 'My Name';
// $request['client_address'] = 'Earth Planet';
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'any_amount.php');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_order_id required | Идентификатор платежа в системе мерчанта. Рекомендуется поддерживать уникальность этого поля. Если мерчант не передал это поле, то оно становится обязательным для заполнения плательщиком. Максимальная длина 50 символов Пример: 00102 | string | |
pg_merchant_id required | Идентификатор мерчанта в FreedomPay. Выдается при подключении. | integer | |
pg_description required | Описание товара или услуги. Отображается покупателю в процессе платежа. Пример: Ticket | string | |
pg_salt required | Случайная строка. Пример: some random string | string | |
pg_sig required | Подпись запроса | string | |
pg_currency | Валюта, в которой указана сумма. KZT, USD, EUR. В случае выбора покупателем способа платежа в другой валюте, производится пересчет по курсу ЦБ на день платежа. См. в разделе Справочник валют. Пример: KZT | string | Справочник валют |
pg_check_url | URL для проверки возможности платежа. Вызывается перед платежом, если платежная система предоставляет такую возможность. Если параметр не указан, то берется из настроек мерчанта. Если параметр установлен равным пустой строке, то проверка возможности платежа не производится. | string | |
pg_result_url | URL для сообщения о результате платежа. Вызывается после платежа в случае успеха или неудачи. Если параметр не указан, то берется из настроек мерчанта. Если параметр установлен равным пустой строке, то FreedomPay не сообщает мерчанту о результате платежа. | string | |
pg_request_method | GET, POST или XML – метод вызова скриптов мерчанта Check URL, Result URL, для передачи информации от платежного гейта. Пример: POST | string | |
pg_success_url | url, на который отправляется пользователь в случае успешного платежа (только для online систем) | string | |
pg_failure_url | url, на который отправляется пользователь в случае неуспешного платежа (только для online систем) | string | |
pg_success_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. Если выбран метод GET или POST, то страница с подтверждением оплаты показывается пользователю на сайте freedompay.kz, и предлагается нажать кнопку, чтобы вернуться на сайт мерчанта. Пример: GET | string | |
pg_failure_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте freedompay.kz, и предлагается нажать кнопку, чтобы вернуться на сайт мерчанта. Пример: GET | string | |
pg_site_url | URL сайта мерчанта для показа покупателю ссылки, по которой он может вернуться на сайт мерчанта после создания счета. Применяется для offline ПС (наличные). Пример: http://site.kz/return | string | |
pg_lifetime | Default: "86400". Время (в секундах) в течение которого платеж должен быть завершен, в противном случае заказ при проведении платежа FreedomPay откажет платежной системе в проведении. Этот параметр контролируется FreedomPay, а также, если платежная система поддерживает такую возможность, и платежной системой. Минимально допустимое значение: 300 секунд (5 минут). Максимально допустимое значение: 604800 секунд (7 суток). В случае выхода за пограничные значения будет присвоено минимальное или максимальное значение, соответственно. Пример: 86400 | integer | |
pg_user_phone | Телефон пользователя (начиная с кода страны), необходим для идентификации покупателя. Если не указан, выбор будет предложен пользователю на сайте платежного гейта. Если мерчант не передал это поле, то оно становится обязательным для заполнения плательщиком. Пример: 77777777777 | string | |
pg_user_contact_email | Контактный адрес электронной почты пользователя. Если указан, на этот адрес будут высылаться уведомления об изменении статуса транзакции. Если мерчант не передал это поле, то оно становится обязательным для заполнения плательщиком. Пример: mail@customer.kz | string | |
pg_user_ip | IP-адрес клиента. Необходим для разбора спорных ситуаций в случае подозрения на мошенничество. Параметр можно не передавать при передаче информации через браузер пользователя, в этом случае будет записан тот IP, с которого пользователь перешёл на страницу инициализации платежа. Пример: 127.0.0.1 | string | |
pg_language | Язык платежных страниц на сайте FreedomPay и (если возможно) платежных систем. "en", "ru". Пример: ru | string | |
pg_testing_mode | Создание платежа в тестовом режиме. Пример: 1 | integer | |
pg_user_id | ID пользователя в системе мерчанта. Пример: No65GFR755789T, 25642588 | string | |
pg_param1 | Дополнительный параметр 1. Пример: Дополнительная информация | string | |
pg_param2 | Дополнительный параметр 2. Пример: Дополнительная информация | string | |
pg_param3 | Дополнительный параметр 3. Пример: Дополнительная информация | string | |
pg_payment_method | Значение - Метод платежа mobile_commerce - Мобильная коммерция. Пример: mobile_commerce | string | |
pg_amount_interval_from | Нижний порог суммы платежа. Если параметр не передан, то нижнего порога нет | integer | |
pg_amount_interval_to | Высший порог суммы платежа. Если параметр не передан, то высшего порога нет | integer | |
pg_generate_qr | В случае, если вы хотите получать QR код со ссылкой на платежную форму FreedomPay в формате base64, в параметре pg_generate_qr необходимо отправить «1» | boolean | |
pg_idempotency_key | Ключ идемпотентности. Используется для защиты от создания дубликатов запросов. Уникальное значение в рамках мерчанта, нельзя использовать одинаковый ключ для разных типов операций | string | |
pg_loyalty_id | Идентификатор в системе лояльности | string | |
pg_loyalty_amount | Сумма начисляемых единиц в системе лояльности | number | |
pg_freedom_id | Идентификатор пользователя в экосистеме Freedom | string |
Название | Описание | Тип | |
---|---|---|---|
pg_status | Показывает результат выполнения запроса. Статус:ok Описание: Запрос прошел успешно, Статус: error, Описание: Запрос прошел с ошибкой | string | |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay. Служит ключом для всей дальнейшей работы с транзакцией | integer | |
pg_redirect_url | URL для перенаправления пользователя. Может быть как на сайте freedompay.kz, так и на сайте платежной системы | string | |
pg_redirect_url_type | Тип страницы, на которую происходит перенаправление. Возможные значения: need data – диалог с покупателем с целью уточнения параметров: платежной системы, номера телефона, обязательных для данной платежной системы параметров, payment system – страница сайта платежной системы либо страница с инструкциями оплаты через данную платежную систему. Страница с инструкциями может располагаться как на сайте freedompay.kz, так и на сайте мерчанта. В случае получения мерчантом ответа с pg_redirect_url_type=”need data”, мерчант может не перенаправлять покупателя по полученному URL, а уточнить недостающие параметры у себя на сайте. В этом случае после уточнения параметров и повторного запроса на создание платежной транзакции будет создана новая транзакция | string | |
pg_redirect_qr | URL для перенаправления пользователя в виде QR. Передается в формате base64 | string | |
pg_salt | Случайная строка | string | |
pg_sig | Подпись запроса | string |
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж не разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Платеж разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_amount | Сумма выставленного счета (в валюте pg_currency), совпадает с pg_amount в момент инициализации платежа. Пример: 10 | number | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_ps_amount | Сумма счета (в валюте pg_ps_currency), выставленного в платежной системе. Пример: 5 | number | |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатит покупатель с учетом всех комиссий. Пример: 5 | number | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string |
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=0' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж отменен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=1' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Заказ оплачен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_amount | Сумма выставленного счета в валюте pg_currency. Пример: 500 | string | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_net_amount | Сумма счета (в валюте `pg_ps_currency), выставленного в ПС. Поле может отсутствовать в случае неудачного платежа Пример: 482.5 | string | |
pg_ps_amount | Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string | |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_description | Описание платежа. Пример: Покупка в интернет магазине Site.kz | string | |
pg_result | Результат платежа. 2 – Не завершен. 1 – успех, 0 – неудача. Пример: 1 | integer | |
pg_payment_date | Дата и время совершения платежа в формате YYYY-MM-DD HH:MM:SS. Пример: 2019-01-01 12:00:00 | datetime | |
pg_can_reject | 1 – платеж можно откатить назад (например, Банковские карты), 0 – платеж безотзывный. Пример: 1 | integer | |
pg_user_phone | Телефон покупателя (указанный при инициализации платежа). Пример: 7077777777777 | string | |
pg_user_contact_email | Email покупателя (указанный при инициализации платежа). Пример: mail@customer.kz | string | |
pg_testing_mode | Тестовый режим. 1 - тестовый, 0 - боевой. Пример: 1 | integer | |
pg_captured | Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек мерчанта). Если значение этого поля равно 0, мерчант должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться когда FreedomPay сделает это сам. Пример: 0 | integer | |
pg_card_id | Опциональный параметр. ID карты для оплаты сохраненной картой (Deprecated). Пример: 1234 | string | |
pg_card_token | Опциональный параметр. Токен карты для оплаты сохраненной картой. Пример: ef741cfc-f85e-41a0-84e6-2ba964912182 | string | |
pg_card_pan | Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой. Пример: 5483-18XX-XXXX-0293 | string | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string | |
pg_discount_percent | Информация о проценте скидки, отправляется если скидка присутствует. Пример: 1.0 | string | |
pg_discount_amount | Информация о сумме скидки, отправляется если скидка присутствует. Пример: 5 | string | |
pg_payment_method | Метод платежа Значение: — Метод платежа: wallet — Электронные деньги, internetbank — Интернет-банкинг other — Терминалы bankcard — Банковские карты cash — Точка приема платежей mobile_commerce — Мобильная коммерция Пример: bankcard | string | |
pg_card_exp | Дата истечения срока карты. Пример: 03/23 | string | |
pg_card_owner | Имя держателя карты. Пример: Ivan Ivanov | string | |
pg_card_brand | Код бренда карты. Пример: VI | string |
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string | |
pg_error_code | Код ошибки. В случае ошибки параметр будет отправляться на pg_failure_url. Пример: 1000 | string | |
pg_error_description | Описание ошибки. В случае ошибки параметр будет отправляться на pg_failure_url. Пример: Внутреняя ошибка сервиса | string |
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_amount' => 100,
'pg_order_id' => 12345,
'pg_user_id' => 1234,
'pg_card_token' => 'ef741cfc-f85e-41a0-84e6-2ba964912182',
'pg_description' => 'Описание платежа',
'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'init');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_merchant_id required | Идентификатор мерчанта в системе FreedomPay | string | |
pg_amount required | Сумма платежа. Пример: 100 | number | |
pg_order_id required | ID заказа в системе мерчанта. Максимальная длина 50 символов Пример: 12345 | string | |
pg_user_id required | ID пользователя в системе мерчанта. Пример: No65GFR755789T, 25642588 | string | |
pg_card_id required if no pg_card_token | ID карты. (Deprecated). Пример: 56 | integer | |
pg_card_token required if no pg_card_id | Токен карты. Пример: ef741cfc-f85e-41a0-84e6 2ba964912182 | integer | |
pg_description required | Описание заказа. Пример: Описание платежа | string | |
pg_salt required | Случайная строка, состоящая из произвольных цифр и латинских букв. Пример: some random | string | |
pg_sig required | Подпись запроса | string | |
pg_receipt_positions[0][count] | Количество товара. Пример: 2 | integer | |
pg_receipt_positions[0][name] | Наименование товара. Пример: Коврик для мыши | string | |
pg_receipt_positions[0][tax_type] | Тип налога. Возможные значения: 0 - Без налога, 1 - НДС 0%, 2 - НДС 12%, 3 - НДС 12/112, 4 - НДС 18%, 5 - НДС 18/118, 6 - НДС 10%, 7 - НДС 10/110, 8 - НДС 20%, 9 - НДС 20/120 | integer | |
pg_receipt_positions[0][price] | Цена за 1 ед. товара. Пример: 1000 | number | |
pg_user_email | Email покупателя. Пример:mail@customer.kz | string | string |
pg_user_phone | Телефон пользователя (начиная с кода страны), необходим для идентификации покупателя. Пример: 77777777777 | string | |
pg_user_ip | IP-адрес клиента. Необходим для разбора спорных ситуаций в случае подозрения на мошенничество. Параметр можно не передавать при передаче информации через браузер пользователя, в этом случае будет записан тот IP, с которого пользователь перешёл на страницу инициализации платежа. Пример: 127.0.0.1 | string | |
pg_result_url | URL для сообщения о результате платежа. Обязательно, если не установлено в настройках магазина. | string | |
pg_success_url | URL, на который отправляется пользователь в случае успешной оплаты. Обязательно, если не установлено в настройках магазина. | string | |
pg_failure_url | URL, на который отправляется пользователь в случае не успешного платежа. Обязательно, если не установлено в настройках магазина. | string | |
pg_param1 | Дополнительная информация | string | |
pg_param2 | Дополнительная информация | string | |
pg_param3 | Дополнительная информация | string | |
pg_loyalty_id | Идентификатор в системе лояльности | string | |
pg_loyalty_amount | Сумма начисляемых единиц в системе лояльности | number | |
pg_freedom_id | Идентификатор пользователя в экосистеме Freedom | string | |
pg_idempotency_key | Ключ идемпотентности. Используется для защиты от создания дубликатов запросов. Уникальное значение в рамках мерчанта, нельзя использовать одинаковый ключ для разных типов операций | string |
Название | Описание | Тип | |
---|---|---|---|
pg_status | Показывает результат выполнения запроса: Статус: ok, Описание:Запрос прошел успешно, Статус:error, Описание:Запрос прошел с ошибкой | string | |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay. Служит ключом для всей дальнейшей работы с транзакцией | integer | |
pg_merchant_id | Идентификатор мерчанта в системе FreedomPay | integer | |
pg_order_id | Идентификатор заказа в системе мерчанта Максимальная длина 50 символов | integer | |
pg_salt | Случайная строка | string | |
pg_sig | Подпись запроса | string |
<html>
<body>
<form action="https://api.freedompay.kz/v1/merchant/{{paybox_merchant_id}}/card/pay" method="post" id="redirect-form">
<input type="hidden" name="pg_merchant_id" value="{{paybox_merchant_id}}" />
<input type="hidden" name="pg_payment_id" value="12345" />
<input type="hidden" name="pg_salt" value="some random string" />
<input type="hidden" name="pg_sig" value="{{paybox_signature}}" />
</form>
<script type="text/javascript">
document.getElementById('redirect-form').submit();
</script>
</body>
</html>
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_payment_id' => 12345,
'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'pay');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_merchant_id required | Идентификатор мерчанта в системе FreedomPay | string | |
pg_payment_id required | Внутренний идентификатор платежа в системе FreedomPay. Пример: 123456 | integer | |
pg_salt required | Случайная строка, состоящая из произвольных цифр и латинских букв. Пример: some random string | string | |
pg_sig required | Подпись запроса | string |
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=0' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж отменен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=1' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Заказ оплачен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_amount | Сумма выставленного счета в валюте pg_currency, совпадает с pg_amount в момент инициализции. Пример: 500 | string | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_net_amount | Сумма (в валюте pg_currency), которая будет перечислена магазину, в случае успешного завершения платежа. Пример: 482.5 | string | |
pg_ps_amount | Сумма счета (в валюте `pg_ps_currency), выставленного в ПС. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string | |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_description | Описание платежа. Пример: Покупка в интернет магазине Site.kz | string | |
pg_result | Результат платежа. 2 – Не завершен. 1 – успех, 0 – неудача. Пример: 1 | integer | |
pg_payment_date | Дата и время совершения платежа в формате YYYY-MM-DD HH:MM:SS. Пример: 2019-01-01 12:00:00 | datetime | |
pg_can_reject | 1 – платеж можно откатить назад (например, Банковские карты), 0 – платеж безотзывный. Пример: 1 | integer | |
pg_user_phone | Телефон покупателя (указанный при инициализации платежа). Пример: 7077777777777 | string | |
pg_user_contact_email | Email покупателя (указанный при инициализации платежа). Пример: mail@customer.kz | string | |
pg_testing_mode | Тестовый режим. 1 - тестовый, 0 - боевой. Пример: 1 | integer | |
pg_captured | Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек мерчанта). Если значение этого поля равно 0, мерчант должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться когда FreedomPay сделает это сам. Пример: 0 | integer | |
pg_card_pan | Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой. Пример: ef741cfc-f85e-41a0-84e6-2ba964912182 | string | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string | |
pg_discount_percent | Информация о проценте скидки, отправляется если скидка присутствует. Пример: 1.0 | string | |
pg_discount_amount | Информация о сумме скидки, отправляется если скидка присутствует. Пример: 5 | string | |
pg_payment_method | Метод платежаЗначение: — Метод платежа: wallet — Электронные деньги,internetbank — Интернет-банкингother — Терминалыbankcard — Банковские картыcash — Точка приема платежейmobile_commerce — Мобильная коммерция Пример: bankcard | string | |
pg_card_exp | Дата истечения срока карты. Пример: 03/23 | string | |
pg_card_owner | Имя держателя карты. Пример: Ivan Ivanov | string | |
pg_card_brand | Код бренда карты. Пример: VI | string |
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_amount' => 100,
'pg_order_id' => 12345,
'pg_user_id' => 1234,
'pg_card_token' => 'ef741cfc-f85e-41a0-84e6-2ba964912182',
'pg_description' => 'Описание платежа',
'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'init');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_merchant_id required | Идентификатор мерчанта в системе FreedomPay | string | |
pg_amount required | Сумма платежа.Минимум 0.01 Пример: 100 | number | |
pg_currency | Валюта платежа Пример: KZT | string | |
pg_order_id required | ID заказа в системе мерчанта. Максимальная длина 50 символов Пример: 12345 | string | |
pg_user_id required | ID пользователя в системе мерчанта. Пример: No65GFR755789T, 25642588 | string | |
pg_card_id required if no pg_card_token | ID карты. (Deprecated). Пример: 56 | integer | |
pg_card_token required if no pg_card_id | Токен карты. Пример: ef741cfc-f85e-41a0-84e6-2ba964912182 | integer | |
pg_description required | Описание заказа. Пример: Описание платежа | string | |
pg_salt required | Случайная строка, состоящая из произвольных цифр и латинских букв. Пример: some random string | string | |
pg_sig required | Подпись запроса | string | |
pg_receipt_positions[0][count] | Количество товара. Пример: 2 | integer | |
pg_receipt_positions[0][name] | Наименование товара. Пример: Коврик для мыши | string | |
pg_receipt_positions[0][tax_type] | Тип налога. Возможные значения: 0 - Без налога, 1 - НДС 0%, 2 - НДС 12%, 3 - НДС 12/112, 4 - НДС 18%, 5 - НДС 18/118, 6 - НДС 10%, 7 - НДС 10/110, 8 - НДС 20%, 9 - НДС 20/120 | integer | |
pg_receipt_positions[0][price] | Цена за 1 ед. товара. Пример: 1000 | number | |
pg_user_email | Email покупателя. Пример: mail@customer.kz | string | |
pg_user_phone | Телефон пользователя (начиная с кода страны), необходим для идентификации покупателя. Пример: 77777777777 | string | |
pg_user_ip | IP-адрес клиента. Необходим для разбора спорных ситуаций в случае подозрения на мошенничество. Параметр можно не передавать при передаче информации через браузер пользователя, в этом случае будет записан тот IP, с которого пользователь перешёл на страницу инициализации платежа. Пример: 127.0.0.1 | string | |
pg_result_url | URL для сообщения о результате платежа. Обязательно, если не установлено в настройках магазина. | string | |
pg_success_url | URL, на который отправляется пользователь в случае успешной оплаты. Обязательно, если не установлено в настройках магазина. | string | |
pg_failure_url | URL, на который отправляется пользователь в случае не успешного платежа. Обязательно, если не установлено в настройках магазина. | string | |
pg_param1 | Дополнительная информация | string | |
pg_param2 | Дополнительная информация | string | |
pg_param3 | Дополнительная информация | string | |
pg_loyalty_id | Идентификатор в системе лояльности | string | |
pg_loyalty_amount | Сумма начисляемых единиц в системе лояльности | number | |
pg_freedom_id | Идентификатор пользователя в экосистеме Freedom | string | |
pg_idempotency_key | Ключ идемпотентности. Используется для защиты от создания дубликатов запросов. Уникальное значение в рамках мерчанта, нельзя использовать одинаковый ключ для разных типов операций | string |
Название | Описание | Тип | |
---|---|---|---|
pg_status | Показывает результат выполнения запроса: Статус: ok, Описание:Запрос прошел успешно, Статус: error, Описание: Запрос прошел с ошибкой | string | |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay. Служит ключом для всей дальнейшей работы с транзакцией | integer | |
pg_merchant_id | Идентификатор мерчанта в системе FreedomPay | integer | |
pg_order_id | Идентификатор заказа в системе мерчанта Максимальная длина 50 символов | integer | |
pg_salt | Случайная строка | string | |
pg_sig | Подпись запроса | string |
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_payment_id' => 12345,
'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'direct');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_merchant_id required | Идентификатор мерчанта в системе FreedomPay | string | |
pg_payment_id required | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_salt required | Случайная строка, состоящая из произвольных цифр и латинских букв. Пример: some random string | string | |
pg_sig required | Подпись запроса | string |
Название | Описание | Тип | |
---|---|---|---|
pg_status | Показывает результат выполнения запроса: Статус: — Описание: ok — Запрос прошел успешно error — Запрос прошел с ошибкой | string | |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay Служит ключом для всей дальнейшей работы с транзакцией | integer | |
pg_transaction_status | Статус платежа: Статус: — Описание: partial — Новый платеж **pending — Ожидание плательщика или платежной системы, ok — Платеж успешно завершен, failed — Платеж в ошибке, incomplete — Истекло время жизни платежа | string | |
pg_payment_method | Метод платежа. Пример: bankcard | string | |
pg_create_date | Дата и время создания платежной транзакции | datetime | |
pg_can_reject | 0 или 1 – может ли платеж быть отменен. Значение 1 возможно только если статус платежа равен ok и платежная система предоставляет возможность отзыва платежа. В этом случае мерчант может вызвать revoke.php. | integer | |
pg_captured | Enum:0 1. Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек мерчанта). Если значение этого поля равно 0, мерчант должен в последующем дать команду на клиринг или дождаться когда FreedomPay сделает это сам. | integer | |
pg_card_pan | Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой. | string | |
pg_card_id | ID карты (Deprecated) | integer | |
pg_card_token | Токен карты | string | |
pg_card_hash | Хеш маскированной PAN карты | string | |
pg_amount | Сумма заказа | number | |
pg_currency | Валюта заказа | string | |
pg_salt | Случайная строка | string | |
pg_sig | Подпись запроса | string |
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=0' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж отменен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=500' \
--form 'pg_currency=KZT' \
--form 'pg_net_amount=482.5' \
--form 'pg_ps_amount=500' \
--form 'pg_ps_full_amount=500' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=1' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Заказ оплачен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_amount | Сумма выставленного счета в валюте pg_currency, совпадает с pg_amount в момент инициализции. Пример: 500 | string | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_net_amount | Сумма (в валюте pg_currency), которая будет перечислена магазину, в случае успешного завершения платежа. Пример: 482.5 | string | |
pg_ps_amount | Сумма счета (в валюте `pg_ps_currency), выставленного в ПС. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string | |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатил покупатель с учетом всех комиссий. Поле может отсутствовать в случае неудачного платежа. Пример: 500 | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_description | Описание платежа. Пример: Покупка в интернет магазине Site.kz | string | |
pg_result | Результат платежа. 2 – Не завершен. 1 – успех, 0 – неудача. Пример: 1 | integer | |
pg_payment_date | Дата и время совершения платежа в формате YYYY-MM-DD HH:MM:SS. Пример: 2019-01-01 12:00:00 | datetime | |
pg_can_reject | 1 – платеж можно откатить назад (например, Банковские карты), 0 – платеж безотзывный. Пример: 1 | integer | |
pg_user_phone | Телефон покупателя (указанный при инициализации платежа). Пример: 7077777777777 | string | |
pg_user_contact_email | Email покупателя (указанный при инициализации платежа). Пример: mail@customer.kz | string | |
pg_testing_mode | Тестовый режим. 1 - тестовый, 0 - боевой. Пример: 1 | integer | |
pg_captured | Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек мерчанта). Если значение этого поля равно 0, мерчант должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться когда FreedomPay сделает это сам. Пример: 0 | integer | |
pg_card_pan | Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой. Пример: 5483-18XX-XXXX-0293 | string | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчанта, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string | |
pg_payment_method | Метод платежа Значение: — Метод платежа: wallet — Электронные деньги, internetbank — Интернет-банкинг other — Терминалы bankcard — Банковские карты cash — Точка приема платежей mobile_commerce — Мобильная коммерция Пример: bankcard | string | |
pg_card_exp | Дата истечения срока карты. Пример: 03/23 | string | |
pg_card_owner | Имя держателя карты. Пример: Ivan Ivanov | string | |
pg_card_brand | Код бренда карты. Пример: VI | string |
curl --location --request POST 'https://api.freedompay.kz/init_payment.php' \
--form 'pg_order_id=23' \
--form 'pg_merchant_id={{paybox_merchant_id}}' \
--form 'pg_amount=25' \
--form 'pg_description=test' \
--form 'pg_salt=molbulak' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=mobile_commerce'
# Пример подписи:
'init_payment.php;25;test;{{paybox_merchant_id}};23;KZT;molbulak;{{secret_key}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_payment_id>4567788</pg_payment_id>
<pg_redirect_url>https://api.freedompay.kz/pay.html?customer=498333170d6a895148c57c53ffb18287</pg_redirect_url>
<pg_redirect_url_type>need data</pg_redirect_url_type>
<pg_salt>bdwLavL9lg6It91b</pg_salt>
<pg_sig>709633e91387c56ac6fb7cb33d1e07d8</pg_sig>
</response>
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_amount' => 10,
'pg_salt' => 'some random string',
'pg_order_id'=> '00102',
'pg_description' => 'Ticket',
'pg_result_url' => 'http://site.kz/result'
];
// $request['pg_testing_mode'] = 1; //add this parameter to request for testing payments
//if you pass any of your parameters, which you want to get back after the payment, then add them. For example:
// $request['client_name'] = 'My Name';
// $request['client_address'] = 'Earth Planet';
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'init_payment.php');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_order_id required | Идентификатор платежа в системе мерчанта. Рекомендуется поддерживать уникальность этого поля. Максимальная длина 50 символов Пример: 00102 | string | |
pg_merchant_id required | Идентификатор мерчанта в FreedomPay. Выдается при подключении. | integer | |
pg_amount required | Сумма платежа в валюте pg_currency. Минимум 0.01 Пример: 10 | number | |
pg_description required | Описание товара или услуги. Отображается покупателю в процессе платежа. Пример: Ticket | string | |
pg_salt required | Случайная строка. Пример: some random string | string | |
pg_sig required | Подпись запроса | string | |
pg_currency | Валюта, в которой указана сумма. KZT, USD, EUR. В случае выбора покупателем способа платежа в другой валюте, производится пересчет по курсу ЦБ на день платежа. См. в разделе Справочник валют. Пример: KZT | string | Справочник валют |
pg_check_url | URL для проверки возможности платежа. Вызывается перед платежом, если платежная система предоставляет такую возможность. Если параметр не указан, то берется из настроек мерчанта. Если параметр установлен равным пустой строке, то проверка возможности платежа не производится. | string | |
pg_result_url | URL для сообщения о результате платежа. Вызывается после платежа в случае успеха или неудачи. Если параметр не указан, то берется из настроек мерчанта. Если параметр установлен равным пустой строке, то FreedomPay не сообщает мерчанту о результате платежа. | string | |
pg_request_method | GET, POST или XML – метод вызова скриптов мерчанта Check URL, Result URL, для передачи информации от платежного гейта. Пример: POST | string | |
pg_success_url | url, на который отправляется пользователь в случае успешного платежа (только для online систем) | string | |
pg_failure_url | url, на который отправляется пользователь в случае неуспешного платежа (только для online систем) | string | |
pg_success_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. Если выбран метод GET или POST, то страница с подтверждением оплаты показывается пользователю на сайте freedompay.kz, и предлагается нажать кнопку, чтобы вернуться на сайт мерчанта. Пример: GET | string | |
pg_failure_url_method | GET – кнопка, которая сабмитится методом GET. POST – кнопка, которая сабмитится методом POST. Если выбран метод GET или POST, то страница с сообщением о неудавшейся оплате показывается пользователю на сайте freedompay.kz, и предлагается нажать кнопку, чтобы вернуться на сайт мерчанта. Пример: GET | string | |
pg_site_url | URL сайта мерчанта для показа покупателю ссылки, по которой он может вернуться на сайт мерчанта после создания счета. Применяется для offline ПС (наличные). Пример: http://site.kz/return | string | |
pg_lifetime | Default: "86400". Время (в секундах) в течение которого платеж должен быть завершен, в противном случае заказ при проведении платежа FreedomPay откажет платежной системе в проведении. Этот параметр контролируется FreedomPay, а также, если платежная система поддерживает такую возможность, и платежной системой. Минимально допустимое значение: 300 секунд (5 минут). Максимально допустимое значение: 604800 секунд (7 суток). В случае выхода за пограничные значения будет присвоено минимальное или максимальное значение, соответственно. Пример: 86400 | integer | |
pg_user_phone | Телефон пользователя (начиная с кода страны), необходим для идентификации покупателя. Если не указан, выбор будет предложен пользователю на сайте платежного гейта. Пример: 77777777777 | string | |
pg_user_contact_email | Контактный адрес электронной почты пользователя. Если указан, на этот адрес будут высылаться уведомления об изменении статуса транзакции. Пример: mail@customer.kz | string | |
pg_user_ip | IP-адрес клиента. Необходим для разбора спорных ситуаций в случае подозрения на мошенничество. Параметр можно не передавать при передаче информации через браузер пользователя, в этом случае будет записан тот IP, с которого пользователь перешёл на страницу инициализации платежа. Пример: 127.0.0.1 | string | |
pg_language | Язык платежных страниц на сайте FreedomPay и (если возможно) платежных систем. "en", "ru", "kk", "de", "ky", "uz". Пример: ru | string | |
pg_testing_mode | Создание платежа в тестовом режиме. Пример: 1 | integer | |
pg_user_id | ID пользователя в системе мерчанта. Пример: No65GFR755789T, 25642588 | string | |
pg_param1 | Дополнительный параметр 1. Пример: Дополнительная информация | string | |
pg_param2 | Дополнительный параметр 2. Пример: Дополнительная информация | string | |
pg_param3 | Дополнительный параметр 3. Пример: Дополнительная информация | string | |
pg_payment_method | Значение - Метод платежа mobile_commerce - Мобильная коммерция. Пример: mobile_commerce | string | |
pg_generate_qr | В случае, если вы хотите получать QR код со ссылкой на платежную форму FreedomPay в формате base64, в параметре pg_generate_qr необходимо отправить «1» | boolean | |
pg_commission_discount | В случае, если вы хотите использовать скидку на комиссию, то необходимо отправить 1. Скидка работает только на комиссию сверху. Для использования метода обратитесь к персональному менеджеру | boolean | |
pg_commission_discount_fix | Для использования фиксированной суммы скидки | number | |
pg_commission_discount_percentage | Для использования процентной скидки | number | |
pg_idempotency_key | Ключ идемпотентности. Используется для защиты от создания дубликатов запросов. Уникальное значение в рамках мерчанта, нельзя использовать одинаковый ключ для разных типов операций | string |
Название | Описание | Тип | |
---|---|---|---|
pg_status | Показывает результат выполнения запроса: Статус:—Описание: ok — Запрос прошел успешно, error — Запрос прошел с ошибкой | string | |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay. Служит ключом для всей дальнейшей работы с транзакцией | integer | |
pg_redirect_url | URL для перенаправления пользователя. Может быть как на сайте freedompay.kz, так и на сайте платежной системы | string | |
pg_redirect_url_type | Тип страницы, на которую происходит перенаправление. Возможные значения: need data – диалог с покупателем с целью уточнения параметров: платежной системы, номера телефона, обязательных для данной платежной системы параметров, payment system – страница сайта платежной системы либо страница с инструкциями оплаты через данную платежную систему. Страница с инструкциями может располагаться как на сайте freedompay.kz, так и на сайте мерчанта. В случае получения мерчантом ответа с pg_redirect_url_type=”need data”, мерчант может не перенаправлять покупателя по полученному URL, а уточнить недостающие параметры у себя на сайте. В этом случае после уточнения параметров и повторного запроса на создание платежной транзакции будет создана новая транзакция | string | |
pg_redirect_qr | URL для перенаправления пользователя в виде QR. Передается в формате base64 | string | |
pg_salt | Случайная строка | string | |
pg_sig | Подпись запроса | string |
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_payment_id' => 12345,
'pg_abonent_phone' => 77077777777,
'pg_payment_system_code' => 'ALTELKZT',
'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'pay');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_merchant_id required | Идентификатор мерчанта в системе FreedomPay | string | |
pg_payment_id required | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_abonent_phone required | Телефон покупателя с баланса которого снимутся деньги. Пример: 77077777777 | string | |
pg_payment_system_code | Уникальный код мобильного оператора. Enum:"TELE2KZT" "ALTELKZT" "BEELINEKZT" "KCELLKZT" "ACTIVKZT". Пример: ALTELKZT | string | |
pg_salt required | Случайная строка. Пример: some random string | string | |
pg_sig required | Подпись запроса | string |
Название | Описание | Тип | |
---|---|---|---|
pg_status | Показывает результат выполнения запроса: Статус:—Описание: ok — Списание прошло успешно, need_approve — Необходимо подтверждение, error — Ошибка списания | string | |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay. Служит ключом для всей дальнейшей работы с транзакцией | integer |
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_payment_id' => 12345,
'pg_approval_code' => '077587',
'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'approve');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_merchant_id required | Идентификатор мерчанта в системе FreedomPay | string | |
pg_payment_id required | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_approval_code required | Одноразовый OTP код отправленный SMS сообщением на номер плательщика. Пример:077587 | string | |
pg_salt required | Случайная строка. Пример: some random string | string | |
pg_sig required | Подпись запроса | string |
Название | Описание | Тип | |
---|---|---|---|
pg_status | Показывает результат выполнения запроса: Статус:—Описание: ok — Списание прошло успешно, process — Необходимо подтверждение, error — Ошибка списания | string | |
pg_payment_id | Уникальный идентификатор платежной транзакции в FreedomPay. Служит ключом для всей дальнейшей работы с транзакцией | integer |
$pg_merchant_id = {{paybox_merchant_id}};
$secret_key = {{paybox_merchant_secret}};
$request = [
'pg_merchant_id'=> $pg_merchant_id,
'pg_payment_id' => 12345,
'pg_abonent_phone' => 77077777777,
'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'resend_otp');
array_push($request, $secret_key);
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);
Название | Описание | Тип | |
---|---|---|---|
pg_merchant_id required | Идентификатор магазина в системе FreedomPay. | integer | |
pg_payment_id required | Идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_abonent_phone required | Телефон покупателя с баланса которого снимутся деньги. Пример: 77077777777 | string | |
pg_salt required | Случайная строка. Пример: some random string | string | |
pg_sig required | Подпись запроса | string |
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Платеж разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{check_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_amount=10' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_ps_amount=5' \
--form 'pg_ps_full_amount=5' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж не разрешен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_amount | Сумма выставленного счета (в валюте pg_currency), совпадает с pg_amount в момент инициализации платежа. Пример: 10 | number | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_ps_amount | Сумма счета (в валюте pg_ps_currency), выставленного в платежной системе. Пример: 5 | number | |
pg_ps_full_amount | Полная сумма (в валюте pg_ps_currency), которую заплатит покупатель с учетом всех комиссий. Пример: 5 | number | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчант, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string |
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=1' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>ok</pg_status>
<pg_description>Заказ оплачен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
curl --location --request POST '{{result_url}}' \
--form 'pg_order_id=123456789' \
--form 'pg_payment_id=12345' \
--form 'pg_currency=KZT' \
--form 'pg_ps_currency=KZT' \
--form 'pg_description=Покупка в интернет магазине Site.kz' \
--form 'pg_result=1' \
--form 'pg_payment_date=2019-01-01 12:00:00' \
--form 'pg_can_reject=1' \
--form 'pg_user_phone=7077777777777' \
--form 'pg_user_contact_email=mail@customer.kz' \
--form 'pg_need_email_notification=1' \
--form 'pg_testing_mode=1' \
--form 'pg_captured=0' \
--form 'pg_reference=111111111111' \
--form 'pg_card_pan=5483-18XX-XXXX-0293' \
--form 'Параметры мерчанта=' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{paybox_signature}}' \
--form 'pg_payment_method=bankcard'
<?xml version="1.0" encoding="utf-8"?>
<response>
<pg_status>rejected</pg_status>
<pg_description>Платеж отменен</pg_description>
<pg_salt>random string</pg_salt>
<pg_sig>ksdjrimzjedkljsujjemnjsuj</pg_sig>
</response>
Название | Описание | Тип | |
---|---|---|---|
pg_order_id | Идентификатор заказа в системе мерчанта. Максимальная длина 50 символов Пример: 123456789 | string | |
pg_payment_id | Внутренний идентификатор платежа в системе FreedomPay. Пример: 12345 | integer | |
pg_currency | Валюта выставленного счета, совпадает с pg_currency в момент инициализации платежа. Пример: KZT | string | |
pg_ps_currency | Валюта, в которой был произведен платеж в платежной системе. Поле может отсутствовать в случае неудачного платежа. Пример: KZT | string | |
pg_description | Описание платежа. Пример: Покупка в интернет магазине Site.kz | string | |
pg_result | Результат платежа. 2 – Не завершен. 1 – успех, 0 – неудача. Пример: 1 | integer | |
pg_payment_datel | Дата и время совершения платежа в формате YYYY-MM-DD HH:MM:SS. Пример: 2019-01-01 12:00:00 | datetime | |
pg_can_reject | 1 – платеж можно откатить назад (например, Банковские карты), 0 – платеж безотзывный. Пример: 1 | integer | |
pg_user_phone | Телефон покупателя (указанный при инициализации платежа). Пример: 7077777777777 | string | |
pg_user_contact_email | Email покупателя (указанный при инициализации платежа). Пример: mail@customer.kz | string | |
pg_testing_mode | Тестовый режим. 1 - тестовый, 0 - боевой. Пример: 1 | integer | |
pg_captured | Передается только в случае успешной оплаты банковской картой и показывает, был ли произведен клиринг в момент авторизации (что зависит только от настроек мерчанта). Если значение этого поля равно 0, мерчант должен в последующем дать команду на клиринг (см. раздел Запрос на клиринг транзакций по банковским картам) или дождаться когда FreedomPay сделает это сам. Пример: 0 | integer | |
pg_card_pan | Маскированный номер карты (часть цифр номера карты скрыты). Этот параметр передается только в случае успешной оплаты банковской картой. Пример: 5483-18XX-XXXX-0293 | string | |
Параметры мерчанта | Все поля, переданные с веб-сайта мерчант, не имеющие префикса pg_ | string | |
pg_salt | Случайная строка. Пример: some random string | string | |
pg_sig | Подпись запроса | string | |
pg_payment_method | Метод платежа Значение: — Метод платежа: wallet — Электронные деньги, internetbank — Интернет-банкинг other — Терминалы bankcard — Банковские карты cash — Точка приема платежей mobile_commerce — Мобильная коммерция Пример: bankcard | string |
Название поля (тут указано название массива) 1 уровень | Название поля (относится к массиву) 2 уровень | Название поля 3 уровень | Что значит | |
---|---|---|---|---|
pg_receipt | — | -— | — | |
— | receipt_format | — | Формат чека для кз всегда kz_1_0 | |
— | customer | — | — | |
— | — | phone | номер покупателя, обязателен если нет email | |
— | — | номер покупателя, обязателен если нет номера | ||
— | positions | — | — | |
— | — | price | Стоимость товара | |
— | — | name | Наименование товара | |
— | — | quantity | Количество товара | |
— | — | vat_code | Тип налога. vat_12 vat_10 vat_0, число это процент 12% 10% 0% |
"pg_order_id": "24012401",
"pg_merchant_id": "777777",
"pg_amount": "2000",
"pg_description": "ofd",
"pg_salt": "some random string",
"pg_sig": "6a9c25b26b9754f16b2baa7b2975cfb6",
"pg_result_url": "https://webhook.site/77777",
"pg_testing_mode": "0",
"pg_user_id": "1234",
"pg_receipt": {
"receipt_format": "kz_1_0",
"customer": {
"phone": "87077777777"
},
"positions": [
{
"price": "1000",
"name": "Товар №1",
"quantity": "1",
"vat_code": "vat_12"
},
{
"price": "500",
"name": "Товар №2",
"quantity": "1",
"vat_code": "vat_12"
},
{
"price": "500",
"name": "Товар №3",
"quantity": "1",
"vat_code": "vat_12"
}
]
}
}
name|barcode|spic|label|unitcode|package_code|discount|other|tinORpinfl
Название поля | Описание |
---|---|
name required | название товара |
barcode | штрихкод |
spic required | код ИКПУ |
label | код маркировки товара |
unitcode required | код единицы измерения товара |
package_code required | код упаковки товара |
discount | скидка |
other | прочая скидка |
tin or pinfl | идентификационный номер юридического или физического лица |
Зубные Щетки||09603002002000000||27076|1508264|||
МПС | Номер карты | CVV | Срок действия | Результат по карте |
---|---|---|---|---|
VISA | 4400444400004440 | 123 | 2030/12 | Успех |
VISA | 4716047261941981 | 123 | 2030/12 | Успех |
VISA | 4111111111111111 | 123 | 2030/12 | Успех |
MasterCard | 5555555555555599 | 123 | 2030/12 | Успех |
VISA | 4939770956154989 | 123 | 2030/12 | Успех |
МПС | Номер карты | CVV | Срок действия | Результат по карте |
---|---|---|---|---|
VISA | 4400444400004444 | 123 | 2030/12 | Успех |
VISA | 4916307416334310 | 123 | 2030/12 | Успех |
MasterCard | 5367654276102126 | 123 | 2030/12 | Успех |
МПС | Номер карты | CVV | Срок действия | Код ответа | Результат по карте |
---|---|---|---|---|---|
VISA | 4400444400004441 | 123 | 2030/12 | 99999 | Неизвестная ошибка платежной системы |
MasterCard | 5335215945367703 | 123 | 2030/12 | 99999 | Неизвестная ошибка платежной системы |
VISA | 4444444444446666 | 123 | 2030/12 | 99999 | Неизвестная ошибка платежной системы |
VISA | 4400444400004442 | 123 | 2030/12 | 100066 | Превышен лимит на карте списания. Обратитесь в банк выпустивший карту |
VISA | 4916109830832246 | 123 | 2030/12 | 100066 | Превышен лимит на карте списания. Обратитесь в банк выпустивший карту |
VISA | 4563960122001999 | 123 | 2030/12 | 100066 | Превышен лимит на карте списания. Обратитесь в банк выпустивший карту |
VISA | 4400444400004443 | 123 | 2030/12 | 10009 | Недостаточно средств. Просим пополнить счет или произвести оплату с другой карты. |
MasterCard | 5548398681700148 | 123 | 2030/12 | 10009 | Недостаточно средств. Просим пополнить счет или произвести оплату с другой карты. |
VISA | 4400444400004445 | 123 | 2030/12 | 11008 | Срок действия кода подтверждения истек. Повторите операцию |
MasterCard | 5475102935853613 | 123 | 2030/12 | 11036 | Карта операции списания заблокирована на 30 дней. Воспользуйтесь другой картой. |
MasterCard | 5555555555555557 | 123 | 2030/12 | 11024 | Отказано по причине нарушения безопасности данных карты списания. Обратитесь в банк выпустивший карту |
VISA | 4444444444444422 | 123 | 2030/12 | 10001 | Ошибка списания с карты на стороне банка-эмитента. Повторите попытку позже |
VISA | 4444444411111111 | 123 | 2030/12 | 10022 | Сумма превышает допустимый лимит по карте списания. Обратитесь в банк выпустивший карту |
VISA | 4444444499999999 | 123 | 2030/12 | 10018 | Время жизни операции списания истекло. Повторите операцию |
VISA | 4400444400004446 | 123 | 2030/12 | 9014 | Ошибка возврата |
Номер карты | Код ошибки | Ответ |
---|---|---|
4671593866478252 | Успешная выплата | |
5325349472901311 | 10000 | Ошибка оплаты. Сервис недоступен. Повторите попытку позже. |
4556046085041740 | 10001 | Ошибка оплаты. Обратитесь в банк выпустивший карту |
5543974702876045 | 8888 | Недостаточно средств! Пополните выплатной баланс |
5507841999732294 | Process переходящий в успех | |
4532676596620704 | Process переходящий в ошибку - Ошибка оплаты. Обратитесь в банк выпустивший карту |