PaySecure Pinless Web Services 2023:07:03:07

<back to all web services

WICSubstitutionRequest

The following routes are available for this service:
POST/WICSubstitution
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

    type CardInfoType =
        | CardNumber = 0
        | Token = 1
        | Track = 2
        | EMV = 3
        | Encrypted = 4
        | DPAN = 5
        | ApplePay = 6
        | GooglePay = 7
        | SamsungPay = 8
        | CPToken = 9
        | EncryptedEnhanced = 10
        | EncryptedJWE = 11

    [<AllowNullLiteral>]
    type CardAccountUpdaterDescriptor() = 
        member val CardDataType:CardInfoType = new CardInfoType() with get,set
        member val CardNumberInfo:String = null with get,set
        member val ExpiryDate:String = null with get,set
        member val Status:String = null with get,set
        member val ErrorCode:String = null with get,set
        member val CardToken:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type ExtendedResponse() = 
        [<DataMember(EmitDefaultValue=false)>]
        member val CardAccountUpdater:CardAccountUpdaterDescriptor = null with get,set

        [<DataMember(EmitDefaultValue=false)>]
        member val ProductId:String = null with get,set

        [<DataMember(EmitDefaultValue=false)>]
        member val NetworkResponseCode:String = null with get,set

        [<DataMember(EmitDefaultValue=false)>]
        member val NetworkTransactionId:String = null with get,set

        [<DataMember(EmitDefaultValue=false)>]
        member val CHEmailAddrResult:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type PaysecureVersion() = 
        inherit PaysecureResponseInternal()
        [<DataMember(EmitDefaultValue=false)>]
        member val LocalDateTime:String = null with get,set

        [<DataMember(EmitDefaultValue=false)>]
        member val Token:String = null with get,set

        [<DataMember(EmitDefaultValue=false)>]
        member val ExtendedData:ExtendedResponse = null with get,set

    [<AllowNullLiteral>]
    type WICBalance() = 
        member val WICCategory:String = null with get,set
        member val WICSubcategory:String = null with get,set
        member val WICQuantity:Int32 = new Int32() with get,set

    type WICProductCodeInd =
        | PLU = 1
        | UPC = 2

    type WICActionCode =
        | Approved = 0
        | CategoryNotPrescribed = 1
        | SubcategoryNotPrescribed = 2
        | InsufficientUnits = 3
        | ProduceCodeNotSubscribed = 4
        | ApprovedLowerPrice = 5

    [<AllowNullLiteral>]
    type WICProduct() = 
        member val ProductCodeInd:WICProductCodeInd = new WICProductCodeInd() with get,set
        member val ProductCode:String = null with get,set
        member val ItemPrice:Int32 = new Int32() with get,set
        member val ItemQuantity:Int32 = new Int32() with get,set
        member val ActionCode:WICActionCode = new WICActionCode() with get,set
        member val OriginalItemPrice:Int32 = new Int32() with get,set
        member val OriginalItemQuantity:Int32 = new Int32() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type WICSubstitution() = 
        inherit PaysecureVersion()
        [<DataMember>]
        member val ApprovalCode:String = null with get,set

        [<DataMember>]
        member val TranId:String = null with get,set

        [<DataMember>]
        member val ErrorMessage:String = null with get,set

        [<DataMember>]
        member val ErrorCode:String = null with get,set

        [<DataMember>]
        member val ApprovedAmount:Int32 = new Int32() with get,set

        [<DataMember>]
        member val DiscountAmount:Int32 = new Int32() with get,set

        [<DataMember>]
        member val Network:String = null with get,set

        [<DataMember>]
        member val EarliestBenefitExpirationDate:String = null with get,set

        [<DataMember>]
        member val WICBalances:ResizeArray<WICBalance> = new ResizeArray<WICBalance>() with get,set

        [<DataMember>]
        member val WICProducts:ResizeArray<WICProduct> = new ResizeArray<WICProduct>() with get,set

        [<DataMember>]
        member val ResponseCode:String = 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 TelephoneType =
        | D = 0
        | H = 1
        | N = 2
        | W = 3

    [<AllowNullLiteral>]
    type Avs() = 
        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 Email:String = null with get,set
        member val IPAddress:String = null with get,set
        member val TelephoneNumber:String = null with get,set
        member val TelephoneType:TelephoneType = new TelephoneType() with get,set
        member val DeliveryMethod:Int32 = new Int32() with get,set
        member val FirstName:String = null with get,set
        member val MiddleName:String = null with get,set
        member val LastName: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 WICSubstitutionRequest() = 
        [<DataMember>]
        member val Credentials:RequestorCredentials = null with get,set

        [<DataMember>]
        member val Amount:Int32 = new Int32() with get,set

        [<DataMember>]
        member val DiscountAmount:Int32 = new Int32() with get,set

        [<DataMember>]
        member val TranId:String = null with get,set

        [<DataMember>]
        member val ReferenceKey:String = null with get,set

        [<DataMember>]
        member val CurrencyCode:String = null with get,set

        [<DataMember>]
        member val DeliveryAddress:Avs = null with get,set

        [<DataMember>]
        member val MerchantDetails:MerchantDescriptor = null with get,set

        [<DataMember>]
        member val WICProducts:ResizeArray<WICProduct> = new ResizeArray<WICProduct>() 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# WICSubstitutionRequest DTOs

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

HTTP + OTHER

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

POST /WICSubstitution HTTP/1.1 
Host: api.paysecure.acculynk.net 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"Credentials":{"MerchantId":"String","UserName":"String","Password":"String","Version":"String"},"Amount":0,"DiscountAmount":0,"TranId":"String","ReferenceKey":"String","CurrencyCode":"String","DeliveryAddress":{"Address":"String","City":"String","State":"String","Zip":"String","Country":"String","Email":"String","IPAddress":"String","TelephoneNumber":"String","TelephoneType":"D","DeliveryMethod":0,"FirstName":"String","MiddleName":"String","LastName":"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}},"WICProducts":[{"ProductCodeInd":"PLU","ProductCode":"String","ItemPrice":0,"ItemQuantity":0,"ActionCode":"Approved","OriginalItemPrice":0,"OriginalItemQuantity":0}],"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/jsonl
Content-Length: length

{"ApprovalCode":"String","TranId":"String","ErrorMessage":"String","ErrorCode":"String","ApprovedAmount":0,"DiscountAmount":0,"Network":"String","EarliestBenefitExpirationDate":"String","WICBalances":[{"WICCategory":"String","WICSubcategory":"String","WICQuantity":0}],"WICProducts":[{"ProductCodeInd":"PLU","ProductCode":"String","ItemPrice":0,"ItemQuantity":0,"ActionCode":"Approved","OriginalItemPrice":0,"OriginalItemQuantity":0}],"ResponseCode":"String","LocalDateTime":"String","Token":"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":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"ParentLookup":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"RetryLookup":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"GetCardData":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"CardTokenize":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"CardEncrypt":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"DBInsert":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"BackendProcess":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"DBUpdate":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"ParentUpdate":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"},"Network":{"InTime":"\/Date(-62135596800000-0000)\/","OutTime":"\/Date(-62135596800000-0000)\/"}}}