/* Options: Date: 2026-11-08 11:51:53 SwiftVersion: 5.0 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://devapi.billhighway.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: Pmi.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/PMI", "POST") public class Pmi : IReturn, Codable { public typealias Return = PmiReply public var uniqueId:String? public var createdDateTime:Date? public var clientId:Int? public var groupId:Int? public var memberInfo:Member? public var invoiceCollection:[Invoice] = [] public var ccPaymentInfo:CreditCardPayment? public var creditInfo:CreateApplyCredit? public var achPaymentInfo:AchPayment? public var lockboxId:Int? public var memberSubscriptionInvoiceId:Int? required public init(){} } // @Route("/payments/credit", "POST") public class CreateApplyCredit : IReturn, Codable { public typealias Return = CreateApplyCreditReply public var className:String? public var uniqueId:String? public var createdDateTime:Date? public var clientId:Int? public var groupId:String? public var userId:String? public var bhUserId:Int? public var creditId:Int? public var currencyType:String? public var creditType:String? public var notes:String? public var invoiceDetails:[SalesForceCreditInvoiceDetails] = [] required public init(){} } // @Route("/api/CreditCard/Payment", "POST") public class CreditCardPayment : CreditCardPayment, IReturn { public typealias Return = CreditCardPaymentResult public var subscriptionInfo:SubscriptionParameters? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case subscriptionInfo } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) subscriptionInfo = try container.decodeIfPresent(SubscriptionParameters.self, forKey: .subscriptionInfo) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if subscriptionInfo != nil { try container.encode(subscriptionInfo, forKey: .subscriptionInfo) } } } public class Invoice : IInvoiceValidation, Codable { public var uniqueId:String? public var clientId:Int? public var groupId:String? public var Description:String? public var opportunityId:String? public var installments:Int? public var frequency:Int? public var invoiceDueDate:Date? public var deliver:Bool? public var userId:String? public var bhUserId:Int? public var currencyType:String? public var invoiceItems:[InvoiceItem] = [] public var invoiceNo:Int? public var invoiceAmt:Double? public var externalInvBatchNo:String? public var exemptFromLateFee:Bool? required public init(){} } public class Invoice : IInvoiceValidation, Codable { public var uniqueId:String? public var clientId:Int? public var groupId:String? public var userId:String? public var opportunityId:String? public var invoiceDueDate:Date? public var installments:Int? public var frequency:Int? public var bhUserId:Int? public var Description:String? public var deliver:Bool? public var currencyType:String? public var invoiceItems:[InvoiceItem] = [] public var invoiceNo:Int? public var invoiceAmt:Double? public var externalInvBatchNo:String? public var exemptFromLateFee:Bool? required public init(){} } // @Route("/api/CreditCard/Payment", "POST") public class CreditCardPayment : CreditCardPayment, IReturn { public typealias Return = CreditCardPaymentResponse required public init(){ super.init() } required public init(from decoder: Decoder) throws { try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) } } public class PmiReply : IHaveErrorField, Codable { public var uniqueId:String? public var createdDateTime:Date? public var clientId:Int? public var billhighwayPaymentConfirmationNumber:String? public var billhighwayUserId:Int? public var bhInvoiceBatchId:[Int] = [] public var chapMemPayid:Int? public var errorCode:Int? public var errorMessage:String? public var isError:Bool? required public init(){} } public class AchPayment : Codable { public var className:String? public var uniqueId:String? public var createdDateTime:Date? public var clientId:Int? public var groupId:String? public var userId:String? public var bhUserId:Int? public var amount:Double? public var currencyType:String? public var country:String? public var routingNumber:String? public var accountNumber:String? public var achReference:String? public var accountType:String? public var isSavingsAccount:Bool? public var payerName:String? public var checkNumber:String? public var preferredEmailAddress:String? public var memo:String? public var invoiceList:[SalesForceMemberPaymentInvoiceDetail] = [] public var autoPay:Bool? public var storeAchInfo:Bool? public var encryptionTypeId:Int? required public init(){} } public class Member : Codable { public var className:String? public var uniqueId:String? public var createdDateTime:Date? public var clientId:Int? public var groupId:String? public var userId:String? public var alternateUserId:String? public var bhUserId:Int? public var firstName:String? public var lastName:String? public var middleName:String? public var preferredEmailAddress:String? public var otherEmailAddress:String? public var preferredPhoneNumber:String? public var preferredAddress1:String? public var preferredAddress2:String? public var preferredCity:String? public var preferredState:String? public var preferredZip:String? public var preferredCountry:String? public var accessLevel:String? public var memberStatus:String? public var memberTypeClient:String? public var billingType:String? public var fiscalYear:Int? public var workLocation:String? public var dob:Date? public var paperless:String? public var displayName:String? public var disableLogin:String? public var recurringInvoiceSettings:RecurringInvoiceSettings? public var formFields:[SubscriberFormField] = [] public var attributes:[AttributeItem] = [] public var groupList:[Chapter] = [] required public init(){} } public class CreditCardPayment : Codable { public var className:String? public var uniqueId:String? public var createdDateTime:Date? public var clientId:Int? public var groupId:String? public var userId:String? public var bhUserId:Int? public var amount:String? public var autoPay:Bool? public var currencyType:String? public var country:String? public var cardReferenceOrCardNumber:String? public var storeCardInfo:Bool? public var address1:String? public var address2:String? public var billingCity:String? public var billingState:String? public var preferredEmailAddress:String? public var memo:String? public var opportunityId:String? public var expMonth:Int? public var expYear:Int? public var cvv:String? public var postalCode:String? public var location:String? public var nameOnCard:String? public var cardType:String? public var invoiceList:[SalesForceMemberPaymentInvoiceDetail] = [] required public init(){} } public class CreditCardPayment : Codable { public var header:ApiClientHeader? public var billingAddress:AddressInformation? public var cardInfo:CreditCardInformation? public var paymentInfo:PaymentInformation? required public init(){} } // @DataContract(Namespace="www.billhighway.com/api") public class CreditCardPayment : IDTOHasApiKey, Codable { // @DataMember(Name="apiKey", Order=1) public var apiKey:String? // @DataMember(Name="clientId", Order=2) public var clientID:Int? // @DataMember(Name="groupId", Order=3) public var groupId:Int? // @DataMember(Name="amount", Order=4) public var amount:Double? // @DataMember(Name="nameOnCard", Order=5) public var nameOnCard:String? // @DataMember(Name="cardNumber", Order=6) public var cardNumber:String? // @DataMember(Name="cvv", Order=7) public var cvv:String? // @DataMember(Name="expMonth", Order=8) public var expMonth:Int? // @DataMember(Name="expYear", Order=9) public var expYear:Int? // @DataMember(Name="address", Order=10) public var address:String? // @DataMember(Name="city", Order=11) public var city:String? // @DataMember(Name="state", Order=12) public var state:String? // @DataMember(Name="postalCode", Order=13) public var postalCode:String? // @DataMember(Name="emailAddress", Order=14) public var emailAddress:String? // @DataMember(Name="memo", Order=15) public var memo:String? // @DataMember(Name="occurs", Order=16) public var occurs:String? // @DataMember(Name="numberOfOccurences", Order=17) public var numberOfOccurences:String? required public init(){} } public protocol IHaveErrorField { var isError:Bool? { get set } } public protocol IHaveErrorField { var isError:Bool? { get set } } public class SalesForceMemberPaymentInvoiceDetail : Codable { public var className:String? public var uniqueId:String? public var createdDateTime:Date? public var clientId:Int? public var invoice:Int? public var amountPaid:String? required public init(){} } public class SubscriberFormField : Codable { public var name:String? public var value:String? required public init(){} } public class RecurringInvoiceSettings : Codable { public var donationAmount:String? required public init(){} } public class AttributeItem : Codable { public var name:String? public var value:String? required public init(){} } public class Chapter : Codable { public var groupId:String? required public init(){} } public class SubscriberFormField : Codable { public var formTemplateFieldID:Int? public var name:String? public var value:String? required public init(){} } public class AttributeItem : Codable { public var name:String? public var value:String? required public init(){} }