Changelog✈️
All notable changes to the gateway will be documented in this file.
New updates, improvements, and fixes will appear here with each release.
Gateway upgrade
The payment gateway was rebuilt on a new engine. Endpoint paths, request fields and successful response shapes are unchanged. The items below may affect client code — everything else is an improvement.
⚠️ May require action
- Authentication error
403→401. When credentials are missing or invalid, the status code is now401. If you checkif status == 403, also handle401(best:if status in (401, 403)). - Responses always include both
resultanderror. Some endpoints previously returned only one. Now: success →{"result": {...}, "error": null}, failure →{"result": null, "error": {...}}. If you checkif "error" in response, switch toif response["error"] is not None. (Exceptions kept flat:oauth2/token/,oauth2/revoke/,onboarding/.) - Processing-center errors now return a specific
error.code. Previously a declined card payment often returnedprocessing_errorwith a raw processing code/text inmessage/data. Now it returns a specific unified code such asinsufficient_funds,card_expired,limit_exceeded,do_not_honor,lost_card, etc., with an English message. Raw provider codes/text are no longer exposed. See Error Codes. If you match onprocessing_error, add handling for the specific codes.
Improvements
error.codeis always lowercase.- Unified errors across providers. The same situation from UzCard / Humo / Paynet / other providers maps to one
error.codewith a clear Englishmessage. Service-payment errors no longer leak provider numbers/text inerror.data. - Some cases that used to return
500now return a proper400with a code. - Unknown routes and wrong HTTP methods now return the standard
{result, error}format. - Request body size limit: 64 KB (
payload_too_large).
New error codes
- OFD / fiscalization:
ofd_commitent_or_subcommission_not_active— a receipt item's commitent (TIN) or sub-commission (PINFL) has no active contract in the OFD catalogue (register & split).data:itemIndex,tin,pinfl. - A2C identity checks (when the merchant has
is_myid_required/is_pinfl_required):official_profile_required,merchant_user_myid_not_verified,pinfl_check_required,pinfl_not_match. - A2C by PAN now requires the
uses_a2c_by_panpermission — returnspermission_deniedif not enabled.
A full, categorized list is on the Error Codes page.