| POST | /integrations/api/v2/{tokenType}/charge/token |
|---|
import java.math.*
import java.util.*
import net.servicestack.client.*
open class ChargeTokenV2Rq : 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 ChargeTokenV2Rs
{
var Token:String? = 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:CreditCardChargeDetailsV2? = null
var AchDetails:AchChargeDetailsV2? = null
}
open class CreditCardChargeDetailsV2
{
var CardType:String? = null
var ExpMonth:Int? = null
var ExpYear:Int? = null
var Last4:String? = null
var Address:CreditCardBillingAddressItem? = null
}
open class AchChargeDetailsV2
{
var AccountType:String? = null
var RoutingNumber:String? = null
var AccountNumberLast4:String? = null
var BankName: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/v2/{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,
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
}
]
}
},
AchDetails:
{
AccountType: String,
RoutingNumber: String,
AccountNumberLast4: String,
BankName: String
}
}