""" Options: Date: 2025-10-28 08:15:42 Version: 8.80 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://duengageapi.uat.scadsoftware.com #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: GetStripeSession.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class StripeEntity(IStripeEntity): pass T = TypeVar('T') @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class StripeEntity1(Generic[T], StripeEntity): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionAfterExpirationRecovery(StripeEntity1["SessionAfterExpirationRecovery"]): allow_promotion_codes: bool = False enabled: bool = False expires_at: Optional[datetime.datetime] = None url: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionAfterExpiration(StripeEntity1["SessionAfterExpiration"]): recovery: Optional[SessionAfterExpirationRecovery] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionAutomaticTax(StripeEntity1["SessionAutomaticTax"]): enabled: bool = False status: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionConsent(StripeEntity1["SessionConsent"]): promotions: Optional[str] = None terms_of_service: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionConsentCollection(StripeEntity1["SessionConsentCollection"]): promotions: Optional[str] = None terms_of_service: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomFieldDropdownOption(StripeEntity1["SessionCustomFieldDropdownOption"]): label: Optional[str] = None value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomFieldDropdown(StripeEntity1["SessionCustomFieldDropdown"]): options: Optional[List[SessionCustomFieldDropdownOption]] = None value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomFieldLabel(StripeEntity1["SessionCustomFieldLabel"]): custom: Optional[str] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomFieldNumeric(StripeEntity1["SessionCustomFieldNumeric"]): value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomFieldText(StripeEntity1["SessionCustomFieldText"]): value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomField(StripeEntity1["SessionCustomField"]): dropdown: Optional[SessionCustomFieldDropdown] = None key: Optional[str] = None label: Optional[SessionCustomFieldLabel] = None numeric: Optional[SessionCustomFieldNumeric] = None optional: bool = False text: Optional[SessionCustomFieldText] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomTextShippingAddress(StripeEntity1["SessionCustomTextShippingAddress"]): message: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomTextSubmit(StripeEntity1["SessionCustomTextSubmit"]): message: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomText(StripeEntity1["SessionCustomText"]): shipping_address: Optional[SessionCustomTextShippingAddress] = None submit: Optional[SessionCustomTextSubmit] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Address(StripeEntity1["Address"]): city: Optional[str] = None country: Optional[str] = None line1: Optional[str] = None line2: Optional[str] = None postal_code: Optional[str] = None state: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomerDetailsTaxId(StripeEntity1["SessionCustomerDetailsTaxId"]): type: Optional[str] = None value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionCustomerDetails(StripeEntity1["SessionCustomerDetails"]): address: Optional[Address] = None email: Optional[str] = None name: Optional[str] = None phone: Optional[str] = None tax_exempt: Optional[str] = None tax_ids: Optional[List[SessionCustomerDetailsTaxId]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionInvoiceCreationInvoiceDataCustomField(StripeEntity1["SessionInvoiceCreationInvoiceDataCustomField"]): name: Optional[str] = None value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionInvoiceCreationInvoiceDataRenderingOptions(StripeEntity1["SessionInvoiceCreationInvoiceDataRenderingOptions"]): amount_tax_display: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionInvoiceCreationInvoiceData(StripeEntity1["SessionInvoiceCreationInvoiceData"], IHasMetadata): custom_fields: Optional[List[SessionInvoiceCreationInvoiceDataCustomField]] = None description: Optional[str] = None footer: Optional[str] = None metadata: Optional[Dict[str, str]] = None rendering_options: Optional[SessionInvoiceCreationInvoiceDataRenderingOptions] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionInvoiceCreation(StripeEntity1["SessionInvoiceCreation"]): enabled: bool = False invoice_data: Optional[SessionInvoiceCreationInvoiceData] = None T = TypeVar('T') @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class StripeList(Generic[T], StripeEntity1[StripeList[T]], IHasObject): pass @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CouponAppliesTo(StripeEntity1["CouponAppliesTo"]): products: Optional[List[str]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CouponCurrencyOptions(StripeEntity1["CouponCurrencyOptions"]): amount_off: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Coupon(StripeEntity1["Coupon"], IHasId, IHasMetadata, IHasObject): id: Optional[str] = None object: Optional[str] = None amount_off: Optional[int] = None applies_to: Optional[CouponAppliesTo] = None created: datetime.datetime = datetime.datetime(1, 1, 1) currency: Optional[str] = None currency_options: Optional[Dict[str, CouponCurrencyOptions]] = None deleted: Optional[bool] = None duration: Optional[str] = None duration_in_months: Optional[int] = None livemode: bool = False max_redemptions: Optional[int] = None metadata: Optional[Dict[str, str]] = None name: Optional[str] = None percent_off: Optional[Decimal] = None redeem_by: Optional[datetime.datetime] = None times_redeemed: int = 0 valid: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Discount(StripeEntity1["Discount"], IHasId, IHasObject): id: Optional[str] = None object: Optional[str] = None checkout_session: Optional[str] = None coupon: Optional[Coupon] = None deleted: Optional[bool] = None end: Optional[datetime.datetime] = None invoice: Optional[str] = None invoice_item: Optional[str] = None start: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LineItemDiscount(StripeEntity1["LineItemDiscount"]): amount: int = 0 discount: Optional[Discount] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PriceCurrencyOptionsCustomUnitAmount(StripeEntity1["PriceCurrencyOptionsCustomUnitAmount"]): maximum: Optional[int] = None minimum: Optional[int] = None preset: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PriceCurrencyOptionsTier(StripeEntity1["PriceCurrencyOptionsTier"]): flat_amount: Optional[int] = None flat_amount_decimal: Optional[Decimal] = None unit_amount: Optional[int] = None unit_amount_decimal: Optional[Decimal] = None up_to: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PriceCurrencyOptions(StripeEntity1["PriceCurrencyOptions"]): custom_unit_amount: Optional[PriceCurrencyOptionsCustomUnitAmount] = None tax_behavior: Optional[str] = None tiers: Optional[List[PriceCurrencyOptionsTier]] = None unit_amount: Optional[int] = None unit_amount_decimal: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PriceCustomUnitAmount(StripeEntity1["PriceCustomUnitAmount"]): maximum: Optional[int] = None minimum: Optional[int] = None preset: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PriceRecurring(StripeEntity1["PriceRecurring"]): aggregate_usage: Optional[str] = None interval: Optional[str] = None interval_count: int = 0 trial_period_days: Optional[int] = None usage_type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PriceTier(StripeEntity1["PriceTier"]): flat_amount: Optional[int] = None flat_amount_decimal: Optional[Decimal] = None unit_amount: Optional[int] = None unit_amount_decimal: Optional[Decimal] = None up_to: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class PriceTransformQuantity(StripeEntity1["PriceTransformQuantity"]): divide_by: int = 0 round: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Price(StripeEntity1["Price"], IHasId, IHasMetadata, IHasObject): id: Optional[str] = None object: Optional[str] = None active: bool = False billing_scheme: Optional[str] = None created: datetime.datetime = datetime.datetime(1, 1, 1) currency: Optional[str] = None currency_options: Optional[Dict[str, PriceCurrencyOptions]] = None custom_unit_amount: Optional[PriceCustomUnitAmount] = None deleted: Optional[bool] = None livemode: bool = False lookup_key: Optional[str] = None metadata: Optional[Dict[str, str]] = None nickname: Optional[str] = None recurring: Optional[PriceRecurring] = None tax_behavior: Optional[str] = None tiers: Optional[List[PriceTier]] = None tiers_mode: Optional[str] = None transform_quantity: Optional[PriceTransformQuantity] = None type: Optional[str] = None unit_amount: Optional[int] = None unit_amount_decimal: Optional[Decimal] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class TaxRate(StripeEntity1["TaxRate"], IHasId, IHasMetadata, IHasObject): id: Optional[str] = None object: Optional[str] = None active: bool = False country: Optional[str] = None created: datetime.datetime = datetime.datetime(1, 1, 1) description: Optional[str] = None display_name: Optional[str] = None inclusive: bool = False jurisdiction: Optional[str] = None livemode: bool = False metadata: Optional[Dict[str, str]] = None percentage: Decimal = decimal.Decimal(0) state: Optional[str] = None tax_type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LineItemTax(StripeEntity1["LineItemTax"]): amount: int = 0 rate: Optional[TaxRate] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class LineItem(StripeEntity1["LineItem"], IHasId, IHasObject): id: Optional[str] = None object: Optional[str] = None amount_discount: int = 0 amount_subtotal: int = 0 amount_tax: int = 0 amount_total: int = 0 currency: Optional[str] = None deleted: Optional[bool] = None description: Optional[str] = None discounts: Optional[List[LineItemDiscount]] = None price: Optional[Price] = None quantity: Optional[int] = None taxes: Optional[List[LineItemTax]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsAcssDebitMandateOptions(StripeEntity1["SessionPaymentMethodOptionsAcssDebitMandateOptions"]): custom_mandate_url: Optional[str] = None default_for: Optional[List[str]] = None interval_description: Optional[str] = None payment_schedule: Optional[str] = None transaction_type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsAcssDebit(StripeEntity1["SessionPaymentMethodOptionsAcssDebit"]): currency: Optional[str] = None mandate_options: Optional[SessionPaymentMethodOptionsAcssDebitMandateOptions] = None setup_future_usage: Optional[str] = None verification_method: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsAffirm(StripeEntity1["SessionPaymentMethodOptionsAffirm"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsAfterpayClearpay(StripeEntity1["SessionPaymentMethodOptionsAfterpayClearpay"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsAlipay(StripeEntity1["SessionPaymentMethodOptionsAlipay"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsAuBecsDebit(StripeEntity1["SessionPaymentMethodOptionsAuBecsDebit"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsBacsDebit(StripeEntity1["SessionPaymentMethodOptionsBacsDebit"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsBancontact(StripeEntity1["SessionPaymentMethodOptionsBancontact"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsBoleto(StripeEntity1["SessionPaymentMethodOptionsBoleto"]): expires_after_days: int = 0 setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsCardInstallments(StripeEntity1["SessionPaymentMethodOptionsCardInstallments"]): enabled: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsCard(StripeEntity1["SessionPaymentMethodOptionsCard"]): installments: Optional[SessionPaymentMethodOptionsCardInstallments] = None setup_future_usage: Optional[str] = None statement_descriptor_suffix_kana: Optional[str] = None statement_descriptor_suffix_kanji: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer(StripeEntity1["SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer"]): country: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsCustomerBalanceBankTransfer(StripeEntity1["SessionPaymentMethodOptionsCustomerBalanceBankTransfer"]): eu_bank_transfer: Optional[SessionPaymentMethodOptionsCustomerBalanceBankTransferEuBankTransfer] = None requested_address_types: Optional[List[str]] = None type: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsCustomerBalance(StripeEntity1["SessionPaymentMethodOptionsCustomerBalance"]): bank_transfer: Optional[SessionPaymentMethodOptionsCustomerBalanceBankTransfer] = None funding_type: Optional[str] = None setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsEps(StripeEntity1["SessionPaymentMethodOptionsEps"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsFpx(StripeEntity1["SessionPaymentMethodOptionsFpx"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsGiropay(StripeEntity1["SessionPaymentMethodOptionsGiropay"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsGrabpay(StripeEntity1["SessionPaymentMethodOptionsGrabpay"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsIdeal(StripeEntity1["SessionPaymentMethodOptionsIdeal"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsKlarna(StripeEntity1["SessionPaymentMethodOptionsKlarna"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsKonbini(StripeEntity1["SessionPaymentMethodOptionsKonbini"]): expires_after_days: Optional[int] = None setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsOxxo(StripeEntity1["SessionPaymentMethodOptionsOxxo"]): expires_after_days: int = 0 setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsP24(StripeEntity1["SessionPaymentMethodOptionsP24"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsPaynow(StripeEntity1["SessionPaymentMethodOptionsPaynow"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsPix(StripeEntity1["SessionPaymentMethodOptionsPix"]): expires_after_seconds: Optional[int] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsSepaDebit(StripeEntity1["SessionPaymentMethodOptionsSepaDebit"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsSofort(StripeEntity1["SessionPaymentMethodOptionsSofort"]): setup_future_usage: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsUsBankAccountFinancialConnections(StripeEntity1["SessionPaymentMethodOptionsUsBankAccountFinancialConnections"]): permissions: Optional[List[str]] = None return_url: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptionsUsBankAccount(StripeEntity1["SessionPaymentMethodOptionsUsBankAccount"]): financial_connections: Optional[SessionPaymentMethodOptionsUsBankAccountFinancialConnections] = None setup_future_usage: Optional[str] = None verification_method: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPaymentMethodOptions(StripeEntity1["SessionPaymentMethodOptions"]): acss_debit: Optional[SessionPaymentMethodOptionsAcssDebit] = None affirm: Optional[SessionPaymentMethodOptionsAffirm] = None afterpay_clearpay: Optional[SessionPaymentMethodOptionsAfterpayClearpay] = None alipay: Optional[SessionPaymentMethodOptionsAlipay] = None au_becs_debit: Optional[SessionPaymentMethodOptionsAuBecsDebit] = None bacs_debit: Optional[SessionPaymentMethodOptionsBacsDebit] = None bancontact: Optional[SessionPaymentMethodOptionsBancontact] = None boleto: Optional[SessionPaymentMethodOptionsBoleto] = None card: Optional[SessionPaymentMethodOptionsCard] = None customer_balance: Optional[SessionPaymentMethodOptionsCustomerBalance] = None eps: Optional[SessionPaymentMethodOptionsEps] = None fpx: Optional[SessionPaymentMethodOptionsFpx] = None giropay: Optional[SessionPaymentMethodOptionsGiropay] = None grabpay: Optional[SessionPaymentMethodOptionsGrabpay] = None ideal: Optional[SessionPaymentMethodOptionsIdeal] = None klarna: Optional[SessionPaymentMethodOptionsKlarna] = None konbini: Optional[SessionPaymentMethodOptionsKonbini] = None oxxo: Optional[SessionPaymentMethodOptionsOxxo] = None p24: Optional[SessionPaymentMethodOptionsP24] = None paynow: Optional[SessionPaymentMethodOptionsPaynow] = None pix: Optional[SessionPaymentMethodOptionsPix] = None sepa_debit: Optional[SessionPaymentMethodOptionsSepaDebit] = None sofort: Optional[SessionPaymentMethodOptionsSofort] = None us_bank_account: Optional[SessionPaymentMethodOptionsUsBankAccount] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionPhoneNumberCollection(StripeEntity1["SessionPhoneNumberCollection"]): enabled: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionShippingAddressCollection(StripeEntity1["SessionShippingAddressCollection"]): allowed_countries: Optional[List[str]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionShippingCostTax(StripeEntity1["SessionShippingCostTax"]): amount: int = 0 rate: Optional[TaxRate] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionShippingCost(StripeEntity1["SessionShippingCost"]): amount_subtotal: int = 0 amount_tax: int = 0 amount_total: int = 0 taxes: Optional[List[SessionShippingCostTax]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionShippingDetails(StripeEntity1["SessionShippingDetails"]): address: Optional[Address] = None carrier: Optional[str] = None name: Optional[str] = None phone: Optional[str] = None tracking_number: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionShippingOption(StripeEntity1["SessionShippingOption"]): shipping_amount: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionTaxIdCollection(StripeEntity1["SessionTaxIdCollection"]): enabled: bool = False @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionTotalDetailsBreakdownDiscount(StripeEntity1["SessionTotalDetailsBreakdownDiscount"]): amount: int = 0 discount: Optional[Discount] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionTotalDetailsBreakdownTax(StripeEntity1["SessionTotalDetailsBreakdownTax"]): amount: int = 0 rate: Optional[TaxRate] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionTotalDetailsBreakdown(StripeEntity1["SessionTotalDetailsBreakdown"]): discounts: Optional[List[SessionTotalDetailsBreakdownDiscount]] = None taxes: Optional[List[SessionTotalDetailsBreakdownTax]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SessionTotalDetails(StripeEntity1["SessionTotalDetails"]): amount_discount: int = 0 amount_shipping: Optional[int] = None amount_tax: int = 0 breakdown: Optional[SessionTotalDetailsBreakdown] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class StripeResponseBase: status_code: Optional[HttpStatusCode] = None headers: Optional[HttpResponseHeaders] = None date: Optional[datetime.datetime] = None idempotency_key: Optional[str] = None request_id: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class StripeResponse(StripeResponseBase): content: Optional[str] = None class IStripeEntity: stripe_response: Optional[StripeResponse] = None class IHasId: id: Optional[str] = None class IHasMetadata: metadata: Optional[Dict[str, str]] = None class IHasObject: object: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Session(StripeEntity1["Session"], IHasId, IHasMetadata, IHasObject): id: Optional[str] = None object: Optional[str] = None after_expiration: Optional[SessionAfterExpiration] = None allow_promotion_codes: Optional[bool] = None amount_subtotal: Optional[int] = None amount_total: Optional[int] = None automatic_tax: Optional[SessionAutomaticTax] = None billing_address_collection: Optional[str] = None cancel_url: Optional[str] = None client_reference_id: Optional[str] = None consent: Optional[SessionConsent] = None consent_collection: Optional[SessionConsentCollection] = None created: datetime.datetime = datetime.datetime(1, 1, 1) currency: Optional[str] = None custom_fields: Optional[List[SessionCustomField]] = None custom_text: Optional[SessionCustomText] = None customer_creation: Optional[str] = None customer_details: Optional[SessionCustomerDetails] = None customer_email: Optional[str] = None expires_at: datetime.datetime = datetime.datetime(1, 1, 1) invoice_creation: Optional[SessionInvoiceCreation] = None line_items: Optional[StripeList[LineItem]] = None livemode: bool = False locale: Optional[str] = None metadata: Optional[Dict[str, str]] = None mode: Optional[str] = None payment_method_collection: Optional[str] = None payment_method_options: Optional[SessionPaymentMethodOptions] = None payment_method_types: Optional[List[str]] = None payment_status: Optional[str] = None phone_number_collection: Optional[SessionPhoneNumberCollection] = None recovered_from: Optional[str] = None shipping_address_collection: Optional[SessionShippingAddressCollection] = None shipping_cost: Optional[SessionShippingCost] = None shipping_details: Optional[SessionShippingDetails] = None shipping_options: Optional[List[SessionShippingOption]] = None status: Optional[str] = None submit_type: Optional[str] = None success_url: Optional[str] = None tax_id_collection: Optional[SessionTaxIdCollection] = None total_details: Optional[SessionTotalDetails] = None url: Optional[str] = None # @Route("/stripe-session/{Id}") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetStripeSession(IReturn[Session]): id: Optional[str] = None