Skip to content

Commit 4c192f8

Browse files
authored
Merge pull request #27 from RafaelJohn9/fix/ReturnCode
fix: changed ResultCode and ResponseCode to have int | str type due t…
2 parents 54da4e0 + de31725 commit 4c192f8

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

mpesa_sdk/C2B/schemas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ class C2BValidationRequest(BaseModel):
181181
class C2BValidationResponse(BaseModel):
182182
"""Schema for response to validation requests (accept/reject payment)."""
183183

184-
ResultCode: str = Field(..., description="0 to accept, error code to reject.")
184+
ResultCode: int | str = Field(..., description="0 to accept, error code to reject.")
185185
ResultDesc: str = Field(..., description="Short description: Accepted or Rejected.")
186186
ThirdPartyTransID: Optional[str] = Field(
187187
None, description="Optional partner transaction ID."

mpesa_sdk/business_paybill/schemas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class BusinessPayBillResultMetadata(BaseModel):
111111
"""Metadata for Business PayBill result notification."""
112112

113113
ResultType: int = Field(..., description="Type of result (0=Success, 1=Failure).")
114-
ResultCode: int = Field(..., description="Result code (0=Success).")
114+
ResultCode: int | str = Field(..., description="Result code (0=Success).")
115115
ResultDesc: str = Field(..., description="Result description.")
116116
OriginatorConversationID: str = Field(
117117
..., description="Originator conversation ID."

mpesa_sdk/tax_remittance/schemas.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class TaxRemittanceResponse(BaseModel):
5454
ConversationID: Optional[str] = Field(
5555
..., description="Unique ID for the transaction."
5656
)
57-
ResponseCode: str = Field(..., description="Status code, 0 means success.")
57+
ResponseCode: str | int = Field(..., description="Status code, 0 means success.")
5858
ResponseDescription: str = Field(..., description="Status message.")
5959

6060
model_config = ConfigDict(
@@ -108,7 +108,7 @@ class TaxRemittanceResultMetadata(BaseModel):
108108
"""Metadata for Tax Remittance result notification."""
109109

110110
ResultType: int = Field(..., description="Type of result (0=Success, 1=Failure).")
111-
ResultCode: int = Field(..., description="Result code (0=Success).")
111+
ResultCode: int | str = Field(..., description="Result code (0=Success).")
112112
ResultDesc: str = Field(..., description="Result description.")
113113
OriginatorConversationID: str = Field(
114114
..., description="Originator conversation ID."
@@ -192,7 +192,8 @@ class TaxRemittanceResultCallback(BaseModel):
192192

193193
def is_successful(self) -> bool:
194194
"""Check if the result indicates success."""
195-
return self.Result.ResultCode == 0
195+
code = str(self.Result.ResultCode)
196+
return code.strip("0") == "" and code != ""
196197

197198

198199
class TaxRemittanceResultCallbackResponse(BaseModel):

0 commit comments

Comments
 (0)