Выплаты

В этом разделе описана механика, когда FreedomPay выплачивает деньги на банковскую карту пользователя

Внимание!

Выплаты будут доступны для магазина только после разрешения личного менеджера и применения соответствующих настроек на стороне FreedomPay

Выплаты не могут быть тестовыми. Тестирование производится только выплатой определенной суммы на боевую карту

Платежная страница

Данный метод генерирует страницу, на которой получатель вводит pan своей карты. Далее FreedomPay производит выплату на эту карту

Выплата на несохранненную карту

Для использования данных запросов Вам следует обратиться к своему менеджеру.
Для выплаты в качестве secret_key используется
Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};
$request = [
    'pg_merchant_id'=> $pg_merchant_id,
    'pg_amount' => 10,
    'pg_order_id'=> 1234,
    'pg_description' => 'Описание платежа',
    'pg_post_link' => 'http://site.kz/post',
    'pg_back_link' => 'http://site.kz/back',
    'pg_order_time_limit' => '2020-12-31 12:00:00',
    'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'reg2nonreg');
array_push($request, $secret_key); 
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);


В случае успешного ответа, пользователя необходимо перенаправить на URL, указанный в параметре pg_redirect_url. Отобразится страница для ввода данных карты, на которой нужно совершить платеж

URL запроса

POST https://api.freedompay.uz/api/reg2nonreg

Headers
Поля запроса
Параметры ответа
Post link запрос для мерчанта

После выплаты, будет вызван URL, указанный в pg_post_link

Сервер мерчанта должен ответить статусом 200

Post link на стороне мерчанта должен быть общедоступным, без авторизации.

URL запроса
POST {{post_link}}

Headers

Поля запроса
Получение статуса платежа по order_id

Partial - Платеж создан
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567617;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>4567617</pg_payment_id>
    <pg_transaction_status>partial</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_testing_mode>1</pg_testing_mode>
    <pg_captured>0</pg_captured>
    <pg_create_date>2020-05-21 18:44:21</pg_create_date>
    <pg_salt>u1aHmP4QyTxUqzXz</pg_salt>
    <pg_sig>574a9d2e4783cb3d5ea443e1cc4f9434</pg_sig>
</response>

Ok - Платеж успешен
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511194</pg_payment_id>
    <pg_transaction_status>ok</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>1</pg_captured>
    <pg_create_date>2021-08-26 11:52:25</pg_create_date>
    <pg_salt>41F5ZyqcOabTG5u7</pg_salt>
    <pg_sig>34484775bd62986753429d6af57e94eb</pg_sig>
</response>

Pending - Платеж в процессе выплаты
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511194</pg_payment_id>
    <pg_transaction_status>ok</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>1</pg_captured>
    <pg_create_date>2021-08-26 11:52:25</pg_create_date>
    <pg_salt>41F5ZyqcOabTG5u7</pg_salt>
    <pg_sig>34484775bd62986753429d6af57e94eb</pg_sig>
</response>

Failed - Платеж в ошибке
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511180</pg_payment_id>
    <pg_transaction_status>failed</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>0</pg_captured>
    <pg_create_date>2021-08-26 11:53:12</pg_create_date>
    <pg_failure_code>5</pg_failure_code>
    <pg_failure_description>Transaction declined</pg_failure_description>
    <pg_salt>VeJEycvwsTn74VEA</pg_salt>
    <pg_sig>aa65c7786f5cba0cd9e6a452bfbcc7a2</pg_sig>
</response>

Failed - Платеж не найден
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>error</pg_status>
    <pg_error_code>340</pg_error_code>
    <pg_error_description>Транзакция не найдена</pg_error_description>
</response>

Мерчант может запрашивать FreedomPay статус любого платежа, инициированного магазином. Это может быть полезно, например, в случае если вызов Post link не был получен мерчантом из-за временного сбоя связи, а покупатель уже был передан на Back URL, однако статус транзакции мерчанту еще не известен.
Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};

$request = [
    'pg_merchant_id'=> $pg_merchant_id,
    'pg_order_id' => 12345,
    'pg_salt' => 'some random string',
];

//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'get_status2.php');
array_push($request, $secret_key); 

$request['pg_sig'] = md5(implode(';', $request)); // signature

unset($request[0], $request[1]);

URL запроса

POST https://api.freedompay.uz/get_status2.php

Поля запроса
Параметры ответа
Получение статуса платежа по pg_payment_id

URL запроса

