(* Options: Date: 2024-05-12 15:12:56 Version: 6.50 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://www.clubready.com/api/current //GlobalNamespace: //MakeDataContractsExtensible: False //AddReturnMarker: True //AddDescriptionAsComments: True //AddDataContractAttributes: False //AddIndexesToDataMembers: False //AddGeneratedCodeAttributes: False //AddResponseStatus: False //AddImplicitVersion: //ExportValueTypes: False IncludeTypes: SellContractAndSetupClientRequest.* //ExcludeTypes: //InitializeCollections: True //AddNamespaces: *) namespace ClubReady.Core.Api.Models open System open System.Collections open System.Collections.Generic open System.Runtime.Serialization open ServiceStack open ServiceStack.DataAnnotations type RestrictedResourceType = | Store = 0 | Chain = 1 | User = 2 | Undefined = 3 [] type IRestrictedApiRequest = abstract RestrictedId:Nullable with get,set abstract RestrictedResourceType:RestrictedResourceType with get,set [] type IApiKeyEndpoint = abstract ApiKey:String with get,set [] type ApiDtoBase() = member val ApiKey:String = null with get,set member val StoreId:Nullable = new Nullable() with get,set member val ChainId:Nullable = new Nullable() with get,set [] type AcctType = | Uninitialized = 0 | Visa = 1 | MC = 2 | Disc = 3 | Amex = 4 | Diners = 5 | JCB = 6 | enRoute = 7 | PayPal = 8 | BillMe = 9 | PC = 11 | PS = 12 | BC = 13 | BS = 14 | Becs = 15 | Bacs = 16 | Maestro = 20 | Solo = 21 | VisaElectron = 22 | CIBC = 23 | RoyalBankCa = 24 | TDCaTrust = 25 | Scotia = 26 | BMO = 27 | HSBCCa = 28 | UnionPay = 29 | InterPayment = 30 | Laser = 31 | UnknownCredit = 40 | TransArmor = 41 | Factor4 = 42 | XPass = 43 | ConnectedAccount = 44 | Error = -1 type PaymentMethodType = | Uninitialized = 0 | PaymentProfileId = 1 | PreferredOnFile = 2 | AcctToken = 3 | Error = -1 [] [] type PaymentMethodDto() = [] member val AcctToken:String = null with get,set [] member val ProfileToken:String = null with get,set [] member val PaymentProfileId:String = null with get,set [] member val PaymentAmount:Nullable = new Nullable() with get,set [] member val PaymentMethodType:Nullable = new Nullable() with get,set [] member val DoNotUpdatePaymentTypePreference:Nullable = new Nullable() with get,set [] type SellContractAndSetupClientDto() = inherit ApiDtoBase() member val AcctToken:String = null with get,set member val Last4:String = null with get,set member val ExpMonth:Nullable = new Nullable() with get,set member val ExpYear:Nullable = new Nullable() with get,set member val AcctType:Nullable = new Nullable() with get,set member val BnkRoute:Nullable = new Nullable() with get,set member val IsTemp:Boolean = new Boolean() with get,set member val PackageId:Int32 = new Int32() with get,set member val InstallmentPlanId:Int32 = new Int32() with get,set member val PaymentAmount:Decimal = new Decimal() with get,set member val StartDate:Nullable = new Nullable() with get,set member val FirstName:String = null with get,set member val LastName:String = null with get,set member val Address:String = null with get,set member val City:String = null with get,set member val State:String = null with get,set member val Zip:String = null with get,set member val Email:String = null with get,set member val Gender:String = null with get,set member val Phone:String = null with get,set member val WorkPhone:String = null with get,set member val DateOfBirth:Nullable = new Nullable() with get,set member val CellPhone:String = null with get,set member val Note:String = null with get,set member val ExternalId:String = null with get,set member val PromoCode:String = null with get,set member val Username:String = null with get,set member val ReferralTypeId:Nullable = new Nullable() with get,set member val EmergencyContactName:String = null with get,set member val EmergencyContactPhone:String = null with get,set member val EmergencyContactType:String = null with get,set member val PaymentMethods:ResizeArray = new ResizeArray() with get,set [] [, StatusCode=200)>] [] type SellContractAndSetupClientRequest() = inherit SellContractAndSetupClientDto() /// ///Api Authentication Key /// [] member val ApiKey:String = null with get,set /// ///Id for the chain of the Api Key /// [] member val ChainId:Nullable = new Nullable() with get,set /// ///Id of the store for the user /// [] member val StoreId:Nullable = new Nullable() with get,set /// ///Package Id being sold /// [] member val PackageId:Int32 = new Int32() with get,set /// ///Installment Plan Id being sold /// [] member val InstallmentPlanId:Int32 = new Int32() with get,set /// ///Amount being paid /// [] member val PaymentAmount:Decimal = new Decimal() with get,set /// ///Date contract takes affect /// [] member val StartDate:Nullable = new Nullable() with get,set /// ///First Name /// [] member val FirstName:String = null with get,set /// ///Last Name /// [] member val LastName:String = null with get,set /// ///Email Address /// [] member val Email:String = null with get,set /// ///Gender /// [] member val Gender:String = null with get,set /// ///Address /// [] member val Address:String = null with get,set /// ///City /// [] member val City:String = null with get,set /// ///State /// [] member val State:String = null with get,set /// ///Zip Code /// [] member val Zip:String = null with get,set /// ///Home phone /// [] member val Phone:String = null with get,set /// ///Work phone /// [] member val WorkPhone:String = null with get,set /// ///Date of Birth /// [] member val DateOfBirth:Nullable = new Nullable() with get,set /// ///Cell phone /// [] member val CellPhone:String = null with get,set /// ///Add an internal note for the new prospect /// [] member val Note:String = null with get,set /// ///Unique Id for the user from your system. We store internally as ExternalUserId /// [] member val ExternalId:String = null with get,set /// ///Promo code to apply a discount. /// [] member val PromoCode:String = null with get,set /// ///Username should be between 4 and 255 characters long /// [] member val Username:String = null with get,set /// ///ReferralTypeId /// [] member val ReferralTypeId:Nullable = new Nullable() with get,set /// ///Emergency contact name /// [] member val EmergencyContactName:String = null with get,set /// ///Emergency contact phone number /// [] member val EmergencyContactPhone:String = null with get,set /// ///Emergency contact relationship /// [] member val EmergencyContactType:String = null with get,set /// ///An array of Payment Methods to be used for this purchase. Any entry with PreferredOnFile is assumed if omitted or null. Each object of the array may contain properties:| Property | Description || --- | --- || PaymentMethodType | Usually "AcctToken" (Default or omitted/null) or "PreferredOnFile" || PaymentAmount | The amount to be attempted for this Payment Method. When omitted (or null), the Request's PaymentAmount will be attempted || AcctToken | The AcctToken to attempt payment (when using PaymentMethodType:AcctToken) || ProfileToken | When provided (with AcctToken), a Payment Profile will be created (this will prevent the requirement to call `/sales/paymentprofile/import` (when using PaymentMethodType:AcctToken) || DoNotUpdatePaymentTypePreference | When using ProfileToken, do not set the PaymentTypePreference (for more information, see `/sales/paymentprofile/import` (when using PaymentMethodType:AcctToken) || | |* Scenario #1: Use a Gift Card with PreferredOnFile to cover the amount not approved by the Gift Card. JSON:```json{ PaymentMethods: [ { "PaymentMethodType":"AcctToken", "PaymentAmount":"1.00", "AcctToken":"eyJ...GiftCard AcctToken...", "ProfileToken":"eyJ...Gift Card ProfileToken..." }, { "PaymentMethodType":"PreferredOnFile", "PaymentAmount":"1.00" } ]}```JSV:```[{PaymentMethodType:AcctToken,PaymentAmount:1.00,AcctToken:eyj...,ProfileToken:eyJ...},{PaymentMethodType:PreferredOnFile,PaymentAmount:1.00}]```* Scenario #2: Use a Gift Card with PreferredOnFile to cover the amount not approved by the Gift Card. JSON:```json{ PaymentMethods: [ { "PaymentMethodType":"AcctToken", "PaymentAmount":"1.00", "AcctToken":"eyJ...GiftCard AcctToken...", "ProfileToken":"eyJ...Gift Card ProfileToken..." }, { "PaymentMethodType":"PreferredOnFile", "PaymentAmount":"1.00" } ]}```JSV:```jsv[{PaymentMethodType:AcctToken,PaymentAmount:1.00,AcctToken:eyj...,ProfileToken:eyJ...},{PaymentMethodType:PreferredOnFile,PaymentAmount:1.00}]```Notes: * The example shows PaymentAmount of 1.00 for both "AcctToken" and "PreferredOnFile". This is for the examplewith a total of $1.00. The firstPaymentMethod (the Gift Card) will be attempted for $1.00. If it partially approvesfor less than 1.00 (example: $0.80), the second payment method (PreferredOnFile) will be attempted for the lesser ofit's PaymentAmount and the remaining amount (example: $0.20).* Because this endpoint creates a new user, the "PreferredOnFile" option is not applicable. Also, ProfileToken withthe OwnerType "TempstUser" is required because the Payment Profile owner will be converted to the newly created user.* When using Query String (or this web site), this value must be encoded with JSV [(JSON-like Separated Values)](https://docs.servicestack.net/jsv-format).Basic steps to convert JSON to JSV: 1) Remove properties that are null, 2) Remove white space including line feeds, 3) Remove quotes. /// [] member val PaymentMethods:ResizeArray = new ResizeArray() with get,set member val RestrictedId:Nullable = new Nullable() with get,set member val RestrictedResourceType:RestrictedResourceType = new RestrictedResourceType() with get,set /// ///**Deprecated** (Use `PaymentMethods` with `ProfileToken`) AcctToken provided by creating a Payment Profile with the Vault Api. Required if Package requires purchase and PaymentMethods is empty. /// [] member val AcctToken:String = null with get,set /// ///**Deprecated** (Use `PaymentMethods` with `ProfileToken`) Last 4 digits of the Payment Profile. Required with AcctToken. /// [] member val Last4:String = null with get,set /// ///**Deprecated** (Use `PaymentMethods` with `ProfileToken`) 2 digit expiration month. **Required with AcctToken for Credit Card.** /// [] member val ExpMonth:Nullable = new Nullable() with get,set /// ///**Deprecated** (Use `PaymentMethods` with `ProfileToken`) 2 digit expiration year. **Required with AcctToken for Credit Card.** /// [] member val ExpYear:Nullable = new Nullable() with get,set /// ///**Deprecated** (Use `PaymentMethods` with `ProfileToken`) The Account Type the Payment Profile
Common Values
TextNumericalAccount Type
VISA1Visa
MC2MasterCard
Disc3Discover
Amex4American Express
PC11Personal Checking
PS12Personal Savings
BC13Business Checking

You may use the Text or the Numerical value.

///
[\r\nCommon Values\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
TextNumericalAccount Type
VISA1Visa
MC2MasterCard
Disc3Discover
Amex4American Express
PC11Personal Checking
PS12Personal Savings
BC13Business Checking
\r\n

You may use the Text or the Numerical value.

\r\n")>] member val AcctType:Nullable = new Nullable() with get,set /// ///**Deprecated** (Use `PaymentMethods` with `ProfileToken`) Bank Routing Number. **Required with AcctToken for Bank Accounts.** /// [] member val BnkRoute:Nullable = new Nullable() with get,set /// ///**Deprecated** (Use `PaymentMethods` with `ProfileToken`) Whether the Payment Profile is Temporary. (One time transactions and Gift Cards are IsTemp = True). /// [] member val IsTemp:Boolean = new Boolean() with get,set