/* Options: Date: 2024-12-03 12:32:09 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: AchReverseRequest.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/ACHReverse", Verbs="POST") @DataContract open class AchReverseRequest : IReturn { @DataMember var Credentials:RequestorCredentials? = null @DataMember var OriginalData:OriginalTransaction? = null @DataMember var ReferenceKey:String? = null @DataMember var MerchantDetails:MerchantDescriptor? = 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 ExtendedData:ACHExtendedData? = null companion object { private val responseType = AchReverse::class.java } override fun getResponseType(): Any? = AchReverseRequest.responseType } @DataContract open class AchReverse : AchPaysecureVersion() { @DataMember var TranId:String? = null @DataMember var ResponseCode:String? = 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 MerchantDescriptor : MerchantDescriptorBase() { var Name:String? = null var Address:String? = null var City:String? = null var State:String? = null var Zip:String? = null var Country:String? = null var CustomerServiceNumber:String? = null var MCC:String? = null var FNSnum:String? = null var Email:String? = null } open class OriginalTransaction { var OriginalIdentifierType:OriginalDataType? = null var OriginalDataIdentifier: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 } open class MerchantDataElements { var RefundSettlementTypeDetails:Int? = null var SendRecurringPOSEntryModeFeature:Boolean? = null var UseOrgPOSCode:Boolean? = null } open class MerchantDescriptorBase { var DataElements:MerchantDataElements? = null } enum class OriginalDataType(val value:Int) { TransactionId(1), ReferenceKey(2), ExternalId(3), InternalTransactionId(4), } @DataContract open class InOutTimes { }