4pay
быстрые платежи

4pay — документация

Платежная система.
Простой и безопасный приём онлайн-платежей.

Предварительная настройка магазина

Перед началом работы с платежным шлюзом магазин настраивает параметры для выбора способов взаимодействия.

Параметры настройки магазина.

Название Тип Возможные значение
ap_storeid Идентификатор точки обслуживания
secret1 Ключевая фраза для подписи запросов магазина
secret2 Ключевая фраза для подписи ответов шлюза
algo Алгоритм шифрования
sha256 sha512
success url Адрес, на который будет осуществлен переход в случае успешного платежа
cancel url Адрес, на который будет осуществлен переход в случае отказа от платежа/неудачной оплаты
result url Адрес, который будет вызван шлюзом в случае успешного платежа (уведомление о платеже)
success method Метод, с помощью которого будет вызван success url
GET POST
cancel method Метод, с помощью которого будет вызван cancel url
GET POST
result method Метод, с помощью которого будет вызван result url. В случае значения MAIL - вызов result url осуществлен не будет. Вместо этого будет отправлено email уведомление
GET POST MAIL
success data format Формат данных, передаваемых на success url
row json
cancel data format Формат данных, передаваемых на cancel url
row json
result data format Формат данных, передаваемых на result url (не имеет смысла при result method = MAIL)
row json

Этапы осуществления платежа

  1. Инициализация платежа
  2. Переход пользователя от магазина на платежный шлюз
  3. Осуществление платежа/отказ от оплаты
  4. Возвращение в магазин

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

Пример формы для вызова инициализации платежа.

HTML
<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
Да
  • 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) Да Хеш-Подпись

Пример формы для вызова инициализации платежа.

JSON
{"ap_storeid":57003,"ap_order_num":776175,"ap_test":true,"ap_operation_status":"success","up_btn_name":"super","ap_signature":"ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579"}
ROW
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.

Алгоритм формирования:

  1. Все поля сообщения в алфавитном порядке (сортировка по имени параметра) следования склеиваются в одну строку;
  2. Далее в конец строки добавляется секретное слово точки обслуживания (Secret1 для запроса или Secret2 для ответа). Символ ";" является разделителем между параметрами, в конце и начале строки разделитель не ставится;
  3. По полученной на предыдущем этапе строке выбранной хеш-функцией рассчитывается хеш-сумма;
  4. Результат расчета является значением данного параметра. Сам порядок следования параметров в сообщении не регламентирован. Содержимое поля ap_signature не помещается в строку, по которой производится расчет хеш-суммы.

Пример формирования подписи:

PHP
<?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
<?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кого приложения:
  • «srv» – взаимодействие осуществляется между сервером точки обслуживания\агрегатора и сервером «4pay»;
  • «brw» – интернет-браузер;
  • «apk» – мобильное приложение для Android;
  • «ipa» – мобильное приложение iOS;
  • «pos» – терминал.
ap_client_inf String(1..512) Нет Краткая информация о клиентском приложении. Например, название программы интернет-браузера, для мобильного приложения – название приложения и используемой библиотеки. Также по возможности рекомендуется включить в содержимое данного поля информацию о клиентском устройстве: производитель и модель устройства (для мобильного приложения), наименование и версию операционной системы клиентского приложения. Например:
  • Chrome 49.0.2623.112 (Mac OS X 10.7.2);
  • anyapp/lib4pay (Lenovo P1 Vibe/Android 5.1.1).
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):
  • «ru» – русский;
  • «be» – белорусский;
  • «en» – английский;
  • «uk» – украинский;
  • «pl» – польский;
  • «de» – немецкий.
По умолчанию используется «ru».
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» – оплата товаров/услуг;
  • «Preauth» – преавторизация суммы, резервирование определенной суммы средств на счете клиента, окончательное списание средств со счета производится по факту предоставления товара или услуг клиенту;
  • «Reversal» – отмена операции оплата (только в текущем дне) или преавторизации (в любом дне), данная операция доступна только из личного кабинета данной точки обслуживания;
  • «Refund» – возврат средств на счет клиента, если дата выполнения операции «Sale» или «Completeauth» отличается от текущей, данная операция доступна только из личного кабинета данной точки обслуживания.
Для типов операций «Reversal» и «Refund» в поле «ap_order_num» помещается номер отменяемой операции оплата или авторизация
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 Да Статус выполнения операции. Принимает значения:
  • Success – выполнено успешно;
  • Warning –выполнено с замечаниями;
  • Error – ошибка выполнения операции;
  • Malfunction – ошибка выполнения операции, сбой системы (информирует, что система перегружена и следует повторить операцию позже).
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

