/* Options: Date: 2026-11-08 11:51:39 Version: 5.140 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://devapi.billhighway.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: DonationCreditCardRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export 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") public FullName: string; /** * Billing address. Maximum 100 characters. */ // @ApiMember(Description="Billing address. Maximum 100 characters.", IsRequired=true, Name="Address") public Address: string; /** * Billing city. Maximum 100 characters. */ // @ApiMember(Description="Billing city. Maximum 100 characters.", IsRequired=true, Name="City") public City: string; /** * 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") public State: string; /** * Credit Card billing address postal code. Maximum 10 characters. */ // @ApiMember(Description="Credit Card billing address postal code. Maximum 10 characters.", IsRequired=true, Name="PostalCode") public PostalCode: string; /** * 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") public EmailAddress: string; /** * Preferred phone number. Maximum 12 characters. */ // @ApiMember(Description="Preferred phone number. Maximum 12 characters.", Name="Phone") public Phone: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DonationMemberInfo { // @ApiMember(IsRequired=true) public BhUserId: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class DonationRecurringInfo { /** * How often donation is collected automatically */ // @ApiMember(Description="How often donation is collected automatically", IsRequired=true, Name="Frequency") public Frequency: string; /** * Number of recurring donation cycles. */ // @ApiMember(Description="Number of recurring donation cycles.", IsRequired=true, Name="NumberOfOccurrences") public NumberOfOccurrences: number; /** * 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") public FutureDonationDate?: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class Dictionary { [Key: string]: T; } export class JsonObject extends Dictionary { public constructor(init?: Partial) { super(); (Object as any).assign(this, init); } } export 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") public GroupId: string; /** * 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") public Amount: number; /** * 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") public CurrencyCode: string; /** * Notes about the donation. Maximum 70 characters. */ // @ApiMember(Description="Notes about the donation. Maximum 70 characters.", Name="Memo") public Memo: string; // @ApiMember() public DonationRecurringInfo: DonationRecurringInfo; /** * Custom fields */ // @ApiMember(Description="Custom fields", Name="MetaData") public MetaData: JsonObject; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export interface IDonationRequestWithDonorInfo { DonorInfo: DonationDonorInfo; MemberInfo: DonationMemberInfo; GroupId: string; } export interface IHaveErrorField { IsError: boolean; } export interface IHaveErrorField { IsError: boolean; } export class DonationCreditCardResponse implements IHaveErrorField { /** * Legacy ErrorCode */ // @ApiMember(Description="Legacy ErrorCode", ExcludeInSchema=true) // @Ignore() public ErrorCode: number; public ErrorMessage: string; public IsError: boolean; /** * Donation Transaction ID */ // @ApiMember(Description="Donation Transaction ID") public TransactionId: string; public CardRef: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/donations/creditcard", "POST") export class DonationCreditCardRequest extends DonationRequestBase implements IReturn, IDonationRequestWithDonorInfo { /** * Not required if MemberInfo is present on request */ // @ApiMember(Description="Not required if MemberInfo is present on request") public DonorInfo: DonationDonorInfo; /** * Not required if DonorInfo is present on request */ // @ApiMember(Description="Not required if DonorInfo is present on request") public MemberInfo: DonationMemberInfo; /** * Campaign to track donation against and to define fund allocation. Use GET /campaigns to retreive valid list of campaignIDs */ // @ApiMember(Description="Campaign to track donation against and to define fund allocation. Use GET /campaigns to retreive valid list of campaignIDs") public CampaignId?: number; /** * CardRef returned from client-side tokenization. Also handles raw card number if your servers are PCI-DSS-compliant, and in that case this must be a valid card number for the CardType indicated. */ // @ApiMember(Description="CardRef returned from client-side tokenization. Also handles raw card number if your servers are PCI-DSS-compliant, and in that case this must be a valid card number for the CardType indicated.", IsRequired=true, Name="CardReferenceOrCardNumber") public CardReferenceOrCardNumber: string; public CardType: string; /** * Credit Card Validation value. If Visa, Master Card or Discover, must be 3 digits. If AmEx, must be 4 digits. */ // @ApiMember(Description="Credit Card Validation value. If Visa, Master Card or Discover, must be 3 digits. If AmEx, must be 4 digits.", Name="Cvv") public Cvv: string; // @ApiMember(IsRequired=true) // @ApiMember(Description="Credit Card expiration month. Valid Values 1-12.", IsRequired=true, Name="ExpirationMonth") public ExpirationMonth: number; /** * Credit Card expiration year. Four-digit Year. Value cannot be less than current year or more than 20 years in the future. ExpMonth + ExpYear must not be in the past. */ // @ApiMember(Description="Credit Card expiration year. Four-digit Year. Value cannot be less than current year or more than 20 years in the future. ExpMonth + ExpYear must not be in the past.", IsRequired=true, Name="ExpirationYear") public ExpirationYear: number; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } public getTypeName() { return 'DonationCreditCardRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new DonationCreditCardResponse(); } }