PaySecure Pinless Web Services 2023:07:03:07

<back to all web services

WICSaleRequest

The following routes are available for this service:
POST/WICSale
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 WICSale() = 
        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 WICSaleRequest() = 
        [<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# WICSaleRequest 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 /WICSale HTTP/1.1 
Host: api.paysecure.acculynk.net 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<WICSaleRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Amount>0</Amount>
  <Credentials>
    <MerchantId>String</MerchantId>
    <Password>String</Password>
    <UserName>String</UserName>
    <Version>String</Version>
  </Credentials>
  <CurrencyCode>String</CurrencyCode>
  <Custom1>String</Custom1>
  <Custom2>String</Custom2>
  <Custom3>String</Custom3>
  <Custom4>String</Custom4>
  <Custom5>String</Custom5>
  <DeliveryAddress>
    <Address>String</Address>
    <City>String</City>
    <Country>String</Country>
    <DeliveryMethod>0</DeliveryMethod>
    <Email>String</Email>
    <FirstName>String</FirstName>
    <IPAddress>String</IPAddress>
    <LastName>String</LastName>
    <MiddleName>String</MiddleName>
    <State>String</State>
    <TelephoneNumber>String</TelephoneNumber>
    <TelephoneType>D</TelephoneType>
    <Zip>String</Zip>
  </DeliveryAddress>
  <DiscountAmount>0</DiscountAmount>
  <ExtendedData>
    <BillPayGroup>Default</BillPayGroup>
    <BillPayGroupIndicator>
      <MITAmount>String</MITAmount>
      <MITAmountType>String</MITAmountType>
      <MITFrequency>String</MITFrequency>
      <MITSequenceIndicator>String</MITSequenceIndicator>
      <MITTotalPaymentCount>String</MITTotalPaymentCount>
      <MITUniqueID>String</MITUniqueID>
      <MITValidationFlag>String</MITValidationFlag>
      <MITValidationReference>String</MITValidationReference>
    </BillPayGroupIndicator>
    <CardAccountUpdater>Default</CardAccountUpdater>
    <CardonFileIndicator>
      <CardonFile>Default</CardonFile>
      <NetworkTransactionId>String</NetworkTransactionId>
      <ScheduleIndicator>Default</ScheduleIndicator>
      <StoredCredentialIndicator>Default</StoredCredentialIndicator>
      <TransactionInitiate>Default</TransactionInitiate>
    </CardonFileIndicator>
    <CashbackAmount>0</CashbackAmount>
    <ChargeTypeDetail>Default</ChargeTypeDetail>
    <CurrentShipment>0</CurrentShipment>
    <IsTokenRequested>false</IsTokenRequested>
    <Level2Data>
      <DestinationPostalCode>String</DestinationPostalCode>
      <MerchantReferenceNumber>String</MerchantReferenceNumber>
      <MerchantTaxId>String</MerchantTaxId>
      <OrderNumber>String</OrderNumber>
      <ProductDescription>String</ProductDescription>
      <TaxAmount>0</TaxAmount>
      <TaxDetails>Default</TaxDetails>
    </Level2Data>
    <Network>Default</Network>
    <OTPTranId>String</OTPTranId>
    <OrderTypeDetail>Default</OrderTypeDetail>
    <PaymentFacilitatorData>
      <PFPhoneNumber>String</PFPhoneNumber>
      <PaymentFacilitatorIndicator>String</PaymentFacilitatorIndicator>
      <SellerID>String</SellerID>
      <SubMerchID>String</SubMerchID>
    </PaymentFacilitatorData>
    <ReceiverInfo>
      <AccountNumber>String</AccountNumber>
      <Address>String</Address>
      <City>String</City>
      <Country>String</Country>
      <Name>String</Name>
      <PhoneNumber>String</PhoneNumber>
      <ReferenceNumber>String</ReferenceNumber>
      <State>String</State>
      <Zip>String</Zip>
    </ReceiverInfo>
    <RetryAttemptCount>0</RetryAttemptCount>
    <SAFEligible>Default</SAFEligible>
    <SecureData>
      <CAVV>String</CAVV>
      <SecureTransactionId>String</SecureTransactionId>
    </SecureData>
    <SenderInfo>
      <AccountNumber>String</AccountNumber>
      <Address>String</Address>
      <City>String</City>
      <Country>String</Country>
      <DateOfBirth>String</DateOfBirth>
      <FundingSource>DepositAccount</FundingSource>
      <Name>String</Name>
      <PhoneNumber>String</PhoneNumber>
      <ReferenceNumber>String</ReferenceNumber>
      <State>String</State>
      <Zip>String</Zip>
    </SenderInfo>
    <SignatureHashVersion>String</SignatureHashVersion>
    <TokenData>
      <TokenCryptogramData1>String</TokenCryptogramData1>
      <TokenCryptogramData2>String</TokenCryptogramData2>
      <TokenType>Default</TokenType>
    </TokenData>
    <TotalAuthAmount>0</TotalAuthAmount>
    <TotalShipments>0</TotalShipments>
    <Track2DataForEMVTransaction>String</Track2DataForEMVTransaction>
    <WalletData>
      <ApplicationData>String</ApplicationData>
      <ApplicationDataHash>String</ApplicationDataHash>
      <DigitalWalletIndicator>Default</DigitalWalletIndicator>
      <EncryptedData>String</EncryptedData>
      <EphemeralPublicKey>String</EphemeralPublicKey>
      <MerchantIdentifier>String</MerchantIdentifier>
      <PublicKeyHash>String</PublicKeyHash>
      <Signature>String</Signature>
      <SpecialPayment>String</SpecialPayment>
      <TransactionId>String</TransactionId>
      <Type>String</Type>
      <Version>String</Version>
    </WalletData>
  </ExtendedData>
  <MerchantDetails>
    <DataElements>
      <RefundSettlementTypeDetails>0</RefundSettlementTypeDetails>
      <SendRecurringPOSEntryModeFeature>false</SendRecurringPOSEntryModeFeature>
      <UseOrgPOSCode>false</UseOrgPOSCode>
    </DataElements>
    <Address>String</Address>
    <City>String</City>
    <Country>String</Country>
    <CustomerServiceNumber>String</CustomerServiceNumber>
    <Email>String</Email>
    <FNSnum>String</FNSnum>
    <MCC>String</MCC>
    <Name>String</Name>
    <State>String</State>
    <Zip>String</Zip>
  </MerchantDetails>
  <ReferenceKey>String</ReferenceKey>
  <SignatureHash>String</SignatureHash>
  <TranId>String</TranId>
  <WICProducts>
    <WICProduct>
      <ActionCode>Approved</ActionCode>
      <ItemPrice>0</ItemPrice>
      <ItemQuantity>0</ItemQuantity>
      <OriginalItemPrice>0</OriginalItemPrice>
      <OriginalItemQuantity>0</OriginalItemQuantity>
      <ProductCode>String</ProductCode>
      <ProductCodeInd>PLU</ProductCodeInd>
    </WICProduct>
  </WICProducts>
</WICSaleRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<WICSale xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.servicestack.net/types">
  <Timestamps>
    <AppLayer>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </AppLayer>
    <BackendProcess>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </BackendProcess>
    <CardEncrypt>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </CardEncrypt>
    <CardTokenize>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </CardTokenize>
    <DBInsert>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </DBInsert>
    <DBUpdate>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </DBUpdate>
    <GetCardData>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </GetCardData>
    <Network>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </Network>
    <ParentLookup>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </ParentLookup>
    <ParentUpdate>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </ParentUpdate>
    <RetryLookup>
      <InTime>0001-01-01T00:00:00</InTime>
      <OutTime>0001-01-01T00:00:00</OutTime>
    </RetryLookup>
  </Timestamps>
  <ExtendedData>
    <CHEmailAddrResult>String</CHEmailAddrResult>
    <CardAccountUpdater>
      <CardDataType>CardNumber</CardDataType>
      <CardNumberInfo>String</CardNumberInfo>
      <CardToken>String</CardToken>
      <ErrorCode>String</ErrorCode>
      <ExpiryDate>String</ExpiryDate>
      <Status>String</Status>
    </CardAccountUpdater>
    <NetworkResponseCode>String</NetworkResponseCode>
    <NetworkTransactionId>String</NetworkTransactionId>
    <ProductId>String</ProductId>
  </ExtendedData>
  <LocalDateTime>String</LocalDateTime>
  <Token>String</Token>
  <ApprovalCode>String</ApprovalCode>
  <ApprovedAmount>0</ApprovedAmount>
  <DiscountAmount>0</DiscountAmount>
  <EarliestBenefitExpirationDate>String</EarliestBenefitExpirationDate>
  <ErrorCode>String</ErrorCode>
  <ErrorMessage>String</ErrorMessage>
  <Network>String</Network>
  <ResponseCode>String</ResponseCode>
  <TranId>String</TranId>
  <WICBalances>
    <WICBalance>
      <WICCategory>String</WICCategory>
      <WICQuantity>0</WICQuantity>
      <WICSubcategory>String</WICSubcategory>
    </WICBalance>
  </WICBalances>
  <WICProducts>
    <WICProduct>
      <ActionCode>Approved</ActionCode>
      <ItemPrice>0</ItemPrice>
      <ItemQuantity>0</ItemQuantity>
      <OriginalItemPrice>0</OriginalItemPrice>
      <OriginalItemQuantity>0</OriginalItemQuantity>
      <ProductCode>String</ProductCode>
      <ProductCodeInd>PLU</ProductCodeInd>
    </WICProduct>
  </WICProducts>
</WICSale>