/* Options: Date: 2026-11-08 11:52:01 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: CoreChargeRq.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/integrations/api/{integrationType}/core/charge", "POST") public class CoreChargeRq : IReturn, IChargeRequest, Codable { public typealias Return = CoreChargeRs // @ApiMember(ParameterType="path") public var integrationType:String? public var nationalId:Int? public var chapterId:Int? public var storedAccountId:Int? public var contextIntegrationPartnerId:Int? public var callerIntegrationPartnerId:Int? public var userId:Int? public var authenticationId:Int? public var chargeType:String? public var token:String? // @ApiMember(Format="decimal", ParameterType="model") public var amount:Double? public var Description:String? public var invoices:[Int:Double] = [:] public var createdById:Int? public var referenceIds:[ReferenceIdTypedAssociationItem] = [] public var transactionId:Int? required public init(){} } public class CoreChargeRs : Codable { public var transactionId:String? public var storedAccountId:Int? public var nationalId:Int? public var chapterId:Int? public var chargeType:String? public var integrationType:String? public var contextIntegrationPartnerId:Int? public var callerIntegrationPartnerId:Int? public var gatewayResponse:CoreChargeGatewaySaleResponse? public var chargeDetails:CoreChargeDetails? required public init(){} } public protocol IChargeRequest { var integrationType:String? { get set } var nationalId:Int? { get set } var chapterId:Int? { get set } var storedAccountId:Int? { get set } var contextIntegrationPartnerId:Int? { get set } var callerIntegrationPartnerId:Int? { get set } var authenticationId:Int? { get set } var chargeType:String? { get set } var token:String? { get set } var amount:Double? { get set } var Description:String? { get set } var createdById:Int? { get set } var transactionId:Int? { get set } } public class ReferenceIdTypedAssociationItem : Codable { public var value:String? public var type:String? required public init(){} } public class CoreChargeGatewaySaleResponse : Codable { public var failureType:String? public var isDuplicate:Bool? public var isSuccessful:Bool? public var errorCode:String? public var message:String? public var gatewayId:Int? public var confirmationNumber:String? public var networkTransactionId:String? required public init(){} } public class CoreChargeDetails : Codable { public var paymentType:String? public var amount:Int? public var integrationType:String? public var currency:String? public var cardDetails:CoreCreditCardChargeDetails? required public init(){} } public class AttributeItem : Codable { public var name:String? public var value:String? required public init(){} } public class CreditCardBillingAddressItem : Codable { public var address1:String? public var address2:String? public var city:String? public var postalCode:String? public var region:String? public var country:String? public var attributes:[AttributeItem] = [] required public init(){} } public class CoreCreditCardChargeDetails : Codable { public var cardType:String? public var expMonth:Int? public var expYear:Int? public var last4:String? public var address:CreditCardBillingAddressItem? public var verificationResult:CreditCardChargeVerificationResult? required public init(){} } public class CreditCardChargeVerificationResult : Codable { public var networkVerificationAttempted:Bool? public var cvvVerificationResult:String? public var addressVerificationResult:String? public var postalCodeVerificationResult:String? required public init(){} } public class AttributeItem : Codable { public var name:String? public var value:String? required public init(){} }