| POST | /api/creditcard/createcardref | Creates, 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 datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CreditCardCloudServiceResponse(IHaveErrorField):
is_duplicate: Optional[bool] = None
is_successful: Optional[bool] = None
error_code: Optional[str] = None
message: Optional[str] = None
gateway_id: Optional[int] = None
confirmation_number: Optional[str] = None
network_transaction_id: Optional[str] = None
is_error: Optional[bool] = None
class CreditCardType(IntEnum):
AMERICAN_EXPRESS = 0
DISCOVER = 1
MASTER_CARD = 2
VISA = 3
DINERS_CLUB = 4
DINERS_CART_BLANCHE = 5
UNKNOWN = 6
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CreateCardRefResponse(CreditCardCloudServiceResponse):
card_ref: Optional[str] = None
card_type: Optional[CreditCardType] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CreateCardRef(CreateCardRef):
pass
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=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>