diff --git a/craftgate/request/create_deposit_payment_request.py b/craftgate/request/create_deposit_payment_request.py index 5ce9873..b3cf1e5 100644 --- a/craftgate/request/create_deposit_payment_request.py +++ b/craftgate/request/create_deposit_payment_request.py @@ -3,6 +3,7 @@ from craftgate.model.currency import Currency from craftgate.request.dto.card import Card +from craftgate.request.dto.routing_options import RoutingOptions class CreateDepositPaymentRequest(object): @@ -15,7 +16,8 @@ def __init__( callback_url: Optional[str] = None, pos_alias: Optional[str] = None, client_ip: Optional[str] = None, - card: Optional[Card] = None + card: Optional[Card] = None, + routing_options: Optional[RoutingOptions] = None ) -> None: self.buyer_member_id = buyer_member_id self.price = price @@ -25,3 +27,4 @@ def __init__( self.pos_alias = pos_alias self.client_ip = client_ip self.card = card + self.routing_options = routing_options diff --git a/craftgate/request/create_payment_request.py b/craftgate/request/create_payment_request.py index 2e887dd..d75fc38 100644 --- a/craftgate/request/create_payment_request.py +++ b/craftgate/request/create_payment_request.py @@ -7,6 +7,7 @@ from craftgate.request.dto.card import Card from craftgate.request.dto.fraud_check_parameters import FraudCheckParameters from craftgate.request.dto.payment_item import PaymentItem +from craftgate.request.dto.routing_options import RoutingOptions class CreatePaymentRequest(object): @@ -27,6 +28,7 @@ def __init__( buyer_member_id: Optional[int] = None, bank_order_id: Optional[str] = None, card: Optional[Card] = None, + routing_options: Optional[RoutingOptions] = None, fraud_params: Optional[FraudCheckParameters] = None, items: Optional[List[PaymentItem]] = None, additional_params: Optional[Dict[str, Any]] = None, @@ -47,6 +49,7 @@ def __init__( self.buyer_member_id = buyer_member_id self.bank_order_id = bank_order_id self.card = card + self.routing_options = routing_options self.fraud_params = fraud_params self.items = items self.additional_params = additional_params diff --git a/craftgate/request/dto/routing_options.py b/craftgate/request/dto/routing_options.py new file mode 100644 index 0000000..8962c5e --- /dev/null +++ b/craftgate/request/dto/routing_options.py @@ -0,0 +1,18 @@ +from enum import Enum +from typing import Optional, List + + +class OrderingRule(str, Enum): + ON_US = "ON_US" + LOW_COMMISSION_RATE = "LOW_COMMISSION_RATE" + IN_ORDER = "IN_ORDER" + + +class RoutingOptions(object): + def __init__( + self, + ordering_rule: Optional[OrderingRule] = None, + pos_aliases: Optional[List[str]] = None + ) -> None: + self.ordering_rule = ordering_rule + self.pos_aliases = pos_aliases diff --git a/craftgate/request/init_checkout_payment_request.py b/craftgate/request/init_checkout_payment_request.py index 526bf42..2d780c6 100644 --- a/craftgate/request/init_checkout_payment_request.py +++ b/craftgate/request/init_checkout_payment_request.py @@ -8,6 +8,7 @@ from craftgate.request.dto.custom_installment import CustomInstallment from craftgate.request.dto.fraud_check_parameters import FraudCheckParameters from craftgate.request.dto.payment_item import PaymentItem +from craftgate.request.dto.routing_options import RoutingOptions class InitCheckoutPaymentRequest(object): @@ -42,6 +43,7 @@ def __init__( ttl: Optional[int] = None, custom_installments: Optional[List[CustomInstallment]] = None, items: Optional[List[PaymentItem]] = None, + routing_options: Optional[RoutingOptions] = None, fraud_params: Optional[FraudCheckParameters] = None, additional_params: Optional[Dict[str, Any]] = None, card_brand_installments: Optional[Dict[str, List[CustomInstallment]]] = None @@ -75,6 +77,7 @@ def __init__( self.ttl = ttl self.custom_installments = custom_installments self.items = items + self.routing_options = routing_options self.fraud_params = fraud_params self.additional_params = additional_params self.card_brand_installments = card_brand_installments