Работа с лицевыми счетами¶
Эти endpoints вызываются ПЛАТЁЖНЫМ ШЛЮЗОМ К ВАШЕЙ системе. Платёжный шлюз отправляет запрос, чтобы проверить существование лицевого счёта, либо чтобы добавить или удалить лицевой счёт. Ваша система возвращает HTTP 200 OK с указанной структурой ответа.
Информация о запросах¶
Базовый URL: https://ВАШ_BASE_URL/
Метод: POST
Заголовки запросов:¶
| Имя заголовка | Значение |
|---|---|
| Content-Type | application/json |
| R1-Token | <ваш_секретный_токен> |
Аутентификация¶
Платёжный шлюз отправляет заголовок R1-Token с вашим токеном, который вы предварительно передаёте представителю R1.pay защищённым способом. Вам нужно проверять этот токен для подтверждения, что запрос исходит от доверенного шлюза. Обычно такую проверку внедряют в middleware, подключённому к защищаемым роутам API. Пример части кода на Python, реализующего такую проверку:
EXPECTED_TOKEN = os.environ.get("R1_Token")
token = request.headers.get("R1-Token")
if not token:
abort(401)
received = token.encode("utf-8")
expected = EXPECTED_TOKEN.encode("utf-8")
if not hmac.compare_digest(received, expected):
abort(401)
Важно: В целях безопасности токены рекомендуется хранить в зашифрованном виде, чтобы в случае взлома эти чувствительные данные не попали в руки злоумышленников. Если выявлен факт утечки, следует незамедлительно сгенерировать новый токен для платёжного шлюза R1.pay.
1. Проверка существования счёта¶
POST /account/check
Проверяет, существует ли счёт клиента в вашей системе.
Запрос¶
Структура запроса¶
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
account |
string | Да | Номер договора или лицевого счёта |
phone |
string | Нет | Телефон клиента (для дополнительной проверки) |
Пример запроса¶
{
"account": "3494987",
"phone": "79134441212"
}
Ответ¶
Структура ответа¶
| Поле | Тип | Описание |
|---|---|---|
account |
string | Подтверждённый номер лицевого счёта (должен совпадать с запрошенным). Если счёт не найден, вернуть пустое значение |
accepted |
string | Дата заключения договора в формате YYYY-MM-DD. Если счёт не найден, вернуть пустое значение |
msg |
string | Текстовое сообщение. Пустое при успехе. В случае ошибки содержит описание ошибки, которое демонстрируется пользователю. |
Примеры ответов¶
- Счёт найден:
{
"account": "3494987",
"accepted": "2026-04-01",
"msg": ""
}
- Неверный формат номера лицевого счёта:
{
"account": "",
"accepted": "",
"msg": "Неверный формат номера лицевого счёта"
}
2. Добавление счёта¶
POST /account/add
Вызывается, когда клиент добавляет лицевой счёт в свой профиль. Это уведомляет вашу систему, что можно производить отправку счетов на оплату для этого лицевого счёта.
Запрос¶
Структура запроса¶
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
account |
string | Да | Номер лицевого счёта |
phone |
string | Нет | Телефон клиента |
added |
string | Да | Временная метка добавления (YYYY-MM-DD HH:MM:SS) |
Пример запроса¶
{
"account": "3494987",
"phone": "79134441212",
"added": "2026-04-13 15:21:37"
}
Ответ¶
Структура ответа¶
| Поле | Тип | Описание |
|---|---|---|
account |
string | Подтверждённый номер счёта (должен совпадать с запрошенным). В случае ошибки вернуть пустое значение |
accepted |
string | Дата принятия счёта (YYYY-MM-DD). В случае ошибки вернуть пустое значение |
msg |
string | Текстовое сообщение. Пустое при успехе. В случае ошибки вернуть описание, которое демонстрируется пользователю. |
Примеры ответов¶
- Информация подтверждена
{
"account": "3494987",
"msg": "",
"accepted": "2026-04-13"
}
- Лицевой счёт не найден
{
"account": "",
"accepted": "",
"msg": "Счёт не найден в нашей системе"
}
3. Удаление счёта¶
POST /account/del
Вызывается, когда клиент удаляет лицевой счёт из своего профиля. Это уведомительный метод, ваша система должна вернуть HTTP 200 OK, но конкретные данные в ответе не обязательны.
Запрос¶
Структура запроса¶
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
account |
string | Да | Номер лицевого счёта |
phone |
string | Нет | Телефон клиента |
removed |
string | Да | Временная метка удаления (YYYY-MM-DD HH:MM:SS) |
Пример запроса¶
{
"account": "3494987",
"phone": "79134441212",
"removed": "2026-04-13 15:21:37"
}
Ответ¶
Структура ответа¶
Метод носит уведомительную функцию и не ожидает определённых данных. Верните любой валидный JSON-ответ с HTTP 200 OK
Пример ответа¶
{
"account": "3494987",
"msg": ""
}