/*
Adyen Checkout API

API version: 71
*/

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package checkout

import (
	"encoding/json"
	"time"

	"github.com/adyen/adyen-go-api-library/v21/src/common"
)

// checks if the CreateCheckoutSessionResponse type satisfies the MappedNullable interface at compile time
var _ common.MappedNullable = &CreateCheckoutSessionResponse{}

// CreateCheckoutSessionResponse struct for CreateCheckoutSessionResponse
type CreateCheckoutSessionResponse struct {
	AccountInfo      *AccountInfo `json:"accountInfo,omitempty"`
	AdditionalAmount *Amount      `json:"additionalAmount,omitempty"`
	// This field contains additional data, which may be required for a particular payment request.  The `additionalData` object consists of entries, each of which includes the key and value.
	AdditionalData *map[string]string `json:"additionalData,omitempty"`
	// List of payment methods to be presented to the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types).  Example: `\"allowedPaymentMethods\":[\"ideal\",\"applepay\"]`
	AllowedPaymentMethods []string            `json:"allowedPaymentMethods,omitempty"`
	Amount                Amount              `json:"amount"`
	ApplicationInfo       *ApplicationInfo    `json:"applicationInfo,omitempty"`
	AuthenticationData    *AuthenticationData `json:"authenticationData,omitempty"`
	BillingAddress        *BillingAddress     `json:"billingAddress,omitempty"`
	// List of payment methods to be hidden from the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types).  Example: `\"blockedPaymentMethods\":[\"ideal\",\"applepay\"]`
	BlockedPaymentMethods []string `json:"blockedPaymentMethods,omitempty"`
	// The delay between the authorisation and scheduled auto-capture, specified in hours.
	CaptureDelayHours *int32 `json:"captureDelayHours,omitempty"`
	// The platform where a payment transaction takes place. This field is optional for filtering out payment methods that are only available on specific platforms. If this value is not set, then we will try to infer it from the `sdkVersion` or `token`.  Possible values: * **iOS** * **Android** * **Web**
	Channel *string  `json:"channel,omitempty"`
	Company *Company `json:"company,omitempty"`
	// The shopper's two-letter country code.
	CountryCode *string `json:"countryCode,omitempty"`
	// The shopper's date of birth in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
	DateOfBirth *time.Time `json:"dateOfBirth,omitempty"`
	// The date and time when the purchased goods should be delivered.  [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**.
	DeliverAt       *time.Time       `json:"deliverAt,omitempty"`
	DeliveryAddress *DeliveryAddress `json:"deliveryAddress,omitempty"`
	// When true and `shopperReference` is provided, the shopper will be asked if the payment details should be stored for future [one-click payments](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#one-click-payments-definition).
	EnableOneClick *bool `json:"enableOneClick,omitempty"`
	// When true and `shopperReference` is provided, the payment details will be tokenized for payouts.
	EnablePayOut *bool `json:"enablePayOut,omitempty"`
	// When true and `shopperReference` is provided, the payment details will be stored for [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types) where the shopper is not present, such as subscription or automatic top-up payments.
	EnableRecurring *bool `json:"enableRecurring,omitempty"`
	// The date the session expires in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format. When not specified, the expiry date is set to 1 hour after session creation. You cannot set the session expiry to more than 24 hours after session creation.
	ExpiresAt     time.Time      `json:"expiresAt"`
	FundOrigin    *FundOrigin    `json:"fundOrigin,omitempty"`
	FundRecipient *FundRecipient `json:"fundRecipient,omitempty"`
	// A unique identifier of the session.
	Id string `json:"id"`
	// A set of key-value pairs that specifies the installment options available per payment method. The key must be a payment method name in lowercase. For example, **card** to specify installment options for all cards, or **visa** or **mc**. The value must be an object containing the installment options.
	InstallmentOptions *map[string]CheckoutSessionInstallmentOption `json:"installmentOptions,omitempty"`
	// Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, Riverty, and Zip.
	LineItems []LineItem `json:"lineItems,omitempty"`
	Mandate   *Mandate   `json:"mandate,omitempty"`
	// The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.
	Mcc *string `json:"mcc,omitempty"`
	// The merchant account identifier, with which you want to process the transaction.
	MerchantAccount string `json:"merchantAccount"`
	// This reference allows linking multiple transactions to each other for reporting purposes (i.e. order auth-rate). The reference should be unique per billing cycle. The same merchant order reference should never be reused after the first authorised attempt. If used, this field should be supplied for all incoming authorisations. > We strongly recommend you send the `merchantOrderReference` value to benefit from linking payment requests when authorisation retries take place. In addition, we recommend you provide `retry.orderAttemptNumber`, `retry.chainAttemptNumber`, and `retry.skipRetry` values in `PaymentRequest.additionalData`.
	MerchantOrderReference *string `json:"merchantOrderReference,omitempty"`
	// Metadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. * Maximum 20 characters per key. * Maximum 80 characters per value.
	Metadata *map[string]string `json:"metadata,omitempty"`
	// Indicates the type of front end integration. Possible values: * **embedded** (default): Drop-in or Components integration * **hosted**: Hosted Checkout integration
	Mode                    *string                  `json:"mode,omitempty"`
	MpiData                 *ThreeDSecureData        `json:"mpiData,omitempty"`
	PlatformChargebackLogic *PlatformChargebackLogic `json:"platformChargebackLogic,omitempty"`
	// Date after which no further authorisations shall be performed. Only for 3D Secure 2.
	RecurringExpiry *string `json:"recurringExpiry,omitempty"`
	// Minimum number of days between authorisations. Only for 3D Secure 2.
	RecurringFrequency *string `json:"recurringFrequency,omitempty"`
	// Defines a recurring payment type. Required when creating a token to store payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount.
	RecurringProcessingModel *string `json:"recurringProcessingModel,omitempty"`
	// Specifies the redirect method (GET or POST) when redirecting back from the issuer.
	RedirectFromIssuerMethod *string `json:"redirectFromIssuerMethod,omitempty"`
	// Specifies the redirect method (GET or POST) when redirecting to the issuer.
	RedirectToIssuerMethod *string `json:"redirectToIssuerMethod,omitempty"`
	// The reference to uniquely identify a payment.
	Reference string `json:"reference"`
	// The URL to return to in case of a redirection. The format depends on the channel.  * For web, include the protocol `http://` or `https://`. You can also include your own additional query parameters, for example, shopper ID or order reference number. Example: `https://your-company.com/checkout?shopperOrder=12xy` * For iOS, use the custom URL for your app. To know more about setting custom URL schemes, refer to the [Apple Developer documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app). Example: `my-app://` * For Android, use a custom URL handled by an Activity on your app. You can configure it with an [intent filter](https://developer.android.com/guide/components/intents-filters). Example: `my-app://your.package.name`  If the URL to return to includes non-ASCII characters, like spaces or special letters, URL encode the value. > The URL must not include personally identifiable information (PII), for example name or email address.
	ReturnUrl string    `json:"returnUrl"`
	RiskData  *RiskData `json:"riskData,omitempty"`
	// The payment session data you need to pass to your front end.
	SessionData *string `json:"sessionData,omitempty"`
	// The shopper's email address.
	ShopperEmail *string `json:"shopperEmail,omitempty"`
	// The shopper's IP address. In general, we recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > For 3D Secure 2 transactions, schemes require `shopperIP` for all browser-based implementations. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new).
	ShopperIP *string `json:"shopperIP,omitempty"`
	// Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer. For the web service API, Adyen assumes Ecommerce shopper interaction by default.  This field has the following possible values: * `Ecommerce` - Online transactions where the cardholder is present (online). For better authorisation rates, we recommend sending the card security code (CSC) along with the request. * `ContAuth` - Card on file and/or subscription transactions, where the cardholder is known to the merchant (returning customer). If the shopper is present (online), you can supply also the CSC to improve authorisation (one-click payment). * `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone. * `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.
	ShopperInteraction *string `json:"shopperInteraction,omitempty"`
	// The combination of a language code and a country code to specify the language to be used in the payment.
	ShopperLocale *string `json:"shopperLocale,omitempty"`
	ShopperName   *Name   `json:"shopperName,omitempty"`
	// Your reference to uniquely identify this shopper, for example user ID or account ID. The value is case-sensitive and must be at least three characters. > Your reference must not include personally identifiable information (PII) such as name or email address.
	ShopperReference *string `json:"shopperReference,omitempty"`
	// The text to be shown on the shopper's bank statement.  We recommend sending a maximum of 22 characters, otherwise banks might truncate the string.  Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /_**.
	ShopperStatement *string `json:"shopperStatement,omitempty"`
	// Set to true to show the payment amount per installment.
	ShowInstallmentAmount *bool `json:"showInstallmentAmount,omitempty"`
	// Set to **true** to show a button that lets the shopper remove a stored payment method.
	ShowRemovePaymentMethodButton *bool `json:"showRemovePaymentMethodButton,omitempty"`
	// The shopper's social security number.
	SocialSecurityNumber *string `json:"socialSecurityNumber,omitempty"`
	// Boolean value indicating whether the card payment method should be split into separate debit and credit options.
	SplitCardFundingSources *bool `json:"splitCardFundingSources,omitempty"`
	// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).
	Splits []Split `json:"splits,omitempty"`
	// Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.
	Store *string `json:"store,omitempty"`
	// Specifies how payment methods should be filtered based on the 'store' parameter:   - 'exclusive': Only payment methods belonging to the specified 'store' are returned.   - 'inclusive': Payment methods from the 'store' and those not associated with any other store are returned.
	StoreFiltrationMode *string `json:"storeFiltrationMode,omitempty"`
	// When true and `shopperReference` is provided, the payment details will be stored for future [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types).
	StorePaymentMethod *bool `json:"storePaymentMethod,omitempty"`
	// Indicates if the details of the payment method will be stored for the shopper. Possible values: * **disabled** – No details will be stored (default). * **askForConsent** – If the `shopperReference` is provided, the UI lets the shopper choose if they want their payment details to be stored. * **enabled** – If the `shopperReference` is provided, the details will be stored without asking the shopper for consent.
	StorePaymentMethodMode *string `json:"storePaymentMethodMode,omitempty"`
	// The shopper's telephone number.
	TelephoneNumber *string `json:"telephoneNumber,omitempty"`
	// Sets a custom theme for [Hosted Checkout](https://docs.adyen.com/online-payments/build-your-integration/?platform=Web&integration=Hosted+Checkout). The value can be any of the **Theme ID** values from your Customer Area.
	ThemeId             *string                             `json:"themeId,omitempty"`
	ThreeDS2RequestData *CheckoutSessionThreeDS2RequestData `json:"threeDS2RequestData,omitempty"`
	// If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation.
	// Deprecated since Adyen Checkout API v69
	// Use `authenticationData.authenticationOnly` instead.
	ThreeDSAuthenticationOnly *bool `json:"threeDSAuthenticationOnly,omitempty"`
	// Set to true if the payment should be routed to a trusted MID.
	TrustedShopper *bool `json:"trustedShopper,omitempty"`
	// The URL for the Hosted Checkout page. Redirect the shopper to this URL so they can make the payment.
	Url *string `json:"url,omitempty"`
}

