Перед началом работы с платежным шлюзом магазин настраивает параметры для выбора способов взаимодействия.
Предварительная настройка магазина
Этапы осуществления платежа
- Инициализация платежа
- Переход пользователя от магазина на платежный шлюз
- Осуществление платежа/отказ от оплаты
- Возвращение в магазин
1. Инициализация платежа
Магазин осуществляет POST или GET запрос на платежный шлюз по адресу:
- https://engine.4pay.by/create/.
- https://gateway-sandbox-4pay.dev-4p.by/create/ ("песочница")
- https://gateway-test-4pay.dev-4p.by/create/ (тестовая среда)
со следующими обязательными и опциональными полями:
Информация
При использовании тестового режима данные карты не проверяются. Средства с карты не списываются.
Параметры инициализации платежа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_order_num | Int64 | Да | Номер заказа. | 123 |
| ap_client_dt |
Int32
DateTime
|
Да | Дата и время. Дата и время не должны отличаться более чем на 12 часов от даты и времени на сервере. | 1466602065 |
| ap_amount | Double | Да | Сумма платежа. | 12.10 |
| ap_currency | String(3..3) | Да | Цифровой трехсимвольный код валюты либо его буквенное обозначение согласно ISO4271. |
BYN
USD
EUR
RUB
|
| ap_invoice_desc | String (max 2500) | Да | Краткое описание приобретаемых товаров или оказываемых услуг. | Холодильник |
| ap_signature | String (32..512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
| ap_lang | String(2..2) | Нет | Язык пользовательского интерфейса. Принимает значения ISO 639-1. Если выбранный язык не поддерживается, то используется русский. |
ru
by
en
pl
|
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
1
0
|
| up_... | String (1..1024) | Нет | Набор пользовательских параметров. Разрешается добавлять до 16 пользовательских параметров с любыми именами, начинающимися с префикса "up_" (например, "up_any_param"). Данные параметры не обрабатываются и не учитываются в платежной системе при оплате, но передаются предприятию (точке обслуживания) после успешного выполнения операции в уведомлении. Пользовательские параметры учитываются при расчете хеш-подписи. | up_any_param=success |
Пример формы для вызова инициализации платежа.
<form method="POST" action="https://engine.4pay.by/create/">
<input type="hidden" name="ap_storeid" value="57003"/>
<input type="hidden" name="ap_order_num" value="1234"/>
<input type="hidden" name="ap_amount" value="1000"/>
<input type="hidden" name="ap_currency" value="BYN"/>
<input type="hidden" name="ap_client_dt" value="1466602065"/>
<input type="hidden" name="ap_invoice_desc" value="Телевизор марки Горизонт"/>
<input type="hidden" name="ap_test" value="0"/>
<input type="hidden" name="ap_signature" value="dab4a472561b49c355a80379f0a96a7efe2269bb7cc45b48ce9e587b6c2415de"/>
<input type="submit" value="Оплатить">
</form>
2. Переход пользователя от магазина на платежный шлюз.
В случае корректности параметров Шлюз создает платеж и отправляет посетителя на страницу платежа. Если заказ создать не удалось, пользователю будет показана страница с ошибкой. Пример адреса для перенаправления пользователя: https://engine.4pay.by/1dd6-a5be-9077-1b80-e5da-ca81-1d0e-5726/
3. Осуществление платежа/отказ от оплаты.
На странице платежа пользователь вводит данные карты, либо отказывается от платежа.
4. Возвращение в магазин.
В зависимости от результата платежа пользователь будет возвращен:
- В случае успешного платежа на success url. При этом с помощью метода из success method будет осуществлена передача пераметров платежа в формате, указанным в success data format. Также будет осуществлен вызов result url, при этом методом result method будут переданы параметры для оповещения платежа в формате, указанным в result data format. Если в качестве result method указан email, то уведомление о платеже будет отправлено по электронной почте.
- В случае отказа от платежа/невозможности платежа на cancel url. При этом с помощью метода из cancel method будет осуществлена передача пераметров платежа в формате, указанным в cancel data format.
Пример адреса перенаправления пользователя после оплаты: http://testshop.tld/success/?ap_storeid=57003&ap_order_num=776175&ap_test=true&result=success&up_btn_name=super%21&ap_signature=dab4a472561b49c355a80379f0a96a7efe2269bb7cc45b48ce9e587b6c2415de
Параметры перенаправления.
| Название | Тип | Обязательность | Значение |
|---|---|---|---|
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания |
| ap_order_num | Int64 | Да | Номер заказа |
| ap_operation_status |
Enum
cancel
success
|
Да | Результат операции. cancel - платеж отменен. success - платеж прошел успешно. |
| ap_signature | String (32..512) | Да | Хеш-Подпись |
| ap_test | Boolean | Нет | Уведомляет магазин об использовании тестового режима. |
| up_... | String (1..1024) | Нет | Набор пользовательских параметров. |
Извещение о результатах оплаты или сторнировании оплаченного в ЕРИП счета.
| Название | Тип | Обязательность | Значение |
|---|---|---|---|
| ap_notice_type | String | Да | EripTrnStatus |
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания |
| ap_order_num | Int64 | Да | Номер заказа |
| ap_erip_trn_state |
Enum
Paid
Canceled
PayError
CancelError
|
Да |
|
| ap_erip_service_no | Int32 | Да | Номер услуги в ЕРИП. |
| ap_erip_invoice_id | String | Да | Уникальный номер оплаченного счета в системе ЕРИП. (в общем случае номер заказа плательщика) |
| ap_erip_trn_id | String | Да | Уникальный номер транзакции в системе ЕРИП. |
| ap_sp_trn_id | String | Да | Уникальный номер транзакции у поставщика услуг. |
| ap_amount | Double | Да | Сумма платежа. |
| ap_currency | String(3..3) | Да | Цифровой трехсимвольный код валюты либо его буквенное обозначение согласно ISO4271. |
| ap_test | Boolean | Нет | Уведомляет магазин об использовании тестового режима. |
| ap_trans_dt | String | Нет | Дата и время выполнения транзакции на сервере ЕРИП. |
| up_... | String (1..1024) | Нет | Набор пользовательских параметров. |
| ap_signature | String (32..512) | Да | Хеш-Подпись |
Пример формы для вызова инициализации платежа.
{"ap_storeid":57003,"ap_order_num":776175,"ap_test":true,"ap_operation_status":"success","up_btn_name":"super","ap_signature":"ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579"}
ap_storeid=57003&ap_order_num=776175&ap_test=true&ap_operation_status=cancel&up_btn_name=super%21&ap_signature=ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579
Формирование подписи (v1/v2)
Хеш-сумма сообщения – последовательность байтов в шестнадцатиричном виде (0-9, A-F или a-f), рассчитанная хеш-функцией, указанной в конфигурации магазина.
Применяемые алгоритмы:
- SHA512 – по умолчанию;
- SHA256.
Алгоритм формирования:
- Все поля сообщения в алфавитном порядке (сортировка по имени параметра) следования склеиваются в одну строку;
- Далее в конец строки добавляется секретное слово точки обслуживания (Secret1 для запроса или Secret2 для ответа). Символ ";" является разделителем между параметрами, в конце и начале строки разделитель не ставится;
- По полученной на предыдущем этапе строке выбранной хеш-функцией рассчитывается хеш-сумма;
- Результат расчета является значением данного параметра. Сам порядок следования параметров в сообщении не регламентирован. Содержимое поля ap_signature не помещается в строку, по которой производится расчет хеш-суммы.
Пример формирования подписи:
<?php
function formSignature(/* array */ $data)
{
$string = null;
ksort($data, SORT_NATURAL);
foreach ($data as $param => $value)
$string .= $value . ';';
$string .= FOURPAY_SECRET1;
$key = hash(FOURPAY_HASH_METHOD, $string);
return $key;
}
?>
Пример проверки подписи в ответе сервера:
<?php
function checkSignature(/* array */ $data)
{
if (!isset($data['ap_signature']))
return false;
$addSignature = $data['ap_signature'];
unset($data['ap_signature']);
ksort($data, SORT_NATURAL);
$string = implode(';', $data) . ';' . FOURPAY_SECRET2;
return hash(FOURPAY_HASH_METHOD, $string) == $addSignature;
}
?>
Формат даты/времени
Поля с датой/время могут быть в следующих форматах:
- UNIX-время;
- YYYY-MM-DDThh:nn:ss.ZZZZZ, где:
- YYYY-MM-DD – год-месяц-день;
- hh:nn:ss – часы-минуты-секунды;
- ZZZZZ – часовой пояс (в формате +hh:nn или –hh:nn), может отсутствовать, при отсутствии используется часовой пояс +03.00.
Использование API
Мы предоставляем возможность наиболее гибкого и полного метода интеграции систем для приема платежей. Вы можете скомпоновать платежную форму, исходя из своих пожеланий. В данном случае плательщик может вообще не видеть процессов взаимодействия с нашей системой.
API v2: общая информация
Формат данных — "json", кодовая страница — "uft8".
Протокол обмена — "https", метод "POST".
Адрес API:
- https://api.4pay.by/v2/
- https://api-sandbox-4pay.dev-4p.by/v2/ ("песочница")
- https://api-test-4pay.dev-4p.by/v2/ (тестовый режим)
API v2: типы данных
Базовые поля запроса
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| ap_request | String | Да | Тип запроса. |
| ap_storeid | String(1..30) | Да | Уникальный идентификатор предприятия (точки обслуживания) в системе «4pay». Может содержать цифры и буквы латинского алфавита. |
| ap_order_num | Int64 | Да | Номер заказа в точке обслуживания. Для запроса регистрации операции может принимать значение «0», в этом случае номер будет генерироваться системой «4pay» автоматически. Для всех остальных запросов должен принимать значение отличное от «0». |
| ap_client_dt | DateTime | Да | Дата и время на клиентском приложении. Сервер должен проверять, что дата и время на клиентском приложении отличается максимум на 12 часов от даты и времени на сервере. |
| ap_client_type | Enum | Нет | Тип используемого клиентcкого приложения:
|
| ap_client_inf | String(1..512) | Нет | Краткая информация о клиентском приложении.
Например, название программы интернет-браузера, для мобильного
приложения – название приложения и используемой библиотеки. Также по
возможности рекомендуется включить в содержимое данного поля информацию
о клиентском устройстве: производитель и модель устройства (для
мобильного приложения), наименование и версию операционной системы
клиентского приложения. Например:
|
| ap_client_ver | String(1..16) | Нет | Версия на клиенте (версия мобильного приложения/версия приложения на терминале). |
| ap_proto_ver | String(5..10) | Да | Версия протокола. |
| ap_test | Boolean | Нет | В запросе: Уведомляет сервер
об использовании тестового режима на клиенте. В случае, если значение
параметра установлено в «1», клиент находится в тестовом режиме.
В ответе: Уведомляет клиента об использовании тестового режима сервера. В случае, если значение параметра установлено в «1», сервер находится в тестовом режиме. В обоих случаях при отсутствии, по умолчанию, параметр принимает значение «0» (боевой режим). |
| ap_lang | String(2) | Нет | Язык пользовательского интерфейса. Принимает
значения (ISO 639-1):
|
| ap_service_id | UID | Нет | Уникальный идентификатор операции. При получении данного поля в ответе, должен отправляться клиентом в следующем запросе операции. Значение поле не изменяется в процессе операции, значение поля отправляется сервером при регистрации операции. Поле является обязательным для всех запросов, кроме запроса регистрации операции. |
| ap_signature | String(32…512) | Да | Хеш-сумма сообщения |
API v2: Register
Создание платежа. Метод Register.
Параметры инициализации платежа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_request | String(1..30) | Да | Константа Register | Register |
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_operation | String(1..30) | Да | Тип операции. Принимает следующие значения:
|
Sale |
| ap_order_num | Int64 | Да | Номер заказа. | 123 |
| ap_client_dt |
Int32DateTime
|
Нет | Дата и время. Дата и время не должны отличаться более чем на 12 часов от даты и времени на сервере. | 1466602065 |
| ap_amount | Double | Да | Сумма платежа. | 12.10 |
| ap_currency | String(3..3) | Да | Цифровой трехсимвольный код валюты либо его буквенное обозначение согласно ISO4271. |
BYNUSDEURRUB
|
| ap_invoice_desc | String (max 2500) | Да | Краткое описание приобретаемых товаров или оказываемых услуг. | Холодильник |
| ap_proto_ver | String(5..10) | Да | Версия протокола. | 1.3.0 |
| ap_lang | String(2..2) | Нет | Язык пользовательского интерфейса. Принимает значения ISO 639-1. Если выбранный язык не поддерживается, то используется русский. |
rubyenpl
|
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| up_... | String (1..1024) | Нет | Набор пользовательских параметров. Разрешается добавлять до 16 пользовательских параметров с любыми именами, начинающимися с префикса "up_" (например, "up_any_param"). Данные параметры не обрабатываются и не учитываются в платежной системе при оплате, но передаются предприятию (точке обслуживания) после успешного выполнения операции в уведомлении. Пользовательские параметры учитываются при расчете хеш-подписи. | up_any_param=success |
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Поля ответа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_order_num | Int64 | Да | Номер заказа. Для ответа регистрации операции, в случае нулевого значения данного параметра система генерирует номер заказа для точки обслуживания, во всех других случаях значение номера заказа берется из запроса. | 123 |
| ap_server_dt |
Int32DateTime
|
Да | Дата и время. | 1466602065 |
| ap_status | Enum | Да | Статус выполнения операции. Принимает
значения:
|
SuccessWarningErrorMalfunction
|
| ap_result_code | Int32 | Нет | Целочисленный код выполнения операции. Значения: «0» - выполнено успешно; «1..99» - выполнено с замечаниями; иначе – ошибка операции. | 0 |
| ap_result_text | String | Нет | Описание результата выполнения операции. | Выполнено успешно |
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| ap_service_id | UID | Нет | Уникальный идентификатор операции. | 7a29-724a-f26e-9a78-4b4c-f7a7-9da5-7b72 |
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Пример запроса.
{
"ap_request":"Register",
"ap_storeid":"600023",
"ap_operation":"Sale",
"ap_order_num":"566833",
"ap_client_dt":"2025-01-31T12:47:40+00:00",
"ap_amount":"10.01",
"ap_currency":"BYN",
"ap_invoice_desc":"Тестовый платеж",
"ap_proto_ver":"1.3.0",
"ap_lang":"ru",
"ap_test":1,
"ap_signature":"99a38fba8cdda3b651a6b05af86ae3b528f75745bd0d4f11884e3c5bf0b5ba4d59181fd7229d4dea41bf84694a55e6092edebb3bf583a4cc12254c9acf7a0987"
}
Пример ответа.
{
"ap_storeid":"600023",
"ap_store_desc":"Shop test",
"ap_order_num":566833,
"ap_status":"Success",
"ap_result_code":0,
"ap_result_text":"Выполнено успешно",
"ap_server_dt":"2025-01-31T15:48:13+03:00",
"ap_test":1,
"ap_service_id":"a233-c47b-222d-8629-e04b-c82e-a714-7ea6",
"ap_signature":"f634cff44f6c8cc83538917c1fc09eff3d62d12be14aced625a3d43d9975f3a05b6b01e2c69f454b1c19d2e2d0aa5d616bd69d201e2553671db199a26d356795"
}
API v2: OperationInfo
Получение данных по операции. Метод OperationInfo.
Параметры запроса.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_request | String | Да | Константа OperationInfo | OperationInfo |
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_order_num | Int64 | Да | Номер заказа. | 123 |
| ap_client_dt |
Int64DateTime
|
Нет | Дата и время. Дата и время не должны отличаться более чем на 12 часов от даты и времени на сервере. | 1466602065 |
| ap_proto_ver | String(5..10) | Да | Версия протокола. | 1.3.0 |
| ap_lang | String(2..2) | Нет | Язык пользовательского интерфейса. Принимает значения ISO 639-1. Если выбранный язык не поддерживается, то используется русский. |
rubyenpl
|
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| ap_service_id | UID | Да | Уникальный идентификатор операции | 7a29-724a-f26e-9a78-4b4c-f7a7-9da5-7b72 |
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Поля ответа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_order_num | Int64 | Да | Номер заказа. Для ответа регистрации операции, в случае нулевого значения данного параметра система генерирует номер заказа для точки обслуживания, во всех других случаях значение номера заказа берется из запроса. | 123 |
| ap_server_dt |
Int32DateTime
|
Да | Дата и время: UNIX-время. Дата и время не должны отличаться более чем на 12 часов от даты и времени на сервере. | 1466602065 |
| ap_status | Enum | Да | Статус выполнения операции. Принимает
значения:
|
SuccessWarningErrorMalfunction
|
| ap_result_code | Int32 | Нет | Целочисленный код выполнения операции. Значения: «0» - выполнено успешно; «1..99» - выполнено с замечаниями; иначе – ошибка операции. | 0 |
| ap_result_text | String | Нет | Описание результата выполнения операции. | Выполнено успешно |
| ap_operation | Enum | Да | Тип операции | Sale |
| ap_oper_detail_state | Enum | Да | Детальное состояние обработки операции на
сервере. Принимает значения:
|
Successful |
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| ap_service_id | UID | Нет | Уникальный идентификатор операции. | 7a29-724a-f26e-9a78-4b4c-f7a7-9da5-7b72 |
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Пример запроса.
{
"ap_request":"OperationInfo",
"ap_order_num":"566833",
"ap_storeid":"600023",
"ap_client_dt":"2025-01-31T12:48:12+00:00",
"ap_service_id":"a233-c47b-222d-8629-e04b-c82e-a714-7ea6",
"ap_test":1,
"ap_signature":"886204db9788a6ea85b2176cbbb150e96c0aad318a19821e535ba5bce1b5389e9edfb6d0a5f0b0b4954cc487ffc8e9339ba4b2b4a8b24e28257aca3a63509102"
}
Пример ответа.
{
"ap_storeid":"600023",
"ap_order_num":566833,
"ap_operation":"Sale",
"ap_oper_detail_state":"Preparation",
"ap_status":"Success",
"ap_result_code":0,
"ap_result_text":"Выполнено успешно",
"ap_server_dt":"2025-01-31T15:50:31+03:00",
"ap_test":1,
"ap_service_id":"a233-c47b-222d-8629-e04b-c82e-a714-7ea6",
"ap_signature":"25b02cc90020fd67994625599f875d8c9ed469029d4be9c465ccc86c4ab7514a8c31a6ec3649b5f683c1e71b1830b0d989db39266e12a8a7e3560abd381e85d9"
}
API v2: EripAddInvoice
Регистрация счета для оплаты ЕРИП. Метод EripAddInvoice.
Параметры инициализации платежа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_request | String(1..30) | Да | Константа EripAddInvoice | EripAddInvoice |
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_client_dt |
Int32DateTime
|
Нет | Дата и время. Дата и время не должны отличаться более чем на 12 часов от даты и времени на сервере. | 1466602065 |
| ap_proto_ver | String(5..10) | Да | Версия протокола. | 1.3.0 |
| ap_lang | String(2..2) | Нет | Язык пользовательского интерфейса. Принимает значения ISO 639-1. Если выбранный язык не поддерживается, то используется русский. |
rubyenpl
|
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| ap_erip_service_no | Int32 | Нет | Номер услуги в системе ЕРИП. Является обязательным, если у продавца зарегистрировано более 1 услуги в ЕРИП. При отсутствии будет использован номер услуги, указанный в системе по умолчанию. | 123 |
| ap_order_num | Int64 | Нет | Номер заказа. | 123 |
| ap_amount | Double | Да | Сумма платежа. | 12.10 |
| ap_currency | String(3..3) | Да | Цифровой трехсимвольный код валюты либо его буквенное обозначение согласно ISO4271. |
BYNUSDEURRUB
|
| ap_invoice_desc | String (max 2500) | Да | Краткое описание приобретаемых товаров или оказываемых услуг. | Холодильник |
| ap_invoice_expire | Int32 | Нет | Дата и время: UNIX-время. Срок действия счета. Счет нельзя будет оплатить позже указанной даты и времени. При отсутствии данного поля, счет актуален 3 суток. Срок действия счета не может быть меньше 1 часа и больше 1 месяца. | 1466602065 |
| ap_epos_url_required | Boolean | Нет | Генерировать ссылку для оплаты(только для E-POS) | 1 |
| ap_client_type | Enum | Нет | Тип используемого клиентского приложения:
|
brw |
| ap_client_inf | String(1..512) | Нет | Краткая информация о клиентском приложении. Например, название программы интернет-браузера, для мобильного приложения – название приложения и используемой библиотеки. Также по возможности рекомендуется включить в содержимое данного поля информацию о клиентском устройстве: производитель и модель устройства (для мобильного приложения), наименование и версию операционной системы | Chrome 49.0.2623.112 (Mac OS X 10.7.2) |
| ap_client_ver | String(1..16) | Нет | Версия на клиенте (версия мобильного приложения/версия приложения на терминале). | 1.28.3 |
| ap_erip_cust_account | String | Нет | номер лицевого счета плательщика ЕРИП у сервис провайдера в разрезе услуги | 970 |
| up_... | String (1..1024) | Нет | Набор пользовательских параметров. Разрешается добавлять до 16 пользовательских параметров с любыми именами, начинающимися с префикса "up_" (например, "up_any_param"). Данные параметры не обрабатываются и не учитываются в платежной системе при оплате, но передаются предприятию (точке обслуживания) после успешного выполнения операции в уведомлении. Пользовательские параметры учитываются при расчете хеш-подписи. | up_any_param=success |
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Поля ответа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_server_dt |
Int32DateTime
|
Да | Дата и время. Дата и время не должны отличаться более чем на 12 часов от даты и времени на сервере. | 1466602065 |
| ap_status | Enum | Да | Статус выполнения операции. Принимает
значения:
|
SuccessWarningErrorMalfunction
|
| ap_result_code | Int32 | Нет | Целочисленный код выполнения операции. Значения: «0» - выполнено успешно; «1..99» - выполнено с замечаниями; иначе – ошибка операции. | 0 |
| ap_result_text | String | Нет | Описание результата выполнения операции. | Выполнено успешно |
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| ap_service_id | UID | Нет | Уникальный идентификатор операции. | 7a29-724a-f26e-9a78-4b4c-f7a7-9da5-7b72 |
| ap_erip_service_no | Int32 | Да | Номер услуги в ЕРИП. | 123 |
| ap_erip_invoice_id | String | Да | Уникальный номер счета в разрезе «ap_erip_service_no» для оплаты в системе ЕРИП. Система "4pay" генерирует номер счета методом последовательного инкремента в разрезе указанного "ap_erip_service_no". | 123 |
| ap_epos_url | String | Нет | Ссылка для оплаты(только для E-POS) | https://pay.raschet.by/... |
| ap_epos_qr | String | Нет | QR с ссылкой для оплаты base64 png(только для E-POS) | |
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Пример запроса.
{"ap_request":"EripAddInvoice","ap_storeid":"120037","ap_order_num":"12","ap_client_dt":"Thu, 25 Jan 2018 13:20:41 +0300","ap_proto_ver":"1.3.0","ap_lang":"ru","ap_test":"1","ap_erip_service_no":"0","ap_amount":"10","ap_currency":"933","ap_invoice_desc":"Test Erip","ap_signature":"7bca35a812abcf11289c8881ef22cc6dea7d533ab535559cb653c9542d5649870c443ffc60551200d6f3e2ed4e8b500cf8325ba2ae47cd043d15eb9f06564a03"}
Пример ответа.
{"ap_storeid":"120037","ap_store_desc":"my test","ap_erip_service_no":"37011","ap_erip_invoice_id":"20506","ap_status":"Success","ap_result_code":0,"ap_result_text":"Выполнено успешно","ap_service_id":"0766-7bd7-ef69-7c26-6753-2fe3-b085-972f","ap_server_dt":"2018-01-25T13:46:28+03:00","ap_test":1,"ap_signature":"62e4e1e5df507dd1bfeae5a549707432b8365b5400180826a175352aa62a32266a044a74da06c4b57cab867a2c22391f537256377eb448add8f1a54737f718b8"}
API v2: GetEripInvoiceInfo
Получение информации о статусе выставленного счета ЕРИП. Метод GetEripInvoiceInfo.
Параметры запроса получения информации о выставленном счете
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_request | String(1..30) | Да | Константа GetEripInvoiceInfo | GetEripInvoiceInfo |
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_client_dt |
Int32DateTime
|
Нет | Дата и время. Дата и время не должны отличаться более чем на 12 часов от даты и времени на сервере. | 1466602065 |
| ap_proto_ver | String(5..10) | Да | Версия протокола. | 1.3.0 |
| ap_lang | String(2..2) | Нет | Язык пользовательского интерфейса. Принимает значения ISO 639-1. Если выбранный язык не поддерживается, то используется русский. |
rubyenpl
|
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| ap_erip_service_no | Int32 | Нет | Номер услуги в системе ЕРИП. Является обязательным, если у продавца зарегистрировано более 1 услуги в ЕРИП. При отсутствии будет использован номер услуги, указанный в системе по умолчанию. | 123 |
| ap_erip_invoice_id | String(1..30) | Да | Уникальный номер счета в разрезе «ap_erip_service_no» для оплаты в системе ЕРИП. | 123 |
| ap_client_type | Enum | Нет | Тип используемого клиентского приложения:
|
brw |
| ap_client_inf | String(1..512) | Нет | Краткая информация о клиентском приложении. Например, название программы интернет-браузера, для мобильного приложения – название приложения и используемой библиотеки. Также по возможности рекомендуется включить в содержимое данного поля информацию о клиентском устройстве: производитель и модель устройства (для мобильного приложения), наименование и версию операционной системы | Chrome 49.0.2623.112 (Mac OS X 10.7.2) |
| ap_client_ver | String(1..16) | Нет | Версия на клиенте (версия мобильного приложения/версия приложения на терминале). | 1.28.3 |
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Поля ответа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_server_dt |
Int32DateTime
|
Да | Дата и время. Дата и время не должны отличаться более чем на 12 часов от даты и времени на сервере. | 1466602065 |
| ap_status | Enum | Да | Статус выполнения операции. Принимает
значения:
|
SuccessWarningErrorMalfunction
|
| ap_result_code | Int32 | Нет | Целочисленный код выполнения операции. Значения: «0» - выполнено успешно; «1..99» - выполнено с замечаниями; иначе – ошибка операции. | 0 |
| ap_result_text | String | Нет | Описание результата выполнения операции. | Выполнено успешно |
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| ap_service_id | UID | Нет | Уникальный идентификатор операции. | 7a29-724a-f26e-9a78-4b4c-f7a7-9da5-7b72 |
| ap_erip_service_no | Int32 | Да | Номер услуги в ЕРИП. | 23 |
| ap_erip_invoice_id | String | Да | Уникальный номер оплаченного счета в системе ЕРИП. | 123 |
| ap_erip_invoice_state | Enum | Да | Текущее состояние счета. Принимает следующие
значения:
|
|
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Пример запроса.
{"ap_request":"GetEripInvoiceInfo","ap_client_dt":"2021-10-03T09:15:01+03:00","ap_test":"1","ap_proto_ver":"1.3.0","ap_storeid":"120037","ap_erip_invoice_id":"147","ap_erip_service_no":"23","ap_client_type":"brw","ap_client_inf":"Chrome 49.0.2623.112 (Mac OS X 10.7.2);","ap_client_ver":"1.0","ap_signature":"064d320884831c46f24368249fb1a958bcaafa5c689f5528c8db857068710760aa57b342972b91f09ced8394be4c8e36c8794ff9afcc6fbfc9bc3a98fd01a979"}
Пример ответа.
{"ap_storeid":"120037","ap_erip_invoice_id":"19745424","ap_erip_service_no":"23","ap_erip_invoice_state":"Pending","ap_status":"Success","ap_result_code":0,"ap_result_text":"Выполнено успешно","ap_server_dt":"2021-10-03T12:52:18+03:00","ap_test":1,"ap_service_id":"72ed-4a56-fb70-0bae-ab6b-0bcb-8c0a-66d1","ap_signature":"afd4282850bf1d7e76166e371bcebc04379e8134444039abb6788c8a1ec0316d9d30cef37f674676bf3485c5858de12e0137a5f894f9a4ebc9b618fdbf27f542"}
Документация по другим методам API предоставляется по запросу на 4pay.by.
API v2: EripTrnStatus
Параметры уведомления
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_notice_type | String(1..30) | Да | Константа EripTrnStatus | EripTrnStatus |
| ap_storeid | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_erip_trn_state | Enum | Да | Состояние счета после выполнения операции.
Принимает следующие значения:
|
«Paid» |
| ap_erip_invoice_id | String | Да | Уникальный номер счета в разрезе «ap_erip_service_no» для оплаты в системе ЕРИП. Система "4pay" генерирует номер счета методом последовательного инкремента в разрезе указанного "ap_erip_service_no". | 123 |
| ap_erip_trn_id | String(1..11) | Да | Уникальный номер транзакции в системе ЕРИП | 139025895 |
| ap_sp_trn_id | String(1..12) | Да | Уникальный номер транзакции у поставщика услуг. | 6 |
| ap_test | Boolean | Нет | Уведомляет сервер об использовании тестового режима. В случае если значение параметра установлено в "1" или "true", возможно использование только тестового платежного шлюза. При отсутствии в запросе, по умолчанию, параметр принимает значение "0" или "false" (реальный режим). |
10
|
| ap_erip_service_no | Int32 | Нет | Номер услуги в системе ЕРИП. Является обязательным, если у продавца зарегистрировано более 1 услуги в ЕРИП. При отсутствии будет использован номер услуги, указанный в системе по умолчанию. | 123 |
| ap_order_num | Int64 | Нет | Номер заказа. | 123 |
| ap_amount | Double | Да | Сумма платежа. | 12.10 |
| ap_currency | String(3..3) | Да | Цифровой трехсимвольный код валюты либо его буквенное обозначение согласно ISO4271. |
BYNUSDEURRUB
|
| ap_signature | String (32…512) | Да | Хеш-Подпись. | ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579 |
Пример уведомления.
{"ap_storeid":"100024","ap_order_num":5,"ap_test":1,"ap_notice_type":"EripTrnStatus","ap_erip_trn_state":"Paid","ap_amount":10,"ap_currency":"BYN","ap_erip_service_no":"6","ap_erip_invoice_id":"1207-6-770","ap_erip_trn_id":"173035295","ap_sp_trn_id":"6","ap_signature":"84f2e459c37a109b5194523176e05764523e206bcfaeee0701650779dcf826b0b3d45d2303fa0ccc708f0bb076d1e2dcdbc9f764d92926f5628ba3c00829e676"}
API v3: общая информация
Данная версия протокола предназначена для использования агрегаторами платежей.
Формат данных — "json", кодовая страница — "uft8".
Протокол обмена — "https", метод "POST".
Адрес API:
- https://api.4pay.by/v3/
- https://api-sandbox-4pay.dev-4p.by/v3/ ("песочница")
- https://api-test-4pay.dev-4p.by/v3/ (тестовый режим)
API v3: подпись
Каждое сообщение в системе подписывается с целью проверки целостности передаваемых данных и верификации абонента, сформировавшего сообщение. Непосредственно данные подписи помещаются в http заголовок сообщения. Для данной цели используются параметр http-заголовка «ap-content-signature», содержащий данные индекса ключа и подписи. Параметр «ap-content-signature» может отсутствовать в ответе, если запрос не содержит подписи или подпись некорректна.
Применяемые алгоритмы:
- HMAC-SHA256 – по умолчанию;
- HMAC-SHA512.
Формат подписи – «keyindex».«messageSign», где:
- keyindex – индекс ключа или пары ключей, используемых для подписи;
- messageSign – строка содержащая подпись;
- в качестве разделителя используется символ «.» (точка).
Пример формирования подписи:
<?php
function formSignature(/* array */ $data)
{
$signature =
ALGO_KEY //1 - HMAC-SHA256, 2-MAC-SHA512
. '.'
. hash_hmac('sha256', $data , FOURPAY_SECRET1);
return $signature;
}
?>
function formSignature(message)
{
const signature = '1.' //1 - HMAC-SHA256, 2-MAC-SHA512
+ CryptoJS.HmacSHA256(message, FOURPAY_SECRET1).toString(CryptoJS.enc.Hex);
return signature;
}
Пример проверки подписи в ответе сервера:
<?php
public function checkSignature($data, $signature) : bool
{
return ($this->formSignature($data) == $signature);
}
?>
API v3: типы данных
Простые типы данных
| Тип данных | Описание |
|---|---|
| Int16, Int32, Int64 | Целочисленные знаковые типы данных |
| Uint16, Uint32, Uint64 | Целочисленные беззнаковые типы данных |
| String | Строковый тип. В круглых скобках после указания типа может указываться через запятую минимальные и максимальное значение общей длины элемента в символах. Если в скобках приведен только один параметр, он определяет обязательную длину элемента. |
| String-Number | Представляет собой строку, в качестве символов которой могут выступать только цифры. |
| String-Decimal | Строка, содержащая целое или дробное число с фиксированной точностью. В круглых скобках через запятую может указываться суммарное количество десятичных разрядов и количество разрядов после разделителя. В качестве разделителя целой и дробной части используется символы «.» (точка) или «,» (запятая). Допускаются пробел или апостроф в качестве разделителя разрядов (например, 21’012.01 или 2 933,02). |
| Boolean | Логический тип данных, принимает значения:
|
| DateTime | Строка, содержащая дату и время. Формат
«YYYY-MM-DDThh:nn:ss.ZZZZZ», где:
|
| Enum | Строковое перечисление. Значение элемента должно соответствовать одному из перечисленных для элемента значений. |
| UID | Строка, содержащая уникальный идентификатор. |
| URL | Строка, содержащая URL. |
| Phone | Подтип String-Number (10,16). Представляет
собой номер телефона в формате «CCCNNXXXXXXX», где:
|
Идентификаторы
| Параметр | Тип | Описание |
|---|---|---|
| ap_store_id | String(1,30) | Уникальный в системе идентификатор точки обслуживания. Генерируется в системе «4pay» при регистрации объекта |
| ap_aggregator_id | String(1,30) | Уникальный в системе идентификатор агрегатора. Генерируется в системе «4pay» при регистрации объекта |
| ap_aquirer_id | String(1,30) | Уникальный в системе идентификатор эквайера. Генерируется в системе «4pay» при регистрации объекта |
| ap_batch_num | Int64 | Уникальный номер пакета заказов в разрезе агрегатора или точки обслуживания (при подключении без агрегатора). Генерируется на агрегаторе или точке обслуживания перед отправкой запроса на регистрацию пакета заказов. |
| ap_order_num | String(1,64) | Уникальный номер заказа для одиночных заказов или номер заказа в пакете при использовании пакетной обработки. Для простой одиночной оплаты может быть установлен в «0», в этом случае «4pay» самостоятельно генерирует уникальный номер заказа, однако в этом случае межсистемная идентификация пользовтелей становится недоступной. Для пакетной обработки в большинстве случаев может быть просто порядковым номером заказа внутри пакета. Полный номер заказа в этом случае для дальнейшей идентификации состоит из ap_batch_num и ap_order_num Генерируется на агрегаторе или точке обслуживания перед отправкой запроса на регистрацию заказа (-ов) |
| ap_batch_id | String | Уникальный в системе идентификатор зарегистрированного пакета заказов при пакетной обработке. Генерируется в системе «4pay» в процессе регистрации заказа. |
| ap_order_id | String | Уникальный в системе идентификатор зарегистрированного заказа заказов при использовании простой одиночной обработки. Генерируется в системе «4pay» в процессе регистрации заказа. |
| ap_invoice_id | Int64 | Уникальный в системе идентификатор счета. Генерируется в системе «4pay» в процессе создания счета |
| ap_p2p_id | String | Уникальный в системе идентификатор операции перевода средств P2P. Генерируется в системе «4pay» в процессе регистрации операции перевода. |
| ap_user_ext_id | String(1,50) | Уникальный идентификатор пользователя внешней системы. Используется для доступа пользователя внешней системы к управлению данными карт, зарегистрированными в «4pay». |
| ap_user_session_id | UID | Уникальный идентификатор сессии пользователя. Генерируется в системе «4pay» при авторизации пользователя в системе. |
| ap_wallet_id | UID | Уникальный идентификатор зарегистрированного в кабинете пользователя платежного средства. |
| ap_erip_invoice_id | String(1,30) | Уникальный номер счета в разрезе контрагента для оплаты в системе ЕРИП. Генерируется в системе «4pay» |
Общие элементы сообщений
| Параметр | Тип | Описание |
|---|---|---|
| ap_request | String | Тип запроса |
| ap_client_dt | DateTime | Дата и время на клиентском приложении. Сервер должен проверять, что дата и время на клиентском приложении отличается максимум на 12 часов от даты и времени на сервере. |
| ap_client_type | Enum | Тип используемого клиентcкого приложения:
|
| ap_client_inf | String(1,512) | Краткая информация о клиентском приложении.
Например, название программы интернет-браузера, для мобильного
приложения – название приложения и используемой библиотеки. Также по
возможности рекомендуется включить в содержимое данного поля информацию
о клиентском устройстве: производитель и модель устройства (для
мобильного приложения), наименование и версию операционной системы
клиентского приложения. Например:
|
| ap_client_ver | String(1,16) | Версия на клиенте (версия мобильного приложения/версия приложения на терминале). |
| ap_proto_ver | String(3,10) | Версия протокола. |
| ap_test | Boolean | В запросе: Уведомляет сервер
об использовании тестового режима на клиенте. В случае, если значение
параметра установлено в «1», клиент находится в тестовом режиме.
В ответе: Уведомляет клиента об использовании тестового режима сервера. В случае, если значение параметра установлено в «1», сервер находится в тестовом режиме. В обоих случаях при отсутствии, по умолчанию, параметр принимает значение «0» (боевой режим). |
| ap_lang | String(2) | Язык пользовательского интерфейса. Принимает
значения (ISO 639-1):
|
| ap_server_dt | DateTime | Дата и время на сервере. Клиент может дополнительно проверять, что дата и время на сервере отличаются максимум на 12 часов от даты и времени на клиенте. |
Элементы статуса
| Параметр | Тип | Описание |
|---|---|---|
| ap_status | Enum | Статус обработки запроса. Принимает значения:
|
| ap_result_code | Int32 | Целочисленный код выполнения запроса.
Значения:
|
| ap_result_text | String | Описание результата выполнения запроса на языке указанном в параметре ap_lang. |
В случае ошибки, когда нет возможности сформировать обязательные поля сообщения допускается отправка в ответе только следующих полей:
- ap_status;
- ap_result_code;
- ap_result_text.
Элементы финансовой операции
Сумма и валюта операции
| Параметр | Тип | Описание |
|---|---|---|
| ap_amount | String-Decimal(12,2) | Сумма операции. Формат суммы:
|
| ap_currency | String-Number(3) | Цифровой трехсимвольный код валюты либо его буквенное обозначение согласно ISO4271. Например, «933» для бел. руб. |
Элементы данных пользователя
Структура stName, ФИО пользователя
| Параметр | Тип | Описание |
|---|---|---|
| ap_fisrtname | String(1,30) | Имя |
| ap_surname | String(1,30) | Фамилия |
| ap_patronymic | String(1,30) | Отчество |
Структура stAddress, адрес пользователя или организации
| Параметр | Тип | Описание |
|---|---|---|
| ap_city | String(1,30) | Город |
| ap_street | String(1,30) | Улица |
| ap_house | String(1,18) | Дом |
| ap_building | String(1,10) | Корпус |
| ap_apartment | String(1,10) | Квартира |
Дополнительные типы данных
Структура дополнительной суммы subAmount
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| ap_amount_type | Enum | Да | Тип дополнительной суммы:
|
| ap_amount | String-Decimal (12,2) | Да | Сумма операции. |
| ap_currency | String(3) | Да | Валюта операции. |
Структура дополнительных данных по оплаченному счету АИС ЕРИП
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| ap_invoice_create_dt | DateTime | Нет | Дата формирования требования к оплате |
| ap_invoice_desc | String | Нет | Краткое описание приобретаемых товаров или оказываемых услуг. Эхо из запроса регистрации счета для оплаты в ЕРИП. |
| ap_erip_cust_account | String(1..30) | Нет | Номер лицевого счета плательщика ЕРИП у сервис провайдера в разрезе услуги. Эхо из запроса регистрации счета для оплаты в ЕРИП. |
| ap_erip_auth_type | String(1..10) | Нет | Способ идентификации плательщика для авторизации суммы |
| ap_erip_term_type | String-Number | Нет | Тип терминала согласно протоколу off-line сообщений |
| ap_erip_agent_code | String-Number | Нет | Код расчетного агента |
API v3: AddEripInvoice
Регистрация счета для оплаты ЕРИП. Метод AddEripInvoice.
Параметры инициализации платежа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_request | String | Да | Константа AddEripInvoice | AddEripInvoice |
| ap_client_dt | DateTime | Да | Дата и время на клиенте. | 2025-01-29T13:12:45.841Z |
| ap_client_type | Enum | Нет | Тип используемого клиентского приложения. | brw |
| ap_client_inf | String(1..512) | Нет | Краткая информация о клиентском приложении. | Chrome 49.0.2623.112 (Mac OS X 10.7.2) |
| ap_client_ver | String(1..16) | Нет | Версия на клиенте. | 1.28.3 |
| ap_proto_ver | String(3..10) | Да | Версия протокола. | 3.8 |
| ap_test | Boolean | Нет | Индикатор тестового режима клиента. | 1 |
| ap_lang | String(2..2) | Нет | Язык пользовательского интерфейса. | be |
| ap_store_id | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_erip_service_no | String-Number(1..8) | Нет | Номер услуги в системе ЕРИП. Является обязательным, если у продавца зарегистрировано более 1 услуги в ЕРИП. При отсутствии будет использован номер услуги, указанный в системе по умолчанию. | 123 |
| ap_amount | String-Decimal(12,2) | Да | Сумма операции. | 12.10 |
| ap_currency | String- Number(3) | Да | Валюта операции. |
BYNUSDEURRUB
|
| ap_sub_amounts | subAmount array | Нет | Комплексный тип данных, содержащий список (массив) дополнительных сумм. | |
| ap_invoice_expire | DateTime | Нет | Срок действия счета. Счет нельзя будет оплатить позже указанной даты и времени. При отсутствии данного поля, счет актуален 3 суток. Срок действия счета не может быть меньше 1 часа и больше 30 дней. | 2025-02-29T13:12:45.841Z |
| ap_cust_name | stName | Нет | Структура ФИО плательщика. | |
| ap_cust_address | stAddress | Нет | Структура адреса плательщика. | |
| ap_invoice_desc | String | Нет | Краткое описание приобретаемых товаров или оказываемых услуг. |
|
| ap_epos_url_required | Boolean | Нет | Генерировать ссылку для оплаты(только для E-POS) | 1 |
| ap_erip_cust_account | String(1,30) | Нет | номер лицевого счета плательщика ЕРИП у сервис провайдера в разрезе услуги | 970 |
| up_... | String (1..1024) | Нет | Набор пользовательских параметров. Разрешается добавлять до 16 пользовательских параметров с любыми именами, начинающимися с префикса "up_" (например, "up_any_param"). Данные параметры не обрабатываются и не учитываются в платежной системе при оплате, но передаются предприятию (точке обслуживания) после успешного выполнения операции в уведомлении. | up_any_param=success |
Поля ответа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_status | Enum | Да | Статус выполнения операции. | Success |
| ap_result_code | Int32 | Нет | Целочисленный код выполнения операции. | 0 |
| ap_result_text | String | Нет | Описание результата выполнения операции. | Выполнено успешно |
| ap_server_dt | DateTime | Да | Дата и время на сервере. | 2025-01-29T16:12:48+03:00 |
| ap_test | Boolean | Нет | Индикатор тестового режима сервера. | 1 |
| ap_erip_service_no | String-Number(1,8) | Да | Номер услуги в АИС ЕРИП. | 123 |
| ap_erip_invoice_id | String(1,30) | Да | Уникальный номер счета в разрезе «ap_erip_service_no» для оплаты в системе АИС ЕРИП. Система "4pay" генерирует номер счета методом последовательного инкремента в разрезе указанного "ap_erip_service_no". | 123 |
| ap_epos_url | URL | Нет | Url для E-POS заказа, обязателен, если в запросе «ap_epos_url_required:1» | https://pay.raschet.by/... |
| ap_epos_qr | String | Нет | QR с ссылкой для оплаты base64 png, обязателен, если в запросе «ap_epos_url_required:1» | |
| ap_store_desc | String | Нет | Наименование точки обслуживания. | |
| ap_service_id | UID | Нет | Уникальный идентификатор операции. |
Пример запроса.
ap-content-signature: "1.c90851e727d4ca199cb66a7843187aec535b93c665a6267858175e67edbac10c"
{
"ap_request":"AddEripInvoice",
"ap_amount":"2.22",
"ap_currency":933,
"ap_invoice_desc":"Оплата 2.22",
"ap_invoice_expire":"2025-01-30T13:12:45.841Z",
"ap_epos_url_required":1,
"up_terminal_id":"N5111112",
"ap_erip_cust_account":"375291111111",
"ap_erip_service_no":"70",
"ap_order_num":123,
"ap_client_dt":"2025-01-29T13:12:45.841Z",
"ap_client_inf":"GTPOS",
"ap_client_ver":"5.1.6",
"ap_proto_ver":"3.5",
"ap_lang":"ru",
"ap_store_id":"600060",
"ap_test":1
}
Пример ответа.
ap-content-signature: "1.52554f36f06504124de4a2287b1fbc6930723ffd2b5963fe1b183be554e28820"
{
"ap_erip_service_no": "70",
"ap_erip_invoice_id": "10275-8-379",
"ap_epos_url": "https://pay.raschet.by/?...",
"ap_epos_qr": "iVBORw0KGgo....CC",
"ap_status": "Success",
"ap_result_code": 0,
"ap_result_text": "Выполнено успешно",
"ap_server_dt": "2025-01-29T16:12:48+03:00",
"ap_test": 1
}
API v3: GetEripInvoiceInfo
Получение информации о статусе выставленного счета ЕРИП. Метод GetEripInvoiceInfo.
Параметры запроса получения информации о выставленном счете
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_request | String | Да | Константа GetEripInvoiceInfo | GetEripInvoiceInfo |
| ap_client_dt | DateTime | Нет | Дата и время на клиенте. | 2025-01-29T13:12:45.841Z |
| ap_client_type | Enum | Нет | Тип используемого клиентского приложения. | brw |
| ap_client_inf | String(1..512) | Нет | Краткая информация о клиентском приложении. | Chrome 49.0.2623.112 (Mac OS X 10.7.2) |
| ap_client_ver | String(1..16) | Нет | Версия на клиенте. | 1.28.3 |
| ap_proto_ver | String(3..10) | Да | Версия протокола. | 3.8 |
| ap_test | Boolean | Нет | Индикатор тестового режима клиента. | 1 |
| ap_lang | String(2..2) | Нет | Язык пользовательского интерфейса. | be |
| ap_store_id | String(1..30) | Да | Идентификатор точки обслуживания. | 43434 |
| ap_erip_service_no | Int32 | Нет | Номер услуги в системе ЕРИП. Является обязательным, если у продавца зарегистрировано более 1 услуги в ЕРИП. При отсутствии будет использован номер услуги, указанный в системе по умолчанию. | 123 |
| ap_erip_invoice_id | String(1..30) | Да | Уникальный номер счета в разрезе «ap_erip_service_no» для оплаты в системе ЕРИП. | 123 |
Поля ответа.
| Название | Тип | Обязательность | Значение | Пример |
|---|---|---|---|---|
| ap_status | Enum | Да | Статус выполнения операции. | Success |
| ap_result_code | Int32 | Нет | Целочисленный код выполнения операции. | 0 |
| ap_result_text | String | Нет | Описание результата выполнения операции. | Выполнено успешно |
| ap_server_dt | DateTime | Да | Дата и время на сервере. | 2025-01-29T16:12:48+03:00 |
| ap_test | Boolean | Нет | Индикатор тестового режима сервера. | 1 |
| ap_erip_trn_state | Enum | Да | Текущее состояние счета. Принимает следующие
значения:
|
|
| ap_error_text | String(1..999) | Нет | В случае неуспешного статуса может содержать описание ошибки. | |
| ap_erip_service_no | String-Number(1..8) | Да | Номер услуги в ЕРИП. | 23 |
| ap_erip_invoice_id | String(1..30) | Да | Уникальный номер оплаченного счета в системе ЕРИП. | 123 |
| ap_amount | String-Decimal(12,2) | Нет | Сумма операции. | 12.10 |
| ap_currency | String- Number(3) | Нет | Валюта операции. |
BYNUSDEURRUB
|
| ap_trans_dt | DateTime | Нет | Дата и время выполнения транзакции на сервере ЕРИП. | |
| ap_erip_trn_id | String(1..11) | Нет | Уникальный номер транзакции в системе ЕРИП. | |
| ap_sp_trn_id | String(1..12) | Нет | Уникальный номер транзакции у поставщика услуг. | |
| ap_sub_amounts | subAmount array | Нет | Комплексный тип данных, содержащий список (массив) дополнительных сумм. | |
| ap_cust_name | stName | Нет | Структура ФИО плательщика. | |
| ap_cust_address | stAddress | Нет | Структура адреса плательщика. | |
| ap_erip_ivoice_details | eripInvoiceDetails | Нет | Дополнительные данные по оплаченному счету ЕРИП. | |
| up_... | String(1..1024) | Нет | Набор пользовательских параметров. Отправляется массив параметров из запроса регистрации счета см. запрос регистрации счета |
Пример запроса.
ap-content-signature: "1.e716aca5b7ddc0c466db5ed426546fcc197f9ad72b8ffb978cc8739187cbf045"
{
"ap_request":"GetEripInvoiceInfo",
"ap_erip_service_no":"70",
"ap_erip_invoice_id":"380",
"ap_client_dt":"2025-01-29T14:07:23.599Z",
"ap_client_inf":"GTPOS",
"ap_client_ver":"5.1.6",
"ap_proto_ver":"3.5",
"ap_store_id":"600060",
"ap_test":1,
"up_terminal_id":"N5111112"
}
Примеры ответов.
В ожидании выполнения оплаты или отмены
ap-content-signature: "1.e6ad92feb2ba3395a990b11062dfc087b0b69aae070171f86b216a995e94908a"
{
"ap_erip_trn_state":"Pending",
"ap_erip_service_no":"70",
"ap_erip_invoice_id":"27676845",
"ap_status":"Success",
"ap_result_code":0,
"ap_result_text":"Выполнено успешно",
"ap_server_dt":"2025-01-29T17:06:45+03:00",
"ap_test":1
}
Счет оплачен
ap-content-signature: "1.17ad9еfeb2ba3395a920b11462df7087b0b49aaef7017cf86d216a695e94305b"
{
"ap_erip_trn_state":"Paid",
"ap_erip_service_no":"1070",
"ap_erip_invoice_id":"42486569",
"ap_erip_trn_id":"5641403970",
"ap_status":"Success",
"ap_result_code":0,
"ap_result_text":"Выполнено успешно",
"ap_server_dt":"2025-01-27T17:16:28+03:00",
"ap_test":0
}
Документация по другим методам API предоставляется по запросу.