Billhighway Cloud API

<back to all web services

SubscriptionCreateRq

The following routes are available for this service:
POST/signup/api/nat/{natID}/group/{groupID}/subscription
POST/signup/api/nat/{natID}/group/{groupID}/{userType}/user/{userID}/subscription
import Foundation
import ServiceStack

public class SubscriptionCreateRq : Codable
{
    public var natID:Int?
    public var groupID:Int?
    public var clientGroupID:String?
    public var userType:String?
    public var userID:String?
    public var formData:SubscriberFormData?
    public var subscriptionInfo:SubscriptionInformation?
    public var verificationInfo:ClientVerification?
    public var ccPaymentInfo:CcPaymentInformation?
    public var achPaymentInfo:AchPaymentInformation?
    public var billMeLater:BillMeLaterInformation?
    public var campaigns:[CampaignInformation] = []

    required public init(){}
}

public class SubscriberFormData : Codable
{
    public var formTemplateID:Int?
    public var signupTypeID:Int?
    public var formFields:[SubscriberFormField] = []

    required public init(){}
}

public class SubscriberFormField : Codable
{
    public var name:String?
    public var value:String?

    required public init(){}
}

public class SubscriptionInformation : Codable
{
    public var frequencyID:Int?
    public var subscriptionInvoiceID:Int?
    public var autoRenew:Bool?
    public var hasAgreedToTerms:Bool?
    public var clientSubscriberId:String?
    public var renewedMemberSubscriptionInvID:Int?

    required public init(){}
}

public class ClientVerification : Codable
{
    public var provider:String?
    public var verificationCode:String?

    required public init(){}
}

public class CcPaymentInformation : Codable
{
    public var cardNumber:String?
    public var cvv:String?
    public var expMonth:Int?
    public var expYear:Int?
    public var cardholderName:String?
    public var country:String?
    public var billingAddress:String?
    public var address1:String?
    public var address2:String?
    public var city:String?
    public var stateProvince:String?
    public var postalCode:String?

    required public init(){}
}

public class AchPaymentInformation : Codable
{
    public var accountHolderName:String?
    public var checkNumber:String?
    public var routingNumber:String?
    public var accountNumber:String?
    public var accountType:String?

    required public init(){}
}

public class BillMeLaterInformation : Codable
{
    public var isBillMeLaterPayment:Bool?
    public var isBillMeLaterSubscription:Bool?
    public var memberSubscriptionInvId:Int?
    public var campaigns:[CampaignInformation] = []

    required public init(){}
}

public class CampaignInformation : Codable
{
    public var campaignId:Int?
    public var campaignName:String?
    public var amount:Double?
    public var chapPayID:String?

    required public init(){}
}

public class SubscriptionCreateRs : Codable
{
    public var isSuccess:Bool?
    public var uniqueId:String?
    public var createdDateTime:Date?
    public var clientId:Int?
    public var billhighwayUserId:Int?
    public var confirmationNumber:String?
    public var paymentConfirmationNumber:Int?
    public var subscriptionConfirmationNumber:Int?
    public var errorCode:String?
    public var message:String?
    public var friendlyMessage:String?

    required public init(){}
}


Swift SubscriptionCreateRq DTOs

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

HTTP + JSV

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

POST /signup/api/nat/{natID}/group/{groupID}/subscription HTTP/1.1 
Host: devapi.billhighway.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	NatID: 0,
	GroupID: 0,
	ClientGroupID: String,
	UserType: String,
	UserID: String,
	FormData: 
	{
		FormTemplateID: 0,
		SignupTypeID: 0,
		FormFields: 
		[
			{
				FormTemplateFieldID: 0,
				Name: String,
				Value: String
			}
		]
	},
	SubscriptionInfo: 
	{
		FrequencyID: 0,
		SubscriptionInvoiceID: 0,
		AutoRenew: False,
		HasAgreedToTerms: False,
		ClientSubscriberId: String,
		RenewedMemberSubscriptionInvID: 0
	},
	VerificationInfo: 
	{
		Provider: String,
		VerificationCode: String
	},
	CcPaymentInfo: 
	{
		CardNumber: String,
		Cvv: String,
		ExpMonth: 0,
		ExpYear: 0,
		CardholderName: String,
		Country: String,
		BillingAddress: String,
		Address1: String,
		Address2: String,
		City: String,
		StateProvince: String,
		PostalCode: String
	},
	AchPaymentInfo: 
	{
		AccountHolderName: String,
		CheckNumber: String,
		RoutingNumber: String,
		AccountNumber: String,
		AccountType: String
	},
	BillMeLater: 
	{
		IsBillMeLaterPayment: False,
		IsBillMeLaterSubscription: False,
		MemberSubscriptionInvId: 0,
		Campaigns: 
		[
			{
				CampaignId: 0,
				CampaignName: String,
				Amount: 0,
				ChapPayID: String
			}
		]
	},
	Campaigns: 
	[
		{
			CampaignId: 0,
			CampaignName: String,
			Amount: 0,
			ChapPayID: String
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	IsSuccess: False,
	UniqueId: String,
	CreatedDateTime: 0001-01-01,
	ClientId: 0,
	BillhighwayUserId: 0,
	ConfirmationNumber: String,
	PaymentConfirmationNumber: 0,
	SubscriptionConfirmationNumber: 0,
	ErrorCode: String,
	Message: String,
	FriendlyMessage: String
}