// NewCreateCheckoutSessionResponse instantiates a new CreateCheckoutSessionResponse object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewCreateCheckoutSessionResponse(amount Amount, expiresAt time.Time, id string, merchantAccount string, reference string, returnUrl string) *CreateCheckoutSessionResponse {
	this := CreateCheckoutSessionResponse{}
	this.Amount = amount
	this.ExpiresAt = expiresAt
	this.Id = id
	this.MerchantAccount = merchantAccount
	var mode string = "embedded"
	this.Mode = &mode
	this.Reference = reference
	this.ReturnUrl = returnUrl
	var splitCardFundingSources bool = false
	this.SplitCardFundingSources = &splitCardFundingSources
	var threeDSAuthenticationOnly bool = false
	this.ThreeDSAuthenticationOnly = &threeDSAuthenticationOnly
	return &this
}

// NewCreateCheckoutSessionResponseWithDefaults instantiates a new CreateCheckoutSessionResponse object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewCreateCheckoutSessionResponseWithDefaults() *CreateCheckoutSessionResponse {
	this := CreateCheckoutSessionResponse{}
	var mode string = "embedded"
	this.Mode = &mode
	var splitCardFundingSources bool = false
	this.SplitCardFundingSources = &splitCardFundingSources
	var threeDSAuthenticationOnly bool = false
	this.ThreeDSAuthenticationOnly = &threeDSAuthenticationOnly
	return &this
}

// GetAccountInfo returns the AccountInfo field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetAccountInfo() AccountInfo {
	if o == nil || common.IsNil(o.AccountInfo) {
		var ret AccountInfo
		return ret
	}
	return *o.AccountInfo
}

// GetAccountInfoOk returns a tuple with the AccountInfo field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetAccountInfoOk() (*AccountInfo, bool) {
	if o == nil || common.IsNil(o.AccountInfo) {
		return nil, false
	}
	return o.AccountInfo, true
}

// HasAccountInfo returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasAccountInfo() bool {
	if o != nil && !common.IsNil(o.AccountInfo) {
		return true
	}

	return false
}

// SetAccountInfo gets a reference to the given AccountInfo and assigns it to the AccountInfo field.
func (o *CreateCheckoutSessionResponse) SetAccountInfo(v AccountInfo) {
	o.AccountInfo = &v
}

// GetAdditionalAmount returns the AdditionalAmount field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetAdditionalAmount() Amount {
	if o == nil || common.IsNil(o.AdditionalAmount) {
		var ret Amount
		return ret
	}
	return *o.AdditionalAmount
}

// GetAdditionalAmountOk returns a tuple with the AdditionalAmount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetAdditionalAmountOk() (*Amount, bool) {
	if o == nil || common.IsNil(o.AdditionalAmount) {
		return nil, false
	}
	return o.AdditionalAmount, true
}

// HasAdditionalAmount returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasAdditionalAmount() bool {
	if o != nil && !common.IsNil(o.AdditionalAmount) {
		return true
	}

	return false
}

// SetAdditionalAmount gets a reference to the given Amount and assigns it to the AdditionalAmount field.
func (o *CreateCheckoutSessionResponse) SetAdditionalAmount(v Amount) {
	o.AdditionalAmount = &v
}

// GetAdditionalData returns the AdditionalData field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetAdditionalData() map[string]string {
	if o == nil || common.IsNil(o.AdditionalData) {
		var ret map[string]string
		return ret
	}
	return *o.AdditionalData
}

// GetAdditionalDataOk returns a tuple with the AdditionalData field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetAdditionalDataOk() (*map[string]string, bool) {
	if o == nil || common.IsNil(o.AdditionalData) {
		return nil, false
	}
	return o.AdditionalData, true
}

// HasAdditionalData returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasAdditionalData() bool {
	if o != nil && !common.IsNil(o.AdditionalData) {
		return true
	}

	return false
}

// SetAdditionalData gets a reference to the given map[string]string and assigns it to the AdditionalData field.
func (o *CreateCheckoutSessionResponse) SetAdditionalData(v map[string]string) {
	o.AdditionalData = &v
}

// GetAllowedPaymentMethods returns the AllowedPaymentMethods field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetAllowedPaymentMethods() []string {
	if o == nil || common.IsNil(o.AllowedPaymentMethods) {
		var ret []string
		return ret
	}
	return o.AllowedPaymentMethods
}

// GetAllowedPaymentMethodsOk returns a tuple with the AllowedPaymentMethods field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetAllowedPaymentMethodsOk() ([]string, bool) {
	if o == nil || common.IsNil(o.AllowedPaymentMethods) {
		return nil, false
	}
	return o.AllowedPaymentMethods, true
}

// HasAllowedPaymentMethods returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasAllowedPaymentMethods() bool {
	if o != nil && !common.IsNil(o.AllowedPaymentMethods) {
		return true
	}

	return false
}

// SetAllowedPaymentMethods gets a reference to the given []string and assigns it to the AllowedPaymentMethods field.
func (o *CreateCheckoutSessionResponse) SetAllowedPaymentMethods(v []string) {
	o.AllowedPaymentMethods = v
}

// GetAmount returns the Amount field value
func (o *CreateCheckoutSessionResponse) GetAmount() Amount {
	if o == nil {
		var ret Amount
		return ret
	}

	return o.Amount
}

// GetAmountOk returns a tuple with the Amount field value
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetAmountOk() (*Amount, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Amount, true
}

// SetAmount sets field value
func (o *CreateCheckoutSessionResponse) SetAmount(v Amount) {
	o.Amount = v
}

// GetApplicationInfo returns the ApplicationInfo field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetApplicationInfo() ApplicationInfo {
	if o == nil || common.IsNil(o.ApplicationInfo) {
		var ret ApplicationInfo
		return ret
	}
	return *o.ApplicationInfo
}

// GetApplicationInfoOk returns a tuple with the ApplicationInfo field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetApplicationInfoOk() (*ApplicationInfo, bool) {
	if o == nil || common.IsNil(o.ApplicationInfo) {
		return nil, false
	}
	return o.ApplicationInfo, true
}

// HasApplicationInfo returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasApplicationInfo() bool {
	if o != nil && !common.IsNil(o.ApplicationInfo) {
		return true
	}

	return false
}

// SetApplicationInfo gets a reference to the given ApplicationInfo and assigns it to the ApplicationInfo field.
func (o *CreateCheckoutSessionResponse) SetApplicationInfo(v ApplicationInfo) {
	o.ApplicationInfo = &v
}

// GetAuthenticationData returns the AuthenticationData field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetAuthenticationData() AuthenticationData {
	if o == nil || common.IsNil(o.AuthenticationData) {
		var ret AuthenticationData
		return ret
	}
	return *o.AuthenticationData
}

// GetAuthenticationDataOk returns a tuple with the AuthenticationData field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetAuthenticationDataOk() (*AuthenticationData, bool) {
	if o == nil || common.IsNil(o.AuthenticationData) {
		return nil, false
	}
	return o.AuthenticationData, true
}

// HasAuthenticationData returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasAuthenticationData() bool {
	if o != nil && !common.IsNil(o.AuthenticationData) {
		return true
	}

	return false
}

// SetAuthenticationData gets a reference to the given AuthenticationData and assigns it to the AuthenticationData field.
func (o *CreateCheckoutSessionResponse) SetAuthenticationData(v AuthenticationData) {
	o.AuthenticationData = &v
}

// GetBillingAddress returns the BillingAddress field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetBillingAddress() BillingAddress {
	if o == nil || common.IsNil(o.BillingAddress) {
		var ret BillingAddress
		return ret
	}
	return *o.BillingAddress
}

// GetBillingAddressOk returns a tuple with the BillingAddress field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetBillingAddressOk() (*BillingAddress, bool) {
	if o == nil || common.IsNil(o.BillingAddress) {
		return nil, false
	}
	return o.BillingAddress, true
}

// HasBillingAddress returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasBillingAddress() bool {
	if o != nil && !common.IsNil(o.BillingAddress) {
		return true
	}

	return false
}

// SetBillingAddress gets a reference to the given BillingAddress and assigns it to the BillingAddress field.
func (o *CreateCheckoutSessionResponse) SetBillingAddress(v BillingAddress) {
	o.BillingAddress = &v
}

