From 3a753e6cfe9550c940afe7b9df495bbe3dad3d75 Mon Sep 17 00:00:00 2001 From: YegorZh Date: Thu, 30 Jul 2026 07:13:07 +0100 Subject: [PATCH 1/2] feat: added missing authorization fields --- unit/models/authorization.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/unit/models/authorization.py b/unit/models/authorization.py index a2726d9f..a223fa50 100644 --- a/unit/models/authorization.py +++ b/unit/models/authorization.py @@ -4,6 +4,8 @@ from unit.utils import date_utils AuthorizationStatus = Literal["Authorized", "Completed", "Canceled", "Declined"] +CardDecisionSource = Literal["Org", "Unit", "Network", "TimeoutApprove", "TimeoutDecline", "DefaultApprove", + "InternalError", "IssuerStandIn"] class AuthorizationDTO(object): @@ -14,7 +16,9 @@ def __init__(self, id: str, created_at: datetime, amount: int, card_last_4_digit card_network: Optional[str], tags: Optional[Dict[str, str]], relationships: Optional[Dict[str, Relationship]], merchant_id: Optional[str], decline_reason: Optional[str], cash_withdrawal_amount: Optional[int], summary: Optional[str], - currency_conversion: Optional[CurrencyConversion], rich_merchant_data: Optional[RichMerchantData] + currency_conversion: Optional[CurrencyConversion], rich_merchant_data: Optional[RichMerchantData], + card_decision_source: Optional[CardDecisionSource], decline_description: Optional[str], + declined_by: Optional[str] ): self.id = id self.type = "authorization" @@ -26,7 +30,8 @@ def __init__(self, id: str, created_at: datetime, amount: int, card_last_4_digit "cardVerificationData": card_verification_data, "cardNetwork": card_network, "tags": tags, "declineReason": decline_reason, "cashWithdrawalAmount": cash_withdrawal_amount, "summary": summary, "currencyConversion": currency_conversion, - "richMerchantData": rich_merchant_data} + "richMerchantData": rich_merchant_data, "cardDecisionSource": card_decision_source, + "declineDescription": decline_description, "declinedBy": declined_by} self.relationships = relationships @staticmethod @@ -41,7 +46,9 @@ def from_json_api(_id, _type, attributes, relationships): attributes.get("declineReason"), attributes.get("cashWithdrawalAmount"), attributes.get("summary"), CurrencyConversion.from_json_api(attributes.get("currencyConversion")), - RichMerchantData.from_json_api(attributes.get("richMerchantData")) + RichMerchantData.from_json_api(attributes.get("richMerchantData")), + attributes.get("cardDecisionSource"), attributes.get("declineDescription"), + attributes.get("declinedBy") ) From af31ff4816f4c34f79d69843d42d4882e49153ff Mon Sep 17 00:00:00 2001 From: YegorZh Date: Thu, 30 Jul 2026 07:25:07 +0100 Subject: [PATCH 2/2] version bump to 1.3.1 --- setup.py | 2 +- unit/utils/configuration.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 84d8bf7e..49b56ccd 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ setup( name='unit-python-sdk', packages=['unit', 'unit.api', 'unit.models', 'unit.utils'], - version="1.3.0", + version="1.3.1", license='Mozilla Public License 2.0', description='This library provides a python wrapper to http://unit.co API. See https://docs.unit.co/', author='unit.co', diff --git a/unit/utils/configuration.py b/unit/utils/configuration.py index 1aba248e..60daba86 100644 --- a/unit/utils/configuration.py +++ b/unit/utils/configuration.py @@ -10,7 +10,7 @@ def get_headers(self): return { "content-type": "application/vnd.api+json", "authorization": f"Bearer {self.token}", - "X-UNIT-SDK": f"unit-python-sdk@v1.3.0" + "X-UNIT-SDK": f"unit-python-sdk@v1.3.1" } def set_api_url(self, api_url):