From 6d138712e64812ac655a0a5128114c3dd4a1cdca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ertu=C4=9Frul=20Berat=20ALLAHVERD=C4=B0?= Date: Fri, 6 Mar 2026 14:09:21 +0300 Subject: [PATCH] Added BNPL Limit Inquiry --- craftgate/adapter/payment_adapter.py | 24 +++++++++++++++++++ craftgate/request/__init__.py | 1 + craftgate/request/init_bnpl_limit_inquiry.py | 19 +++++++++++++++ craftgate/response/__init__.py | 1 + .../response/bnpl_limit_inquiry_response.py | 21 ++++++++++++++++ 5 files changed, 66 insertions(+) create mode 100644 craftgate/request/init_bnpl_limit_inquiry.py create mode 100644 craftgate/response/bnpl_limit_inquiry_response.py diff --git a/craftgate/adapter/payment_adapter.py b/craftgate/adapter/payment_adapter.py index de5fc15..df86090 100644 --- a/craftgate/adapter/payment_adapter.py +++ b/craftgate/adapter/payment_adapter.py @@ -15,6 +15,7 @@ from craftgate.request.disapprove_payment_transactions_request import DisapprovePaymentTransactionsRequest from craftgate.request.init_apm_deposit_payment_request import InitApmDepositPaymentRequest from craftgate.request.init_apm_payment_request import InitApmPaymentRequest +from craftgate.request.init_bnpl_limit_inquiry import InitBnplLimitInquiryRequest from craftgate.request.init_bnpl_payment_request import InitBnplPaymentRequest from craftgate.request.init_checkout_card_verify_request import InitCheckoutCardVerifyRequest from craftgate.request.init_checkout_payment_request import InitCheckoutPaymentRequest @@ -38,6 +39,7 @@ from craftgate.response.apm_deposit_payment_response import ApmDepositPaymentResponse from craftgate.response.apm_payment_complete_response import ApmPaymentCompleteResponse from craftgate.response.apm_payment_init_response import ApmPaymentInitResponse +from craftgate.response.bnpl_limit_inquiry_response import BnplLimitInquiryResponse from craftgate.response.bnpl_payment_offer_response import BnplPaymentOfferResponse from craftgate.response.bnpl_payment_verify_response import BnplPaymentVerifyResponse from craftgate.response.deposit_payment_response import DepositPaymentResponse @@ -543,6 +545,28 @@ def verify_bnpl_payment(self, payment_id: int) -> BnplPaymentVerifyResponse: response_type=BnplPaymentVerifyResponse ) + def init_bnpl_limit_inquiry(self, request: InitBnplLimitInquiryRequest) -> BnplLimitInquiryResponse: + path = "/payment/v1/bnpl-payments/limit-inquiry/init" + headers = self._create_headers(request, path) + return self._http_client.request( + method="POST", + url=self.request_options.base_url + path, + headers=headers, + body=request, + response_type=BnplLimitInquiryResponse + ) + + def complete_bnpl_limit_inquiry(self, request: InitBnplLimitInquiryRequest) -> BnplLimitInquiryResponse: + path = "/payment/v1/bnpl-payments/limit-inquiry/complete" + headers = self._create_headers(request, path) + return self._http_client.request( + method="POST", + url=self.request_options.base_url + path, + headers=headers, + body=request, + response_type=BnplLimitInquiryResponse + ) + def retrieve_active_banks(self) -> InstantTransferBanksResponse: path = "/payment/v1/instant-transfer-banks" headers = self._create_headers(None, path) diff --git a/craftgate/request/__init__.py b/craftgate/request/__init__.py index 868ec19..236872e 100644 --- a/craftgate/request/__init__.py +++ b/craftgate/request/__init__.py @@ -28,6 +28,7 @@ from .fraud_value_list_request import FraudValueListRequest from .init_apm_deposit_payment_request import InitApmDepositPaymentRequest from .init_apm_payment_request import InitApmPaymentRequest +from .init_bnpl_limit_inquiry import InitBnplLimitInquiryRequest from .init_bkm_express_request import InitBkmExpressRequest from .init_bnpl_payment_request import InitBnplPaymentRequest from .init_checkout_card_verify_request import InitCheckoutCardVerifyRequest diff --git a/craftgate/request/init_bnpl_limit_inquiry.py b/craftgate/request/init_bnpl_limit_inquiry.py new file mode 100644 index 0000000..c215803 --- /dev/null +++ b/craftgate/request/init_bnpl_limit_inquiry.py @@ -0,0 +1,19 @@ +from decimal import Decimal +from typing import Dict, List, Optional + +from craftgate.model.apm_type import ApmType +from craftgate.model.currency import Currency +from craftgate.model.payment_group import PaymentGroup +from craftgate.request.dto.payment_item import PaymentItem + + +class InitBnplL(object): + def __init__( + self, + apm_type: Optional[ApmType] = None, + merchant_apm_id: Optional[int] = None, + additional_params: Optional[Dict[str, str]] = None + ) -> None: + self.apm_type = apm_type + self.merchant_apm_id = merchant_apm_id + self.additional_params = additional_params diff --git a/craftgate/response/__init__.py b/craftgate/response/__init__.py index 2869006..44e3826 100644 --- a/craftgate/response/__init__.py +++ b/craftgate/response/__init__.py @@ -18,6 +18,7 @@ from .init_bkm_express_response import InitBkmExpressResponse from .init_bnpl_payment_response import InitBnplPaymentResponse from .init_checkout_card_verify_response import InitCheckoutCardVerifyResponse +from .bnpl_limit_inquiry_response import BnplLimitInquiryResponse from .init_checkout_payment_response import InitCheckoutPaymentResponse from .init_garanti_pay_payment_response import InitGarantiPayPaymentResponse from .init_juzdan_payment_response import InitJuzdanPaymentResponse diff --git a/craftgate/response/bnpl_limit_inquiry_response.py b/craftgate/response/bnpl_limit_inquiry_response.py new file mode 100644 index 0000000..021473d --- /dev/null +++ b/craftgate/response/bnpl_limit_inquiry_response.py @@ -0,0 +1,21 @@ +from typing import Any, Dict, Optional + +from craftgate.model.apm_additional_action import ApmAdditionalAction +from craftgate.model.payment_status import PaymentStatus +from craftgate.response.dto.payment_error import PaymentError + + +class BnplLimitInquiryResponse(object): + def __init__( + self, + payment_status: Optional[PaymentStatus] = None, + additional_action: Optional[ApmAdditionalAction] = None, + errorCode: Optional[str] = None, + errorMessage: Optional[str] = None, + additional_data: Optional[Dict[str, Any]] = None + ) -> None: + self.payment_status = payment_status + self.additional_action = additional_action + self.additional_data = additional_data + self.errorCode = errorCode + self.errorMessage = errorMessage