// GetBlockedPaymentMethods returns the BlockedPaymentMethods field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetBlockedPaymentMethods() []string {
	if o == nil || common.IsNil(o.BlockedPaymentMethods) {
		var ret []string
		return ret
	}
	return o.BlockedPaymentMethods
}

// GetBlockedPaymentMethodsOk returns a tuple with the BlockedPaymentMethods field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetBlockedPaymentMethodsOk() ([]string, bool) {
	if o == nil || common.IsNil(o.BlockedPaymentMethods) {
		return nil, false
	}
	return o.BlockedPaymentMethods, true
}

// HasBlockedPaymentMethods returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasBlockedPaymentMethods() bool {
	if o != nil && !common.IsNil(o.BlockedPaymentMethods) {
		return true
	}

	return false
}

// SetBlockedPaymentMethods gets a reference to the given []string and assigns it to the BlockedPaymentMethods field.
func (o *CreateCheckoutSessionResponse) SetBlockedPaymentMethods(v []string) {
	o.BlockedPaymentMethods = v
}

// GetCaptureDelayHours returns the CaptureDelayHours field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetCaptureDelayHours() int32 {
	if o == nil || common.IsNil(o.CaptureDelayHours) {
		var ret int32
		return ret
	}
	return *o.CaptureDelayHours
}

// GetCaptureDelayHoursOk returns a tuple with the CaptureDelayHours field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetCaptureDelayHoursOk() (*int32, bool) {
	if o == nil || common.IsNil(o.CaptureDelayHours) {
		return nil, false
	}
	return o.CaptureDelayHours, true
}

// HasCaptureDelayHours returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasCaptureDelayHours() bool {
	if o != nil && !common.IsNil(o.CaptureDelayHours) {
		return true
	}

	return false
}

// SetCaptureDelayHours gets a reference to the given int32 and assigns it to the CaptureDelayHours field.
func (o *CreateCheckoutSessionResponse) SetCaptureDelayHours(v int32) {
	o.CaptureDelayHours = &v
}

// GetChannel returns the Channel field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetChannel() string {
	if o == nil || common.IsNil(o.Channel) {
		var ret string
		return ret
	}
	return *o.Channel
}

// GetChannelOk returns a tuple with the Channel field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetChannelOk() (*string, bool) {
	if o == nil || common.IsNil(o.Channel) {
		return nil, false
	}
	return o.Channel, true
}

// HasChannel returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasChannel() bool {
	if o != nil && !common.IsNil(o.Channel) {
		return true
	}

	return false
}

// SetChannel gets a reference to the given string and assigns it to the Channel field.
func (o *CreateCheckoutSessionResponse) SetChannel(v string) {
	o.Channel = &v
}

// GetCompany returns the Company field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetCompany() Company {
	if o == nil || common.IsNil(o.Company) {
		var ret Company
		return ret
	}
	return *o.Company
}

// GetCompanyOk returns a tuple with the Company field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetCompanyOk() (*Company, bool) {
	if o == nil || common.IsNil(o.Company) {
		return nil, false
	}
	return o.Company, true
}

// HasCompany returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasCompany() bool {
	if o != nil && !common.IsNil(o.Company) {
		return true
	}

	return false
}

// SetCompany gets a reference to the given Company and assigns it to the Company field.
func (o *CreateCheckoutSessionResponse) SetCompany(v Company) {
	o.Company = &v
}

// GetCountryCode returns the CountryCode field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetCountryCode() string {
	if o == nil || common.IsNil(o.CountryCode) {
		var ret string
		return ret
	}
	return *o.CountryCode
}

// GetCountryCodeOk returns a tuple with the CountryCode field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetCountryCodeOk() (*string, bool) {
	if o == nil || common.IsNil(o.CountryCode) {
		return nil, false
	}
	return o.CountryCode, true
}

// HasCountryCode returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasCountryCode() bool {
	if o != nil && !common.IsNil(o.CountryCode) {
		return true
	}

	return false
}

// SetCountryCode gets a reference to the given string and assigns it to the CountryCode field.
func (o *CreateCheckoutSessionResponse) SetCountryCode(v string) {
	o.CountryCode = &v
}

// GetDateOfBirth returns the DateOfBirth field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetDateOfBirth() time.Time {
	if o == nil || common.IsNil(o.DateOfBirth) {
		var ret time.Time
		return ret
	}
	return *o.DateOfBirth
}

// GetDateOfBirthOk returns a tuple with the DateOfBirth field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetDateOfBirthOk() (*time.Time, bool) {
	if o == nil || common.IsNil(o.DateOfBirth) {
		return nil, false
	}
	return o.DateOfBirth, true
}

// HasDateOfBirth returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasDateOfBirth() bool {
	if o != nil && !common.IsNil(o.DateOfBirth) {
		return true
	}

	return false
}

// SetDateOfBirth gets a reference to the given time.Time and assigns it to the DateOfBirth field.
func (o *CreateCheckoutSessionResponse) SetDateOfBirth(v time.Time) {
	o.DateOfBirth = &v
}

// GetDeliverAt returns the DeliverAt field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetDeliverAt() time.Time {
	if o == nil || common.IsNil(o.DeliverAt) {
		var ret time.Time
		return ret
	}
	return *o.DeliverAt
}

// GetDeliverAtOk returns a tuple with the DeliverAt field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetDeliverAtOk() (*time.Time, bool) {
	if o == nil || common.IsNil(o.DeliverAt) {
		return nil, false
	}
	return o.DeliverAt, true
}

// HasDeliverAt returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasDeliverAt() bool {
	if o != nil && !common.IsNil(o.DeliverAt) {
		return true
	}

	return false
}

// SetDeliverAt gets a reference to the given time.Time and assigns it to the DeliverAt field.
func (o *CreateCheckoutSessionResponse) SetDeliverAt(v time.Time) {
	o.DeliverAt = &v
}

// GetDeliveryAddress returns the DeliveryAddress field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetDeliveryAddress() DeliveryAddress {
	if o == nil || common.IsNil(o.DeliveryAddress) {
		var ret DeliveryAddress
		return ret
	}
	return *o.DeliveryAddress
}

// GetDeliveryAddressOk returns a tuple with the DeliveryAddress field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetDeliveryAddressOk() (*DeliveryAddress, bool) {
	if o == nil || common.IsNil(o.DeliveryAddress) {
		return nil, false
	}
	return o.DeliveryAddress, true
}

// HasDeliveryAddress returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasDeliveryAddress() bool {
	if o != nil && !common.IsNil(o.DeliveryAddress) {
		return true
	}

	return false
}

// SetDeliveryAddress gets a reference to the given DeliveryAddress and assigns it to the DeliveryAddress field.
func (o *CreateCheckoutSessionResponse) SetDeliveryAddress(v DeliveryAddress) {
	o.DeliveryAddress = &v
}

// GetEnableOneClick returns the EnableOneClick field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetEnableOneClick() bool {
	if o == nil || common.IsNil(o.EnableOneClick) {
		var ret bool
		return ret
	}
	return *o.EnableOneClick
}

// GetEnableOneClickOk returns a tuple with the EnableOneClick field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetEnableOneClickOk() (*bool, bool) {
	if o == nil || common.IsNil(o.EnableOneClick) {
		return nil, false
	}
	return o.EnableOneClick, true
}

// HasEnableOneClick returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasEnableOneClick() bool {
	if o != nil && !common.IsNil(o.EnableOneClick) {
		return true
	}

	return false
}

// SetEnableOneClick gets a reference to the given bool and assigns it to the EnableOneClick field.
func (o *CreateCheckoutSessionResponse) SetEnableOneClick(v bool) {
	o.EnableOneClick = &v
}

// GetEnablePayOut returns the EnablePayOut field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetEnablePayOut() bool {
	if o == nil || common.IsNil(o.EnablePayOut) {
		var ret bool
		return ret
	}
	return *o.EnablePayOut
}

// GetEnablePayOutOk returns a tuple with the EnablePayOut field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetEnablePayOutOk() (*bool, bool) {
	if o == nil || common.IsNil(o.EnablePayOut) {
		return nil, false
	}
	return o.EnablePayOut, true
}

// HasEnablePayOut returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasEnablePayOut() bool {
	if o != nil && !common.IsNil(o.EnablePayOut) {
		return true
	}

	return false
}

// SetEnablePayOut gets a reference to the given bool and assigns it to the EnablePayOut field.
func (o *CreateCheckoutSessionResponse) SetEnablePayOut(v bool) {
	o.EnablePayOut = &v
}

// GetEnableRecurring returns the EnableRecurring field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetEnableRecurring() bool {
	if o == nil || common.IsNil(o.EnableRecurring) {
		var ret bool
		return ret
	}
	return *o.EnableRecurring
}

// GetEnableRecurringOk returns a tuple with the EnableRecurring field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetEnableRecurringOk() (*bool, bool) {
	if o == nil || common.IsNil(o.EnableRecurring) {
		return nil, false
	}
	return o.EnableRecurring, true
}

// HasEnableRecurring returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasEnableRecurring() bool {
	if o != nil && !common.IsNil(o.EnableRecurring) {
		return true
	}

	return false
}

// SetEnableRecurring gets a reference to the given bool and assigns it to the EnableRecurring field.
func (o *CreateCheckoutSessionResponse) SetEnableRecurring(v bool) {
	o.EnableRecurring = &v
}

// GetExpiresAt returns the ExpiresAt field value
func (o *CreateCheckoutSessionResponse) GetExpiresAt() time.Time {
	if o == nil {
		var ret time.Time
		return ret
	}

	return o.ExpiresAt
}

// GetExpiresAtOk returns a tuple with the ExpiresAt field value
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetExpiresAtOk() (*time.Time, bool) {
	if o == nil {
		return nil, false
	}
	return &o.ExpiresAt, true
}

