/* Options: Date: 2024-11-14 01:31:51 Version: 6.10 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.paysecure.acculynk.net //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: AchAuthorizeDebitRequest.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/ACHDebit", Verbs="POST") @DataContract open class AchAuthorizeDebitRequest : IReturn { @DataMember var Credentials:RequestorCredentials? = null @DataMember var ACHToken:ACHTokenDescriptor? = null @DataMember var Amount:Int? = null @DataMember var ReferenceKey:String? = null @DataMember var Custom1:String? = null @DataMember var Custom2:String? = null @DataMember var Custom3:String? = null @DataMember var Custom4:String? = null @DataMember var Custom5:String? = null @DataMember var SignatureHash:String? = null @DataMember var CurrencyCode:String? = null @DataMember var ExtendedData:ACHExtendedData? = null companion object { private val responseType = AchAuthorizeDebit::class.java } override fun getResponseType(): Any? = AchAuthorizeDebitRequest.responseType } @DataContract open class AchAuthorizeDebit : AchPaysecureVersion() { @DataMember var TranId:String? = null @DataMember var ApprovalCode:String? = null @DataMember var ResponseCode:String? = null @DataMember var Network:String? = null @DataMember var ApprovedAmount:Int? = null @DataMember var ErrorMessage:String? = null @DataMember var ErrorCode:String? = null @DataMember(EmitDefaultValue=false) var AchProviderDetails:AchProviderResponse? = null } open class RequestorCredentials { @Required() var MerchantId:String? = null @Required() var UserName:String? = null @Required() var Password:String? = null @Required() var Version:String? = null } open class ACHTokenDescriptor { var ACHTokenType:ACHType? = null var ACHTokenData:String? = null } @DataContract open class ACHExtendedData { @DataMember var CashbackAmount:Int? = null @DataMember var ConnectPaySubScriberId:String? = null @DataMember var OrganizationId:String? = null @DataMember var DeviceFingerPrint:String? = null @DataMember var MerchantSessionId:String? = null @DataMember var CurrencyCode:String? = null @DataMember var PaymentType:String? = null @DataMember var VerifyCustomer:Boolean? = null @DataMember var CustomerExternalId:String? = null @DataMember var Description:String? = null @DataMember var CustomerName:String? = null @DataMember var AddressLine1:String? = null @DataMember var AddressLine2:String? = null @DataMember var City:String? = null @DataMember var State:String? = null @DataMember var Zip:String? = null @DataMember var Country:String? = null @DataMember var Email:String? = null @DataMember var TelephoneNumber:String? = null @DataMember var ReturnUrl:String? = null @DataMember var CancelUrl:String? = null @DataMember var EstablishData:String? = null @DataMember var RedirectUrl:String? = null @DataMember var RetryAttemptCount:Int? = null @DataMember var SignatureHashVersion:String? = null @DataMember var DeadlineHashDate:Date? = null } @DataContract open class RequestTimestamps { @DataMember(EmitDefaultValue=false) var AppLayer:InOutTimes? = null @DataMember(EmitDefaultValue=false) var ParentLookup:InOutTimes? = null @DataMember(EmitDefaultValue=false) var RetryLookup:InOutTimes? = null @DataMember(EmitDefaultValue=false) var GetCardData:InOutTimes? = null @DataMember(EmitDefaultValue=false) var CardTokenize:InOutTimes? = null @DataMember(EmitDefaultValue=false) var CardEncrypt:InOutTimes? = null @DataMember(EmitDefaultValue=false) var DBInsert:InOutTimes? = null @DataMember(EmitDefaultValue=false) var BackendProcess:InOutTimes? = null @DataMember(EmitDefaultValue=false) var DBUpdate:InOutTimes? = null @DataMember(EmitDefaultValue=false) var ParentUpdate:InOutTimes? = null @DataMember(EmitDefaultValue=false) var Network:InOutTimes? = null } @DataContract open class PaysecureResponseInternal { @DataMember(EmitDefaultValue=false) var Timestamps:RequestTimestamps? = null } @DataContract open class AchProviderResponse { @DataMember var NetworkResponseCode:String? = null @DataMember var TransactionStatusCode:Int? = null } @DataContract open class ACHExtendedDataResponse { @DataMember(EmitDefaultValue=false) var NetworkResponseCode:String? = null @DataMember(EmitDefaultValue=false) var NetworkErrorCode:String? = null @DataMember(EmitDefaultValue=false) var DeclineReferenceCode:String? = null @DataMember(EmitDefaultValue=false) var NetworkTransactionId:String? = null } @DataContract open class AchPaysecureVersion : PaysecureResponseInternal() { @DataMember(EmitDefaultValue=false) var LocalDateTime:String? = null @DataMember(EmitDefaultValue=false) var ExtendedData:ACHExtendedDataResponse? = null } enum class ACHType { Token, CpToken, } @DataContract open class InOutTimes { }