POST https://api.freedompay.uz/api/payment_status

Поля запроса
Параметры ответа
Параметры ответа на успешный запрос:
Получение статуса платежа по pg_payment_id v2

URL запроса

POST https://api.freedompay.uz/api/payment_status2

Поля запроса

Параметры ответа
Параметры ответа на успешный запрос:
Выплата по токену

Для работы этого метода мерчант должен предварительно сохранить карту пользователя(см. раздел "Сохранение карт").

После мерчант этим методом производит выплату на эту карту

Выплата на сохранненную карту
Для использования данных запросов Вам следует обратиться к своему менеджеру.
Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};
$request = [
    'pg_merchant_id'=> $pg_merchant_id,
    'pg_amount' => 10,
    'pg_order_id'=> 1234,
    'pg_user_id' => 1234,
    'pg_card_id_to' => 1234,
    'pg_card_token_to' => 'c92741d9-ddd7-4bad-abd0-5594a79eea1a',
    'pg_description' => 'Описание платежа',
    'pg_post_link' => 'http://site.kz/post',
    'pg_back_link' => 'http://site.kz/back',
    'pg_order_time_limit' => '2020-12-31 12:00:00',
    'pg_salt' => 'some random string',
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'reg2reg');
array_push($request, $secret_key); 
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);


URL запроса

POST https://api.freedompay.uz/api/reg2reg

Поля запроса
Параметры ответа
Post link запрос для мерчанта

После выплаты, будет вызван URL, указанный в pg_post_link
Сервер мерчанта должен ответить статусом 200
Post link на стороне мерчанта должен быть общедоступным, без авторизации.

URL запроса

POST {{post_link}}

Headers
Поля запроса
Получение статуса платежа по order_id

Partial - Платеж создан
Запрос:

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567617;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>4567617</pg_payment_id>
    <pg_transaction_status>partial</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_testing_mode>1</pg_testing_mode>
    <pg_captured>0</pg_captured>
    <pg_create_date>2020-05-21 18:44:21</pg_create_date>
    <pg_salt>u1aHmP4QyTxUqzXz</pg_salt>
    <pg_sig>574a9d2e4783cb3d5ea443e1cc4f9434</pg_sig>
</response>

Ok - Платеж успешен
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511194</pg_payment_id>
    <pg_transaction_status>ok</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>1</pg_captured>
    <pg_create_date>2021-08-26 11:52:25</pg_create_date>
    <pg_salt>41F5ZyqcOabTG5u7</pg_salt>
    <pg_sig>34484775bd62986753429d6af57e94eb</pg_sig>
</response>

Pending - Платеж в процессе выплаты
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511194</pg_payment_id>
    <pg_transaction_status>ok</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>1</pg_captured>
    <pg_create_date>2021-08-26 11:52:25</pg_create_date>
    <pg_salt>41F5ZyqcOabTG5u7</pg_salt>
    <pg_sig>34484775bd62986753429d6af57e94eb</pg_sig>
</response>

Failed - Платеж в ошибке
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511180</pg_payment_id>
    <pg_transaction_status>failed</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>0</pg_captured>
    <pg_create_date>2021-08-26 11:53:12</pg_create_date>
    <pg_failure_code>5</pg_failure_code>
    <pg_failure_description>Transaction declined</pg_failure_description>
    <pg_salt>VeJEycvwsTn74VEA</pg_salt>
    <pg_sig>aa65c7786f5cba0cd9e6a452bfbcc7a2</pg_sig>
</response>

Failed - Платеж не найден
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>error</pg_status>
    <pg_error_code>340</pg_error_code>
    <pg_error_description>Транзакция не найдена</pg_error_description>
</response>

Мерчант может запрашивать FreedomPay статус любого платежа, инициированного магазином. Это может быть полезно, например, в случае если вызов Post link не был получен мерчантом из-за временного сбоя связи, а покупатель уже был передан на Back URL, однако статус транзакции мерчанту еще не известен.
Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};

$request = [
    'pg_merchant_id'=> $pg_merchant_id,
    'pg_order_id' => 12345,
    'pg_salt' => 'some random string',
];

//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'get_status2.php');
array_push($request, $secret_key); 

$request['pg_sig'] = md5(implode(';', $request)); // signature

unset($request[0], $request[1]);

URL запроса

POST https://api.freedompay.uz/get_status2.php

Поля запроса
Параметры ответа
Получение статуса платежа по pg_payment_id

URL запроса

POST https://api.freedompay.uz/api/payment_status