// SetExpiresAt sets field value
func (o *CreateCheckoutSessionResponse) SetExpiresAt(v time.Time) {
	o.ExpiresAt = v
}

// GetFundOrigin returns the FundOrigin field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetFundOrigin() FundOrigin {
	if o == nil || common.IsNil(o.FundOrigin) {
		var ret FundOrigin
		return ret
	}
	return *o.FundOrigin
}

// GetFundOriginOk returns a tuple with the FundOrigin field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetFundOriginOk() (*FundOrigin, bool) {
	if o == nil || common.IsNil(o.FundOrigin) {
		return nil, false
	}
	return o.FundOrigin, true
}

// HasFundOrigin returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasFundOrigin() bool {
	if o != nil && !common.IsNil(o.FundOrigin) {
		return true
	}

	return false
}

// SetFundOrigin gets a reference to the given FundOrigin and assigns it to the FundOrigin field.
func (o *CreateCheckoutSessionResponse) SetFundOrigin(v FundOrigin) {
	o.FundOrigin = &v
}

// GetFundRecipient returns the FundRecipient field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetFundRecipient() FundRecipient {
	if o == nil || common.IsNil(o.FundRecipient) {
		var ret FundRecipient
		return ret
	}
	return *o.FundRecipient
}

// GetFundRecipientOk returns a tuple with the FundRecipient field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetFundRecipientOk() (*FundRecipient, bool) {
	if o == nil || common.IsNil(o.FundRecipient) {
		return nil, false
	}
	return o.FundRecipient, true
}

// HasFundRecipient returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasFundRecipient() bool {
	if o != nil && !common.IsNil(o.FundRecipient) {
		return true
	}

	return false
}

// SetFundRecipient gets a reference to the given FundRecipient and assigns it to the FundRecipient field.
func (o *CreateCheckoutSessionResponse) SetFundRecipient(v FundRecipient) {
	o.FundRecipient = &v
}

// GetId returns the Id field value
func (o *CreateCheckoutSessionResponse) GetId() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Id
}

// GetIdOk returns a tuple with the Id field value
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetIdOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Id, true
}

// SetId sets field value
func (o *CreateCheckoutSessionResponse) SetId(v string) {
	o.Id = v
}

// GetInstallmentOptions returns the InstallmentOptions field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetInstallmentOptions() map[string]CheckoutSessionInstallmentOption {
	if o == nil || common.IsNil(o.InstallmentOptions) {
		var ret map[string]CheckoutSessionInstallmentOption
		return ret
	}
	return *o.InstallmentOptions
}

// GetInstallmentOptionsOk returns a tuple with the InstallmentOptions field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetInstallmentOptionsOk() (*map[string]CheckoutSessionInstallmentOption, bool) {
	if o == nil || common.IsNil(o.InstallmentOptions) {
		return nil, false
	}
	return o.InstallmentOptions, true
}

// HasInstallmentOptions returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasInstallmentOptions() bool {
	if o != nil && !common.IsNil(o.InstallmentOptions) {
		return true
	}

	return false
}

// SetInstallmentOptions gets a reference to the given map[string]CheckoutSessionInstallmentOption and assigns it to the InstallmentOptions field.
func (o *CreateCheckoutSessionResponse) SetInstallmentOptions(v map[string]CheckoutSessionInstallmentOption) {
	o.InstallmentOptions = &v
}

// GetLineItems returns the LineItems field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetLineItems() []LineItem {
	if o == nil || common.IsNil(o.LineItems) {
		var ret []LineItem
		return ret
	}
	return o.LineItems
}

// GetLineItemsOk returns a tuple with the LineItems field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetLineItemsOk() ([]LineItem, bool) {
	if o == nil || common.IsNil(o.LineItems) {
		return nil, false
	}
	return o.LineItems, true
}

// HasLineItems returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasLineItems() bool {
	if o != nil && !common.IsNil(o.LineItems) {
		return true
	}

	return false
}

// SetLineItems gets a reference to the given []LineItem and assigns it to the LineItems field.
func (o *CreateCheckoutSessionResponse) SetLineItems(v []LineItem) {
	o.LineItems = v
}

// GetMandate returns the Mandate field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetMandate() Mandate {
	if o == nil || common.IsNil(o.Mandate) {
		var ret Mandate
		return ret
	}
	return *o.Mandate
}

// GetMandateOk returns a tuple with the Mandate field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetMandateOk() (*Mandate, bool) {
	if o == nil || common.IsNil(o.Mandate) {
		return nil, false
	}
	return o.Mandate, true
}

// HasMandate returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasMandate() bool {
	if o != nil && !common.IsNil(o.Mandate) {
		return true
	}

	return false
}

// SetMandate gets a reference to the given Mandate and assigns it to the Mandate field.
func (o *CreateCheckoutSessionResponse) SetMandate(v Mandate) {
	o.Mandate = &v
}

// GetMcc returns the Mcc field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetMcc() string {
	if o == nil || common.IsNil(o.Mcc) {
		var ret string
		return ret
	}
	return *o.Mcc
}

// GetMccOk returns a tuple with the Mcc field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetMccOk() (*string, bool) {
	if o == nil || common.IsNil(o.Mcc) {
		return nil, false
	}
	return o.Mcc, true
}

// HasMcc returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasMcc() bool {
	if o != nil && !common.IsNil(o.Mcc) {
		return true
	}

	return false
}

// SetMcc gets a reference to the given string and assigns it to the Mcc field.
func (o *CreateCheckoutSessionResponse) SetMcc(v string) {
	o.Mcc = &v
}

// GetMerchantAccount returns the MerchantAccount field value
func (o *CreateCheckoutSessionResponse) GetMerchantAccount() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.MerchantAccount
}

// GetMerchantAccountOk returns a tuple with the MerchantAccount field value
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetMerchantAccountOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.MerchantAccount, true
}

// SetMerchantAccount sets field value
func (o *CreateCheckoutSessionResponse) SetMerchantAccount(v string) {
	o.MerchantAccount = v
}

// GetMerchantOrderReference returns the MerchantOrderReference field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetMerchantOrderReference() string {
	if o == nil || common.IsNil(o.MerchantOrderReference) {
		var ret string
		return ret
	}
	return *o.MerchantOrderReference
}

// GetMerchantOrderReferenceOk returns a tuple with the MerchantOrderReference field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetMerchantOrderReferenceOk() (*string, bool) {
	if o == nil || common.IsNil(o.MerchantOrderReference) {
		return nil, false
	}
	return o.MerchantOrderReference, true
}

// HasMerchantOrderReference returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasMerchantOrderReference() bool {
	if o != nil && !common.IsNil(o.MerchantOrderReference) {
		return true
	}

	return false
}

// SetMerchantOrderReference gets a reference to the given string and assigns it to the MerchantOrderReference field.
func (o *CreateCheckoutSessionResponse) SetMerchantOrderReference(v string) {
	o.MerchantOrderReference = &v
}

// GetMetadata returns the Metadata field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetMetadata() map[string]string {
	if o == nil || common.IsNil(o.Metadata) {
		var ret map[string]string
		return ret
	}
	return *o.Metadata
}

// GetMetadataOk returns a tuple with the Metadata field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetMetadataOk() (*map[string]string, bool) {
	if o == nil || common.IsNil(o.Metadata) {
		return nil, false
	}
	return o.Metadata, true
}

// HasMetadata returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasMetadata() bool {
	if o != nil && !common.IsNil(o.Metadata) {
		return true
	}

	return false
}

// SetMetadata gets a reference to the given map[string]string and assigns it to the Metadata field.
func (o *CreateCheckoutSessionResponse) SetMetadata(v map[string]string) {
	o.Metadata = &v
}

// GetMode returns the Mode field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetMode() string {
	if o == nil || common.IsNil(o.Mode) {
		var ret string
		return ret
	}
	return *o.Mode
}

// GetModeOk returns a tuple with the Mode field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetModeOk() (*string, bool) {
	if o == nil || common.IsNil(o.Mode) {
		return nil, false
	}
	return o.Mode, true
}

// HasMode returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasMode() bool {
	if o != nil && !common.IsNil(o.Mode) {
		return true
	}

	return false
}

// SetMode gets a reference to the given string and assigns it to the Mode field.
func (o *CreateCheckoutSessionResponse) SetMode(v string) {
	o.Mode = &v
}

// GetMpiData returns the MpiData field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetMpiData() ThreeDSecureData {
	if o == nil || common.IsNil(o.MpiData) {
		var ret ThreeDSecureData
		return ret
	}
	return *o.MpiData
}

// GetMpiDataOk returns a tuple with the MpiData field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetMpiDataOk() (*ThreeDSecureData, bool) {
	if o == nil || common.IsNil(o.MpiData) {
		return nil, false
	}
	return o.MpiData, true
}

// HasMpiData returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasMpiData() bool {
	if o != nil && !common.IsNil(o.MpiData) {
		return true
	}

	return false
}

// SetMpiData gets a reference to the given ThreeDSecureData and assigns it to the MpiData field.
func (o *CreateCheckoutSessionResponse) SetMpiData(v ThreeDSecureData) {
	o.MpiData = &v
}

// GetPlatformChargebackLogic returns the PlatformChargebackLogic field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetPlatformChargebackLogic() PlatformChargebackLogic {
	if o == nil || common.IsNil(o.PlatformChargebackLogic) {
		var ret PlatformChargebackLogic
		return ret
	}
	return *o.PlatformChargebackLogic
}

// GetPlatformChargebackLogicOk returns a tuple with the PlatformChargebackLogic field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetPlatformChargebackLogicOk() (*PlatformChargebackLogic, bool) {
	if o == nil || common.IsNil(o.PlatformChargebackLogic) {
		return nil, false
	}
	return o.PlatformChargebackLogic, true
}

