| POST | /integrations/api/{tokenType}/charge/token |
|---|
import java.math.*
import java.util.*
import net.servicestack.client.*
open class ChargeTokenRq : ChargeTokenRqBase()
{
}
open class ChargeTokenRqBase : IChapterAuthorizationRequest, IApiResultErrorService
{
var tokenType:String? = null
var Amount:Int? = null
var Description:String? = null
var Options:ChargeTokenOptions? = null
var CardInfo:CreditCardChargeItem? = null
var AchInfo:AchChargeItem? = null
var ReferenceIds:ArrayList<ReferenceIdTypedAssociationItem> = ArrayList<ReferenceIdTypedAssociationItem>()
}
open class ChargeTokenOptions
{
var Usages:Int? = null
var Duration:Int? = null
}
open class CreditCardChargeItem
{
var NameOnCard:String? = null
var ExpMonth:Int? = null
var ExpYear:Int? = null
var CardNumber:String? = null
var Cvv:String? = null
var Address:CreditCardBillingAddressItem? = null
}
open class CreditCardBillingAddressItem
{
var Address1:String? = null
var Address2:String? = null
var City:String? = null
var PostalCode:String? = null
var Region:String? = null
var Country:String? = null
var Attributes:ArrayList<AttributeItem> = ArrayList<AttributeItem>()
}
open class AttributeItem
{
var Name:String? = null
var Value:String? = null
}
open class AchChargeItem
{
var AccountNumber:String? = null
var RoutingNumber:String? = null
var AccountType:String? = null
var AccountHolderName:String? = null
}
open class ReferenceIdTypedAssociationItem
{
var Value:String? = null
var Type:String? = null
}
open class ChargeTokenRs
{
var Token:String? = null
var OrganizationId:Int? = null
var ChapterId:Int? = null
var Amount:Int? = null
var TokenType:String? = null
var Description:String? = null
var ExpiresOn:Date? = null
var Currency:String? = null
var Usages:Int? = null
var CardDetails:CreditCardChargeDetails? = null
var AchDetails:AchChargeDetails? = null
}
open class CreditCardChargeDetails
{
var CardType:String? = null
var ExpMonth:Int? = null
var ExpYear:Int? = null
var Last4:String? = null
var Address:CreditCardBillingAddressItem? = null
var VerificationResult:CreditCardChargeVerificationResult? = null
}
open class CreditCardChargeVerificationResult
{
var NetworkVerificationAttempted:Boolean? = null
var CvvVerificationResult:String? = null
var AddressVerificationResult:String? = null
var PostalCodeVerificationResult:String? = null
}
open class AchChargeDetails
{
var AccountType:String? = null
var RoutingNumber:String? = null
var AccountNumberLast4:String? = null
var BankName:String? = null
var VerificationResult:AchChargeVerificationResult? = null
}
open class AchChargeVerificationResult
{
var NetworkVerificationAttempted:Boolean? = null
var Result:String? = null
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /integrations/api/{tokenType}/charge/token HTTP/1.1
Host: devapi.billhighway.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
tokenType: String,
Amount: 0,
Description: String,
Options:
{
Usages: 0,
Duration: 0
},
CardInfo:
{
NameOnCard: String,
ExpMonth: 0,
ExpYear: 0,
CardNumber: String,
Cvv: String,
Address:
{
Address1: String,
Address2: String,
City: String,
PostalCode: String,
Region: String,
Country: String,
Attributes:
[
{
Name: String,
Value: String
}
]
}
},
AchInfo:
{
AccountNumber: String,
RoutingNumber: String,
AccountType: String,
AccountHolderName: String
},
ReferenceIds:
[
{
Value: String,
Type: String
}
]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Token: String,
OrganizationId: 0,
ChapterId: 0,
Amount: 0,
TokenType: String,
Description: String,
ExpiresOn: 0001-01-01,
Currency: String,
Usages: 0,
CardDetails:
{
CardType: String,
ExpMonth: 0,
ExpYear: 0,
Last4: String,
Address:
{
Address1: String,
Address2: String,
City: String,
PostalCode: String,
Region: String,
Country: String,
Attributes:
[
{
Name: String,
Value: String
}
]
},
VerificationResult:
{
NetworkVerificationAttempted: False,
CvvVerificationResult: String,
AddressVerificationResult: String,
PostalCodeVerificationResult: String
}
},
AchDetails:
{
AccountType: String,
RoutingNumber: String,
AccountNumberLast4: String,
BankName: String,
VerificationResult:
{
NetworkVerificationAttempted: False,
Result: String
}
}
}