/* Options: Date: 2024-11-14 18:15:15 Version: 6.10 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.paysecure.acculynk.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: WICReverseRequest.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class RequestorCredentials { // @Required() public MerchantId: string; // @Required() public UserName: string; // @Required() public Password: string; // @Required() public Version: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MerchantDataElements { public RefundSettlementTypeDetails: number; public SendRecurringPOSEntryModeFeature: boolean; public UseOrgPOSCode: boolean; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MerchantDescriptorBase { public DataElements: MerchantDataElements; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class MerchantDescriptor extends MerchantDescriptorBase { public Name: string; public Address: string; public City: string; public State: string; public Zip: string; public Country: string; public CustomerServiceNumber: string; public MCC: string; public FNSnum: string; public Email: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export enum FundingSourceType { DepositAccount = 'DepositAccount', Credit = 'Credit', Debit = 'Debit', Prepaid = 'Prepaid', } export class SenderInfo { public ReferenceNumber: string; public AccountNumber: string; /** @description Name Format FirstName{Space}LastName. For Example :- Alvaro Morata */ public Name: string; public Address: string; public City: string; public State: string; public Country: string; /** @description DateOfBirth Format MMDDYYYY. For Example :- 05051960 */ public DateOfBirth: string; public Zip: string; public PhoneNumber: string; public FundingSource: FundingSourceType; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum NetworkName { Default = 'Default', NYCE = 'NYCE', CU24 = 'CU24', XCEL = 'XCEL', STAR = 'STAR', PULS = 'PULS', SHZM = 'SHZM', VISA = 'VISA', MAST = 'MAST', DISC = 'DISC', AMEX = 'AMEX', ALIP = 'ALIP', UPIN = 'UPIN', STAC = 'STAC', STNE = 'STNE', MAES = 'MAES', INTL = 'INTL', } export class ReceiverInfo { public ReferenceNumber: string; public AccountNumber: string; /** @description Name Format FirstName{Space}LastName. For Example :- Alvaro Morata */ public Name: string; public Address: string; public City: string; public State: string; public Country: string; public Zip: string; public PhoneNumber: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum BillPayGroup { Default = 'Default', Single = 'Single', Recurring = 'Recurring', Installment = 'Installment', Deferred = 'Deferred', } export enum DigitalWalletInfo { Default = 'Default', Staged = 'Staged', Passthrough = 'Passthrough', } export class WalletDescriptor { public Type: string; public EncryptedData: string; public ApplicationDataHash: string; public EphemeralPublicKey: string; public PublicKeyHash: string; public TransactionId: string; public Signature: string; public Version: string; public ApplicationData: string; public MerchantIdentifier: string; public SpecialPayment: string; public DigitalWalletIndicator: DigitalWalletInfo; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class SecureDescriptor { public CAVV: string; public SecureTransactionId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum TaxIndicator { Default = 'Default', NoTaxInfoProvided = 'NoTaxInfoProvided', TaxInfoProvided = 'TaxInfoProvided', TaxExemptItem = 'TaxExemptItem', } export class Level2Descriptor { public TaxDetails: TaxIndicator; public MerchantReferenceNumber: string; public MerchantTaxId: string; public OrderNumber: string; public TaxAmount: number; public DestinationPostalCode: string; public ProductDescription: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class PaymentFacilitatorDescriptor { public PaymentFacilitatorIndicator: string; public PFPhoneNumber: string; public SubMerchID: string; public SellerID: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum TokenTypes { Default = 'Default', UCAF = 'UCAF', DSRP = 'DSRP', UCAFDSRP = 'UCAFDSRP', VisaVerified = 'VisaVerified', DigitalWallet = 'DigitalWallet', VisaVerifiedDigitalWallet = 'VisaVerifiedDigitalWallet', } export class TokenDescriptor { public TokenType: TokenTypes; public TokenCryptogramData1: string; public TokenCryptogramData2: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum CardonFileInfo { Default = 'Default', Supported = 'Supported', NotSupported = 'NotSupported', } export enum StoredCredentialIndicatorInfo { Default = 'Default', Initial = 'Initial', Subsequent = 'Subsequent', } export enum TransactionInitiateInfo { Default = 'Default', Merchant = 'Merchant', Terminal = 'Terminal', Customer = 'Customer', } export enum ScheduleIndicatorInfo { Default = 'Default', Scheduled = 'Scheduled', Unscheduled = 'Unscheduled', } export class CardonFileIndicatorDescriptor { public CardonFile: CardonFileInfo; public StoredCredentialIndicator: StoredCredentialIndicatorInfo; public TransactionInitiate: TransactionInitiateInfo; public ScheduleIndicator: ScheduleIndicatorInfo; public NetworkTransactionId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum CardAccountUpdaterInfo { Default = 'Default', Supported = 'Supported', NotSupported = 'NotSupported', } export enum OrderTypeInfo { Default = 'Default', Standing = 'Standing', Subscription = 'Subscription', } export class BillPayGroupIndicator { public MITTotalPaymentCount: string; public MITAmountType: string; public MITAmount: string; public MITUniqueID: string; public MITFrequency: string; public MITValidationFlag: string; public MITValidationReference: string; public MITSequenceIndicator: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum ChargeTypeInfo { Default = 'Default', PartialShipment = 'PartialShipment', Delayed = 'Delayed', NoShow = 'NoShow', Resubmission = 'Resubmission', } export enum SAFEligibleFlag { Default = 'Default', True = 'True', False = 'False', } // @DataContract export class ExtendedData { // @DataMember public Track2DataForEMVTransaction: string; // @DataMember public SenderInfo: SenderInfo; // @DataMember public CashbackAmount: number; // @DataMember public Network: NetworkName; // @DataMember public ReceiverInfo: ReceiverInfo; // @DataMember public BillPayGroup: BillPayGroup; // @DataMember public WalletData: WalletDescriptor; // @DataMember public SecureData: SecureDescriptor; // @DataMember public Level2Data: Level2Descriptor; // @DataMember public PaymentFacilitatorData: PaymentFacilitatorDescriptor; // @DataMember public TokenData: TokenDescriptor; // @DataMember public OTPTranId: string; // @DataMember public CurrentShipment: number; // @DataMember public TotalShipments: number; // @DataMember public IsTokenRequested: boolean; // @DataMember public CardonFileIndicator: CardonFileIndicatorDescriptor; // @DataMember public CardAccountUpdater: CardAccountUpdaterInfo; // @DataMember public RetryAttemptCount: number; // @DataMember public TotalAuthAmount: number; // @DataMember public SignatureHashVersion: string; // @DataMember public OrderTypeDetail: OrderTypeInfo; // @DataMember public BillPayGroupIndicator: BillPayGroupIndicator; // @DataMember public ChargeTypeDetail: ChargeTypeInfo; // @DataMember public SAFEligible: SAFEligibleFlag; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum OriginalDataType { TransactionId = 1, ReferenceKey = 2, ExternalId = 3, InternalTransactionId = 4, } export class OriginalTransaction { public OriginalIdentifierType: OriginalDataType; public OriginalDataIdentifier: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum CardInfoType { CardNumber = 'CardNumber', Token = 'Token', Track = 'Track', EMV = 'EMV', Encrypted = 'Encrypted', DPAN = 'DPAN', ApplePay = 'ApplePay', GooglePay = 'GooglePay', SamsungPay = 'SamsungPay', CPToken = 'CPToken', EncryptedEnhanced = 'EncryptedEnhanced', EncryptedJWE = 'EncryptedJWE', } export class CardAccountUpdaterDescriptor { public CardDataType: CardInfoType; public CardNumberInfo: string; public ExpiryDate: string; public Status: string; public ErrorCode: string; public CardToken: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class ExtendedResponse { // @DataMember(EmitDefaultValue=false) public CardAccountUpdater: CardAccountUpdaterDescriptor; // @DataMember(EmitDefaultValue=false) public ProductId: string; // @DataMember(EmitDefaultValue=false) public NetworkResponseCode: string; // @DataMember(EmitDefaultValue=false) public NetworkTransactionId: string; // @DataMember(EmitDefaultValue=false) public CHEmailAddrResult: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class InOutTimes { public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class RequestTimestamps { // @DataMember(EmitDefaultValue=false) public AppLayer: InOutTimes; // @DataMember(EmitDefaultValue=false) public ParentLookup: InOutTimes; // @DataMember(EmitDefaultValue=false) public RetryLookup: InOutTimes; // @DataMember(EmitDefaultValue=false) public GetCardData: InOutTimes; // @DataMember(EmitDefaultValue=false) public CardTokenize: InOutTimes; // @DataMember(EmitDefaultValue=false) public CardEncrypt: InOutTimes; // @DataMember(EmitDefaultValue=false) public DBInsert: InOutTimes; // @DataMember(EmitDefaultValue=false) public BackendProcess: InOutTimes; // @DataMember(EmitDefaultValue=false) public DBUpdate: InOutTimes; // @DataMember(EmitDefaultValue=false) public ParentUpdate: InOutTimes; // @DataMember(EmitDefaultValue=false) public Network: InOutTimes; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class PaysecureResponseInternal { // @DataMember(EmitDefaultValue=false) public Timestamps: RequestTimestamps; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class PaysecureVersion extends PaysecureResponseInternal { // @DataMember(EmitDefaultValue=false) public LocalDateTime: string; // @DataMember(EmitDefaultValue=false) public Token: string; // @DataMember(EmitDefaultValue=false) public ExtendedData: ExtendedResponse; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class WICBalance { public WICCategory: string; public WICSubcategory: string; public WICQuantity: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @DataContract export class WICReverse extends PaysecureVersion { // @DataMember public TranId: string; // @DataMember public ResponseCode: string; // @DataMember public ErrorMessage: string; // @DataMember public ErrorCode: string; // @DataMember public EarliestBenefitExpirationDate: string; // @DataMember public WICBalances: WICBalance[]; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @Route("/WICReverse", "POST") // @DataContract export class WICReverseRequest implements IReturn { // @DataMember public Credentials: RequestorCredentials; // @DataMember public OriginalData: OriginalTransaction; // @DataMember public ReferenceKey: string; // @DataMember public Reason: string; // @DataMember public MerchantDetails: MerchantDescriptor; // @DataMember public Custom1: string; // @DataMember public Custom2: string; // @DataMember public Custom3: string; // @DataMember public Custom4: string; // @DataMember public Custom5: string; // @DataMember public SignatureHash: string; // @DataMember public ExtendedData: ExtendedData; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'WICReverseRequest'; } public getMethod() { return 'POST'; } public createResponse() { return new WICReverse(); } }