// HasPlatformChargebackLogic returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasPlatformChargebackLogic() bool {
	if o != nil && !common.IsNil(o.PlatformChargebackLogic) {
		return true
	}

	return false
}

// SetPlatformChargebackLogic gets a reference to the given PlatformChargebackLogic and assigns it to the PlatformChargebackLogic field.
func (o *CreateCheckoutSessionResponse) SetPlatformChargebackLogic(v PlatformChargebackLogic) {
	o.PlatformChargebackLogic = &v
}

// GetRecurringExpiry returns the RecurringExpiry field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetRecurringExpiry() string {
	if o == nil || common.IsNil(o.RecurringExpiry) {
		var ret string
		return ret
	}
	return *o.RecurringExpiry
}

// GetRecurringExpiryOk returns a tuple with the RecurringExpiry field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetRecurringExpiryOk() (*string, bool) {
	if o == nil || common.IsNil(o.RecurringExpiry) {
		return nil, false
	}
	return o.RecurringExpiry, true
}

// HasRecurringExpiry returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasRecurringExpiry() bool {
	if o != nil && !common.IsNil(o.RecurringExpiry) {
		return true
	}

	return false
}

// SetRecurringExpiry gets a reference to the given string and assigns it to the RecurringExpiry field.
func (o *CreateCheckoutSessionResponse) SetRecurringExpiry(v string) {
	o.RecurringExpiry = &v
}

// GetRecurringFrequency returns the RecurringFrequency field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetRecurringFrequency() string {
	if o == nil || common.IsNil(o.RecurringFrequency) {
		var ret string
		return ret
	}
	return *o.RecurringFrequency
}

// GetRecurringFrequencyOk returns a tuple with the RecurringFrequency field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetRecurringFrequencyOk() (*string, bool) {
	if o == nil || common.IsNil(o.RecurringFrequency) {
		return nil, false
	}
	return o.RecurringFrequency, true
}

// HasRecurringFrequency returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasRecurringFrequency() bool {
	if o != nil && !common.IsNil(o.RecurringFrequency) {
		return true
	}

	return false
}

// SetRecurringFrequency gets a reference to the given string and assigns it to the RecurringFrequency field.
func (o *CreateCheckoutSessionResponse) SetRecurringFrequency(v string) {
	o.RecurringFrequency = &v
}

// GetRecurringProcessingModel returns the RecurringProcessingModel field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetRecurringProcessingModel() string {
	if o == nil || common.IsNil(o.RecurringProcessingModel) {
		var ret string
		return ret
	}
	return *o.RecurringProcessingModel
}

// GetRecurringProcessingModelOk returns a tuple with the RecurringProcessingModel field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetRecurringProcessingModelOk() (*string, bool) {
	if o == nil || common.IsNil(o.RecurringProcessingModel) {
		return nil, false
	}
	return o.RecurringProcessingModel, true
}

// HasRecurringProcessingModel returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasRecurringProcessingModel() bool {
	if o != nil && !common.IsNil(o.RecurringProcessingModel) {
		return true
	}

	return false
}

// SetRecurringProcessingModel gets a reference to the given string and assigns it to the RecurringProcessingModel field.
func (o *CreateCheckoutSessionResponse) SetRecurringProcessingModel(v string) {
	o.RecurringProcessingModel = &v
}

// GetRedirectFromIssuerMethod returns the RedirectFromIssuerMethod field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetRedirectFromIssuerMethod() string {
	if o == nil || common.IsNil(o.RedirectFromIssuerMethod) {
		var ret string
		return ret
	}
	return *o.RedirectFromIssuerMethod
}

// GetRedirectFromIssuerMethodOk returns a tuple with the RedirectFromIssuerMethod field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetRedirectFromIssuerMethodOk() (*string, bool) {
	if o == nil || common.IsNil(o.RedirectFromIssuerMethod) {
		return nil, false
	}
	return o.RedirectFromIssuerMethod, true
}

// HasRedirectFromIssuerMethod returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasRedirectFromIssuerMethod() bool {
	if o != nil && !common.IsNil(o.RedirectFromIssuerMethod) {
		return true
	}

	return false
}

// SetRedirectFromIssuerMethod gets a reference to the given string and assigns it to the RedirectFromIssuerMethod field.
func (o *CreateCheckoutSessionResponse) SetRedirectFromIssuerMethod(v string) {
	o.RedirectFromIssuerMethod = &v
}

// GetRedirectToIssuerMethod returns the RedirectToIssuerMethod field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetRedirectToIssuerMethod() string {
	if o == nil || common.IsNil(o.RedirectToIssuerMethod) {
		var ret string
		return ret
	}
	return *o.RedirectToIssuerMethod
}

// GetRedirectToIssuerMethodOk returns a tuple with the RedirectToIssuerMethod field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetRedirectToIssuerMethodOk() (*string, bool) {
	if o == nil || common.IsNil(o.RedirectToIssuerMethod) {
		return nil, false
	}
	return o.RedirectToIssuerMethod, true
}

// HasRedirectToIssuerMethod returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasRedirectToIssuerMethod() bool {
	if o != nil && !common.IsNil(o.RedirectToIssuerMethod) {
		return true
	}

	return false
}

// SetRedirectToIssuerMethod gets a reference to the given string and assigns it to the RedirectToIssuerMethod field.
func (o *CreateCheckoutSessionResponse) SetRedirectToIssuerMethod(v string) {
	o.RedirectToIssuerMethod = &v
}

// GetReference returns the Reference field value
func (o *CreateCheckoutSessionResponse) GetReference() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.Reference
}

// GetReferenceOk returns a tuple with the Reference field value
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetReferenceOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.Reference, true
}

// SetReference sets field value
func (o *CreateCheckoutSessionResponse) SetReference(v string) {
	o.Reference = v
}

// GetReturnUrl returns the ReturnUrl field value
func (o *CreateCheckoutSessionResponse) GetReturnUrl() string {
	if o == nil {
		var ret string
		return ret
	}

	return o.ReturnUrl
}

// GetReturnUrlOk returns a tuple with the ReturnUrl field value
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetReturnUrlOk() (*string, bool) {
	if o == nil {
		return nil, false
	}
	return &o.ReturnUrl, true
}

// SetReturnUrl sets field value
func (o *CreateCheckoutSessionResponse) SetReturnUrl(v string) {
	o.ReturnUrl = v
}

// GetRiskData returns the RiskData field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetRiskData() RiskData {
	if o == nil || common.IsNil(o.RiskData) {
		var ret RiskData
		return ret
	}
	return *o.RiskData
}

// GetRiskDataOk returns a tuple with the RiskData field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetRiskDataOk() (*RiskData, bool) {
	if o == nil || common.IsNil(o.RiskData) {
		return nil, false
	}
	return o.RiskData, true
}

// HasRiskData returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasRiskData() bool {
	if o != nil && !common.IsNil(o.RiskData) {
		return true
	}

	return false
}

// SetRiskData gets a reference to the given RiskData and assigns it to the RiskData field.
func (o *CreateCheckoutSessionResponse) SetRiskData(v RiskData) {
	o.RiskData = &v
}

// GetSessionData returns the SessionData field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetSessionData() string {
	if o == nil || common.IsNil(o.SessionData) {
		var ret string
		return ret
	}
	return *o.SessionData
}

// GetSessionDataOk returns a tuple with the SessionData field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetSessionDataOk() (*string, bool) {
	if o == nil || common.IsNil(o.SessionData) {
		return nil, false
	}
	return o.SessionData, true
}

// HasSessionData returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasSessionData() bool {
	if o != nil && !common.IsNil(o.SessionData) {
		return true
	}

	return false
}

// SetSessionData gets a reference to the given string and assigns it to the SessionData field.
func (o *CreateCheckoutSessionResponse) SetSessionData(v string) {
	o.SessionData = &v
}

// GetShopperEmail returns the ShopperEmail field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShopperEmail() string {
	if o == nil || common.IsNil(o.ShopperEmail) {
		var ret string
		return ret
	}
	return *o.ShopperEmail
}

// GetShopperEmailOk returns a tuple with the ShopperEmail field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShopperEmailOk() (*string, bool) {
	if o == nil || common.IsNil(o.ShopperEmail) {
		return nil, false
	}
	return o.ShopperEmail, true
}

// HasShopperEmail returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShopperEmail() bool {
	if o != nil && !common.IsNil(o.ShopperEmail) {
		return true
	}

	return false
}

// SetShopperEmail gets a reference to the given string and assigns it to the ShopperEmail field.
func (o *CreateCheckoutSessionResponse) SetShopperEmail(v string) {
	o.ShopperEmail = &v
}

// GetShopperIP returns the ShopperIP field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShopperIP() string {
	if o == nil || common.IsNil(o.ShopperIP) {
		var ret string
		return ret
	}
	return *o.ShopperIP
}

// GetShopperIPOk returns a tuple with the ShopperIP field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShopperIPOk() (*string, bool) {
	if o == nil || common.IsNil(o.ShopperIP) {
		return nil, false
	}
	return o.ShopperIP, true
}

// HasShopperIP returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShopperIP() bool {
	if o != nil && !common.IsNil(o.ShopperIP) {
		return true
	}

	return false
}

// SetShopperIP gets a reference to the given string and assigns it to the ShopperIP field.
func (o *CreateCheckoutSessionResponse) SetShopperIP(v string) {
	o.ShopperIP = &v
}

// GetShopperInteraction returns the ShopperInteraction field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShopperInteraction() string {
	if o == nil || common.IsNil(o.ShopperInteraction) {
		var ret string
		return ret
	}
	return *o.ShopperInteraction
}