Поля запроса
Параметры ответа
Параметры ответа на успешный запрос:
Получение статуса платежа по pg_payment_id v2

URL запроса

POST https://api.freedompay.uz/api/payment_status2

Поля запроса
Параметры ответа
Параметры ответа на успешный запрос:
На банковский счет (IBAN)

Выплата на банковский счет KZT

Для использования данных запросов Вам следует обратиться к своему менеджеру.

URL запроса

POST https://api.freedompay.uz/api/to_iban

Поля запроса
Параметры ответа
Post link запрос для мерчанта

Ответ на post_link от мерчанта

<?xml version="1.0" encoding="UTF-8"?>
<pg_status>ok</pg_status>  

Сервер мерчанта должен ответить статусом 200

Post link на стороне мерчанта должен быть общедоступным, без авторизации.

URL запроса

POST {{post_link}}

Headers
Поля запроса
Получение статуса платежа

Ok - Платеж успешен
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511194</pg_payment_id>
    <pg_transaction_status>ok</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>1</pg_captured>
    <pg_create_date>2021-08-26 11:52:25</pg_create_date>
    <pg_salt>41F5ZyqcOabTG5u7</pg_salt>
    <pg_sig>34484775bd62986753429d6af57e94eb</pg_sig>
</response>

Pending - Платеж в процессе выплаты
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511194</pg_payment_id>
    <pg_transaction_status>ok</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>1</pg_captured>
    <pg_create_date>2021-08-26 11:52:25</pg_create_date>
    <pg_salt>41F5ZyqcOabTG5u7</pg_salt>
    <pg_sig>34484775bd62986753429d6af57e94eb</pg_sig>
</response>

Failed - Платеж в ошибке
Запрос

curl --location --request POST 'https://api.freedompay.uz/get_status2.php' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_order_id=00102' \
--form 'pg_salt=ijoi894j4ik39lo9' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'get_status2.php;{{{{paybox_merchant_id}}}};4567775;00102;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>511180</pg_payment_id>
    <pg_transaction_status>failed</pg_transaction_status>
    <pg_can_reject>0</pg_can_reject>
    <pg_captured>0</pg_captured>
    <pg_create_date>2021-08-26 11:53:12</pg_create_date>
    <pg_failure_code>5</pg_failure_code>
    <pg_failure_description>Transaction declined</pg_failure_description>
    <pg_salt>VeJEycvwsTn74VEA</pg_salt>
    <pg_sig>aa65c7786f5cba0cd9e6a452bfbcc7a2</pg_sig>
</response>

Мерчант может запрашивать FreedomPay статус любого платежа, инициированного магазином. Это может быть полезно, например, в случае если вызов Post link не был получен мерчантом из-за временного сбоя связи, а покупатель уже был передан на Back URL, однако статус транзакции мерчанту еще не известен.
Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};

$request = [
    'pg_merchant_id'=> $pg_merchant_id,
    'pg_order_id' => 12345,
    'pg_salt' => 'some random string',
];

//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'get_status2.php');
array_push($request, $secret_key); 

$request['pg_sig'] = md5(implode(';', $request)); // signature

unset($request[0], $request[1]);

URL запроса

POST https://api.freedompay.uz/get_status2.php

Поля запроса
Параметры ответа
На банкомат

Данный метод делает специальный запрос, после которого, пользователю на телефонный номер отправятся два смс с паролями.
Для получения наличных в банкомате, пользователю необходимо ввести указанные пароли, а также сумму, которую он намеревается вывести.
У пользователя есть 24 часа, чтобы снять наличные в банкомате, иначе операция завершиться с ошибкой, после чего сумма, указанная для снятия, снова вернется на баланс мерчанта в системе FreedomPay.
Метод не содержит никаких коллбэков. Мерчант должен сам опрашивать FreedomPay о статусе операции. Ниже будет описана рекомендуемая механика платежа.
Первая проверка статуса операции (снял ли пользователь сумму с банкомата или нет) произойдет три часа спустя, после инициации платежа. Если сумма с банкомата не снята, вторая попытка произойдет еще три часа спустя, этот повторяющийся процесс будет происходит в течении 24 часов после инициации платежа (всего FreedomPay будет запрашивать статус 8 раз).

Исходя из вышенаписанного, мерчант не должен проводить опрос статуса не чаще одного раза в три часа.

Запрос на формирование платежа

Пример успешного запроса

Запрос

