POST | /POSCardlessDebit |
---|
namespace Paysecure.ServiceModel
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
[<DataContract>]
[<AllowNullLiteral>]
type InOutTimes() =
class end
[<DataContract>]
[<AllowNullLiteral>]
type RequestTimestamps() =
[<DataMember(EmitDefaultValue=false)>]
member val AppLayer:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val ParentLookup:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val RetryLookup:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val GetCardData:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val CardTokenize:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val CardEncrypt:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val DBInsert:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val BackendProcess:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val DBUpdate:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val ParentUpdate:InOutTimes = null with get,set
[<DataMember(EmitDefaultValue=false)>]
member val Network:InOutTimes = null with get,set
[<DataContract>]
[<AllowNullLiteral>]
type PaysecureResponseInternal() =
[<DataMember(EmitDefaultValue=false)>]
member val Timestamps:RequestTimestamps = null with get,set
[<AllowNullLiteral>]
type NetworkResponseData() =
member val AliPayTransId:String = null with get,set
member val AliPayTransactionTime:String = null with get,set
member val ResponseCode:String = null with get,set
member val WeChatPayTransId:String = null with get,set
member val WeChatPayTransactionTime:String = null with get,set
member val WeChatPayOpenId:String = null with get,set
[<DataContract>]
[<AllowNullLiteral>]
type POSCardlessDebit() =
inherit PaysecureResponseInternal()
[<DataMember>]
member val ErrorMessage:String = null with get,set
[<DataMember>]
member val ErrorCode:String = null with get,set
[<DataMember>]
member val ResponseCode:String = null with get,set
[<DataMember>]
member val TranId:String = null with get,set
[<DataMember>]
member val ApprovedAmount:Int32 = new Int32() with get,set
[<DataMember>]
member val Network:String = null with get,set
[<DataMember>]
member val NetworkResponseData:NetworkResponseData = null with get,set
[<AllowNullLiteral>]
type RequestorCredentials() =
[<Required>]
member val MerchantId:String = null with get,set
[<Required>]
member val UserName:String = null with get,set
[<Required>]
member val Password:String = null with get,set
[<Required>]
member val Version:String = null with get,set
type PaymentNetwork =
| AliPay = 1
| WeChat = 2
type PaymentDataType =
| BarCode = 1
| QRCode = 2
[<AllowNullLiteral>]
type PaymentInfo() =
member val PaymentNetwork:PaymentNetwork = new PaymentNetwork() with get,set
member val PaymentDataType:PaymentDataType = new PaymentDataType() with get,set
member val PaymentData:String = null with get,set
[<AllowNullLiteral>]
type NetworkRequestData() =
member val AliPayPartnerId:String = null with get,set
member val WebHookURL:String = null with get,set
member val OrderTitle:String = null with get,set
member val OrderDetail:String = null with get,set
member val TerminalIP:String = null with get,set
member val OrderNumber:String = null with get,set
[<AllowNullLiteral>]
type MerchantDataElements() =
member val RefundSettlementTypeDetails:Int32 = new Int32() with get,set
member val SendRecurringPOSEntryModeFeature:Boolean = new Boolean() with get,set
member val UseOrgPOSCode:Boolean = new Boolean() with get,set
[<AllowNullLiteral>]
type MerchantDescriptorBase() =
member val DataElements:MerchantDataElements = null with get,set
[<AllowNullLiteral>]
type MerchantDescriptor() =
inherit MerchantDescriptorBase()
member val Name:String = null with get,set
member val Address:String = null with get,set
member val City:String = null with get,set
member val State:String = null with get,set
member val Zip:String = null with get,set
member val Country:String = null with get,set
member val CustomerServiceNumber:String = null with get,set
member val MCC:String = null with get,set
member val FNSnum:String = null with get,set
member val Email:String = null with get,set
type FundingSourceType =
| DepositAccount = 0
| Credit = 1
| Debit = 2
| Prepaid = 3
[<AllowNullLiteral>]
type SenderInfo() =
member val ReferenceNumber:String = null with get,set
member val AccountNumber:String = null with get,set
///<summary>
///Name Format FirstName{Space}LastName. For Example :- Alvaro Morata
///</summary>
member val Name:String = null with get,set
member val Address:String = null with get,set
member val City:String = null with get,set
member val State:String = null with get,set
member val Country:String = null with get,set
///<summary>
///DateOfBirth Format MMDDYYYY. For Example :- 05051960
///</summary>
member val DateOfBirth:String = null with get,set
member val Zip:String = null with get,set
member val PhoneNumber:String = null with get,set
member val FundingSource:FundingSourceType = new FundingSourceType() with get,set
type NetworkName =
| Default = 0
| NYCE = 1
| CU24 = 2
| XCEL = 3
| STAR = 4
| PULS = 5
| SHZM = 6
| VISA = 7
| MAST = 8
| DISC = 9
| AMEX = 10
| ALIP = 11
| UPIN = 12
| STAC = 13
| STNE = 14
| MAES = 15
| INTL = 16
[<AllowNullLiteral>]
type ReceiverInfo() =
member val ReferenceNumber:String = null with get,set
member val AccountNumber:String = null with get,set
///<summary>
///Name Format FirstName{Space}LastName. For Example :- Alvaro Morata
///</summary>
member val Name:String = null with get,set
member val Address:String = null with get,set
member val City:String = null with get,set
member val State:String = null with get,set
member val Country:String = null with get,set
member val Zip:String = null with get,set
member val PhoneNumber:String = null with get,set
type BillPayGroup =
| Default = 0
| Single = 1
| Recurring = 2
| Installment = 3
| Deferred = 4
type DigitalWalletInfo =
| Default = 0
| Staged = 1
| Passthrough = 2
[<AllowNullLiteral>]
type WalletDescriptor() =
member val Type:String = null with get,set
member val EncryptedData:String = null with get,set
member val ApplicationDataHash:String = null with get,set
member val EphemeralPublicKey:String = null with get,set
member val PublicKeyHash:String = null with get,set
member val TransactionId:String = null with get,set
member val Signature:String = null with get,set
member val Version:String = null with get,set
member val ApplicationData:String = null with get,set
member val MerchantIdentifier:String = null with get,set
member val SpecialPayment:String = null with get,set
member val DigitalWalletIndicator:DigitalWalletInfo = new DigitalWalletInfo() with get,set
[<AllowNullLiteral>]
type SecureDescriptor() =
member val CAVV:String = null with get,set
member val SecureTransactionId:String = null with get,set
type TaxIndicator =
| Default = 0
| NoTaxInfoProvided = 1
| TaxInfoProvided = 2
| TaxExemptItem = 3
[<AllowNullLiteral>]
type Level2Descriptor() =
member val TaxDetails:TaxIndicator = new TaxIndicator() with get,set
member val MerchantReferenceNumber:String = null with get,set
member val MerchantTaxId:String = null with get,set
member val OrderNumber:String = null with get,set
member val TaxAmount:Int32 = new Int32() with get,set
member val DestinationPostalCode:String = null with get,set
member val ProductDescription:String = null with get,set
[<AllowNullLiteral>]
type PaymentFacilitatorDescriptor() =
member val PaymentFacilitatorIndicator:String = null with get,set
member val PFPhoneNumber:String = null with get,set
member val SubMerchID:String = null with get,set
member val SellerID:String = null with get,set
type TokenTypes =
| Default = 0
| UCAF = 1
| DSRP = 2
| UCAFDSRP = 3
| VisaVerified = 4
| DigitalWallet = 5
| VisaVerifiedDigitalWallet = 6
[<AllowNullLiteral>]
type TokenDescriptor() =
member val TokenType:TokenTypes = new TokenTypes() with get,set
member val TokenCryptogramData1:String = null with get,set
member val TokenCryptogramData2:String = null with get,set
type CardonFileInfo =
| Default = 0
| Supported = 1
| NotSupported = 2
type StoredCredentialIndicatorInfo =
| Default = 0
| Initial = 1
| Subsequent = 2
type TransactionInitiateInfo =
| Default = 0
| Merchant = 1
| Terminal = 2
| Customer = 3
type ScheduleIndicatorInfo =
| Default = 0
| Scheduled = 1
| Unscheduled = 2
[<AllowNullLiteral>]
type CardonFileIndicatorDescriptor() =
member val CardonFile:CardonFileInfo = new CardonFileInfo() with get,set
member val StoredCredentialIndicator:StoredCredentialIndicatorInfo = new StoredCredentialIndicatorInfo() with get,set
member val TransactionInitiate:TransactionInitiateInfo = new TransactionInitiateInfo() with get,set
member val ScheduleIndicator:ScheduleIndicatorInfo = new ScheduleIndicatorInfo() with get,set
member val NetworkTransactionId:String = null with get,set
type CardAccountUpdaterInfo =
| Default = 0
| Supported = 1
| NotSupported = 2
type OrderTypeInfo =
| Default = 0
| Standing = 1
| Subscription = 2
[<AllowNullLiteral>]
type BillPayGroupIndicator() =
member val MITTotalPaymentCount:String = null with get,set
member val MITAmountType:String = null with get,set
member val MITAmount:String = null with get,set
member val MITUniqueID:String = null with get,set
member val MITFrequency:String = null with get,set
member val MITValidationFlag:String = null with get,set
member val MITValidationReference:String = null with get,set
member val MITSequenceIndicator:String = null with get,set
type ChargeTypeInfo =
| Default = 0
| PartialShipment = 1
| Delayed = 2
| NoShow = 3
| Resubmission = 4
type SAFEligibleFlag =
| Default = 0
| True = 1
| False = 2
[<DataContract>]
[<AllowNullLiteral>]
type ExtendedData() =
[<DataMember>]
member val Track2DataForEMVTransaction:String = null with get,set
[<DataMember>]
member val SenderInfo:SenderInfo = null with get,set
[<DataMember>]
member val CashbackAmount:Int32 = new Int32() with get,set
[<DataMember>]
member val Network:NetworkName = new NetworkName() with get,set
[<DataMember>]
member val ReceiverInfo:ReceiverInfo = null with get,set
[<DataMember>]
member val BillPayGroup:BillPayGroup = new BillPayGroup() with get,set
[<DataMember>]
member val WalletData:WalletDescriptor = null with get,set
[<DataMember>]
member val SecureData:SecureDescriptor = null with get,set
[<DataMember>]
member val Level2Data:Level2Descriptor = null with get,set
[<DataMember>]
member val PaymentFacilitatorData:PaymentFacilitatorDescriptor = null with get,set
[<DataMember>]
member val TokenData:TokenDescriptor = null with get,set
[<DataMember>]
member val OTPTranId:String = null with get,set
[<DataMember>]
member val CurrentShipment:Int32 = new Int32() with get,set
[<DataMember>]
member val TotalShipments:Int32 = new Int32() with get,set
[<DataMember>]
member val IsTokenRequested:Boolean = new Boolean() with get,set
[<DataMember>]
member val CardonFileIndicator:CardonFileIndicatorDescriptor = null with get,set
[<DataMember>]
member val CardAccountUpdater:CardAccountUpdaterInfo = new CardAccountUpdaterInfo() with get,set
[<DataMember>]
member val RetryAttemptCount:Int32 = new Int32() with get,set
[<DataMember>]
member val TotalAuthAmount:Int32 = new Int32() with get,set
[<DataMember>]
member val SignatureHashVersion:String = null with get,set
[<DataMember>]
member val OrderTypeDetail:OrderTypeInfo = new OrderTypeInfo() with get,set
[<DataMember>]
member val BillPayGroupIndicator:BillPayGroupIndicator = null with get,set
[<DataMember>]
member val ChargeTypeDetail:ChargeTypeInfo = new ChargeTypeInfo() with get,set
[<DataMember>]
member val SAFEligible:SAFEligibleFlag = new SAFEligibleFlag() with get,set
[<DataContract>]
[<AllowNullLiteral>]
type POSCardlessDebitRequest() =
[<DataMember>]
member val Credentials:RequestorCredentials = null with get,set
[<DataMember>]
member val ReferenceKey:String = null with get,set
[<DataMember>]
member val PaymentInfo:PaymentInfo = null with get,set
[<DataMember>]
member val Amount:Int32 = new Int32() with get,set
[<DataMember>]
member val CurrencyCode:String = null with get,set
[<DataMember>]
member val TID:String = null with get,set
[<DataMember>]
member val MID:String = null with get,set
[<DataMember>]
member val NetworkRequestData:NetworkRequestData = null with get,set
///<summary>
///Local Date Format mmddyyyy. For Example:- 01202017
///</summary>
[<DataMember>]
member val LocalDate:String = null with get,set
///<summary>
///Local Time Format HHmmss. For Example :- 012322
///</summary>
[<DataMember>]
member val LocalTime:String = null with get,set
[<DataMember>]
member val MerchantDetails:MerchantDescriptor = null with get,set
[<DataMember>]
member val Custom1:String = null with get,set
[<DataMember>]
member val Custom2:String = null with get,set
[<DataMember>]
member val Custom3:String = null with get,set
[<DataMember>]
member val Custom4:String = null with get,set
[<DataMember>]
member val Custom5:String = null with get,set
[<DataMember>]
member val SignatureHash:String = null with get,set
[<DataMember>]
member val ExtendedData:ExtendedData = null with get,set
F# POSCardlessDebitRequest 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 /POSCardlessDebit 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
},
ReferenceKey: String,
PaymentInfo:
{
PaymentNetwork: AliPay,
PaymentDataType: BarCode,
PaymentData: String
},
Amount: 0,
CurrencyCode: String,
TID: String,
MID: String,
NetworkRequestData:
{
AliPayPartnerId: String,
WebHookURL: String,
OrderTitle: String,
OrderDetail: String,
TerminalIP: String,
OrderNumber: String
},
LocalDate: String,
LocalTime: String,
MerchantDetails:
{
Name: String,
Address: String,
City: String,
State: String,
Zip: String,
Country: String,
CustomerServiceNumber: String,
MCC: String,
FNSnum: String,
Email: String,
DataElements:
{
RefundSettlementTypeDetails: 0,
SendRecurringPOSEntryModeFeature: False,
UseOrgPOSCode: False
}
},
Custom1: String,
Custom2: String,
Custom3: String,
Custom4: String,
Custom5: String,
SignatureHash: String,
ExtendedData:
{
Track2DataForEMVTransaction: String,
SenderInfo:
{
ReferenceNumber: String,
AccountNumber: String,
Name: String,
Address: String,
City: String,
State: String,
Country: String,
DateOfBirth: String,
Zip: String,
PhoneNumber: String,
FundingSource: DepositAccount
},
CashbackAmount: 0,
Network: Default,
ReceiverInfo:
{
ReferenceNumber: String,
AccountNumber: String,
Name: String,
Address: String,
City: String,
State: String,
Country: String,
Zip: String,
PhoneNumber: String
},
BillPayGroup: Default,
WalletData:
{
Type: String,
EncryptedData: String,
ApplicationDataHash: String,
EphemeralPublicKey: String,
PublicKeyHash: String,
TransactionId: String,
Signature: String,
Version: String,
ApplicationData: String,
MerchantIdentifier: String,
SpecialPayment: String,
DigitalWalletIndicator: Default
},
SecureData:
{
CAVV: String,
SecureTransactionId: String
},
Level2Data:
{
TaxDetails: Default,
MerchantReferenceNumber: String,
MerchantTaxId: String,
OrderNumber: String,
TaxAmount: 0,
DestinationPostalCode: String,
ProductDescription: String
},
PaymentFacilitatorData:
{
PaymentFacilitatorIndicator: String,
PFPhoneNumber: String,
SubMerchID: String,
SellerID: String
},
TokenData:
{
TokenType: Default,
TokenCryptogramData1: String,
TokenCryptogramData2: String
},
OTPTranId: String,
CurrentShipment: 0,
TotalShipments: 0,
IsTokenRequested: False,
CardonFileIndicator:
{
CardonFile: Default,
StoredCredentialIndicator: Default,
TransactionInitiate: Default,
ScheduleIndicator: Default,
NetworkTransactionId: String
},
CardAccountUpdater: Default,
RetryAttemptCount: 0,
TotalAuthAmount: 0,
SignatureHashVersion: String,
OrderTypeDetail: Default,
BillPayGroupIndicator:
{
MITTotalPaymentCount: String,
MITAmountType: String,
MITAmount: String,
MITUniqueID: String,
MITFrequency: String,
MITValidationFlag: String,
MITValidationReference: String,
MITSequenceIndicator: String
},
ChargeTypeDetail: Default,
SAFEligible: Default
}
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { ErrorMessage: String, ErrorCode: String, ResponseCode: String, TranId: String, ApprovedAmount: 0, Network: String, NetworkResponseData: { AliPayTransId: String, AliPayTransactionTime: String, ResponseCode: String, WeChatPayTransId: String, WeChatPayTransactionTime: String, WeChatPayOpenId: 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 } } }