// GetShopperInteractionOk returns a tuple with the ShopperInteraction field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShopperInteractionOk() (*string, bool) {
	if o == nil || common.IsNil(o.ShopperInteraction) {
		return nil, false
	}
	return o.ShopperInteraction, true
}

// HasShopperInteraction returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShopperInteraction() bool {
	if o != nil && !common.IsNil(o.ShopperInteraction) {
		return true
	}

	return false
}

// SetShopperInteraction gets a reference to the given string and assigns it to the ShopperInteraction field.
func (o *CreateCheckoutSessionResponse) SetShopperInteraction(v string) {
	o.ShopperInteraction = &v
}

// GetShopperLocale returns the ShopperLocale field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShopperLocale() string {
	if o == nil || common.IsNil(o.ShopperLocale) {
		var ret string
		return ret
	}
	return *o.ShopperLocale
}

// GetShopperLocaleOk returns a tuple with the ShopperLocale field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShopperLocaleOk() (*string, bool) {
	if o == nil || common.IsNil(o.ShopperLocale) {
		return nil, false
	}
	return o.ShopperLocale, true
}

// HasShopperLocale returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShopperLocale() bool {
	if o != nil && !common.IsNil(o.ShopperLocale) {
		return true
	}

	return false
}

// SetShopperLocale gets a reference to the given string and assigns it to the ShopperLocale field.
func (o *CreateCheckoutSessionResponse) SetShopperLocale(v string) {
	o.ShopperLocale = &v
}

// GetShopperName returns the ShopperName field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShopperName() Name {
	if o == nil || common.IsNil(o.ShopperName) {
		var ret Name
		return ret
	}
	return *o.ShopperName
}

// GetShopperNameOk returns a tuple with the ShopperName field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShopperNameOk() (*Name, bool) {
	if o == nil || common.IsNil(o.ShopperName) {
		return nil, false
	}
	return o.ShopperName, true
}

// HasShopperName returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShopperName() bool {
	if o != nil && !common.IsNil(o.ShopperName) {
		return true
	}

	return false
}

// SetShopperName gets a reference to the given Name and assigns it to the ShopperName field.
func (o *CreateCheckoutSessionResponse) SetShopperName(v Name) {
	o.ShopperName = &v
}

// GetShopperReference returns the ShopperReference field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShopperReference() string {
	if o == nil || common.IsNil(o.ShopperReference) {
		var ret string
		return ret
	}
	return *o.ShopperReference
}

// GetShopperReferenceOk returns a tuple with the ShopperReference field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShopperReferenceOk() (*string, bool) {
	if o == nil || common.IsNil(o.ShopperReference) {
		return nil, false
	}
	return o.ShopperReference, true
}

// HasShopperReference returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShopperReference() bool {
	if o != nil && !common.IsNil(o.ShopperReference) {
		return true
	}

	return false
}

// SetShopperReference gets a reference to the given string and assigns it to the ShopperReference field.
func (o *CreateCheckoutSessionResponse) SetShopperReference(v string) {
	o.ShopperReference = &v
}

// GetShopperStatement returns the ShopperStatement field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShopperStatement() string {
	if o == nil || common.IsNil(o.ShopperStatement) {
		var ret string
		return ret
	}
	return *o.ShopperStatement
}

// GetShopperStatementOk returns a tuple with the ShopperStatement field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShopperStatementOk() (*string, bool) {
	if o == nil || common.IsNil(o.ShopperStatement) {
		return nil, false
	}
	return o.ShopperStatement, true
}

// HasShopperStatement returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShopperStatement() bool {
	if o != nil && !common.IsNil(o.ShopperStatement) {
		return true
	}

	return false
}

// SetShopperStatement gets a reference to the given string and assigns it to the ShopperStatement field.
func (o *CreateCheckoutSessionResponse) SetShopperStatement(v string) {
	o.ShopperStatement = &v
}

// GetShowInstallmentAmount returns the ShowInstallmentAmount field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShowInstallmentAmount() bool {
	if o == nil || common.IsNil(o.ShowInstallmentAmount) {
		var ret bool
		return ret
	}
	return *o.ShowInstallmentAmount
}

// GetShowInstallmentAmountOk returns a tuple with the ShowInstallmentAmount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShowInstallmentAmountOk() (*bool, bool) {
	if o == nil || common.IsNil(o.ShowInstallmentAmount) {
		return nil, false
	}
	return o.ShowInstallmentAmount, true
}

// HasShowInstallmentAmount returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShowInstallmentAmount() bool {
	if o != nil && !common.IsNil(o.ShowInstallmentAmount) {
		return true
	}

	return false
}

// SetShowInstallmentAmount gets a reference to the given bool and assigns it to the ShowInstallmentAmount field.
func (o *CreateCheckoutSessionResponse) SetShowInstallmentAmount(v bool) {
	o.ShowInstallmentAmount = &v
}

// GetShowRemovePaymentMethodButton returns the ShowRemovePaymentMethodButton field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetShowRemovePaymentMethodButton() bool {
	if o == nil || common.IsNil(o.ShowRemovePaymentMethodButton) {
		var ret bool
		return ret
	}
	return *o.ShowRemovePaymentMethodButton
}

// GetShowRemovePaymentMethodButtonOk returns a tuple with the ShowRemovePaymentMethodButton field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetShowRemovePaymentMethodButtonOk() (*bool, bool) {
	if o == nil || common.IsNil(o.ShowRemovePaymentMethodButton) {
		return nil, false
	}
	return o.ShowRemovePaymentMethodButton, true
}

// HasShowRemovePaymentMethodButton returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasShowRemovePaymentMethodButton() bool {
	if o != nil && !common.IsNil(o.ShowRemovePaymentMethodButton) {
		return true
	}

	return false
}

// SetShowRemovePaymentMethodButton gets a reference to the given bool and assigns it to the ShowRemovePaymentMethodButton field.
func (o *CreateCheckoutSessionResponse) SetShowRemovePaymentMethodButton(v bool) {
	o.ShowRemovePaymentMethodButton = &v
}

// GetSocialSecurityNumber returns the SocialSecurityNumber field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetSocialSecurityNumber() string {
	if o == nil || common.IsNil(o.SocialSecurityNumber) {
		var ret string
		return ret
	}
	return *o.SocialSecurityNumber
}

// GetSocialSecurityNumberOk returns a tuple with the SocialSecurityNumber field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetSocialSecurityNumberOk() (*string, bool) {
	if o == nil || common.IsNil(o.SocialSecurityNumber) {
		return nil, false
	}
	return o.SocialSecurityNumber, true
}

// HasSocialSecurityNumber returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasSocialSecurityNumber() bool {
	if o != nil && !common.IsNil(o.SocialSecurityNumber) {
		return true
	}

	return false
}

// SetSocialSecurityNumber gets a reference to the given string and assigns it to the SocialSecurityNumber field.
func (o *CreateCheckoutSessionResponse) SetSocialSecurityNumber(v string) {
	o.SocialSecurityNumber = &v
}

// GetSplitCardFundingSources returns the SplitCardFundingSources field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetSplitCardFundingSources() bool {
	if o == nil || common.IsNil(o.SplitCardFundingSources) {
		var ret bool
		return ret
	}
	return *o.SplitCardFundingSources
}

// GetSplitCardFundingSourcesOk returns a tuple with the SplitCardFundingSources field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetSplitCardFundingSourcesOk() (*bool, bool) {
	if o == nil || common.IsNil(o.SplitCardFundingSources) {
		return nil, false
	}
	return o.SplitCardFundingSources, true
}

// HasSplitCardFundingSources returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasSplitCardFundingSources() bool {
	if o != nil && !common.IsNil(o.SplitCardFundingSources) {
		return true
	}

	return false
}

// SetSplitCardFundingSources gets a reference to the given bool and assigns it to the SplitCardFundingSources field.
func (o *CreateCheckoutSessionResponse) SetSplitCardFundingSources(v bool) {
	o.SplitCardFundingSources = &v
}

// GetSplits returns the Splits field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetSplits() []Split {
	if o == nil || common.IsNil(o.Splits) {
		var ret []Split
		return ret
	}
	return o.Splits
}

// GetSplitsOk returns a tuple with the Splits field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetSplitsOk() ([]Split, bool) {
	if o == nil || common.IsNil(o.Splits) {
		return nil, false
	}
	return o.Splits, true
}

// HasSplits returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasSplits() bool {
	if o != nil && !common.IsNil(o.Splits) {
		return true
	}

	return false
}

// SetSplits gets a reference to the given []Split and assigns it to the Splits field.
func (o *CreateCheckoutSessionResponse) SetSplits(v []Split) {
	o.Splits = v
}

// GetStore returns the Store field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetStore() string {
	if o == nil || common.IsNil(o.Store) {
		var ret string
		return ret
	}
	return *o.Store
}

// GetStoreOk returns a tuple with the Store field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetStoreOk() (*string, bool) {
	if o == nil || common.IsNil(o.Store) {
		return nil, false
	}
	return o.Store, true
}

// HasStore returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasStore() bool {
	if o != nil && !common.IsNil(o.Store) {
		return true
	}

	return false
}

// SetStore gets a reference to the given string and assigns it to the Store field.
func (o *CreateCheckoutSessionResponse) SetStore(v string) {
	o.Store = &v
}

// GetStoreFiltrationMode returns the StoreFiltrationMode field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetStoreFiltrationMode() string {
	if o == nil || common.IsNil(o.StoreFiltrationMode) {
		var ret string
		return ret
	}
	return *o.StoreFiltrationMode
}

// GetStoreFiltrationModeOk returns a tuple with the StoreFiltrationMode field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetStoreFiltrationModeOk() (*string, bool) {
	if o == nil || common.IsNil(o.StoreFiltrationMode) {
		return nil, false
	}
	return o.StoreFiltrationMode, true
}