curl --location --request POST 'https://api.freedompay.uz/api/cbc/check' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_phone=7073175200' \
--form 'pg_amount=2000' \
--form 'pg_order_id=00102' \
--form 'pg_post_link=http://site.kz/post' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'check;2000;{{{{paybox_merchant_id}}}};00102;7073175200;some random string;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="UTF- 8"?>
<response>
    <pg_payment_id>765432</pg_payment_id>
    <pg_merchant_id>500001</pg_merchant_id>
    <pg_order_id>1234</pg_order_id>
    <pg_status>ok</pg_status>
    <pg_salt>yNSdZrM1pIA4NjRU5Csdm0L3NC92PZpo</pg_salt>
    <pg_sig>6304300d2a1d5d35cfbdc37ae8490c81</pg_sig>
</response>

Пример неуспешного запроса
Запрос

curl --location --request POST 'https://api.freedompay.uz/api/cbc/check' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_phone=7073175200' \
--form 'pg_amount=2000' \
--form 'pg_order_id=00102' \
--form 'pg_post_link=http://site.kz/post' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'check;2000;{{{{paybox_merchant_id}}}};00102;7073175200;some random string;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <pg_status>error</pg_status>
    <pg_error_code>101</pg_error_code>
    <pg_error_description>Empty merchant</pg_error_description>
    <pg_salt>yNSdZrM1pIA4NjRU5Csdm0L3NC92PZpo</pg_salt>
    <pg_sig>6304300d2a1d5d35cfbdc37ae8490c81</pg_sig>
</response>

Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};

$request = [
	'pg_merchant_id' => $pg_merchant_id,
	'pg_phone' => '7073175200',
	'pg_amount' => '2000',
	'pg_order_id' => '00102',
	'pg_post_link' => 'http://site.kz/post',
	'pg_salt' => 'some random string'
];


//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'check');
array_push($request, $secret_key); 

$request['pg_sig'] = md5(implode(';', $request)); // signature

unset($request[0], $request[1]);

URL запроса

POST https://api.freedompay.uz/api/cbc/check

Поля запроса
Параметры ответа
Запрос на вывод средств

Пример успешного запроса
Запрос

curl --location --request POST 'https://api.freedompay.uz/api/cbc/exec' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_payment_id=486456456' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'exec;{{{{paybox_merchant_id}}}};486456456;some random string;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="UTF- 8"?>
<response>
    <pg_payment_id>765432</pg_payment_id>
    <pg_merchant_id>500001</pg_merchant_id>
    <pg_status>ok</pg_status>
    <pg_salt>yNSdZrM1pIA4NjRU5Csdm0L3NC92PZpo</pg_salt>
    <pg_sig>6304300d2a1d5d35cfbdc37ae8490c81</pg_sig>
</response>

Пример неуспешного запроса
Запрос

curl --location --request POST 'https://api.freedompay.uz/api/cbc/exec' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_payment_id=486456456' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'exec;{{{{paybox_merchant_id}}}};486456456;some random string;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="UTF-8"?>
<response>
<pg_status>error</pg_status>
<pg_error_code>101</pg_error_code>
<pg_error_description>Empty merchant</pg_error_description>
<pg_salt>yNSdZrM1pIA4NjRU5Csdm0L3NC92PZpo</pg_salt>
<pg_sig>6304300d2a1d5d35cfbdc37ae8490c81</pg_sig>
</response>

Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};

$request = [
	'pg_merchant_id' => $pg_merchant_id,
	'pg_phone' => '7073175200',
	'pg_amount' => '2000',
	'pg_order_id' => '00102',
	'pg_salt' => 'some random string'
];


//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'exec');
array_push($request, $secret_key); 

$request['pg_sig'] = md5(implode(';', $request)); // signature

unset($request[0], $request[1]);

URL запроса

POST https://api.freedompay.uz/api/cbc/exec

Поля запроса
Параметры ответа
Запрос на статуса по операции

Пример успешного запроса
Запрос

curl --location --request POST 'https://api.freedompay.uz/api/cbc/status' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_payment_id=486456456' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'status;{{{{paybox_merchant_id}}}};486456456;some random string;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="UTF- 8"?> <response>
<pg_payment_id>765432</pg_payment_id>
<pg_merchant_id>500001</pg_merchant_id>
<pg_order_id>1234</pg_order_id>
<pg_status>success</pg_status>
<pg_salt>yNSdZrM1pIA4NjRU5Csdm0L3NC92PZpo</pg_salt>
<pg_sig>6304300d2a1d5d35cfbdc37ae8490c81</pg_sig>
</response>

