/* Options: Date: 2026-11-08 12:03:50 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: DonationAchRequest.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/donations/ach", Verbs="POST") open class DonationAchRequest : DonationRequestBase(), IReturn, IDonationRequestWithDonorInfo { /** * Not required if MemberInfo is present on request */ @ApiMember(Description="Not required if MemberInfo is present on request") var DonorInfo:DonationDonorInfo? = null /** * Not required if DonorInfo is present on request */ @ApiMember(Description="Not required if DonorInfo is present on request") var MemberInfo:DonationMemberInfo? = null /** * Use GET /campaigns to retreive valid list of campaignIDs */ @ApiMember(Description="Use GET /campaigns to retreive valid list of campaignIDs") var CampaignId:Int? = null /** * RoutingNumber and AccountNumber are not required if AchRef is provided */ @ApiMember(Description="RoutingNumber and AccountNumber are not required if AchRef is provided") var AchRef:String? = null /** * Required if AchRef is not provided */ @ApiMember(Description="Required if AchRef is not provided") var RoutingNumber:String? = null /** * Required if AchRef is not provided */ @ApiMember(Description="Required if AchRef is not provided") var AccountNumber:String? = null companion object { private val responseType = DonationAchResponse::class.java } override fun getResponseType(): Any? = DonationAchRequest.responseType } open class DonationAchResponse : IHaveErrorField { /** * Legacy ErrorCode */ @ApiMember(Description="Legacy ErrorCode", ExcludeInSchema=true) @Ignore() var ErrorCode:Int? = null var ErrorMessage:String? = null var IsError:Boolean? = null /** * Donation Transaction ID */ @ApiMember(Description="Donation Transaction ID") var TransactionId:String? = null } open class DonationDonorInfo { /** * Name of donor. Maximum 100 characters. Format must be Firstname {space} Lastname. */ @ApiMember(Description="Name of donor. Maximum 100 characters. Format must be Firstname {space} Lastname.", IsRequired=true, Name="FullName") var FullName:String? = null /** * Billing address. Maximum 100 characters. */ @ApiMember(Description="Billing address. Maximum 100 characters.", IsRequired=true, Name="Address") var Address:String? = null /** * Billing city. Maximum 100 characters. */ @ApiMember(Description="Billing city. Maximum 100 characters.", IsRequired=true, Name="City") var City:String? = null /** * Billing state. Two characters, must match valid US state code. */ @ApiMember(Description="Billing state. Two characters, must match valid US state code.", IsRequired=true, Name="State") var State:String? = null /** * Credit Card billing address postal code. Maximum 10 characters. */ @ApiMember(Description="Credit Card billing address postal code. Maximum 10 characters.", IsRequired=true, Name="PostalCode") var PostalCode:String? = null /** * Email address of donor. Maximum 100 characters. If provided, must be valid email format. */ @ApiMember(Description="Email address of donor. Maximum 100 characters. If provided, must be valid email format.", Name="EmailAddress") var EmailAddress:String? = null /** * Preferred phone number. Maximum 12 characters. */ @ApiMember(Description="Preferred phone number. Maximum 12 characters.", Name="Phone") var Phone:String? = null } open class DonationMemberInfo { @ApiMember(IsRequired=true) var BhUserId:Int? = null } open class DonationRecurringInfo { /** * How often donation is collected automatically */ @ApiMember(Description="How often donation is collected automatically", IsRequired=true, Name="Frequency") var Frequency:String? = null /** * Number of recurring donation cycles. */ @ApiMember(Description="Number of recurring donation cycles.", IsRequired=true, Name="NumberOfOccurrences") var NumberOfOccurrences:Int? = null /** * Allows the submitter to set a future date for the donation */ @ApiMember(Description="Allows the submitter to set a future date for the donation", Name="FutureDonationDate") var FutureDonationDate:Date? = null } open class JsonObject : HashMap() { } open class DonationRequestBase { /** * Client value for Group. String must already be configured in Billhighway system. */ @ApiMember(Description="Client value for Group. String must already be configured in Billhighway system.", IsRequired=true, Name="GroupID") var GroupId:String? = null /** * Amount of the payment. Must be an amount less than $10,000,000.00. */ @ApiMember(Description="Amount of the payment. Must be an amount less than $10,000,000.00.", IsRequired=true, Name="Amount") var Amount:BigDecimal? = null /** * The currency the payment is being made in. Three digit currency code (see ISO 4217) for a valid currency supported by Billhighway. Defaults to USD */ @ApiMember(Description="The currency the payment is being made in. Three digit currency code (see ISO 4217) for a valid currency supported by Billhighway. Defaults to USD", ExcludeInSchema=true, Name="CurrencyCode") var CurrencyCode:String? = null /** * Notes about the donation. Maximum 70 characters. */ @ApiMember(Description="Notes about the donation. Maximum 70 characters.", Name="Memo") var Memo:String? = null @ApiMember() var DonationRecurringInfo:DonationRecurringInfo? = null /** * Custom fields */ @ApiMember(Description="Custom fields", Name="MetaData") var MetaData:JsonObject? = null } open interface IDonationRequestWithDonorInfo { var DonorInfo:DonationDonorInfo? var MemberInfo:DonationMemberInfo? var GroupId:String? } open interface IHaveErrorField { var IsError:Boolean? } open interface IHaveErrorField { var IsError:Boolean? }