// HasStoreFiltrationMode returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasStoreFiltrationMode() bool {
	if o != nil && !common.IsNil(o.StoreFiltrationMode) {
		return true
	}

	return false
}

// SetStoreFiltrationMode gets a reference to the given string and assigns it to the StoreFiltrationMode field.
func (o *CreateCheckoutSessionResponse) SetStoreFiltrationMode(v string) {
	o.StoreFiltrationMode = &v
}

// GetStorePaymentMethod returns the StorePaymentMethod field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetStorePaymentMethod() bool {
	if o == nil || common.IsNil(o.StorePaymentMethod) {
		var ret bool
		return ret
	}
	return *o.StorePaymentMethod
}

// GetStorePaymentMethodOk returns a tuple with the StorePaymentMethod field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetStorePaymentMethodOk() (*bool, bool) {
	if o == nil || common.IsNil(o.StorePaymentMethod) {
		return nil, false
	}
	return o.StorePaymentMethod, true
}

// HasStorePaymentMethod returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasStorePaymentMethod() bool {
	if o != nil && !common.IsNil(o.StorePaymentMethod) {
		return true
	}

	return false
}

// SetStorePaymentMethod gets a reference to the given bool and assigns it to the StorePaymentMethod field.
func (o *CreateCheckoutSessionResponse) SetStorePaymentMethod(v bool) {
	o.StorePaymentMethod = &v
}

// GetStorePaymentMethodMode returns the StorePaymentMethodMode field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetStorePaymentMethodMode() string {
	if o == nil || common.IsNil(o.StorePaymentMethodMode) {
		var ret string
		return ret
	}
	return *o.StorePaymentMethodMode
}

// GetStorePaymentMethodModeOk returns a tuple with the StorePaymentMethodMode field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetStorePaymentMethodModeOk() (*string, bool) {
	if o == nil || common.IsNil(o.StorePaymentMethodMode) {
		return nil, false
	}
	return o.StorePaymentMethodMode, true
}

// HasStorePaymentMethodMode returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasStorePaymentMethodMode() bool {
	if o != nil && !common.IsNil(o.StorePaymentMethodMode) {
		return true
	}

	return false
}

// SetStorePaymentMethodMode gets a reference to the given string and assigns it to the StorePaymentMethodMode field.
func (o *CreateCheckoutSessionResponse) SetStorePaymentMethodMode(v string) {
	o.StorePaymentMethodMode = &v
}

// GetTelephoneNumber returns the TelephoneNumber field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetTelephoneNumber() string {
	if o == nil || common.IsNil(o.TelephoneNumber) {
		var ret string
		return ret
	}
	return *o.TelephoneNumber
}

// GetTelephoneNumberOk returns a tuple with the TelephoneNumber field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetTelephoneNumberOk() (*string, bool) {
	if o == nil || common.IsNil(o.TelephoneNumber) {
		return nil, false
	}
	return o.TelephoneNumber, true
}

// HasTelephoneNumber returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasTelephoneNumber() bool {
	if o != nil && !common.IsNil(o.TelephoneNumber) {
		return true
	}

	return false
}

// SetTelephoneNumber gets a reference to the given string and assigns it to the TelephoneNumber field.
func (o *CreateCheckoutSessionResponse) SetTelephoneNumber(v string) {
	o.TelephoneNumber = &v
}

// GetThemeId returns the ThemeId field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetThemeId() string {
	if o == nil || common.IsNil(o.ThemeId) {
		var ret string
		return ret
	}
	return *o.ThemeId
}

// GetThemeIdOk returns a tuple with the ThemeId field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetThemeIdOk() (*string, bool) {
	if o == nil || common.IsNil(o.ThemeId) {
		return nil, false
	}
	return o.ThemeId, true
}

// HasThemeId returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasThemeId() bool {
	if o != nil && !common.IsNil(o.ThemeId) {
		return true
	}

	return false
}

// SetThemeId gets a reference to the given string and assigns it to the ThemeId field.
func (o *CreateCheckoutSessionResponse) SetThemeId(v string) {
	o.ThemeId = &v
}

// GetThreeDS2RequestData returns the ThreeDS2RequestData field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetThreeDS2RequestData() CheckoutSessionThreeDS2RequestData {
	if o == nil || common.IsNil(o.ThreeDS2RequestData) {
		var ret CheckoutSessionThreeDS2RequestData
		return ret
	}
	return *o.ThreeDS2RequestData
}

// GetThreeDS2RequestDataOk returns a tuple with the ThreeDS2RequestData field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetThreeDS2RequestDataOk() (*CheckoutSessionThreeDS2RequestData, bool) {
	if o == nil || common.IsNil(o.ThreeDS2RequestData) {
		return nil, false
	}
	return o.ThreeDS2RequestData, true
}

// HasThreeDS2RequestData returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasThreeDS2RequestData() bool {
	if o != nil && !common.IsNil(o.ThreeDS2RequestData) {
		return true
	}

	return false
}

// SetThreeDS2RequestData gets a reference to the given CheckoutSessionThreeDS2RequestData and assigns it to the ThreeDS2RequestData field.
func (o *CreateCheckoutSessionResponse) SetThreeDS2RequestData(v CheckoutSessionThreeDS2RequestData) {
	o.ThreeDS2RequestData = &v
}

// GetThreeDSAuthenticationOnly returns the ThreeDSAuthenticationOnly field value if set, zero value otherwise.
// Deprecated since Adyen Checkout API v69
// Use `authenticationData.authenticationOnly` instead.
func (o *CreateCheckoutSessionResponse) GetThreeDSAuthenticationOnly() bool {
	if o == nil || common.IsNil(o.ThreeDSAuthenticationOnly) {
		var ret bool
		return ret
	}
	return *o.ThreeDSAuthenticationOnly
}

// GetThreeDSAuthenticationOnlyOk returns a tuple with the ThreeDSAuthenticationOnly field value if set, nil otherwise
// and a boolean to check if the value has been set.
// Deprecated since Adyen Checkout API v69
// Use `authenticationData.authenticationOnly` instead.
func (o *CreateCheckoutSessionResponse) GetThreeDSAuthenticationOnlyOk() (*bool, bool) {
	if o == nil || common.IsNil(o.ThreeDSAuthenticationOnly) {
		return nil, false
	}
	return o.ThreeDSAuthenticationOnly, true
}

// HasThreeDSAuthenticationOnly returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasThreeDSAuthenticationOnly() bool {
	if o != nil && !common.IsNil(o.ThreeDSAuthenticationOnly) {
		return true
	}

	return false
}

// SetThreeDSAuthenticationOnly gets a reference to the given bool and assigns it to the ThreeDSAuthenticationOnly field.
// Deprecated since Adyen Checkout API v69
// Use `authenticationData.authenticationOnly` instead.
func (o *CreateCheckoutSessionResponse) SetThreeDSAuthenticationOnly(v bool) {
	o.ThreeDSAuthenticationOnly = &v
}

// GetTrustedShopper returns the TrustedShopper field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetTrustedShopper() bool {
	if o == nil || common.IsNil(o.TrustedShopper) {
		var ret bool
		return ret
	}
	return *o.TrustedShopper
}

// GetTrustedShopperOk returns a tuple with the TrustedShopper field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetTrustedShopperOk() (*bool, bool) {
	if o == nil || common.IsNil(o.TrustedShopper) {
		return nil, false
	}
	return o.TrustedShopper, true
}

// HasTrustedShopper returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasTrustedShopper() bool {
	if o != nil && !common.IsNil(o.TrustedShopper) {
		return true
	}

	return false
}

// SetTrustedShopper gets a reference to the given bool and assigns it to the TrustedShopper field.
func (o *CreateCheckoutSessionResponse) SetTrustedShopper(v bool) {
	o.TrustedShopper = &v
}

// GetUrl returns the Url field value if set, zero value otherwise.
func (o *CreateCheckoutSessionResponse) GetUrl() string {
	if o == nil || common.IsNil(o.Url) {
		var ret string
		return ret
	}
	return *o.Url
}

// GetUrlOk returns a tuple with the Url field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CreateCheckoutSessionResponse) GetUrlOk() (*string, bool) {
	if o == nil || common.IsNil(o.Url) {
		return nil, false
	}
	return o.Url, true
}

// HasUrl returns a boolean if a field has been set.
func (o *CreateCheckoutSessionResponse) HasUrl() bool {
	if o != nil && !common.IsNil(o.Url) {
		return true
	}

	return false
}

// SetUrl gets a reference to the given string and assigns it to the Url field.
func (o *CreateCheckoutSessionResponse) SetUrl(v string) {
	o.Url = &v
}

func (o CreateCheckoutSessionResponse) MarshalJSON() ([]byte, error) {
	toSerialize, err := o.ToMap()
	if err != nil {
		return []byte{}, err
	}
	return json.Marshal(toSerialize)
}