Пример неопределенного запроса
Запрос

curl --location --request POST 'https://api.freedompay.uz/api/cbc/status' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_payment_id=486456456' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'status;{{{{paybox_merchant_id}}}};486456456;some random string;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="UTF- 8"?> <response>
<pg_payment_id>765432</pg_payment_id>
<pg_merchant_id>500001</pg_merchant_id>
<pg_order_id>1234</pg_order_id>
<pg_status>process</pg_status>
<pg_salt>yNSdZrM1pIA4NjRU5Csdm0L3NC92PZpo</pg_salt>
<pg_sig>6304300d2a1d5d35cfbdc37ae8490c81</pg_sig>
</response>

Пример неуспешного запроса
Запрос

curl --location --request POST 'https://api.freedompay.uz/api/cbc/status' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_payment_id=486456456' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'status;{{{{paybox_merchant_id}}}};486456456;some random string;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="UTF-8"?>
<response>
<pg_status>error</pg_status>
<pg_error_code>75</pg_error_code>
 <pg_error_description> Истекло время исполнения перевода, получатель не снял деньги</pg_error_description>
 <pg_salt>yNSdZrM1pIA4NjRU5Csdm0L3NC92PZpo</pg_salt>
 <pg_sig>6304300d2a1d5d35cfbdc37ae8490c81</pg_sig>
</response>

Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};

$request = [
	'pg_merchant_id' => $pg_merchant_id,
	'pg_phone' => '7073175200',
	'pg_amount' => '2000',
	'pg_order_id' => '00102',
	'pg_salt' => 'some random string'
];


//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'exec');
array_push($request, $secret_key); 

$request['pg_sig'] = md5(implode(';', $request)); // signature

unset($request[0], $request[1]);

URL запроса

POST https://api.freedompay.uz/api/cbc/status

Поля запроса
Параметры ответа
Получение баланса

Пример успешного запроса
Запрос

curl --location --request POST 'https://api.freedompay.uz/api/balance_status' \
--form 'pg_merchant_id={{{{paybox_merchant_id}}}}' \
--form 'pg_salt=some random string' \
--form 'pg_sig={{{{paybox_signature}}}}'
# Пример подписи:
'balance_status;{{{{paybox_merchant_id}}}};some random string;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="UTF-8"?>
<response>
 <pg_balance>0.00</pg_balance>
 <pg_status>ok</pg_status>
 <pg_salt>osWRT1FtWr</pg_salt>
 <pg_sig>9087fd0c7a26334f53f83f0bd61e6b80</pg_sig>
</response>

Генерация подписи:

$pg_merchant_id = {{{{paybox_merchant_id}}}};
$secret_key = {{{{paybox_merchant_secret}}}};
$request = [
    'pg_merchant_id' => $pg_merchant_id,
    'pg_salt' => 'some random string'
];
//generate a signature and add it to the array
ksort($request); //sort alphabetically
array_unshift($request, 'balance_status');
array_push($request, $secret_key); 
$request['pg_sig'] = md5(implode(';', $request)); // signature
unset($request[0], $request[1]);


URL запроса

POST https://api.freedompay.uz/api/balance_status

Поля запроса
Параметры ответа
На баланс мобильного

FreedomPay предлагает возможность провести выплату на баланс мобильного телефона, если мобильный оператор плательщика поддерживает данную возможность. Доступные мобильные операторы:

Tele2
Altel

Инициализация платежа

Инициализация платежа
Запрос

curl --location --request POST 'https://api.freedompay.uz/init_payout.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_order_time_limit=2020-12-31 12:00:00',
# Пример подписи:
'init_payout.php;25;test;{{paybox_merchant_id}};23;2020-12-31 12:00:00;molbulak;{{secret_key}}'


Ответ

<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_status>ok</pg_status>
    <pg_payment_id>4567788</pg_payment_id>
    <pg_merchant>{{paybox_merchant_id}}</pg_merchant>
    <pg_order_id>23</pg_order_id>
    <pg_salt>bdwLavL9lg6It91b</pg_salt>
    <pg_sig>709633e91387c56ac6fb7cb33d1e07d8</pg_sig>
</response>

Если в ответе pg_status равен ok, мерчанту необходимо отправить запрос для продолжения выплаты.

URL запроса

POST https://api.freedompay.uz/mfs/payout

Поля запроса
Параметры ответа