Пример запроса.

JSON
{
    "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"
}

Пример ответа.

JSON
{
    "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 Да Статус выполнения операции. Принимает значения:
  • Success – выполнено успешно;
  • Warning –выполнено с замечаниями;
  • Error – ошибка выполнения операции;
  • Malfunction – ошибка выполнения операции, сбой системы (информирует, что система перегружена и следует повторить операцию позже).
SuccessWarningErrorMalfunction
ap_result_code Int32 Нет Целочисленный код выполнения операции. Значения: «0» - выполнено успешно; «1..99» - выполнено с замечаниями; иначе – ошибка операции. 0
ap_result_text String Нет Описание результата выполнения операции. Выполнено успешно
ap_operation Enum Да Тип операции Sale
ap_oper_detail_state Enum Да Детальное состояние обработки операции на сервере. Принимает значения:
  • Preparation – в процессе подготовки, запрос на хост еще не отправлен;
  • InProgress – в процессе выполнения (exec получен, проходит обмен с хостом);
  • Successful – выполнено успешно (exec);
  • Canceled – отменено (can)
  • CancelProcessing – отмена в процессе выполнения (can незавершен);
  • Timeouted – истекло время сессии;
  • Failed – сбой при проведении операции.
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

Пример запроса.

JSON
{
    "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"
}

Пример ответа.

JSON
{
    "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 Нет Тип используемого клиентского приложения:
  • «srv» – взаимодействие осуществляется между сервером точки обслуживания\агрегатора и сервером «4pay»;
  • «brw» – интернет-браузер;
  • «apk» – мобильное приложение для Android;
  • «ipa» – мобильное приложение iOS;
  • «pos» – терминал
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 Да Статус выполнения операции. Принимает значения:
  • Success – выполнено успешно;
  • Warning –выполнено с замечаниями;
  • Error – ошибка выполнения операции;
  • Malfunction – ошибка выполнения операции, сбой системы (информирует, что система перегружена и следует повторить операцию позже).
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

Пример запроса.

JSON
{"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"}

Пример ответа.

JSON
{"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 Нет Тип используемого клиентского приложения:
  • «srv» – взаимодействие осуществляется между сервером точки обслуживания\агрегатора и сервером «4pay»;
  • «brw» – интернет-браузер;
  • «apk» – мобильное приложение для Android;
  • «ipa» – мобильное приложение iOS;
  • «pos» – терминал
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 Да Статус выполнения операции. Принимает значения:
  • Success – выполнено успешно;
  • Warning – выполнено с замечаниями;
  • Error – ошибка выполнения операции;
  • Malfunction – ошибка выполнения операции, сбой системы (информирует, что система перегружена и следует повторить операцию позже).
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 Да Текущее состояние счета. Принимает следующие значения:
  • «Paid» - счет оплачен;
  • «Canceled» - оплата счета сторнирована;
  • «PayError» - ошибка оплаты счета;
  • «CancelError» - ошибка сторнирования оплаты счета;
  • «Pending» - в ожидании выполнения оплаты или отмены;
  • «Error» - ошибка регистрации или обработки счета, в этом статусе счет является недействительным;
  • «Expired» - срок действия счета истек, счет является недействительным
ap_signature String (32…512) Да Хеш-Подпись. ac9afb894a07a92fde3bc8638f475b1e3d6ca6f1780d1a711f11ba77f61236579

Пример запроса.

JSON
{"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"}

Пример ответа.

JSON
{"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» – счет оплачен;
  • «Canceled» – оплата счета сторнирована;
  • «PayError» – ошибка оплаты счета;
  • «CancelError» – ошибка сторнирования оплаты счета.;
«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

Пример уведомления.

JSON
{"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
<?php
function formSignature(/* array */ $data)
{
    $signature =
        ALGO_KEY //1 - HMAC-SHA256, 2-MAC-SHA512
        . '.'
        . hash_hmac('sha256', $data , FOURPAY_SECRET1);

    return $signature;
}
?>
JS
function formSignature(message)
{
    const signature = '1.' //1 - HMAC-SHA256, 2-MAC-SHA512
      + CryptoJS.HmacSHA256(message, FOURPAY_SECRET1).toString(CryptoJS.enc.Hex);
    return signature;
}

Пример проверки подписи в ответе сервера:

PHP
<?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 Логический тип данных, принимает значения:
  • 0 – ложь;
  • 1 – истина;
DateTime Строка, содержащая дату и время. Формат «YYYY-MM-DDThh:nn:ss.ZZZZZ», где:
  • YYYY-MM-DD – год-месяц-день;
  • hh:nn:ss – – часы-минуты-секунды;
  • ZZZZZ - часовой пояс (в формате +hh:nn или –hh:nn), может отсутствовать, при отсутствии используется часовой пояс сервера +03.00.
Enum Строковое перечисление. Значение элемента должно соответствовать одному из перечисленных для элемента значений.
UID Строка, содержащая уникальный идентификатор.
URL Строка, содержащая URL.
Phone Подтип String-Number (10,16). Представляет собой номер телефона в формате «CCCNNXXXXXXX», где:
  • CCC - код страны (от 1 до 5 цифр);
  • NN - код оператора мобильной связи (от 1 до 5 цифр);
  • XXXXXXX - номер абонента (от 5 до 10 цифр).

Идентификаторы

Параметр Тип Описание
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кого приложения:
  • «srv» – взаимодействие осуществляется между сервером точки обслуживания\агрегатора и сервером «4pay»;
  • «brw» – интернет-браузер;
  • «apk» – мобильное приложение для Android;
  • «ipa» – мобильное приложение iOS;
  • «pos» – терминал.
ap_client_inf String(1,512) Краткая информация о клиентском приложении. Например, название программы интернет-браузера, для мобильного приложения – название приложения и используемой библиотеки. Также по возможности рекомендуется включить в содержимое данного поля информацию о клиентском устройстве: производитель и модель устройства (для мобильного приложения), наименование и версию операционной системы клиентского приложения. Например:
  • Chrome 49.0.2623.112 (Mac OS X 10.7.2);
  • anyapp/lib4pay (Lenovo P1 Vibe/Android 5.1.1).
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):
  • «ru» – русский;
  • «be» – белорусский;
  • «en» – английский;
  • «uk» – украинский;
  • «pl» – польский;
  • «de» – немецкий.
По умолчанию используется «ru».
ap_server_dt DateTime Дата и время на сервере. Клиент может дополнительно проверять, что дата и время на сервере отличаются максимум на 12 часов от даты и времени на клиенте.

Элементы статуса

Параметр Тип Описание
ap_status Enum Статус обработки запроса. Принимает значения:
  • «Success» – выполнено успешно;
  • «Warning» – выполнено с замечаниями;
  • «Error» – ошибка выполнения операции;
  • «SignIn» - для выполнения запроса необходимо выполнить вход в систему (например, идентификатор сессии в запросе является недействительным и требуется заново выполнить авторизацию пользователя);
  • «Malfunction» – ошибка выполнения операции, сбой системы (информирует, что система перегружена и следует повторить операцию позже).
ap_result_code Int32 Целочисленный код выполнения запроса. Значения:
  • «0» - выполнено успешно;
  • «1..99» - выполнено с замечаниями;
  • иначе – ошибка операции.
ap_result_text String Описание результата выполнения запроса на языке указанном в параметре ap_lang.

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

  • ap_status;
  • ap_result_code;
  • ap_result_text.

Элементы финансовой операции

Сумма и валюта операции

Параметр Тип Описание
ap_amount String-Decimal(12,2) Сумма операции. Формат суммы:
  • сумма с разделителем:
    • «10,00» - 10 руб. 00 коп.
    • «10,1» - 10 руб. 10 коп.
    • «10,» - 10 руб. 00 коп.
    • «10» - 10 руб. 00 коп.
    • «0,11» - 0 руб. 11 коп.
    • «,11» - 0 руб. 11 коп.
    • «,1» - 0 руб. 10 коп.
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 Да Тип дополнительной суммы:
  • Penalty – пеня;
  • Fee – комиссия;
  • Debt – задолженность.
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 Нет Краткое описание приобретаемых товаров или оказываемых услуг.
  • «Телевизор марки Горизонт 32”»;
  • «Мобильная гарнитура 1 ед.; сетевое зарядное для смартфона 2 ед.; автомобильное зарядное для смартфона 1 ед.;»;
  • «Оплата за услуги монтажа подвесного оборудования».
Кодовая страница – «utf8». Максимальный размер – 10KB
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 Да Текущее состояние счета. Принимает следующие значения:
  • «Paid» - счет оплачен;
  • «Canceled» - оплата счета сторнирована;
  • «PayError» - ошибка оплаты счета;
  • «CancelError» - ошибка сторнирования оплаты счета;
  • «Pending» - в ожидании выполнения оплаты или отмены;
  • «Error» - ошибка регистрации или обработки счета, в этом статусе счет является недействительным;
  • «Expired» - срок действия счета истек, счет является недействительным
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 предоставляется по запросу.