| POST | /CreateCardToken |
|---|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Paysecure.ServiceModel;
using Paysecure.ServiceModel.Types;
namespace Paysecure.ServiceModel
{
[DataContract]
public partial class CreateCardToken
: PaysecureResponseInternal
{
[DataMember]
public virtual string CardToken { get; set; }
[DataMember]
public virtual string CardZip { get; set; }
[DataMember]
public virtual string CardLast4 { get; set; }
[DataMember]
public virtual string CardExpiration { get; set; }
[DataMember]
public virtual string CVN { get; set; }
[DataMember]
public virtual string AVS { get; set; }
[DataMember]
public virtual BINResults BINResults { get; set; }
[DataMember]
public virtual string ResponseCode { get; set; }
[DataMember]
public virtual string ErrorMessage { get; set; }
[DataMember]
public virtual string ErrorCode { get; set; }
[DataMember]
public virtual string TranId { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual ExtendedResponse ExtendedData { get; set; }
}
[DataContract]
public partial class CreateCardTokenRequest
{
[DataMember]
public virtual RequestorCredentials Credentials { get; set; }
[DataMember]
public virtual string SessionId { get; set; }
[DataMember]
public virtual bool VerifyCard { get; set; }
}
}
namespace Paysecure.ServiceModel.Types
{
public partial class BINResults
{
public virtual string BIN { get; set; }
public virtual string Network { get; set; }
public virtual bool InternetPinDebit { get; set; }
public virtual bool EcomEBTCash { get; set; }
public virtual bool EcomEBTSNAP { get; set; }
public virtual bool POSFlag { get; set; }
public virtual bool PinlessEcommerce { get; set; }
public virtual bool PinlessBillPay { get; set; }
public virtual bool OnDemandPaymentCredit { get; set; }
public virtual bool OnDemandPaymentDebit { get; set; }
public virtual bool PinlessA2ACredit { get; set; }
public virtual bool PinlessA2ADebit { get; set; }
public virtual bool PinlessPrePaidLoad { get; set; }
public virtual bool DualMessage { get; set; }
public virtual bool Recurring { get; set; }
public virtual bool CardVerify { get; set; }
public virtual bool RegulatedFlag { get; set; }
public virtual bool OTP { get; set; }
public virtual bool POSPinlessDualMessage { get; set; }
public virtual string FastFunds { get; set; }
public virtual bool RegulatedWithFraud { get; set; }
public virtual string CountryCode { get; set; }
public virtual string CardType { get; set; }
public virtual string CardProduct { get; set; }
public virtual string CardDesignation { get; set; }
public virtual string CardSubCategory { get; set; }
public virtual bool IncrementalAuth { get; set; }
}
public partial class CardAccountUpdaterDescriptor
{
public virtual CardInfoType CardDataType { get; set; }
public virtual string CardNumberInfo { get; set; }
public virtual string ExpiryDate { get; set; }
public virtual string Status { get; set; }
public virtual string ErrorCode { get; set; }
public virtual string CardToken { get; set; }
}
public enum CardInfoType
{
CardNumber,
Token,
Track,
EMV,
Encrypted,
DPAN,
ApplePay,
GooglePay,
SamsungPay,
CPToken,
EncryptedEnhanced,
EncryptedJWE,
}
[DataContract]
public partial class ExtendedResponse
{
[DataMember(EmitDefaultValue=false)]
public virtual CardAccountUpdaterDescriptor CardAccountUpdater { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual string ProductId { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual string NetworkResponseCode { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual string NetworkTransactionId { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual string CHEmailAddrResult { get; set; }
}
[DataContract]
public partial class InOutTimes
{
}
[DataContract]
public partial class PaysecureResponseInternal
{
[DataMember(EmitDefaultValue=false)]
public virtual RequestTimestamps Timestamps { get; set; }
}
public partial class RequestorCredentials
{
[Required]
public virtual string MerchantId { get; set; }
[Required]
public virtual string UserName { get; set; }
[Required]
public virtual string Password { get; set; }
[Required]
public virtual string Version { get; set; }
}
[DataContract]
public partial class RequestTimestamps
{
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes AppLayer { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes ParentLookup { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes RetryLookup { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes GetCardData { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes CardTokenize { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes CardEncrypt { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes DBInsert { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes BackendProcess { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes DBUpdate { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes ParentUpdate { get; set; }
[DataMember(EmitDefaultValue=false)]
public virtual InOutTimes Network { get; set; }
}
}
C# CreateCardTokenRequest DTOs
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 /CreateCardToken HTTP/1.1
Host: api.paysecure.acculynk.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Credentials:
{
MerchantId: String,
UserName: String,
Password: String,
Version: String
},
SessionId: String,
VerifyCard: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
CardToken: String,
CardZip: String,
CardLast4: String,
CardExpiration: String,
CVN: String,
AVS: String,
BINResults:
{
BIN: String,
Network: String,
InternetPinDebit: False,
EcomEBTCash: False,
EcomEBTSNAP: False,
POSFlag: False,
PinlessEcommerce: False,
PinlessBillPay: False,
OnDemandPaymentCredit: False,
OnDemandPaymentDebit: False,
PinlessA2ACredit: False,
PinlessA2ADebit: False,
PinlessPrePaidLoad: False,
DualMessage: False,
Recurring: False,
CardVerify: False,
RegulatedFlag: False,
OTP: False,
POSPinlessDualMessage: False,
FastFunds: String,
RegulatedWithFraud: False,
CountryCode: String,
CardType: String,
CardProduct: String,
CardDesignation: String,
CardSubCategory: String,
IncrementalAuth: False
},
ResponseCode: String,
ErrorMessage: String,
ErrorCode: String,
TranId: String,
ExtendedData:
{
CardAccountUpdater:
{
CardDataType: CardNumber,
CardNumberInfo: String,
ExpiryDate: String,
Status: String,
ErrorCode: String,
CardToken: String
},
ProductId: String,
NetworkResponseCode: String,
NetworkTransactionId: String,
CHEmailAddrResult: String
},
Timestamps:
{
AppLayer:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
ParentLookup:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
RetryLookup:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
GetCardData:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
CardTokenize:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
CardEncrypt:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
DBInsert:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
BackendProcess:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
DBUpdate:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
ParentUpdate:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
},
Network:
{
InTime: 0001-01-01,
OutTime: 0001-01-01
}
}
}