func (o CreateCheckoutSessionResponse) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if !common.IsNil(o.AccountInfo) {
		toSerialize["accountInfo"] = o.AccountInfo
	}
	if !common.IsNil(o.AdditionalAmount) {
		toSerialize["additionalAmount"] = o.AdditionalAmount
	}
	if !common.IsNil(o.AdditionalData) {
		toSerialize["additionalData"] = o.AdditionalData
	}
	if !common.IsNil(o.AllowedPaymentMethods) {
		toSerialize["allowedPaymentMethods"] = o.AllowedPaymentMethods
	}
	toSerialize["amount"] = o.Amount
	if !common.IsNil(o.ApplicationInfo) {
		toSerialize["applicationInfo"] = o.ApplicationInfo
	}
	if !common.IsNil(o.AuthenticationData) {
		toSerialize["authenticationData"] = o.AuthenticationData
	}
	if !common.IsNil(o.BillingAddress) {
		toSerialize["billingAddress"] = o.BillingAddress
	}
	if !common.IsNil(o.BlockedPaymentMethods) {
		toSerialize["blockedPaymentMethods"] = o.BlockedPaymentMethods
	}
	if !common.IsNil(o.CaptureDelayHours) {
		toSerialize["captureDelayHours"] = o.CaptureDelayHours
	}
	if !common.IsNil(o.Channel) {
		toSerialize["channel"] = o.Channel
	}
	if !common.IsNil(o.Company) {
		toSerialize["company"] = o.Company
	}
	if !common.IsNil(o.CountryCode) {
		toSerialize["countryCode"] = o.CountryCode
	}
	if !common.IsNil(o.DateOfBirth) {
		toSerialize["dateOfBirth"] = o.DateOfBirth
	}
	if !common.IsNil(o.DeliverAt) {
		toSerialize["deliverAt"] = o.DeliverAt
	}
	if !common.IsNil(o.DeliveryAddress) {
		toSerialize["deliveryAddress"] = o.DeliveryAddress
	}
	if !common.IsNil(o.EnableOneClick) {
		toSerialize["enableOneClick"] = o.EnableOneClick
	}
	if !common.IsNil(o.EnablePayOut) {
		toSerialize["enablePayOut"] = o.EnablePayOut
	}
	if !common.IsNil(o.EnableRecurring) {
		toSerialize["enableRecurring"] = o.EnableRecurring
	}
	toSerialize["expiresAt"] = o.ExpiresAt
	if !common.IsNil(o.FundOrigin) {
		toSerialize["fundOrigin"] = o.FundOrigin
	}
	if !common.IsNil(o.FundRecipient) {
		toSerialize["fundRecipient"] = o.FundRecipient
	}
	toSerialize["id"] = o.Id
	if !common.IsNil(o.InstallmentOptions) {
		toSerialize["installmentOptions"] = o.InstallmentOptions
	}
	if !common.IsNil(o.LineItems) {
		toSerialize["lineItems"] = o.LineItems
	}
	if !common.IsNil(o.Mandate) {
		toSerialize["mandate"] = o.Mandate
	}
	if !common.IsNil(o.Mcc) {
		toSerialize["mcc"] = o.Mcc
	}
	toSerialize["merchantAccount"] = o.MerchantAccount
	if !common.IsNil(o.MerchantOrderReference) {
		toSerialize["merchantOrderReference"] = o.MerchantOrderReference
	}
	if !common.IsNil(o.Metadata) {
		toSerialize["metadata"] = o.Metadata
	}
	if !common.IsNil(o.Mode) {
		toSerialize["mode"] = o.Mode
	}
	if !common.IsNil(o.MpiData) {
		toSerialize["mpiData"] = o.MpiData
	}
	if !common.IsNil(o.PlatformChargebackLogic) {
		toSerialize["platformChargebackLogic"] = o.PlatformChargebackLogic
	}
	if !common.IsNil(o.RecurringExpiry) {
		toSerialize["recurringExpiry"] = o.RecurringExpiry
	}
	if !common.IsNil(o.RecurringFrequency) {
		toSerialize["recurringFrequency"] = o.RecurringFrequency
	}
	if !common.IsNil(o.RecurringProcessingModel) {
		toSerialize["recurringProcessingModel"] = o.RecurringProcessingModel
	}
	if !common.IsNil(o.RedirectFromIssuerMethod) {
		toSerialize["redirectFromIssuerMethod"] = o.RedirectFromIssuerMethod
	}
	if !common.IsNil(o.RedirectToIssuerMethod) {
		toSerialize["redirectToIssuerMethod"] = o.RedirectToIssuerMethod
	}
	toSerialize["reference"] = o.Reference
	toSerialize["returnUrl"] = o.ReturnUrl
	if !common.IsNil(o.RiskData) {
		toSerialize["riskData"] = o.RiskData
	}
	if !common.IsNil(o.SessionData) {
		toSerialize["sessionData"] = o.SessionData
	}
	if !common.IsNil(o.ShopperEmail) {
		toSerialize["shopperEmail"] = o.ShopperEmail
	}
	if !common.IsNil(o.ShopperIP) {
		toSerialize["shopperIP"] = o.ShopperIP
	}
	if !common.IsNil(o.ShopperInteraction) {
		toSerialize["shopperInteraction"] = o.ShopperInteraction
	}
	if !common.IsNil(o.ShopperLocale) {
		toSerialize["shopperLocale"] = o.ShopperLocale
	}
	if !common.IsNil(o.ShopperName) {
		toSerialize["shopperName"] = o.ShopperName
	}
	if !common.IsNil(o.ShopperReference) {
		toSerialize["shopperReference"] = o.ShopperReference
	}
	if !common.IsNil(o.ShopperStatement) {
		toSerialize["shopperStatement"] = o.ShopperStatement
	}
	if !common.IsNil(o.ShowInstallmentAmount) {
		toSerialize["showInstallmentAmount"] = o.ShowInstallmentAmount
	}
	if !common.IsNil(o.ShowRemovePaymentMethodButton) {
		toSerialize["showRemovePaymentMethodButton"] = o.ShowRemovePaymentMethodButton
	}
	if !common.IsNil(o.SocialSecurityNumber) {
		toSerialize["socialSecurityNumber"] = o.SocialSecurityNumber
	}
	if !common.IsNil(o.SplitCardFundingSources) {
		toSerialize["splitCardFundingSources"] = o.SplitCardFundingSources
	}
	if !common.IsNil(o.Splits) {
		toSerialize["splits"] = o.Splits
	}
	if !common.IsNil(o.Store) {
		toSerialize["store"] = o.Store
	}
	if !common.IsNil(o.StoreFiltrationMode) {
		toSerialize["storeFiltrationMode"] = o.StoreFiltrationMode
	}
	if !common.IsNil(o.StorePaymentMethod) {
		toSerialize["storePaymentMethod"] = o.StorePaymentMethod
	}
	if !common.IsNil(o.StorePaymentMethodMode) {
		toSerialize["storePaymentMethodMode"] = o.StorePaymentMethodMode
	}
	if !common.IsNil(o.TelephoneNumber) {
		toSerialize["telephoneNumber"] = o.TelephoneNumber
	}
	if !common.IsNil(o.ThemeId) {
		toSerialize["themeId"] = o.ThemeId
	}
	if !common.IsNil(o.ThreeDS2RequestData) {
		toSerialize["threeDS2RequestData"] = o.ThreeDS2RequestData
	}
	if !common.IsNil(o.ThreeDSAuthenticationOnly) {
		toSerialize["threeDSAuthenticationOnly"] = o.ThreeDSAuthenticationOnly
	}
	if !common.IsNil(o.TrustedShopper) {
		toSerialize["trustedShopper"] = o.TrustedShopper
	}
	if !common.IsNil(o.Url) {
		toSerialize["url"] = o.Url
	}
	return toSerialize, nil
}

type NullableCreateCheckoutSessionResponse struct {
	value *CreateCheckoutSessionResponse
	isSet bool
}

func (v NullableCreateCheckoutSessionResponse) Get() *CreateCheckoutSessionResponse {
	return v.value
}

func (v *NullableCreateCheckoutSessionResponse) Set(val *CreateCheckoutSessionResponse) {
	v.value = val
	v.isSet = true
}

func (v NullableCreateCheckoutSessionResponse) IsSet() bool {
	return v.isSet
}

func (v *NullableCreateCheckoutSessionResponse) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableCreateCheckoutSessionResponse(val *CreateCheckoutSessionResponse) *NullableCreateCheckoutSessionResponse {
	return &NullableCreateCheckoutSessionResponse{value: val, isSet: true}
}

func (v NullableCreateCheckoutSessionResponse) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableCreateCheckoutSessionResponse) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}

func (o *CreateCheckoutSessionResponse) isValidChannel() bool {
	var allowedEnumValues = []string{"iOS", "Android", "Web"}
	for _, allowed := range allowedEnumValues {
		if o.GetChannel() == allowed {
			return true
		}
	}
	return false
}
func (o *CreateCheckoutSessionResponse) isValidMode() bool {
	var allowedEnumValues = []string{"embedded", "hosted"}
	for _, allowed := range allowedEnumValues {
		if o.GetMode() == allowed {
			return true
		}
	}
	return false
}
func (o *CreateCheckoutSessionResponse) isValidRecurringProcessingModel() bool {
	var allowedEnumValues = []string{"CardOnFile", "Subscription", "UnscheduledCardOnFile"}
	for _, allowed := range allowedEnumValues {
		if o.GetRecurringProcessingModel() == allowed {
			return true
		}
	}
	return false
}
func (o *CreateCheckoutSessionResponse) isValidShopperInteraction() bool {
	var allowedEnumValues = []string{"Ecommerce", "ContAuth", "Moto", "POS"}
	for _, allowed := range allowedEnumValues {
		if o.GetShopperInteraction() == allowed {
			return true
		}
	}
	return false
}
func (o *CreateCheckoutSessionResponse) isValidStoreFiltrationMode() bool {
	var allowedEnumValues = []string{"exclusive", "inclusive", "skipFilter"}
	for _, allowed := range allowedEnumValues {
		if o.GetStoreFiltrationMode() == allowed {
			return true
		}
	}
	return false
}
func (o *CreateCheckoutSessionResponse) isValidStorePaymentMethodMode() bool {
	var allowedEnumValues = []string{"askForConsent", "disabled", "enabled"}
	for _, allowed := range allowedEnumValues {
		if o.GetStorePaymentMethodMode() == allowed {
			return true
		}
	}
	return false
}
