sslcommerz_client package¶
Submodules¶
sslcommerz_client.client module¶
-
class
sslcommerz_client.client.
SSLCommerzClient
(store_id: str, store_passwd: str, sandbox: bool = False)[source]¶ Bases:
object
-
property
baseURL
¶
-
property
credential
¶
-
getOrderValidationData
(data: Union[dict, sslcommerz_client.dataclasses.OrderValidationPostData, sslcommerz_client.dataclasses.IPNResponse])[source]¶ Get Order validation data from API.
-
initiateRefund
(data: Union[dict, sslcommerz_client.dataclasses.RefundRequestPostData])[source]¶ Initiate a refund.
-
initiateSession
(postData: Union[sslcommerz_client.dataclasses.PaymentInitPostData, dict])[source]¶ Initiates an session.
-
property
sslcommerz_client.dataclasses module¶
-
class
sslcommerz_client.dataclasses.
APIConnectEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
DONE
= 'DONE'¶
-
FAILED
= 'FAILED'¶
-
INACTIVE
= 'INACTIVE'¶
-
INVALID_REQUEST
= 'INVALID_REQUEST'¶
-
-
class
sslcommerz_client.dataclasses.
APIResponse
(*, raw_data: Any = None, status_code: int, response: Optional[Union[sslcommerz_client.dataclasses.OrderValidationResponse, sslcommerz_client.dataclasses.IPNResponse, sslcommerz_client.dataclasses.PaymentInitResponse, sslcommerz_client.dataclasses.RefundResponse, sslcommerz_client.dataclasses.RefundInitiateResponse, sslcommerz_client.dataclasses.TransactionBySessionResponse, sslcommerz_client.dataclasses.TransactionsByIDResponse]] = None)[source]¶ Bases:
pydantic.main.BaseModel
dataclass for api response complete with raw response data, status_code and one of response objects for easy introspection.
-
raw_data
: Any¶
-
response
: Optional[Union[sslcommerz_client.dataclasses.OrderValidationResponse, sslcommerz_client.dataclasses.IPNResponse, sslcommerz_client.dataclasses.PaymentInitResponse, sslcommerz_client.dataclasses.RefundResponse, sslcommerz_client.dataclasses.RefundInitiateResponse, sslcommerz_client.dataclasses.TransactionBySessionResponse, sslcommerz_client.dataclasses.TransactionsByIDResponse]]¶
-
status_code
: int¶
-
-
class
sslcommerz_client.dataclasses.
BaseOrderResponse
(*, tran_date: datetime.datetime, tran_id: str, val_id: str, amount: decimal.Decimal, store_amount: decimal.Decimal, card_type: str, card_no: str, currency: str, bank_tran_id: str, card_issuer: str, card_brand: sslcommerz_client.dataclasses.CardBrandEnum, card_issuer_country: str, card_issuer_country_code: str, currency_type: str, currency_amount: decimal.Decimal, risk_level: sslcommerz_client.dataclasses.RiskLevelEnum, risk_title: str, value_a: str = None, value_b: str = None, value_c: str = None, value_d: str = None)[source]¶ Bases:
pydantic.main.BaseModel
Base dataclass for Order and IPN.
-
amount
: decimal.Decimal¶
-
bank_tran_id
: str¶
-
card_brand
: sslcommerz_client.dataclasses.CardBrandEnum¶
-
card_issuer
: str¶
-
card_issuer_country
: str¶
-
card_issuer_country_code
: str¶
-
card_no
: str¶
-
card_type
: str¶
-
currency
: str¶
-
currency_amount
: decimal.Decimal¶
-
currency_type
: str¶
-
risk_level
: sslcommerz_client.dataclasses.RiskLevelEnum¶
-
risk_title
: str¶
-
store_amount
: decimal.Decimal¶
-
tran_date
: datetime.datetime¶
-
tran_id
: str¶
-
val_id
: str¶
-
value_a
: Optional[str]¶
-
value_b
: Optional[str]¶
-
value_c
: Optional[str]¶
-
value_d
: Optional[str]¶
-
-
class
sslcommerz_client.dataclasses.
BooleanIntEnum
(value)[source]¶ Bases:
int
,enum.Enum
An enumeration.
-
FALSE
= 0¶
-
TRUE
= 1¶
-
-
class
sslcommerz_client.dataclasses.
CardBrandEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
AMEX
= 'AMEX'¶
-
IB
= 'IB'¶
-
MASTER
= 'MASTER'¶
-
MOBILE_BANKING
= 'MOBILE BANKING'¶
-
VISA
= 'VISA'¶
-
-
class
sslcommerz_client.dataclasses.
CartItem
(*, product: str, quantity: int, amount: decimal.Decimal)[source]¶ Bases:
pydantic.main.BaseModel
Dataclass for cart items in PaymentInitPostData.
-
amount
: decimal.Decimal¶
-
product
: str¶
-
quantity
: int¶
-
-
class
sslcommerz_client.dataclasses.
Credential
(*, store_id: str, store_passwd: str)[source]¶ Bases:
pydantic.main.BaseModel
-
store_id
: str¶
-
store_passwd
: str¶
-
-
class
sslcommerz_client.dataclasses.
EMIOptionsEnum
(value)[source]¶ Bases:
int
,enum.Enum
An enumeration.
-
NINE_MONTHS
= 9¶
-
SIX_MONTHS
= 6¶
-
THREE_MONTHS
= 3¶
-
-
class
sslcommerz_client.dataclasses.
Gateway
(*, name: str, type: str, logo: str = None, gw: str = None, r_flag: str = None, redirectGatewayURL: str = None)[source]¶ Bases:
pydantic.main.BaseModel
-
gw
: Optional[str]¶
-
logo
: Optional[str]¶
-
name
: str¶
-
r_flag
: Optional[str]¶
-
redirectGatewayURL
: Optional[str]¶
-
type
: str¶
-
-
class
sslcommerz_client.dataclasses.
IPNOrderStatusEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
CANCELLED
= 'CANCELLED'¶
-
EXPIRED
= 'EXPIRED'¶
-
FAILED
= 'FAILED'¶
-
UNATTEMPTED
= 'UNATTEMPTED'¶
-
VALID
= 'VALID'¶
-
-
class
sslcommerz_client.dataclasses.
IPNResponse
(*, tran_date: datetime.datetime, tran_id: str, val_id: str, amount: decimal.Decimal, store_amount: decimal.Decimal, card_type: str, card_no: str, currency: str, bank_tran_id: str, card_issuer: str, card_brand: sslcommerz_client.dataclasses.CardBrandEnum, card_issuer_country: str, card_issuer_country_code: str, currency_type: str, currency_amount: decimal.Decimal, risk_level: sslcommerz_client.dataclasses.RiskLevelEnum, risk_title: str, value_a: str = None, value_b: str = None, value_c: str = None, value_d: str = None, status: sslcommerz_client.dataclasses.IPNOrderStatusEnum, verify_sign: str, verify_key: str)[source]¶ Bases:
sslcommerz_client.dataclasses.BaseOrderResponse
IPN response dataclass with validation
-
validate_against_credential
(credential: Union[sslcommerz_client.dataclasses.Credential, dict])[source]¶
-
verify_key
: str¶
-
verify_sign
: str¶
-
-
class
sslcommerz_client.dataclasses.
IPNValidationStatus
(*, status: bool, response: sslcommerz_client.dataclasses.IPNResponse)[source]¶ Bases:
pydantic.main.BaseModel
IPN validation result’s dataclass.
-
status
: bool¶
-
-
class
sslcommerz_client.dataclasses.
MultiCardNamesEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
ABBANK
= 'abbank'¶
-
AMEX_CARD
= 'amexcard'¶
-
BANK_ASIA
= 'bankasia'¶
-
BKASH
= 'bkash'¶
-
BRAC_MASTER
= 'brac_master'¶
-
BRAC_VISA
= 'brac_visa'¶
-
CITY
= 'city'¶
-
CITY_AMEX
= 'city_amex'¶
-
CITY_MASTER
= 'city_master'¶
-
CITY_VISA
= 'city_visa'¶
-
DBBL_MASTER
= 'dbbl_master'¶
-
DBBL_MOBILE_BANKING
= 'dbblmobilebanking'¶
-
DBBL_NEXUS
= 'dbbl_nexus'¶
-
DBBL_VISA
= 'dbbl_visa'¶
-
EBL_MASTER
= 'ebl_master'¶
-
EBL_VISA
= 'ebl_visa'¶
-
IBBL
= 'ibbl'¶
-
INTERNET_BANK
= 'internetbank'¶
-
MASTER_CARD
= 'mastercard'¶
-
MOBILE_BANK
= 'mobilebank'¶
-
MTBL
= 'mtbl'¶
-
OTHER_CARD
= 'othercard'¶
-
QCASH
= 'qcash'¶
-
SBL_MASTER
= 'sbl_master'¶
-
SBL_VISA
= 'sbl_visa'¶
-
TAPNPAY
= 'tapnpay'¶
-
UPAY
= 'upay'¶
-
VISA_CARD
= 'visacard'¶
-
-
class
sslcommerz_client.dataclasses.
OrderStatusEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
INVALID_TRANSACTION
= 'INVALID_TRANSACTION'¶
-
VALID
= 'VALID'¶
-
VALIDATED
= 'VALIDATED'¶
-
-
class
sslcommerz_client.dataclasses.
OrderValidationPostData
(*, val_id: str, v: int = None)[source]¶ Bases:
pydantic.main.BaseModel
Dataclass for Order validation API post data.
-
v
: Optional[int]¶
-
val_id
: str¶
-
-
class
sslcommerz_client.dataclasses.
OrderValidationResponse
(*, tran_date: datetime.datetime, tran_id: str, val_id: str, amount: decimal.Decimal, store_amount: decimal.Decimal, card_type: str, card_no: str, currency: str, bank_tran_id: str, card_issuer: str, card_brand: sslcommerz_client.dataclasses.CardBrandEnum, card_issuer_country: str, card_issuer_country_code: str, currency_type: str, currency_amount: decimal.Decimal, risk_level: sslcommerz_client.dataclasses.RiskLevelEnum, risk_title: str, value_a: str = None, value_b: str = None, value_c: str = None, value_d: str = None, status: sslcommerz_client.dataclasses.OrderStatusEnum, emi_instalment: sslcommerz_client.dataclasses.EMIOptionsEnum, emi_amount: decimal.Decimal, discount_amount: decimal.Decimal, discount_percentage: decimal.Decimal, discount_remarks: str)[source]¶ Bases:
sslcommerz_client.dataclasses.BaseOrderResponse
Order validation response.
-
discount_amount
: decimal.Decimal¶
-
discount_percentage
: decimal.Decimal¶
-
discount_remarks
: str¶
-
emi_amount
: decimal.Decimal¶
-
emi_instalment
: sslcommerz_client.dataclasses.EMIOptionsEnum¶
-
-
class
sslcommerz_client.dataclasses.
PaymentInitPostData
(*, total_amount: decimal.Decimal, currency: str, tran_id: str, product_category: str, success_url: pydantic.networks.AnyHttpUrl, fail_url: pydantic.networks.AnyHttpUrl, cancel_url: pydantic.networks.AnyHttpUrl, emi_option: sslcommerz_client.dataclasses.BooleanIntEnum = <BooleanIntEnum.FALSE: 0>, cus_name: str, cus_email: str, cus_add1: str, cus_city: str, cus_country: str, cus_phone: str, shipping_method: sslcommerz_client.dataclasses.ShippingMethodEnum = <ShippingMethodEnum.YES: 'YES'>, num_of_item: int, product_name: str, product_profile: sslcommerz_client.dataclasses.ProductProfileEnum, ipn_url: str = None, multi_card_name: sslcommerz_client.dataclasses.MultiCardNamesEnum = None, allowed_bin: str = None, emi_max_inst_option: sslcommerz_client.dataclasses.EMIOptionsEnum = None, emi_selected_inst: sslcommerz_client.dataclasses.EMIOptionsEnum = None, emi_allow_only: int = None, cus_add2: str = None, cus_postcode: str = None, cus_state: str = None, cus_fax: str = None, ship_name: str = None, ship_add1: str = None, ship_add2: str = None, ship_city: str = None, ship_postcode: str = None, ship_country: str = None, ship_phone: str = None, ship_state: str = None, hours_till_departure: str = None, flight_type: str = None, pnr: str = None, journey_from_to: str = None, third_party_booking: str = None, hotel_name: str = None, length_of_stay: str = None, check_in_time: str = None, hotel_city: str = None, product_type: str = None, topup_number: str = None, country_topup: str = None, cart: List[sslcommerz_client.dataclasses.CartItem] = None, product_amount: decimal.Decimal = None, vat: decimal.Decimal = None, discount_amount: decimal.Decimal = None, convenience_fee: decimal.Decimal = None, value_a: str = None, value_b: str = None, value_c: str = None, value_d: str = None)[source]¶ Bases:
pydantic.main.BaseModel
Dataclass for session initiation post data.
-
allowed_bin
: Optional[str]¶
-
cancel_url
: pydantic.networks.AnyHttpUrl¶
-
cart
: Optional[List[sslcommerz_client.dataclasses.CartItem]]¶
-
check_in_time
: Optional[str]¶
-
convenience_fee
: Optional[decimal.Decimal]¶
-
country_topup
: Optional[str]¶
-
currency
: str¶
-
cus_add1
: str¶
-
cus_add2
: Optional[str]¶
-
cus_city
: str¶
-
cus_country
: str¶
-
cus_email
: str¶
-
cus_fax
: Optional[str]¶
-
cus_name
: str¶
-
cus_phone
: str¶
-
cus_postcode
: Optional[str]¶
-
cus_state
: Optional[str]¶
-
discount_amount
: Optional[decimal.Decimal]¶
-
emi_allow_only
: Optional[int]¶
-
emi_max_inst_option
: Optional[sslcommerz_client.dataclasses.EMIOptionsEnum]¶
-
emi_option
: sslcommerz_client.dataclasses.BooleanIntEnum¶
-
emi_selected_inst
: Optional[sslcommerz_client.dataclasses.EMIOptionsEnum]¶
-
fail_url
: pydantic.networks.AnyHttpUrl¶
-
flight_type
: Optional[str]¶
-
hotel_city
: Optional[str]¶
-
hotel_name
: Optional[str]¶
-
hours_till_departure
: Optional[str]¶
-
ipn_url
: Optional[str]¶
-
journey_from_to
: Optional[str]¶
-
length_of_stay
: Optional[str]¶
-
multi_card_name
: Optional[sslcommerz_client.dataclasses.MultiCardNamesEnum]¶
-
num_of_item
: int¶
-
pnr
: Optional[str]¶
-
product_amount
: Optional[decimal.Decimal]¶
-
product_category
: str¶
-
product_name
: str¶
-
product_profile
: sslcommerz_client.dataclasses.ProductProfileEnum¶
-
product_type
: Optional[str]¶
-
ship_add1
: Optional[str]¶
-
ship_add2
: Optional[str]¶
-
ship_city
: Optional[str]¶
-
ship_country
: Optional[str]¶
-
ship_name
: Optional[str]¶
-
ship_phone
: Optional[str]¶
-
ship_postcode
: Optional[str]¶
-
ship_state
: Optional[str]¶
-
shipping_method
: sslcommerz_client.dataclasses.ShippingMethodEnum¶
-
success_url
: pydantic.networks.AnyHttpUrl¶
-
third_party_booking
: Optional[str]¶
-
topup_number
: Optional[str]¶
-
total_amount
: decimal.Decimal¶
-
tran_id
: str¶
-
value_a
: Optional[str]¶
-
value_b
: Optional[str]¶
-
value_c
: Optional[str]¶
-
value_d
: Optional[str]¶
-
vat
: Optional[decimal.Decimal]¶
-
-
class
sslcommerz_client.dataclasses.
PaymentInitResponse
(*, status: sslcommerz_client.dataclasses.ResponseStatusEnum, failedreason: str = None, sessionkey: str = None, gw: Any = None, redirectGatewayURL: str = None, directPaymentURLBank: str = None, directPaymentURLCard: str = None, directPaymentURL: str = None, redirectGatewayURLFailed: str = None, GatewayPageURL: str = None, storeBanner: str = None, storeLogo: str = None, desc: List[sslcommerz_client.dataclasses.Gateway] = None)[source]¶ Bases:
pydantic.main.BaseModel
Payment initiation response as a dataclass.
-
GatewayPageURL
: Optional[str]¶
-
desc
: Optional[List[sslcommerz_client.dataclasses.Gateway]]¶
-
directPaymentURL
: Optional[str]¶
-
directPaymentURLBank
: Optional[str]¶
-
directPaymentURLCard
: Optional[str]¶
-
failedreason
: Optional[str]¶
-
gw
: Optional[Any]¶
-
redirectGatewayURL
: Optional[str]¶
-
redirectGatewayURLFailed
: Optional[str]¶
-
sessionkey
: Optional[str]¶
-
storeBanner
: Optional[str]¶
-
storeLogo
: Optional[str]¶
-
-
class
sslcommerz_client.dataclasses.
ProductProfileEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
AIRLINE_TICKETS
= 'airline-tickets'¶
-
GENERAL
= 'general'¶
-
NON_PHYSICAL_GOODS
= 'non-physical-goods'¶
-
PHYSICAL_GOODS
= 'physical-goods'¶
-
TELECOM_VERTICAL
= 'telecom-vertical'¶
-
TRAVEL_VERTICAL
= 'travel-vertical'¶
-
-
class
sslcommerz_client.dataclasses.
RefundInitiateResponse
(*, APIConnect: sslcommerz_client.dataclasses.APIConnectEnum, bank_tran_id: str, trans_id: str = None, refund_ref_id: str = None, status: sslcommerz_client.dataclasses.RefundStatusEnum, errorReason: str = None)[source]¶ Bases:
pydantic.main.BaseModel
Refund initiation response.
-
APIConnect
: sslcommerz_client.dataclasses.APIConnectEnum¶
-
bank_tran_id
: str¶
-
errorReason
: Optional[str]¶
-
refund_ref_id
: Optional[str]¶
-
trans_id
: Optional[str]¶
-
-
class
sslcommerz_client.dataclasses.
RefundRequestPostData
(*, bank_tran_id: str, refund_amount: str, refund_remarks: str, refe_id: str)[source]¶ Bases:
pydantic.main.BaseModel
Dataclass for Refund API post data.
-
bank_tran_id
: str¶
-
refe_id
: str¶
-
refund_amount
: str¶
-
refund_remarks
: str¶
-
-
class
sslcommerz_client.dataclasses.
RefundResponse
(*, APIConnect: sslcommerz_client.dataclasses.APIConnectEnum, bank_tran_id: str, trans_id: str = None, refund_ref_id: str = None, status: sslcommerz_client.dataclasses.RefundStatusEnum, errorReason: str = None, initiated_on: datetime.datetime, refunded_on: datetime.datetime)[source]¶ Bases:
sslcommerz_client.dataclasses.RefundInitiateResponse
Refund response.
-
initiated_on
: datetime.datetime¶
-
refunded_on
: datetime.datetime¶
-
-
class
sslcommerz_client.dataclasses.
RefundStatusEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
FAILED
= 'failed'¶
-
PROCESSING
= 'processing'¶
-
SUCCESS
= 'success'¶
-
-
class
sslcommerz_client.dataclasses.
ResponseStatusEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
FAILED
= 'FAILED'¶
-
SUCCESS
= 'SUCCESS'¶
-
-
class
sslcommerz_client.dataclasses.
RiskLevelEnum
(value)[source]¶ Bases:
int
,enum.Enum
An enumeration.
-
HIGH
= 1¶
-
LOW
= 0¶
-
-
class
sslcommerz_client.dataclasses.
Session
(*, status: str, sessionkey: str, tran_date: datetime.datetime, tran_id: str, val_id: str, amount: decimal.Decimal, store_amount: decimal.Decimal, card_type: str, card_no: str, currency: str, bank_tran_id: str, card_issuer: str, card_brand: sslcommerz_client.dataclasses.CardBrandEnum, card_issuer_country: str, card_issuer_country_code: str, currency_type: str, currency_amount: decimal.Decimal, emi_instalment: int, emi_amount: decimal.Decimal, discount_percentage: decimal.Decimal, discount_remarks: str, value_a: str = None, value_b: str = None, value_c: str = None, value_d: str = None, risk_level: sslcommerz_client.dataclasses.RiskLevelEnum, risk_title: str)[source]¶ Bases:
pydantic.main.BaseModel
Dataclass for transaction session.
-
amount
: decimal.Decimal¶
-
bank_tran_id
: str¶
-
card_brand
: sslcommerz_client.dataclasses.CardBrandEnum¶
-
card_issuer
: str¶
-
card_issuer_country
: str¶
-
card_issuer_country_code
: str¶
-
card_no
: str¶
-
card_type
: str¶
-
currency
: str¶
-
currency_amount
: decimal.Decimal¶
-
currency_type
: str¶
-
discount_percentage
: decimal.Decimal¶
-
discount_remarks
: str¶
-
emi_amount
: decimal.Decimal¶
-
emi_instalment
: int¶
-
risk_level
: sslcommerz_client.dataclasses.RiskLevelEnum¶
-
risk_title
: str¶
-
sessionkey
: str¶
-
status
: str¶
-
store_amount
: decimal.Decimal¶
-
tran_date
: datetime.datetime¶
-
tran_id
: str¶
-
val_id
: str¶
-
value_a
: Optional[str]¶
-
value_b
: Optional[str]¶
-
value_c
: Optional[str]¶
-
value_d
: Optional[str]¶
-
-
class
sslcommerz_client.dataclasses.
ShippingMethodEnum
(value)[source]¶ Bases:
str
,enum.Enum
An enumeration.
-
COURIER
= 'COURIER'¶
-
NO
= 'NO'¶
-
YES
= 'YES'¶
-
-
class
sslcommerz_client.dataclasses.
TransactionBySessionResponse
(*, status: str, sessionkey: str, tran_date: datetime.datetime, tran_id: str, val_id: str, amount: decimal.Decimal, store_amount: decimal.Decimal, card_type: str, card_no: str, currency: str, bank_tran_id: str, card_issuer: str, card_brand: sslcommerz_client.dataclasses.CardBrandEnum, card_issuer_country: str, card_issuer_country_code: str, currency_type: str, currency_amount: decimal.Decimal, emi_instalment: int, emi_amount: decimal.Decimal, discount_percentage: decimal.Decimal, discount_remarks: str, value_a: str = None, value_b: str = None, value_c: str = None, value_d: str = None, risk_level: sslcommerz_client.dataclasses.RiskLevelEnum, risk_title: str, APIConnect: sslcommerz_client.dataclasses.APIConnectEnum)[source]¶ Bases:
sslcommerz_client.dataclasses.Session
Dataclass for transaction by session query.
-
APIConnect
: sslcommerz_client.dataclasses.APIConnectEnum¶
-
-
class
sslcommerz_client.dataclasses.
TransactionsByIDResponse
(*, APIConnect: sslcommerz_client.dataclasses.APIConnectEnum, no_of_trans_found: int, element: List[sslcommerz_client.dataclasses.Session])[source]¶ Bases:
pydantic.main.BaseModel
Dataclass for transactions by ID query.
-
APIConnect
: sslcommerz_client.dataclasses.APIConnectEnum¶
-
element
: List[sslcommerz_client.dataclasses.Session]¶
-
no_of_trans_found
: int¶
-