Skip to content

Список изменений✈️ ​

Все заметные изменения шлюза будут задокументированы в этом файле.

Новые обновления, улучшения и исправления будут появляться здесь с каждым выпуском.

Обновление шлюза ​

Платёжный шлюз перестроен на новом движке. Пути эндпоинтов, поля запросов и структура успешных ответов не изменились. Пункты ниже могут повлиять на код клиента — остальное является улучшением.

⚠️ Может потребовать действий ​

  • Ошибка аутентификации 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, если оно не включено.

Полный список с категориями — на странице Коды ошибок.