Billhighway Cloud API

<back to all web services

CreateCardRef

The following routes are available for this service:
POST/api/creditcard/createcardrefCreates, records and returns a 'cardRef'Creates, records and returns a 'reference' to a credit card. This so called 'cardRef' can then be usedas an alternative value to pass to other credit card transactions such as Verfy or Sale potentially improving securityby not passing card numbers.
import Foundation
import ServiceStack

public class CreateCardRef : CreateCardRef
{
    required public init(){ super.init() }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
    }
}

public class CreateCardRefResponse : CreditCardCloudServiceResponse
{
    public var cardRef:String?
    public var cardType:CreditCardType?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case cardRef
        case cardType
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        cardRef = try container.decodeIfPresent(String.self, forKey: .cardRef)
        cardType = try container.decodeIfPresent(CreditCardType.self, forKey: .cardType)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if cardRef != nil { try container.encode(cardRef, forKey: .cardRef) }
        if cardType != nil { try container.encode(cardType, forKey: .cardType) }
    }
}

public class CreditCardCloudServiceResponse : IHaveErrorField, Codable
{
    public var isDuplicate:Bool?
    public var isSuccessful:Bool?
    public var errorCode:String?
    public var message:String?
    public var gatewayId:Int?
    public var confirmationNumber:String?
    public var networkTransactionId:String?
    public var isError:Bool?

    required public init(){}
}

public enum CreditCardType : Int, Codable
{
    case AmericanExpress = 0
    case Discover = 1
    case MasterCard = 2
    case Visa = 3
    case DinersClub = 4
    case DinersCartBlanche = 5
    case Unknown = 6
}


Swift CreateCardRef DTOs

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

HTTP + XML

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

POST /api/creditcard/createcardref HTTP/1.1 
Host: devapi.billhighway.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<CreateCardRef xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.billhighway.com/api">
  <CardNumber xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">String</CardNumber>
  <CardType xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">AmericanExpress</CardType>
  <CurrencyCode xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">String</CurrencyCode>
  <ExpirationMonth xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">0</ExpirationMonth>
  <ExpirationYear xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">0</ExpirationYear>
  <GroupId xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">0</GroupId>
  <Location xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">String</Location>
  <NameOnCard xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">String</NameOnCard>
  <UserId xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">0</UserId>
  <ValidationNum xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">String</ValidationNum>
</CreateCardRef>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CreateCardRefResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BH.CloudAPI.Common.DTO">
  <ConfirmationNumber>String</ConfirmationNumber>
  <ErrorCode>String</ErrorCode>
  <GatewayId>0</GatewayId>
  <IsDuplicate>false</IsDuplicate>
  <IsSuccessful>false</IsSuccessful>
  <Message>String</Message>
  <NetworkTransactionId>String</NetworkTransactionId>
  <CardRef>String</CardRef>
  <CardType>AmericanExpress</CardType>
</CreateCardRefResponse>