Billhighway Cloud API

<back to all web services

DonationAchRequest

The following routes are available for this service:
POST/donations/ach
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BH.CloudAPI.Common4.DTO.Donations
Imports ServiceStack.Text

Namespace Global

    Namespace BH.CloudAPI.Common4.DTO.Donations

        Public Partial Class DonationAchRequest
            Inherits DonationRequestBase
            Implements IDonationRequestWithDonorInfo
            '''<Summary>
            '''Not required if MemberInfo is present on request
            '''</Summary>
            <ApiMember(Description:="Not required if MemberInfo is present on request")>
            Public Overridable Property DonorInfo As DonationDonorInfo

            '''<Summary>
            '''Not required if DonorInfo is present on request
            '''</Summary>
            <ApiMember(Description:="Not required if DonorInfo is present on request")>
            Public Overridable Property MemberInfo As DonationMemberInfo

            '''<Summary>
            '''Use GET /campaigns to retreive valid list of campaignIDs
            '''</Summary>
            <ApiMember(Description:="Use GET /campaigns to retreive valid list of campaignIDs")>
            Public Overridable Property CampaignId As Nullable(Of Integer)

            '''<Summary>
            '''RoutingNumber and AccountNumber are not required if AchRef is provided
            '''</Summary>
            <ApiMember(Description:="RoutingNumber and AccountNumber are not required if AchRef is provided")>
            Public Overridable Property AchRef As String

            '''<Summary>
            '''Required if AchRef is not provided
            '''</Summary>
            <ApiMember(Description:="Required if AchRef is not provided")>
            Public Overridable Property RoutingNumber As String

            '''<Summary>
            '''Required if AchRef is not provided
            '''</Summary>
            <ApiMember(Description:="Required if AchRef is not provided")>
            Public Overridable Property AccountNumber As String
        End Class

        Public Partial Class DonationAchResponse
            Implements IHaveErrorField
            '''<Summary>
            '''Legacy ErrorCode
            '''</Summary>
            <ApiMember(Description:="Legacy ErrorCode", ExcludeInSchema:=true)>
            <Ignore>
            Public Overridable Property ErrorCode As Integer

            Public Overridable Property ErrorMessage As String
            Public Overridable Property IsError As Boolean
            '''<Summary>
            '''Donation Transaction ID
            '''</Summary>
            <ApiMember(Description:="Donation Transaction ID")>
            Public Overridable Property TransactionId As String
        End Class

        Public Partial Class DonationDonorInfo
            '''<Summary>
            '''Name of donor. Maximum 100 characters. Format must be Firstname {space} Lastname.
            '''</Summary>
            <ApiMember(Description:="Name of donor. Maximum 100 characters. Format must be Firstname {space} Lastname.", IsRequired:=true, Name:="FullName")>
            Public Overridable Property FullName As String

            '''<Summary>
            '''Billing address. Maximum 100 characters.
            '''</Summary>
            <ApiMember(Description:="Billing address. Maximum 100 characters.", IsRequired:=true, Name:="Address")>
            Public Overridable Property Address As String

            '''<Summary>
            '''Billing city. Maximum 100 characters.
            '''</Summary>
            <ApiMember(Description:="Billing city. Maximum 100 characters.", IsRequired:=true, Name:="City")>
            Public Overridable Property City As String

            '''<Summary>
            '''Billing state. Two characters, must match valid US state code.
            '''</Summary>
            <ApiMember(Description:="Billing state. Two characters, must match valid US state code.", IsRequired:=true, Name:="State")>
            Public Overridable Property State As String

            '''<Summary>
            '''Credit Card billing address postal code. Maximum 10 characters.
            '''</Summary>
            <ApiMember(Description:="Credit Card billing address postal code. Maximum 10 characters.", IsRequired:=true, Name:="PostalCode")>
            Public Overridable Property PostalCode As String

            '''<Summary>
            '''Email address of donor. Maximum 100 characters. If provided, must be valid email format.
            '''</Summary>
            <ApiMember(Description:="Email address of donor. Maximum 100 characters. If provided, must be valid email format.", Name:="EmailAddress")>
            Public Overridable Property EmailAddress As String

            '''<Summary>
            '''Preferred phone number. Maximum 12 characters.
            '''</Summary>
            <ApiMember(Description:="Preferred phone number. Maximum 12 characters.", Name:="Phone")>
            Public Overridable Property Phone As String
        End Class

        Public Partial Class DonationMemberInfo
            <ApiMember(IsRequired:=true)>
            Public Overridable Property BhUserId As Integer
        End Class

        Public Partial Class DonationRecurringInfo
            '''<Summary>
            '''How often donation is collected automatically
            '''</Summary>
            <ApiMember(Description:="How often donation is collected automatically", IsRequired:=true, Name:="Frequency")>
            Public Overridable Property Frequency As String

            '''<Summary>
            '''Number of recurring donation cycles.
            '''</Summary>
            <ApiMember(Description:="Number of recurring donation cycles.", IsRequired:=true, Name:="NumberOfOccurrences")>
            Public Overridable Property NumberOfOccurrences As Integer

            '''<Summary>
            '''Allows the submitter to set a future date for the donation
            '''</Summary>
            <ApiMember(Description:="Allows the submitter to set a future date for the donation", Name:="FutureDonationDate")>
            Public Overridable Property FutureDonationDate As Nullable(Of Date)
        End Class

        Public Partial Class DonationRequestBase
            '''<Summary>
            '''Client value for Group. String must already be configured in Billhighway system.
            '''</Summary>
            <ApiMember(Description:="Client value for Group. String must already be configured in Billhighway system.", IsRequired:=true, Name:="GroupID")>
            Public Overridable Property GroupId As String

            '''<Summary>
            '''Amount of the payment. Must be an amount less than $10,000,000.00.
            '''</Summary>
            <ApiMember(Description:="Amount of the payment. Must be an amount less than $10,000,000.00.", IsRequired:=true, Name:="Amount")>
            Public Overridable Property Amount As Decimal

            '''<Summary>
            '''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
            '''</Summary>
            <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 Overridable Property CurrencyCode As String

            '''<Summary>
            '''Notes about the donation. Maximum 70 characters.
            '''</Summary>
            <ApiMember(Description:="Notes about the donation. Maximum 70 characters.", Name:="Memo")>
            Public Overridable Property Memo As String

            <ApiMember>
            Public Overridable Property DonationRecurringInfo As DonationRecurringInfo

            '''<Summary>
            '''Custom fields
            '''</Summary>
            <ApiMember(Description:="Custom fields", Name:="MetaData")>
            Public Overridable Property MetaData As JsonObject
        End Class
    End Namespace

    Namespace ServiceStack.Text

        Public Partial Class JsonObject
            Inherits Dictionary(Of String, String)
        End Class
    End Namespace
End Namespace

VB.NET DonationAchRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /donations/ach HTTP/1.1 
Host: devapi.billhighway.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"DonorInfo":{"FullName":"String","Address":"String","City":"String","State":"String","PostalCode":"String","EmailAddress":"String","Phone":"String"},"MemberInfo":{"BhUserId":0},"CampaignId":0,"AchRef":"String","RoutingNumber":"String","AccountNumber":"String","GroupId":"String","Amount":0,"CurrencyCode":"String","Memo":"String","DonationRecurringInfo":{"Frequency":"String","NumberOfOccurrences":0,"FutureDonationDate":"0001-01-01T00:00:00.0000000"},"MetaData":{"String":"String"}}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"ErrorCode":0,"ErrorMessage":"String","IsError":false,"TransactionId":"String"}