Список изменений✈️
Все заметные изменения шлюза будут задокументированы в этом файле.
Новые обновления, улучшения и исправления будут появляться здесь с каждым выпуском.
Обновление шлюза
Платёжный шлюз перестроен на новом движке. Пути эндпоинтов, поля запросов и структура успешных ответов не изменились. Пункты ниже могут повлиять на код клиента — остальное является улучшением.
⚠️ Может потребовать действий
- Ошибка аутентификации
403→401. Когда учётные данные отсутствуют или неверны, код статуса теперь401. Если вы проверяетеif status == 403, обработайте также401(лучше:if status in (401, 403)). - Ответы всегда содержат и
result, иerror. Раньше некоторые эндпоинты возвращали только одно. Теперь: успех →{"result": {...}, "error": null}, ошибка →{"result": null, "error": {...}}. Если вы проверяетеif "error" in response, перейдите наif response["error"] is not None. (Исключения остаются «плоскими»:oauth2/token/,oauth2/revoke/,onboarding/.) - Ошибки процессинга теперь возвращают конкретный
error.code. Раньше отклонённый платёж часто возвращалprocessing_errorс сырым кодом/текстом процессинга вmessage/data. Теперь возвращается конкретный унифицированный код, напримерinsufficient_funds,card_expired,limit_exceeded,do_not_honor,lost_cardи т. д., с сообщением на английском. Сырые коды/текст провайдера больше не раскрываются. См. Коды ошибок. Если вы проверяетеprocessing_error, добавьте обработку конкретных кодов.
Улучшения
error.codeвсегда в нижнем регистре.- Унифицированные ошибки по провайдерам. Одинаковая ситуация от UzCard / Humo / Paynet / других провайдеров приводится к одному
error.codeс понятным английскимmessage. Ошибки оплаты услуг больше не раскрывают числа/текст провайдера вerror.data. - Некоторые случаи, ранее возвращавшие
500, теперь возвращают корректный400с кодом. - Неизвестные маршруты и неверные HTTP-методы теперь возвращают стандартный формат
{result, error}. - Лимит размера тела запроса: 64 КБ (
payload_too_large).
Новые коды ошибок
- OFD / фискализация:
ofd_commitent_or_subcommission_not_active— у комитента (TIN) или субкомиссии (PINFL) позиции чека нет активного договора в каталоге OFD (регистрация и split).data:itemIndex,tin,pinfl. - Проверки личности A2C (когда у мерчанта включены
is_myid_required/is_pinfl_required):official_profile_required,merchant_user_myid_not_verified,pinfl_check_required,pinfl_not_match. - A2C по PAN теперь требует разрешение
uses_a2c_by_pan— возвращаетpermission_denied, если оно не включено.
Полный список с категориями — на странице Коды ошибок.