Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -304,9 +304,17 @@ is_valid = client.verify_webhook(
)
```

### Get System Order Status
```python
status = client.get_system_order_status()
### Get System Definitions and Statuses
```python
order_statuses = client.get_system_order_statuses()
basket_item_types = client.get_system_basket_item_types()
error_codes = client.get_system_error_codes()
payment_term_statuses = client.get_system_payment_term_statuses()
product_types = client.get_system_product_types()
shortcut_types = client.get_system_shortcut_types()
transaction_payment_types = client.get_system_transaction_payment_types()
transaction_purposes = client.get_system_transaction_purposes()
transaction_statuses = client.get_system_transaction_statuses()
```

## Subscription Management
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

setup(
name="tapsilat-py",
version="2026.4.24.2",
version="2026.5.8.1",
description="Client SDK for Tapsilat API",
long_description=long_description,
long_description_content_type="text/markdown",
Expand Down
32 changes: 32 additions & 0 deletions tapsilat_py/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,38 @@ def get_system_order_statuses(self) -> dict:
endpoint = "/system/order-statuses"
return self._make_request("GET", endpoint)

def get_system_basket_item_types(self) -> dict:
endpoint = "/system/basket-item-types"
return self._make_request("GET", endpoint)

def get_system_error_codes(self) -> dict:
endpoint = "/system/error-codes"
return self._make_request("GET", endpoint)

def get_system_payment_term_statuses(self) -> dict:
endpoint = "/system/payment-term-statuses"
return self._make_request("GET", endpoint)

def get_system_product_types(self) -> dict:
endpoint = "/system/product-types"
return self._make_request("GET", endpoint)

def get_system_shortcut_types(self) -> dict:
endpoint = "/system/shortcut-types"
return self._make_request("GET", endpoint)

def get_system_transaction_payment_types(self) -> dict:
endpoint = "/system/transaction-payment-types"
return self._make_request("GET", endpoint)

def get_system_transaction_purposes(self) -> dict:
endpoint = "/system/transaction-purposes"
return self._make_request("GET", endpoint)

def get_system_transaction_statuses(self) -> dict:
endpoint = "/system/transaction-statuses"
return self._make_request("GET", endpoint)

def get_order(self, reference_id: str) -> OrderResponse:
endpoint = f"/order/{reference_id}"
response = self._make_request("GET", endpoint)
Expand Down
6 changes: 5 additions & 1 deletion tests/integration/integration_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,11 @@ def test_scenario_11_order_management_operations(api_client):
except APIException:
pass

dummy_ref = "dummy_ref_123"
buyer = BuyerDTO(name="John", surname="Doe", email="test@example.com")
order = api_client.create_order(
OrderCreateDTO(amount=100.0, currency="TRY", locale="tr", buyer=buyer)
)
dummy_ref = order.reference_id

# get_order_by_conversation_id
try:
Expand Down
64 changes: 64 additions & 0 deletions tests/unit/test_system_endpoints.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import unittest
from unittest.mock import MagicMock, patch
from tapsilat_py.client import TapsilatAPI

class TestSystemEndpoints(unittest.TestCase):
def setUp(self):
self.api = TapsilatAPI(api_key="test_key")
self.api._make_request = MagicMock()

def test_get_system_basket_item_types(self):
expected_response = {"data": []}
self.api._make_request.return_value = expected_response
response = self.api.get_system_basket_item_types()
self.api._make_request.assert_called_once_with("GET", "/system/basket-item-types")
self.assertEqual(response, expected_response)

def test_get_system_error_codes(self):
expected_response = {"data": []}
self.api._make_request.return_value = expected_response
response = self.api.get_system_error_codes()
self.api._make_request.assert_called_once_with("GET", "/system/error-codes")
self.assertEqual(response, expected_response)

def test_get_system_payment_term_statuses(self):
expected_response = {"data": []}
self.api._make_request.return_value = expected_response
response = self.api.get_system_payment_term_statuses()
self.api._make_request.assert_called_once_with("GET", "/system/payment-term-statuses")
self.assertEqual(response, expected_response)

def test_get_system_product_types(self):
expected_response = {"data": []}
self.api._make_request.return_value = expected_response
response = self.api.get_system_product_types()
self.api._make_request.assert_called_once_with("GET", "/system/product-types")
self.assertEqual(response, expected_response)

def test_get_system_shortcut_types(self):
expected_response = {"data": []}
self.api._make_request.return_value = expected_response
response = self.api.get_system_shortcut_types()
self.api._make_request.assert_called_once_with("GET", "/system/shortcut-types")
self.assertEqual(response, expected_response)

def test_get_system_transaction_payment_types(self):
expected_response = {"data": []}
self.api._make_request.return_value = expected_response
response = self.api.get_system_transaction_payment_types()
self.api._make_request.assert_called_once_with("GET", "/system/transaction-payment-types")
self.assertEqual(response, expected_response)

def test_get_system_transaction_purposes(self):
expected_response = {"data": []}
self.api._make_request.return_value = expected_response
response = self.api.get_system_transaction_purposes()
self.api._make_request.assert_called_once_with("GET", "/system/transaction-purposes")
self.assertEqual(response, expected_response)

def test_get_system_transaction_statuses(self):
expected_response = {"data": []}
self.api._make_request.return_value = expected_response
response = self.api.get_system_transaction_statuses()
self.api._make_request.assert_called_once_with("GET", "/system/transaction-statuses")
self.assertEqual(response, expected_response)