/* Options: Date: 2026-11-08 12:08:36 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://devapi.billhighway.com //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: HeldPaymentChargeRq.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/integrations/api/{integrationType}/heldpayment/charge", Verbs="POST") open class HeldPaymentChargeRq : IReturn, IChargeRequest { var integrationType:String? = null var NationalId:Int? = null var ChapterId:Int? = null var StoredAccountId:Long? = null var ContextIntegrationPartnerId:Int? = null var CallerIntegrationPartnerId:Int? = null var AuthenticationId:Int? = null var ChargeType:String? = null var Token:String? = null var Amount:BigDecimal? = null var Description:String? = null var CreatedById:Int? = null var TransactionId:Long? = null var StoreChargeAccount:Boolean? = null var ChargeItems:ArrayList = ArrayList() var CreatedBy:Int? = null companion object { private val responseType = HeldPaymentChargeRs::class.java } override fun getResponseType(): Any? = HeldPaymentChargeRq.responseType } open class HeldPaymentChargeRs { var TransactionId:String? = null var StoredAccountId:Long? = null var NationalId:Int? = null var ChapterId:Int? = null var ChargeType:String? = null var IntegrationType:String? = null var ContextIntegrationPartnerId:Int? = null var CallerIntegrationPartnerId:Int? = null var GatewayResponse:HeldPaymentGatewaySaleResponse? = null var ChargeDetails:HeldPaymentChargeDetails? = null var ChargeItems:ArrayList = ArrayList() } open class HeldPaymentChargeItem { var Type:String? = null var Description:String? = null var Amount:BigDecimal? = null var ClientInvoiceId:String? = null var ClientInvoiceOwnerTypeId:Int? = null } open interface IChargeRequest { var integrationType:String? var NationalId:Int? var ChapterId:Int? var StoredAccountId:Long? var ContextIntegrationPartnerId:Int? var CallerIntegrationPartnerId:Int? var AuthenticationId:Int? var ChargeType:String? var Token:String? var Amount:BigDecimal? var Description:String? var CreatedById:Int? var TransactionId:Long? } open class HeldPaymentGatewaySaleResponse { var FailureType:String? = null var IsDuplicate:Boolean? = null var IsSuccessful:Boolean? = null var ErrorCode:String? = null var Message:String? = null var GatewayId:Int? = null var ConfirmationNumber:String? = null var NetworkTransactionId:String? = null } open class HeldPaymentChargeDetails { var PaymentType:String? = null var Amount:BigDecimal? = null var IntegrationType:String? = null var Currency:String? = null var CardDetails:HeldPaymentCreditCardChargeDetails? = null var AchDetails:HeldPaymentAchChargeDetails? = null } open class AttributeItem { var Name:String? = null var Value:String? = null } open class CreditCardBillingAddressItem { var Address1:String? = null var Address2:String? = null var City:String? = null var PostalCode:String? = null var Region:String? = null var Country:String? = null var Attributes:ArrayList = ArrayList() } open class HeldPaymentCreditCardChargeDetails { var CardType:String? = null var ExpMonth:Int? = null var ExpYear:Int? = null var Last4:String? = null var Address:CreditCardBillingAddressItem? = null var VerificationResult:CreditCardChargeVerificationResult? = null } open class HeldPaymentAchChargeDetails { var AccountType:String? = null var RoutingNumber:String? = null var AccountNumberLast4:String? = null var BankName:String? = null var VerificationResult:AchChargeVerificationResult? = null } open class CreditCardChargeVerificationResult { var NetworkVerificationAttempted:Boolean? = null var CvvVerificationResult:String? = null var AddressVerificationResult:String? = null var PostalCodeVerificationResult:String? = null } open class AchChargeVerificationResult { var NetworkVerificationAttempted:Boolean? = null var Result:String? = null } open class AttributeItem { var Name:String? = null var Value:String? = null }