import {z} from 'zod' export type GetApiV3MerchantsMIdEmployeesEmpIdOrdersArgs = {'User-Agent': string, mId: string, empId: string, filter?: string | undefined, expand?: string | undefined}; export type GetApiV3MerchantsMIdEmployeesEmpIdOrdersOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const getApiV3MerchantsMIdEmployeesEmpIdOrdersResponse = z.object({id: z.string().optional(), currency: z.string().optional(), customers: z.array(z.object({id: z.string().optional(), merchant: z.object({id: z.string().optional()}).optional(), firstName: z.string().optional(), lastName: z.string().optional(), marketingAllowed: z.boolean().optional(), customerSince: z.number().int().optional(), orders: z.array(z.object({id: z.string().optional()})).optional(), addresses: z.array(z.object({address1: z.string().optional(), address2: z.string().optional(), address3: z.string().optional(), city: z.string().optional(), country: z.string().optional(), state: z.string().optional(), zip: z.string().optional()})).optional(), emailAddresses: z.array(z.object({id: z.string().optional(), emailAddress: z.string(), verifiedTime: z.number().int().optional(), primaryEmail: z.boolean().optional(), customer: z.object({id: z.string().optional()}).optional()})).optional(), phoneNumbers: z.array(z.object({id: z.string().optional(), phoneNumber: z.string(), customer: z.object({id: z.string().optional()}).optional()})).optional(), cards: z.array(z.object({id: z.string().optional(), first6: z.string(), last4: z.string(), firstName: z.string().optional(), lastName: z.string().optional(), expirationDate: z.string().optional(), additionalInfo: z.object({default: z.string().optional()}).optional(), cardType: z.string().optional(), token: z.string().optional(), tokenType: z.enum(["MULTIPAY", "FINANCIAL", "CTOKEN"]).optional(), modifiedTime: z.number().int().optional(), customer: z.object({id: z.string().optional()}).optional()})).optional(), metadata: z.object({businessName: z.string().optional(), note: z.string().optional(), dobYear: z.number().int().optional(), dobMonth: z.number().int().optional(), dobDay: z.number().int().optional(), modifiedTime: z.number().int().optional(), customer: z.object({id: z.string().optional()}).optional()}).optional()})).optional(), employee: z.object({id: z.string().optional()}).optional(), total: z.number().int().optional(), externalReferenceId: z.string().optional(), unpaidBalance: z.number().int().optional(), paymentState: z.enum(["OPEN", "PAID", "REFUNDED", "CREDITED", "PARTIALLY_PAID", "PARTIALLY_REFUNDED"]).optional(), title: z.string().optional(), note: z.string().optional(), orderType: z.object({id: z.string().optional(), labelKey: z.string().optional(), label: z.string().optional(), taxable: z.boolean().optional(), isDefault: z.boolean().optional(), filterCategories: z.boolean().optional(), isHidden: z.boolean().optional(), fee: z.number().int().optional(), minOrderAmount: z.number().int().optional(), maxOrderAmount: z.number().int().optional(), maxRadius: z.number().int().optional(), avgOrderTime: z.number().int().optional(), hoursAvailable: z.enum(["ALL", "BUSINESS", "CUSTOM"]).optional(), customerIdMethod: z.enum(["NAME", "TABLE", "NAME_TABLE"]).optional(), isDeleted: z.boolean().optional(), systemOrderTypeId: z.string().optional(), hours: z.object({id: z.string().optional(), name: z.string().optional(), reference: z.object({id: z.string().optional()}).optional(), sunday: z.array(z.object({start: z.number().int(), end: z.number().int()})).optional(), monday: z.array(z.object({start: z.number().int(), end: z.number().int()})).optional(), tuesday: z.array(z.object({start: z.number().int(), end: z.number().int()})).optional(), wednesday: z.array(z.object({start: z.number().int(), end: z.number().int()})).optional(), thursday: z.array(z.object({start: z.number().int(), end: z.number().int()})).optional(), friday: z.array(z.object({start: z.number().int(), end: z.number().int()})).optional(), saturday: z.array(z.object({start: z.number().int(), end: z.number().int()})).optional()}).optional(), categories: z.array(z.object({id: z.string().optional()})).optional()}).optional(), taxRemoved: z.boolean().optional(), isVat: z.boolean().optional(), state: z.string().optional(), manualTransaction: z.boolean().optional(), groupLineItems: z.boolean().optional(), testMode: z.boolean().optional(), payType: z.enum(["SPLIT_GUEST", "SPLIT_ITEM", "SPLIT_CUSTOM", "FULL"]).optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTimestamp: z.number().int().optional(), serviceCharge: z.object({id: z.string().optional(), name: z.string().optional(), enabled: z.boolean().optional(), percentage: z.number().int().optional(), percentageDecimal: z.number().int().optional(), isAutoApplied: z.boolean().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), merchantAdditionalChargeRef: z.object({id: z.string().optional()}).optional(), type: z.literal("DELIVERY_FEE").optional(), amount: z.number().int().optional(), percentageDecimal: z.number().int().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional()})).optional(), discounts: z.array(z.object({id: z.string().optional(), discount: z.object({id: z.string().optional()}).optional(), approver: z.object({id: z.string().optional()}).optional(), name: z.string(), amount: z.number().int().optional(), percentage: z.number().int().optional()})).optional(), lineItems: z.array(z.object({id: z.string().optional(), item: z.object({id: z.string().optional()}).optional(), colorCode: z.string().optional(), name: z.string().optional(), alternateName: z.string().optional(), price: z.number().int().optional(), priceWithModifiers: z.number().int().optional(), priceWithModifiersAndItemAndOrderDiscounts: z.number().int().optional(), unitQty: z.number().int().optional(), unitName: z.string().optional(), itemCode: z.string().optional(), note: z.string().optional(), printed: z.boolean().optional(), exchangedLineItem: z.object({id: z.string().optional()}).optional(), binName: z.string().optional(), userData: z.string().optional(), createdTime: z.number().int().optional(), orderClientCreatedTime: z.number().int().optional(), discounts: z.array(z.object({id: z.string().optional(), discount: z.object({id: z.string().optional()}).optional(), approver: z.object({id: z.string().optional()}).optional(), name: z.string(), amount: z.number().int().optional(), percentage: z.number().int().optional()})).optional(), orderLevelDiscounts: z.array(z.object({id: z.string().optional(), discount: z.object({id: z.string().optional()}).optional(), approver: z.object({id: z.string().optional()}).optional(), name: z.string(), amount: z.number().int().optional(), percentage: z.number().int().optional()})).optional(), discountAmount: z.number().int().optional(), orderLevelDiscountAmount: z.number().int().optional(), exchanged: z.boolean().optional(), modifications: z.array(z.object({id: z.string().optional(), name: z.string().optional(), alternateName: z.string().optional(), amount: z.number().int().optional(), modifier: z.object({id: z.string().optional(), name: z.string().optional(), alternateName: z.string().optional(), available: z.boolean().optional(), price: z.number().int().optional(), modifierGroup: z.object({id: z.string().optional()}).optional()}).optional(), quantitySold: z.number().int().optional()})).optional(), tags: z.array(z.object({id: z.string().optional(), name: z.string(), showInReporting: z.boolean().optional(), items: z.array(z.object({id: z.string().optional()})).optional(), printers: z.array(z.object({id: z.string().optional()})).optional()})).optional(), refunded: z.boolean().optional(), refund: z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), amount: z.number().int().optional(), taxAmount: z.number().int().optional(), tipAmount: z.number().int().optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), lineItems: z.array(z.object({id: z.string().optional()})).optional(), overrideMerchantTender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), taxableAmountRates: z.array(z.object({id: z.string().optional(), name: z.string().optional(), taxableAmount: z.number().int().optional(), rate: z.number().int().optional(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional(), transactionRef: z.object({id: z.string().optional()}).optional()})).optional(), serviceChargeAmount: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), attributes: z.object({default: z.string().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), voided: z.boolean().optional(), voidReason: z.string().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), merchant: z.object({id: z.string().optional()}).optional(), externalReferenceId: z.string().optional(), authCode: z.string().optional(), status: z.enum(["FAIL", "SUCCESS", "PENDING"]).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), reason: z.string().optional()}).optional(), isRevenue: z.boolean().optional(), taxRates: z.array(z.object({id: z.string().optional(), name: z.string(), taxType: z.enum(["VAT_TAXABLE", "VAT_NON_TAXABLE", "VAT_EXEMPT", "INTERNAL_TAX", "PARTNER_TAX"]).optional(), rate: z.number().int().optional(), isDefault: z.boolean().optional(), items: z.array(z.object({id: z.string().optional()})).optional(), taxAmount: z.number().int().optional(), deletedTime: z.number().int().optional(), modifiedTime: z.number().int().optional()})).optional(), payments: z.array(z.object({id: z.string().optional(), percentage: z.number().int().optional(), binName: z.string().optional(), refunded: z.boolean().optional()})).optional(), revenueAmount: z.number().int().optional(), quantitySold: z.number().optional(), printGroup: z.object({id: z.string().optional()}).optional()})).optional(), payments: z.array(z.object({id: z.string().optional(), order: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), tender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), amount: z.number().int().optional(), tipAmount: z.number().int().optional(), taxAmount: z.number().int().optional(), cashbackAmount: z.number().int().optional(), cashTendered: z.number().int().optional(), externalPaymentId: z.string().optional(), employee: z.object({id: z.string().optional()}).optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), offline: z.boolean().optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), serviceCharge: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), attributes: z.object({default: z.string().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), taxRates: z.array(z.object({id: z.string().optional(), name: z.string(), rate: z.number().int(), isDefault: z.boolean().optional(), taxableAmount: z.number().int(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional()})).optional(), refunds: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), amount: z.number().int().optional(), taxAmount: z.number().int().optional(), tipAmount: z.number().int().optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), lineItems: z.array(z.object({id: z.string().optional()})).optional(), overrideMerchantTender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), taxableAmountRates: z.array(z.object({id: z.string().optional(), name: z.string().optional(), taxableAmount: z.number().int().optional(), rate: z.number().int().optional(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional(), transactionRef: z.object({id: z.string().optional()}).optional()})).optional(), serviceChargeAmount: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), attributes: z.object({default: z.string().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), voided: z.boolean().optional(), voidReason: z.string().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), merchant: z.object({id: z.string().optional()}).optional(), externalReferenceId: z.string().optional(), authCode: z.string().optional(), status: z.enum(["FAIL", "SUCCESS", "PENDING"]).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), reason: z.string().optional()})).optional(), note: z.string().optional(), lineItemPayments: z.array(z.object({id: z.string().optional(), percentage: z.number().int().optional(), binName: z.string().optional(), refunded: z.boolean().optional()})).optional(), authorization: z.object({id: z.string().optional()}).optional(), voidPaymentRef: z.object({id: z.string().optional()}).optional(), voidReason: z.enum(["USER_CANCEL", "TRANSPORT_ERROR", "REJECT_SIGNATURE", "REJECT_PARTIAL_AUTH", "NOT_APPROVED", "FAILED", "AUTH_CLOSED_NEW_CARD", "DEVELOPER_PAY_PARTIAL_AUTH", "REJECT_DUPLICATE", "REJECT_OFFLINE", "GIFTCARD_LOAD_FAILED", "USER_GIFTCARD_LOAD_CANCEL", "DEVELOPER_PAY_TIP_ADJUST_FAILED", "USER_CUSTOMER_CANCEL", "FRAUD", "REJECT_GREATER_APPROVED_AMOUNT", "TIMEOUT"]).optional(), voidReasonDetails: z.object({txError: z.string().optional(), voidReasonCode: z.enum(["CANCEL_PAYMENT_ADJUST", "BREAK_RESET", "CANCEL", "AUTH_FAILED", "NETWORK_FAILED", "NON_OK_RESULT_CODE_RETURNED_FROM_VERIFY_CVM", "PARTIAL_AUTH_NOT_ALLOWED", "PARTIAL_AUTH_CANCELLED", "QUICK_CHIP_DECLINE", "KERNEL_DECLINE", "NON_OK_RESULT_CODE_FROM_FORCE_ACCEPT", "MERCHANT_CANCELLED_THE_FORCE_ACCEPTANCE", "CARD_READER_ERROR", "UNKNOWN_EXCEPTION", "ERROR_EVENT", "KERNEL_EXCEPTION", "FATAL_EXCEPTION", "CARD_CHECK_FAILED_FOR_REVERSAL", "MANUAL_ENTRY_NOT_ALLOWED", "MANUAL_ENTRY_NOT_ALLOWED_FOR_CARD", "SWIPE_CARD_CHECK_FAILED_FOR_REVERSAL", "OFFLINE_AUTH_FAILED", "TXN_STATUS_DECLINED", "COMPLETION_DEVICE", "NON_OK_RESULT_CODE_FROM_DUPLICATE_CHECK", "MERCHANT_CANCELLED_THE_DUPLICATE_CHECK", "NON_OK_RESULT_CODE_RETURNED_FROM_OFFLINE_SCREEN", "MERCHANT_CANCELLED_OFFLINE_PAYMENT", "OFFLINE_AUTH_FAILED_ON_CARD_PRESENT_REVERSAL", "QUICK_CHIP_TIME_OUT", "HANDLE_PAY_STATE", "HANDLE_CONTACT_REQUIRED", "FINALIZE", "HANDLE_CARD_DECLINED_TXN_STATUS", "MERCHANT_REASON"]).optional(), description: z.string().optional(), descriptionEnum: z.string().optional(), payFailureMessage: z.string().optional()}).optional(), dccInfo: z.object({inquiryRateId: z.number().int().optional(), dccApplied: z.boolean().optional(), foreignCurrencyCode: z.string().optional(), foreignAmount: z.number().int().optional(), exchangeRate: z.number().optional(), marginRatePercentage: z.string().optional(), exchangeRateSourceName: z.string().optional(), exchangeRateSourceTimeStamp: z.string().optional(), dccEligible: z.boolean().optional(), exchangeRateId: z.string().optional(), rateRequestId: z.string().optional(), baseAmount: z.number().int().optional(), baseCurrencyCode: z.string().optional()}).optional(), transactionSettings: z.object({cardEntryMethods: z.number().int().optional(), disableCashBack: z.boolean().optional(), cloverShouldHandleReceipts: z.boolean().optional(), forcePinEntryOnSwipe: z.boolean().optional(), disableRestartTransactionOnFailure: z.boolean().optional(), allowOfflinePayment: z.boolean().optional(), approveOfflinePaymentWithoutPrompt: z.boolean().optional(), forceOfflinePayment: z.boolean().optional(), signatureThreshold: z.number().int().optional(), signatureEntryLocation: z.enum(["ON_SCREEN", "ON_PAPER", "NONE"]).optional(), tipMode: z.enum(["TIP_PROVIDED", "ON_SCREEN_BEFORE_PAYMENT", "ON_SCREEN_AFTER_PAYMENT", "ON_PAPER", "NO_TIP"]).optional(), tippableAmount: z.number().int().optional(), disableReceiptSelection: z.boolean().optional(), disableDuplicateCheck: z.boolean().optional(), autoAcceptPaymentConfirmations: z.boolean().optional(), autoAcceptSignature: z.boolean().optional(), returnResultOnTransactionComplete: z.boolean().optional(), tipSuggestions: z.array(z.object({id: z.string().optional(), name: z.string().optional(), percentage: z.number().int().optional(), amount: z.number().int().optional(), isEnabled: z.boolean().optional(), flatTip: z.number().int().optional()})).optional(), cashbackSuggestions: z.array(z.object({amount: z.number().int().optional()})).optional(), regionalExtras: z.object({default: z.string().optional()}).optional(), disableCreditSurcharge: z.boolean().optional(), receiptOptions: z.object({default: z.string().optional()}).optional(), remoteReceipts: z.boolean().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), cashAdvanceExtra: z.object({cashAdvanceSerialNum: z.string().optional(), cashAdvanceCustomerIdentification: z.object({idType: z.enum(["DRIVERS_LICENSE", "PASSPORT", "US_MILITARY_ID", "US_RESIDENT", "CONSULAR_ID", "CANADIAN_CITIZEN", "US_STATE_GOVT_ID", "OTHER_ID"]).optional(), serialNumber: z.string().optional(), maskedSerialNumber: z.string().optional(), encryptedSerialNumber: z.string().optional(), expirationDate: z.string().optional(), issuingState: z.string().optional(), issuingCountry: z.string().optional(), customerName: z.string().optional(), addressStreet1: z.string().optional(), addressStreet2: z.string().optional(), addressCity: z.string().optional(), addressState: z.string().optional(), addressZipCode: z.string().optional(), addressCountry: z.string().optional(), tellerID: z.number().int().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), signatureDisclaimer: z.object({disclaimerText: z.string().optional(), disclaimerValues: z.object({default: z.string().optional()}).optional()}).optional(), externalReferenceId: z.string().optional(), merchant: z.object({id: z.string().optional()}).optional(), increments: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), createdTime: z.number().int().optional(), employee: z.object({id: z.string().optional()}).optional(), incrementAmount: z.number().int().optional()})).optional(), purchaseCardL2: z.object({taxAmount: z.number().int().optional(), taxIndicator: z.enum(["UNKNOWN", "TAXABLE", "NON_TAXABLE"]).optional(), vatTaxAmount: z.number().int().optional(), vatTaxRate: z.number().int().optional(), purchaseIdentifier: z.string().optional(), pcOrderNumber: z.string().optional(), discountAmount: z.number().int().optional(), freightAmount: z.number().int().optional(), dutyAmount: z.number().int().optional(), destinationPostalCode: z.string().optional(), shipFromPostalCode: z.string().optional(), destinationCountryCode: z.string().optional(), merchantTaxId: z.string().optional(), productDescription: z.string().optional()}).optional(), purchaseCardL3: z.object({serviceCode: z.string().optional(), magneticStripeInd: z.boolean().optional(), level3LineItems: z.array(z.object({itemDescription: z.string().optional(), productCode: z.string().optional(), unitCost: z.number().int().optional(), quantity: z.number().int().optional(), discountAmount: z.number().int().optional(), unitOfMeasure: z.string().optional(), commodityCode: z.string().optional()})).optional()}).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), terminalManagementComponents: z.array(z.object({type: z.enum(["ACQUIRER_PROTOCOL_PARAMS", "APPLICATION_PARAMS", "TERMINAL_PARAMS", "SECURITY_PARAMS", "SERVER", "TERMINAL", "DEVICE", "SECURE_MODULE", "PAYMENT_APPLICATION", "EMV_KERNEL", "EMV_LEVEL1", "MIDDLEWARE", "DRIVER", "OPERATING_SYSTEM", "MERCHANT_PARAMS", "CERTIFICATE_PARAMS", "TMS_PROTOCOL_PARAMS"]).optional(), itemNumber: z.string().optional(), provider: z.string().optional(), serial: z.string().optional(), version: z.string().optional(), identification: z.string().optional(), standard: z.object({component: z.string().optional(), identification: z.string().optional(), version: z.string().optional(), issuer: z.string().optional(), type: z.string().optional(), assigner: z.string().optional(), assessmentIdentifier: z.string().optional()}).optional()})).optional(), emiInfo: z.object({mobileNumber: z.string().optional(), indicator: z.string().optional(), transactionAmount: z.number().int().optional(), productAmount: z.number().int().optional(), discountAmount: z.number().int().optional(), tenure: z.number().int().optional(), interestRate: z.number().optional(), interestAmount: z.number().int().optional(), processingFee: z.number().int().optional(), totalAmount: z.number().int().optional(), amountPerMonth: z.number().int().optional()}).optional()})).optional(), refunds: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), amount: z.number().int().optional(), taxAmount: z.number().int().optional(), tipAmount: z.number().int().optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), lineItems: z.array(z.object({id: z.string().optional()})).optional(), overrideMerchantTender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), taxableAmountRates: z.array(z.object({id: z.string().optional(), name: z.string().optional(), taxableAmount: z.number().int().optional(), rate: z.number().int().optional(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional(), transactionRef: z.object({id: z.string().optional()}).optional()})).optional(), serviceChargeAmount: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), attributes: z.object({default: z.string().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), voided: z.boolean().optional(), voidReason: z.string().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), merchant: z.object({id: z.string().optional()}).optional(), externalReferenceId: z.string().optional(), authCode: z.string().optional(), status: z.enum(["FAIL", "SUCCESS", "PENDING"]).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), reason: z.string().optional()})).optional(), credits: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), tender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), customers: z.object({id: z.string().optional(), merchant: z.object({id: z.string().optional()}).optional(), firstName: z.string().optional(), lastName: z.string().optional(), marketingAllowed: z.boolean().optional(), customerSince: z.number().int().optional(), orders: z.array(z.object({id: z.string().optional()})).optional(), addresses: z.array(z.object({address1: z.string().optional(), address2: z.string().optional(), address3: z.string().optional(), city: z.string().optional(), country: z.string().optional(), state: z.string().optional(), zip: z.string().optional()})).optional(), emailAddresses: z.array(z.object({id: z.string().optional(), emailAddress: z.string(), verifiedTime: z.number().int().optional(), primaryEmail: z.boolean().optional(), customer: z.object({id: z.string().optional()}).optional()})).optional(), phoneNumbers: z.array(z.object({id: z.string().optional(), phoneNumber: z.string(), customer: z.object({id: z.string().optional()}).optional()})).optional(), cards: z.array(z.object({id: z.string().optional(), first6: z.string(), last4: z.string(), firstName: z.string().optional(), lastName: z.string().optional(), expirationDate: z.string().optional(), additionalInfo: z.object({default: z.string().optional()}).optional(), cardType: z.string().optional(), token: z.string().optional(), tokenType: z.enum(["MULTIPAY", "FINANCIAL", "CTOKEN"]).optional(), modifiedTime: z.number().int().optional(), customer: z.object({id: z.string().optional()}).optional()})).optional(), metadata: z.object({businessName: z.string().optional(), note: z.string().optional(), dobYear: z.number().int().optional(), dobMonth: z.number().int().optional(), dobDay: z.number().int().optional(), modifiedTime: z.number().int().optional(), customer: z.object({id: z.string().optional()}).optional()}).optional()}).optional(), amount: z.number().int().optional(), taxAmount: z.number().int().optional(), taxRates: z.array(z.object({id: z.string().optional(), name: z.string().optional(), taxableAmount: z.number().int().optional(), rate: z.number().int().optional(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional(), transactionRef: z.object({id: z.string().optional()}).optional()})).optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), voided: z.boolean().optional(), voidReason: z.string().optional(), dccInfo: z.object({inquiryRateId: z.number().int().optional(), dccApplied: z.boolean().optional(), foreignCurrencyCode: z.string().optional(), foreignAmount: z.number().int().optional(), exchangeRate: z.number().optional(), marginRatePercentage: z.string().optional(), exchangeRateSourceName: z.string().optional(), exchangeRateSourceTimeStamp: z.string().optional(), dccEligible: z.boolean().optional(), exchangeRateId: z.string().optional(), rateRequestId: z.string().optional(), baseAmount: z.number().int().optional(), baseCurrencyCode: z.string().optional()}).optional(), transactionSettings: z.object({cardEntryMethods: z.number().int().optional(), disableCashBack: z.boolean().optional(), cloverShouldHandleReceipts: z.boolean().optional(), forcePinEntryOnSwipe: z.boolean().optional(), disableRestartTransactionOnFailure: z.boolean().optional(), allowOfflinePayment: z.boolean().optional(), approveOfflinePaymentWithoutPrompt: z.boolean().optional(), forceOfflinePayment: z.boolean().optional(), signatureThreshold: z.number().int().optional(), signatureEntryLocation: z.enum(["ON_SCREEN", "ON_PAPER", "NONE"]).optional(), tipMode: z.enum(["TIP_PROVIDED", "ON_SCREEN_BEFORE_PAYMENT", "ON_SCREEN_AFTER_PAYMENT", "ON_PAPER", "NO_TIP"]).optional(), tippableAmount: z.number().int().optional(), disableReceiptSelection: z.boolean().optional(), disableDuplicateCheck: z.boolean().optional(), autoAcceptPaymentConfirmations: z.boolean().optional(), autoAcceptSignature: z.boolean().optional(), returnResultOnTransactionComplete: z.boolean().optional(), tipSuggestions: z.array(z.object({id: z.string().optional(), name: z.string().optional(), percentage: z.number().int().optional(), amount: z.number().int().optional(), isEnabled: z.boolean().optional(), flatTip: z.number().int().optional()})).optional(), cashbackSuggestions: z.array(z.object({amount: z.number().int().optional()})).optional(), regionalExtras: z.object({default: z.string().optional()}).optional(), disableCreditSurcharge: z.boolean().optional(), receiptOptions: z.object({default: z.string().optional()}).optional(), remoteReceipts: z.boolean().optional()}).optional(), creditRefunds: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), credit: z.object({id: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional()})).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), reason: z.string().optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), merchant: z.object({id: z.string().optional()}).optional(), externalReferenceId: z.string().optional(), CreditAttributes: z.object({default: z.string().optional()}).optional()})).optional(), voids: z.array(z.object({id: z.string().optional(), order: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), tender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), amount: z.number().int().optional(), tipAmount: z.number().int().optional(), taxAmount: z.number().int().optional(), cashbackAmount: z.number().int().optional(), cashTendered: z.number().int().optional(), externalPaymentId: z.string().optional(), employee: z.object({id: z.string().optional()}).optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), offline: z.boolean().optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), serviceCharge: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), attributes: z.object({default: z.string().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), taxRates: z.array(z.object({id: z.string().optional(), name: z.string(), rate: z.number().int(), isDefault: z.boolean().optional(), taxableAmount: z.number().int(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional()})).optional(), refunds: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), amount: z.number().int().optional(), taxAmount: z.number().int().optional(), tipAmount: z.number().int().optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), lineItems: z.array(z.object({id: z.string().optional()})).optional(), overrideMerchantTender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), taxableAmountRates: z.array(z.object({id: z.string().optional(), name: z.string().optional(), taxableAmount: z.number().int().optional(), rate: z.number().int().optional(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional(), transactionRef: z.object({id: z.string().optional()}).optional()})).optional(), serviceChargeAmount: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), attributes: z.object({default: z.string().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), voided: z.boolean().optional(), voidReason: z.string().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), merchant: z.object({id: z.string().optional()}).optional(), externalReferenceId: z.string().optional(), authCode: z.string().optional(), status: z.enum(["FAIL", "SUCCESS", "PENDING"]).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), reason: z.string().optional()})).optional(), note: z.string().optional(), lineItemPayments: z.array(z.object({id: z.string().optional(), percentage: z.number().int().optional(), binName: z.string().optional(), refunded: z.boolean().optional()})).optional(), authorization: z.object({id: z.string().optional()}).optional(), voidPaymentRef: z.object({id: z.string().optional()}).optional(), voidReason: z.enum(["USER_CANCEL", "TRANSPORT_ERROR", "REJECT_SIGNATURE", "REJECT_PARTIAL_AUTH", "NOT_APPROVED", "FAILED", "AUTH_CLOSED_NEW_CARD", "DEVELOPER_PAY_PARTIAL_AUTH", "REJECT_DUPLICATE", "REJECT_OFFLINE", "GIFTCARD_LOAD_FAILED", "USER_GIFTCARD_LOAD_CANCEL", "DEVELOPER_PAY_TIP_ADJUST_FAILED", "USER_CUSTOMER_CANCEL", "FRAUD", "REJECT_GREATER_APPROVED_AMOUNT", "TIMEOUT"]).optional(), voidReasonDetails: z.object({txError: z.string().optional(), voidReasonCode: z.enum(["CANCEL_PAYMENT_ADJUST", "BREAK_RESET", "CANCEL", "AUTH_FAILED", "NETWORK_FAILED", "NON_OK_RESULT_CODE_RETURNED_FROM_VERIFY_CVM", "PARTIAL_AUTH_NOT_ALLOWED", "PARTIAL_AUTH_CANCELLED", "QUICK_CHIP_DECLINE", "KERNEL_DECLINE", "NON_OK_RESULT_CODE_FROM_FORCE_ACCEPT", "MERCHANT_CANCELLED_THE_FORCE_ACCEPTANCE", "CARD_READER_ERROR", "UNKNOWN_EXCEPTION", "ERROR_EVENT", "KERNEL_EXCEPTION", "FATAL_EXCEPTION", "CARD_CHECK_FAILED_FOR_REVERSAL", "MANUAL_ENTRY_NOT_ALLOWED", "MANUAL_ENTRY_NOT_ALLOWED_FOR_CARD", "SWIPE_CARD_CHECK_FAILED_FOR_REVERSAL", "OFFLINE_AUTH_FAILED", "TXN_STATUS_DECLINED", "COMPLETION_DEVICE", "NON_OK_RESULT_CODE_FROM_DUPLICATE_CHECK", "MERCHANT_CANCELLED_THE_DUPLICATE_CHECK", "NON_OK_RESULT_CODE_RETURNED_FROM_OFFLINE_SCREEN", "MERCHANT_CANCELLED_OFFLINE_PAYMENT", "OFFLINE_AUTH_FAILED_ON_CARD_PRESENT_REVERSAL", "QUICK_CHIP_TIME_OUT", "HANDLE_PAY_STATE", "HANDLE_CONTACT_REQUIRED", "FINALIZE", "HANDLE_CARD_DECLINED_TXN_STATUS", "MERCHANT_REASON"]).optional(), description: z.string().optional(), descriptionEnum: z.string().optional(), payFailureMessage: z.string().optional()}).optional(), dccInfo: z.object({inquiryRateId: z.number().int().optional(), dccApplied: z.boolean().optional(), foreignCurrencyCode: z.string().optional(), foreignAmount: z.number().int().optional(), exchangeRate: z.number().optional(), marginRatePercentage: z.string().optional(), exchangeRateSourceName: z.string().optional(), exchangeRateSourceTimeStamp: z.string().optional(), dccEligible: z.boolean().optional(), exchangeRateId: z.string().optional(), rateRequestId: z.string().optional(), baseAmount: z.number().int().optional(), baseCurrencyCode: z.string().optional()}).optional(), transactionSettings: z.object({cardEntryMethods: z.number().int().optional(), disableCashBack: z.boolean().optional(), cloverShouldHandleReceipts: z.boolean().optional(), forcePinEntryOnSwipe: z.boolean().optional(), disableRestartTransactionOnFailure: z.boolean().optional(), allowOfflinePayment: z.boolean().optional(), approveOfflinePaymentWithoutPrompt: z.boolean().optional(), forceOfflinePayment: z.boolean().optional(), signatureThreshold: z.number().int().optional(), signatureEntryLocation: z.enum(["ON_SCREEN", "ON_PAPER", "NONE"]).optional(), tipMode: z.enum(["TIP_PROVIDED", "ON_SCREEN_BEFORE_PAYMENT", "ON_SCREEN_AFTER_PAYMENT", "ON_PAPER", "NO_TIP"]).optional(), tippableAmount: z.number().int().optional(), disableReceiptSelection: z.boolean().optional(), disableDuplicateCheck: z.boolean().optional(), autoAcceptPaymentConfirmations: z.boolean().optional(), autoAcceptSignature: z.boolean().optional(), returnResultOnTransactionComplete: z.boolean().optional(), tipSuggestions: z.array(z.object({id: z.string().optional(), name: z.string().optional(), percentage: z.number().int().optional(), amount: z.number().int().optional(), isEnabled: z.boolean().optional(), flatTip: z.number().int().optional()})).optional(), cashbackSuggestions: z.array(z.object({amount: z.number().int().optional()})).optional(), regionalExtras: z.object({default: z.string().optional()}).optional(), disableCreditSurcharge: z.boolean().optional(), receiptOptions: z.object({default: z.string().optional()}).optional(), remoteReceipts: z.boolean().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), cashAdvanceExtra: z.object({cashAdvanceSerialNum: z.string().optional(), cashAdvanceCustomerIdentification: z.object({idType: z.enum(["DRIVERS_LICENSE", "PASSPORT", "US_MILITARY_ID", "US_RESIDENT", "CONSULAR_ID", "CANADIAN_CITIZEN", "US_STATE_GOVT_ID", "OTHER_ID"]).optional(), serialNumber: z.string().optional(), maskedSerialNumber: z.string().optional(), encryptedSerialNumber: z.string().optional(), expirationDate: z.string().optional(), issuingState: z.string().optional(), issuingCountry: z.string().optional(), customerName: z.string().optional(), addressStreet1: z.string().optional(), addressStreet2: z.string().optional(), addressCity: z.string().optional(), addressState: z.string().optional(), addressZipCode: z.string().optional(), addressCountry: z.string().optional(), tellerID: z.number().int().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), signatureDisclaimer: z.object({disclaimerText: z.string().optional(), disclaimerValues: z.object({default: z.string().optional()}).optional()}).optional(), externalReferenceId: z.string().optional(), merchant: z.object({id: z.string().optional()}).optional(), increments: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), createdTime: z.number().int().optional(), employee: z.object({id: z.string().optional()}).optional(), incrementAmount: z.number().int().optional()})).optional(), purchaseCardL2: z.object({taxAmount: z.number().int().optional(), taxIndicator: z.enum(["UNKNOWN", "TAXABLE", "NON_TAXABLE"]).optional(), vatTaxAmount: z.number().int().optional(), vatTaxRate: z.number().int().optional(), purchaseIdentifier: z.string().optional(), pcOrderNumber: z.string().optional(), discountAmount: z.number().int().optional(), freightAmount: z.number().int().optional(), dutyAmount: z.number().int().optional(), destinationPostalCode: z.string().optional(), shipFromPostalCode: z.string().optional(), destinationCountryCode: z.string().optional(), merchantTaxId: z.string().optional(), productDescription: z.string().optional()}).optional(), purchaseCardL3: z.object({serviceCode: z.string().optional(), magneticStripeInd: z.boolean().optional(), level3LineItems: z.array(z.object({itemDescription: z.string().optional(), productCode: z.string().optional(), unitCost: z.number().int().optional(), quantity: z.number().int().optional(), discountAmount: z.number().int().optional(), unitOfMeasure: z.string().optional(), commodityCode: z.string().optional()})).optional()}).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), terminalManagementComponents: z.array(z.object({type: z.enum(["ACQUIRER_PROTOCOL_PARAMS", "APPLICATION_PARAMS", "TERMINAL_PARAMS", "SECURITY_PARAMS", "SERVER", "TERMINAL", "DEVICE", "SECURE_MODULE", "PAYMENT_APPLICATION", "EMV_KERNEL", "EMV_LEVEL1", "MIDDLEWARE", "DRIVER", "OPERATING_SYSTEM", "MERCHANT_PARAMS", "CERTIFICATE_PARAMS", "TMS_PROTOCOL_PARAMS"]).optional(), itemNumber: z.string().optional(), provider: z.string().optional(), serial: z.string().optional(), version: z.string().optional(), identification: z.string().optional(), standard: z.object({component: z.string().optional(), identification: z.string().optional(), version: z.string().optional(), issuer: z.string().optional(), type: z.string().optional(), assigner: z.string().optional(), assessmentIdentifier: z.string().optional()}).optional()})).optional(), emiInfo: z.object({mobileNumber: z.string().optional(), indicator: z.string().optional(), transactionAmount: z.number().int().optional(), productAmount: z.number().int().optional(), discountAmount: z.number().int().optional(), tenure: z.number().int().optional(), interestRate: z.number().optional(), interestAmount: z.number().int().optional(), processingFee: z.number().int().optional(), totalAmount: z.number().int().optional(), amountPerMonth: z.number().int().optional()}).optional()})).optional(), preAuths: z.array(z.object({id: z.string().optional(), order: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), tender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), amount: z.number().int().optional(), tipAmount: z.number().int().optional(), taxAmount: z.number().int().optional(), cashbackAmount: z.number().int().optional(), cashTendered: z.number().int().optional(), externalPaymentId: z.string().optional(), employee: z.object({id: z.string().optional()}).optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), offline: z.boolean().optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), serviceCharge: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), attributes: z.object({default: z.string().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), taxRates: z.array(z.object({id: z.string().optional(), name: z.string(), rate: z.number().int(), isDefault: z.boolean().optional(), taxableAmount: z.number().int(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional()})).optional(), refunds: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), amount: z.number().int().optional(), taxAmount: z.number().int().optional(), tipAmount: z.number().int().optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), lineItems: z.array(z.object({id: z.string().optional()})).optional(), overrideMerchantTender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), taxableAmountRates: z.array(z.object({id: z.string().optional(), name: z.string().optional(), taxableAmount: z.number().int().optional(), rate: z.number().int().optional(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional(), transactionRef: z.object({id: z.string().optional()}).optional()})).optional(), serviceChargeAmount: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), attributes: z.object({default: z.string().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), voided: z.boolean().optional(), voidReason: z.string().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), merchant: z.object({id: z.string().optional()}).optional(), externalReferenceId: z.string().optional(), authCode: z.string().optional(), status: z.enum(["FAIL", "SUCCESS", "PENDING"]).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), reason: z.string().optional()})).optional(), note: z.string().optional(), lineItemPayments: z.array(z.object({id: z.string().optional(), percentage: z.number().int().optional(), binName: z.string().optional(), refunded: z.boolean().optional()})).optional(), authorization: z.object({id: z.string().optional()}).optional(), voidPaymentRef: z.object({id: z.string().optional()}).optional(), voidReason: z.enum(["USER_CANCEL", "TRANSPORT_ERROR", "REJECT_SIGNATURE", "REJECT_PARTIAL_AUTH", "NOT_APPROVED", "FAILED", "AUTH_CLOSED_NEW_CARD", "DEVELOPER_PAY_PARTIAL_AUTH", "REJECT_DUPLICATE", "REJECT_OFFLINE", "GIFTCARD_LOAD_FAILED", "USER_GIFTCARD_LOAD_CANCEL", "DEVELOPER_PAY_TIP_ADJUST_FAILED", "USER_CUSTOMER_CANCEL", "FRAUD", "REJECT_GREATER_APPROVED_AMOUNT", "TIMEOUT"]).optional(), voidReasonDetails: z.object({txError: z.string().optional(), voidReasonCode: z.enum(["CANCEL_PAYMENT_ADJUST", "BREAK_RESET", "CANCEL", "AUTH_FAILED", "NETWORK_FAILED", "NON_OK_RESULT_CODE_RETURNED_FROM_VERIFY_CVM", "PARTIAL_AUTH_NOT_ALLOWED", "PARTIAL_AUTH_CANCELLED", "QUICK_CHIP_DECLINE", "KERNEL_DECLINE", "NON_OK_RESULT_CODE_FROM_FORCE_ACCEPT", "MERCHANT_CANCELLED_THE_FORCE_ACCEPTANCE", "CARD_READER_ERROR", "UNKNOWN_EXCEPTION", "ERROR_EVENT", "KERNEL_EXCEPTION", "FATAL_EXCEPTION", "CARD_CHECK_FAILED_FOR_REVERSAL", "MANUAL_ENTRY_NOT_ALLOWED", "MANUAL_ENTRY_NOT_ALLOWED_FOR_CARD", "SWIPE_CARD_CHECK_FAILED_FOR_REVERSAL", "OFFLINE_AUTH_FAILED", "TXN_STATUS_DECLINED", "COMPLETION_DEVICE", "NON_OK_RESULT_CODE_FROM_DUPLICATE_CHECK", "MERCHANT_CANCELLED_THE_DUPLICATE_CHECK", "NON_OK_RESULT_CODE_RETURNED_FROM_OFFLINE_SCREEN", "MERCHANT_CANCELLED_OFFLINE_PAYMENT", "OFFLINE_AUTH_FAILED_ON_CARD_PRESENT_REVERSAL", "QUICK_CHIP_TIME_OUT", "HANDLE_PAY_STATE", "HANDLE_CONTACT_REQUIRED", "FINALIZE", "HANDLE_CARD_DECLINED_TXN_STATUS", "MERCHANT_REASON"]).optional(), description: z.string().optional(), descriptionEnum: z.string().optional(), payFailureMessage: z.string().optional()}).optional(), dccInfo: z.object({inquiryRateId: z.number().int().optional(), dccApplied: z.boolean().optional(), foreignCurrencyCode: z.string().optional(), foreignAmount: z.number().int().optional(), exchangeRate: z.number().optional(), marginRatePercentage: z.string().optional(), exchangeRateSourceName: z.string().optional(), exchangeRateSourceTimeStamp: z.string().optional(), dccEligible: z.boolean().optional(), exchangeRateId: z.string().optional(), rateRequestId: z.string().optional(), baseAmount: z.number().int().optional(), baseCurrencyCode: z.string().optional()}).optional(), transactionSettings: z.object({cardEntryMethods: z.number().int().optional(), disableCashBack: z.boolean().optional(), cloverShouldHandleReceipts: z.boolean().optional(), forcePinEntryOnSwipe: z.boolean().optional(), disableRestartTransactionOnFailure: z.boolean().optional(), allowOfflinePayment: z.boolean().optional(), approveOfflinePaymentWithoutPrompt: z.boolean().optional(), forceOfflinePayment: z.boolean().optional(), signatureThreshold: z.number().int().optional(), signatureEntryLocation: z.enum(["ON_SCREEN", "ON_PAPER", "NONE"]).optional(), tipMode: z.enum(["TIP_PROVIDED", "ON_SCREEN_BEFORE_PAYMENT", "ON_SCREEN_AFTER_PAYMENT", "ON_PAPER", "NO_TIP"]).optional(), tippableAmount: z.number().int().optional(), disableReceiptSelection: z.boolean().optional(), disableDuplicateCheck: z.boolean().optional(), autoAcceptPaymentConfirmations: z.boolean().optional(), autoAcceptSignature: z.boolean().optional(), returnResultOnTransactionComplete: z.boolean().optional(), tipSuggestions: z.array(z.object({id: z.string().optional(), name: z.string().optional(), percentage: z.number().int().optional(), amount: z.number().int().optional(), isEnabled: z.boolean().optional(), flatTip: z.number().int().optional()})).optional(), cashbackSuggestions: z.array(z.object({amount: z.number().int().optional()})).optional(), regionalExtras: z.object({default: z.string().optional()}).optional(), disableCreditSurcharge: z.boolean().optional(), receiptOptions: z.object({default: z.string().optional()}).optional(), remoteReceipts: z.boolean().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), cashAdvanceExtra: z.object({cashAdvanceSerialNum: z.string().optional(), cashAdvanceCustomerIdentification: z.object({idType: z.enum(["DRIVERS_LICENSE", "PASSPORT", "US_MILITARY_ID", "US_RESIDENT", "CONSULAR_ID", "CANADIAN_CITIZEN", "US_STATE_GOVT_ID", "OTHER_ID"]).optional(), serialNumber: z.string().optional(), maskedSerialNumber: z.string().optional(), encryptedSerialNumber: z.string().optional(), expirationDate: z.string().optional(), issuingState: z.string().optional(), issuingCountry: z.string().optional(), customerName: z.string().optional(), addressStreet1: z.string().optional(), addressStreet2: z.string().optional(), addressCity: z.string().optional(), addressState: z.string().optional(), addressZipCode: z.string().optional(), addressCountry: z.string().optional(), tellerID: z.number().int().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), signatureDisclaimer: z.object({disclaimerText: z.string().optional(), disclaimerValues: z.object({default: z.string().optional()}).optional()}).optional(), externalReferenceId: z.string().optional(), merchant: z.object({id: z.string().optional()}).optional(), increments: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), createdTime: z.number().int().optional(), employee: z.object({id: z.string().optional()}).optional(), incrementAmount: z.number().int().optional()})).optional(), purchaseCardL2: z.object({taxAmount: z.number().int().optional(), taxIndicator: z.enum(["UNKNOWN", "TAXABLE", "NON_TAXABLE"]).optional(), vatTaxAmount: z.number().int().optional(), vatTaxRate: z.number().int().optional(), purchaseIdentifier: z.string().optional(), pcOrderNumber: z.string().optional(), discountAmount: z.number().int().optional(), freightAmount: z.number().int().optional(), dutyAmount: z.number().int().optional(), destinationPostalCode: z.string().optional(), shipFromPostalCode: z.string().optional(), destinationCountryCode: z.string().optional(), merchantTaxId: z.string().optional(), productDescription: z.string().optional()}).optional(), purchaseCardL3: z.object({serviceCode: z.string().optional(), magneticStripeInd: z.boolean().optional(), level3LineItems: z.array(z.object({itemDescription: z.string().optional(), productCode: z.string().optional(), unitCost: z.number().int().optional(), quantity: z.number().int().optional(), discountAmount: z.number().int().optional(), unitOfMeasure: z.string().optional(), commodityCode: z.string().optional()})).optional()}).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), terminalManagementComponents: z.array(z.object({type: z.enum(["ACQUIRER_PROTOCOL_PARAMS", "APPLICATION_PARAMS", "TERMINAL_PARAMS", "SECURITY_PARAMS", "SERVER", "TERMINAL", "DEVICE", "SECURE_MODULE", "PAYMENT_APPLICATION", "EMV_KERNEL", "EMV_LEVEL1", "MIDDLEWARE", "DRIVER", "OPERATING_SYSTEM", "MERCHANT_PARAMS", "CERTIFICATE_PARAMS", "TMS_PROTOCOL_PARAMS"]).optional(), itemNumber: z.string().optional(), provider: z.string().optional(), serial: z.string().optional(), version: z.string().optional(), identification: z.string().optional(), standard: z.object({component: z.string().optional(), identification: z.string().optional(), version: z.string().optional(), issuer: z.string().optional(), type: z.string().optional(), assigner: z.string().optional(), assessmentIdentifier: z.string().optional()}).optional()})).optional(), emiInfo: z.object({mobileNumber: z.string().optional(), indicator: z.string().optional(), transactionAmount: z.number().int().optional(), productAmount: z.number().int().optional(), discountAmount: z.number().int().optional(), tenure: z.number().int().optional(), interestRate: z.number().optional(), interestAmount: z.number().int().optional(), processingFee: z.number().int().optional(), totalAmount: z.number().int().optional(), amountPerMonth: z.number().int().optional()}).optional()})).optional(), device: z.object({id: z.string().optional()}).optional(), authorizations: z.array(z.object({id: z.string().optional(), payment: z.object({id: z.string().optional(), order: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), tender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), amount: z.number().int().optional(), tipAmount: z.number().int().optional(), taxAmount: z.number().int().optional(), cashbackAmount: z.number().int().optional(), cashTendered: z.number().int().optional(), externalPaymentId: z.string().optional(), employee: z.object({id: z.string().optional()}).optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), offline: z.boolean().optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), serviceCharge: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), attributes: z.object({default: z.string().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), taxRates: z.array(z.object({id: z.string().optional(), name: z.string(), rate: z.number().int(), isDefault: z.boolean().optional(), taxableAmount: z.number().int(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional()})).optional(), refunds: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), amount: z.number().int().optional(), taxAmount: z.number().int().optional(), tipAmount: z.number().int().optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), lineItems: z.array(z.object({id: z.string().optional()})).optional(), overrideMerchantTender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), taxableAmountRates: z.array(z.object({id: z.string().optional(), name: z.string().optional(), taxableAmount: z.number().int().optional(), rate: z.number().int().optional(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional(), transactionRef: z.object({id: z.string().optional()}).optional()})).optional(), serviceChargeAmount: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), attributes: z.object({default: z.string().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), voided: z.boolean().optional(), voidReason: z.string().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), merchant: z.object({id: z.string().optional()}).optional(), externalReferenceId: z.string().optional(), authCode: z.string().optional(), status: z.enum(["FAIL", "SUCCESS", "PENDING"]).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), reason: z.string().optional()})).optional(), note: z.string().optional(), lineItemPayments: z.array(z.object({id: z.string().optional(), percentage: z.number().int().optional(), binName: z.string().optional(), refunded: z.boolean().optional()})).optional(), authorization: z.object({id: z.string().optional()}).optional(), voidPaymentRef: z.object({id: z.string().optional()}).optional(), voidReason: z.enum(["USER_CANCEL", "TRANSPORT_ERROR", "REJECT_SIGNATURE", "REJECT_PARTIAL_AUTH", "NOT_APPROVED", "FAILED", "AUTH_CLOSED_NEW_CARD", "DEVELOPER_PAY_PARTIAL_AUTH", "REJECT_DUPLICATE", "REJECT_OFFLINE", "GIFTCARD_LOAD_FAILED", "USER_GIFTCARD_LOAD_CANCEL", "DEVELOPER_PAY_TIP_ADJUST_FAILED", "USER_CUSTOMER_CANCEL", "FRAUD", "REJECT_GREATER_APPROVED_AMOUNT", "TIMEOUT"]).optional(), voidReasonDetails: z.object({txError: z.string().optional(), voidReasonCode: z.enum(["CANCEL_PAYMENT_ADJUST", "BREAK_RESET", "CANCEL", "AUTH_FAILED", "NETWORK_FAILED", "NON_OK_RESULT_CODE_RETURNED_FROM_VERIFY_CVM", "PARTIAL_AUTH_NOT_ALLOWED", "PARTIAL_AUTH_CANCELLED", "QUICK_CHIP_DECLINE", "KERNEL_DECLINE", "NON_OK_RESULT_CODE_FROM_FORCE_ACCEPT", "MERCHANT_CANCELLED_THE_FORCE_ACCEPTANCE", "CARD_READER_ERROR", "UNKNOWN_EXCEPTION", "ERROR_EVENT", "KERNEL_EXCEPTION", "FATAL_EXCEPTION", "CARD_CHECK_FAILED_FOR_REVERSAL", "MANUAL_ENTRY_NOT_ALLOWED", "MANUAL_ENTRY_NOT_ALLOWED_FOR_CARD", "SWIPE_CARD_CHECK_FAILED_FOR_REVERSAL", "OFFLINE_AUTH_FAILED", "TXN_STATUS_DECLINED", "COMPLETION_DEVICE", "NON_OK_RESULT_CODE_FROM_DUPLICATE_CHECK", "MERCHANT_CANCELLED_THE_DUPLICATE_CHECK", "NON_OK_RESULT_CODE_RETURNED_FROM_OFFLINE_SCREEN", "MERCHANT_CANCELLED_OFFLINE_PAYMENT", "OFFLINE_AUTH_FAILED_ON_CARD_PRESENT_REVERSAL", "QUICK_CHIP_TIME_OUT", "HANDLE_PAY_STATE", "HANDLE_CONTACT_REQUIRED", "FINALIZE", "HANDLE_CARD_DECLINED_TXN_STATUS", "MERCHANT_REASON"]).optional(), description: z.string().optional(), descriptionEnum: z.string().optional(), payFailureMessage: z.string().optional()}).optional(), dccInfo: z.object({inquiryRateId: z.number().int().optional(), dccApplied: z.boolean().optional(), foreignCurrencyCode: z.string().optional(), foreignAmount: z.number().int().optional(), exchangeRate: z.number().optional(), marginRatePercentage: z.string().optional(), exchangeRateSourceName: z.string().optional(), exchangeRateSourceTimeStamp: z.string().optional(), dccEligible: z.boolean().optional(), exchangeRateId: z.string().optional(), rateRequestId: z.string().optional(), baseAmount: z.number().int().optional(), baseCurrencyCode: z.string().optional()}).optional(), transactionSettings: z.object({cardEntryMethods: z.number().int().optional(), disableCashBack: z.boolean().optional(), cloverShouldHandleReceipts: z.boolean().optional(), forcePinEntryOnSwipe: z.boolean().optional(), disableRestartTransactionOnFailure: z.boolean().optional(), allowOfflinePayment: z.boolean().optional(), approveOfflinePaymentWithoutPrompt: z.boolean().optional(), forceOfflinePayment: z.boolean().optional(), signatureThreshold: z.number().int().optional(), signatureEntryLocation: z.enum(["ON_SCREEN", "ON_PAPER", "NONE"]).optional(), tipMode: z.enum(["TIP_PROVIDED", "ON_SCREEN_BEFORE_PAYMENT", "ON_SCREEN_AFTER_PAYMENT", "ON_PAPER", "NO_TIP"]).optional(), tippableAmount: z.number().int().optional(), disableReceiptSelection: z.boolean().optional(), disableDuplicateCheck: z.boolean().optional(), autoAcceptPaymentConfirmations: z.boolean().optional(), autoAcceptSignature: z.boolean().optional(), returnResultOnTransactionComplete: z.boolean().optional(), tipSuggestions: z.array(z.object({id: z.string().optional(), name: z.string().optional(), percentage: z.number().int().optional(), amount: z.number().int().optional(), isEnabled: z.boolean().optional(), flatTip: z.number().int().optional()})).optional(), cashbackSuggestions: z.array(z.object({amount: z.number().int().optional()})).optional(), regionalExtras: z.object({default: z.string().optional()}).optional(), disableCreditSurcharge: z.boolean().optional(), receiptOptions: z.object({default: z.string().optional()}).optional(), remoteReceipts: z.boolean().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), cashAdvanceExtra: z.object({cashAdvanceSerialNum: z.string().optional(), cashAdvanceCustomerIdentification: z.object({idType: z.enum(["DRIVERS_LICENSE", "PASSPORT", "US_MILITARY_ID", "US_RESIDENT", "CONSULAR_ID", "CANADIAN_CITIZEN", "US_STATE_GOVT_ID", "OTHER_ID"]).optional(), serialNumber: z.string().optional(), maskedSerialNumber: z.string().optional(), encryptedSerialNumber: z.string().optional(), expirationDate: z.string().optional(), issuingState: z.string().optional(), issuingCountry: z.string().optional(), customerName: z.string().optional(), addressStreet1: z.string().optional(), addressStreet2: z.string().optional(), addressCity: z.string().optional(), addressState: z.string().optional(), addressZipCode: z.string().optional(), addressCountry: z.string().optional(), tellerID: z.number().int().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), signatureDisclaimer: z.object({disclaimerText: z.string().optional(), disclaimerValues: z.object({default: z.string().optional()}).optional()}).optional(), externalReferenceId: z.string().optional(), merchant: z.object({id: z.string().optional()}).optional(), increments: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), createdTime: z.number().int().optional(), employee: z.object({id: z.string().optional()}).optional(), incrementAmount: z.number().int().optional()})).optional(), purchaseCardL2: z.object({taxAmount: z.number().int().optional(), taxIndicator: z.enum(["UNKNOWN", "TAXABLE", "NON_TAXABLE"]).optional(), vatTaxAmount: z.number().int().optional(), vatTaxRate: z.number().int().optional(), purchaseIdentifier: z.string().optional(), pcOrderNumber: z.string().optional(), discountAmount: z.number().int().optional(), freightAmount: z.number().int().optional(), dutyAmount: z.number().int().optional(), destinationPostalCode: z.string().optional(), shipFromPostalCode: z.string().optional(), destinationCountryCode: z.string().optional(), merchantTaxId: z.string().optional(), productDescription: z.string().optional()}).optional(), purchaseCardL3: z.object({serviceCode: z.string().optional(), magneticStripeInd: z.boolean().optional(), level3LineItems: z.array(z.object({itemDescription: z.string().optional(), productCode: z.string().optional(), unitCost: z.number().int().optional(), quantity: z.number().int().optional(), discountAmount: z.number().int().optional(), unitOfMeasure: z.string().optional(), commodityCode: z.string().optional()})).optional()}).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), terminalManagementComponents: z.array(z.object({type: z.enum(["ACQUIRER_PROTOCOL_PARAMS", "APPLICATION_PARAMS", "TERMINAL_PARAMS", "SECURITY_PARAMS", "SERVER", "TERMINAL", "DEVICE", "SECURE_MODULE", "PAYMENT_APPLICATION", "EMV_KERNEL", "EMV_LEVEL1", "MIDDLEWARE", "DRIVER", "OPERATING_SYSTEM", "MERCHANT_PARAMS", "CERTIFICATE_PARAMS", "TMS_PROTOCOL_PARAMS"]).optional(), itemNumber: z.string().optional(), provider: z.string().optional(), serial: z.string().optional(), version: z.string().optional(), identification: z.string().optional(), standard: z.object({component: z.string().optional(), identification: z.string().optional(), version: z.string().optional(), issuer: z.string().optional(), type: z.string().optional(), assigner: z.string().optional(), assessmentIdentifier: z.string().optional()}).optional()})).optional(), emiInfo: z.object({mobileNumber: z.string().optional(), indicator: z.string().optional(), transactionAmount: z.number().int().optional(), productAmount: z.number().int().optional(), discountAmount: z.number().int().optional(), tenure: z.number().int().optional(), interestRate: z.number().optional(), interestAmount: z.number().int().optional(), processingFee: z.number().int().optional(), totalAmount: z.number().int().optional(), amountPerMonth: z.number().int().optional()}).optional()}).optional(), tabName: z.string().optional(), amount: z.number().int().optional(), cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), last4: z.string().optional(), authcode: z.string().optional(), token: z.string().optional(), type: z.enum(["TAB", "AUTH"]).optional(), note: z.string().optional(), externalReferenceId: z.string().optional(), closingPayment: z.object({id: z.string().optional(), order: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), tender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), amount: z.number().int().optional(), tipAmount: z.number().int().optional(), taxAmount: z.number().int().optional(), cashbackAmount: z.number().int().optional(), cashTendered: z.number().int().optional(), externalPaymentId: z.string().optional(), employee: z.object({id: z.string().optional()}).optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), offline: z.boolean().optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), serviceCharge: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), attributes: z.object({default: z.string().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), taxRates: z.array(z.object({id: z.string().optional(), name: z.string(), rate: z.number().int(), isDefault: z.boolean().optional(), taxableAmount: z.number().int(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional()})).optional(), refunds: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), device: z.object({id: z.string().optional()}).optional(), amount: z.number().int().optional(), taxAmount: z.number().int().optional(), tipAmount: z.number().int().optional(), createdTime: z.number().int().optional(), clientCreatedTime: z.number().int().optional(), gatewayProcessingTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional(), employee: z.object({id: z.string().optional()}).optional(), lineItems: z.array(z.object({id: z.string().optional()})).optional(), overrideMerchantTender: z.object({id: z.string().optional(), editable: z.boolean().optional(), labelKey: z.string().optional(), label: z.string().optional(), opensCashDrawer: z.boolean().optional(), supportsTipping: z.boolean().optional(), enabled: z.boolean().optional(), visible: z.boolean().optional(), instructions: z.string().optional()}).optional(), taxableAmountRates: z.array(z.object({id: z.string().optional(), name: z.string().optional(), taxableAmount: z.number().int().optional(), rate: z.number().int().optional(), isVat: z.boolean().optional(), taxAmount: z.number().int().optional(), transactionRef: z.object({id: z.string().optional()}).optional()})).optional(), serviceChargeAmount: z.object({id: z.string().optional(), name: z.string().optional(), amount: z.number().int().optional()}).optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), attributes: z.object({default: z.string().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), voided: z.boolean().optional(), voidReason: z.string().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), merchant: z.object({id: z.string().optional()}).optional(), externalReferenceId: z.string().optional(), authCode: z.string().optional(), status: z.enum(["FAIL", "SUCCESS", "PENDING"]).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), reason: z.string().optional()})).optional(), note: z.string().optional(), lineItemPayments: z.array(z.object({id: z.string().optional(), percentage: z.number().int().optional(), binName: z.string().optional(), refunded: z.boolean().optional()})).optional(), authorization: z.object({id: z.string().optional()}).optional(), voidPaymentRef: z.object({id: z.string().optional()}).optional(), voidReason: z.enum(["USER_CANCEL", "TRANSPORT_ERROR", "REJECT_SIGNATURE", "REJECT_PARTIAL_AUTH", "NOT_APPROVED", "FAILED", "AUTH_CLOSED_NEW_CARD", "DEVELOPER_PAY_PARTIAL_AUTH", "REJECT_DUPLICATE", "REJECT_OFFLINE", "GIFTCARD_LOAD_FAILED", "USER_GIFTCARD_LOAD_CANCEL", "DEVELOPER_PAY_TIP_ADJUST_FAILED", "USER_CUSTOMER_CANCEL", "FRAUD", "REJECT_GREATER_APPROVED_AMOUNT", "TIMEOUT"]).optional(), voidReasonDetails: z.object({txError: z.string().optional(), voidReasonCode: z.enum(["CANCEL_PAYMENT_ADJUST", "BREAK_RESET", "CANCEL", "AUTH_FAILED", "NETWORK_FAILED", "NON_OK_RESULT_CODE_RETURNED_FROM_VERIFY_CVM", "PARTIAL_AUTH_NOT_ALLOWED", "PARTIAL_AUTH_CANCELLED", "QUICK_CHIP_DECLINE", "KERNEL_DECLINE", "NON_OK_RESULT_CODE_FROM_FORCE_ACCEPT", "MERCHANT_CANCELLED_THE_FORCE_ACCEPTANCE", "CARD_READER_ERROR", "UNKNOWN_EXCEPTION", "ERROR_EVENT", "KERNEL_EXCEPTION", "FATAL_EXCEPTION", "CARD_CHECK_FAILED_FOR_REVERSAL", "MANUAL_ENTRY_NOT_ALLOWED", "MANUAL_ENTRY_NOT_ALLOWED_FOR_CARD", "SWIPE_CARD_CHECK_FAILED_FOR_REVERSAL", "OFFLINE_AUTH_FAILED", "TXN_STATUS_DECLINED", "COMPLETION_DEVICE", "NON_OK_RESULT_CODE_FROM_DUPLICATE_CHECK", "MERCHANT_CANCELLED_THE_DUPLICATE_CHECK", "NON_OK_RESULT_CODE_RETURNED_FROM_OFFLINE_SCREEN", "MERCHANT_CANCELLED_OFFLINE_PAYMENT", "OFFLINE_AUTH_FAILED_ON_CARD_PRESENT_REVERSAL", "QUICK_CHIP_TIME_OUT", "HANDLE_PAY_STATE", "HANDLE_CONTACT_REQUIRED", "FINALIZE", "HANDLE_CARD_DECLINED_TXN_STATUS", "MERCHANT_REASON"]).optional(), description: z.string().optional(), descriptionEnum: z.string().optional(), payFailureMessage: z.string().optional()}).optional(), dccInfo: z.object({inquiryRateId: z.number().int().optional(), dccApplied: z.boolean().optional(), foreignCurrencyCode: z.string().optional(), foreignAmount: z.number().int().optional(), exchangeRate: z.number().optional(), marginRatePercentage: z.string().optional(), exchangeRateSourceName: z.string().optional(), exchangeRateSourceTimeStamp: z.string().optional(), dccEligible: z.boolean().optional(), exchangeRateId: z.string().optional(), rateRequestId: z.string().optional(), baseAmount: z.number().int().optional(), baseCurrencyCode: z.string().optional()}).optional(), transactionSettings: z.object({cardEntryMethods: z.number().int().optional(), disableCashBack: z.boolean().optional(), cloverShouldHandleReceipts: z.boolean().optional(), forcePinEntryOnSwipe: z.boolean().optional(), disableRestartTransactionOnFailure: z.boolean().optional(), allowOfflinePayment: z.boolean().optional(), approveOfflinePaymentWithoutPrompt: z.boolean().optional(), forceOfflinePayment: z.boolean().optional(), signatureThreshold: z.number().int().optional(), signatureEntryLocation: z.enum(["ON_SCREEN", "ON_PAPER", "NONE"]).optional(), tipMode: z.enum(["TIP_PROVIDED", "ON_SCREEN_BEFORE_PAYMENT", "ON_SCREEN_AFTER_PAYMENT", "ON_PAPER", "NO_TIP"]).optional(), tippableAmount: z.number().int().optional(), disableReceiptSelection: z.boolean().optional(), disableDuplicateCheck: z.boolean().optional(), autoAcceptPaymentConfirmations: z.boolean().optional(), autoAcceptSignature: z.boolean().optional(), returnResultOnTransactionComplete: z.boolean().optional(), tipSuggestions: z.array(z.object({id: z.string().optional(), name: z.string().optional(), percentage: z.number().int().optional(), amount: z.number().int().optional(), isEnabled: z.boolean().optional(), flatTip: z.number().int().optional()})).optional(), cashbackSuggestions: z.array(z.object({amount: z.number().int().optional()})).optional(), regionalExtras: z.object({default: z.string().optional()}).optional(), disableCreditSurcharge: z.boolean().optional(), receiptOptions: z.object({default: z.string().optional()}).optional(), remoteReceipts: z.boolean().optional()}).optional(), germanInfo: z.object({cardTrack2: z.string().optional(), cardSequenceNumber: z.string().optional(), transactionCaseGermany: z.string().optional(), transactionTypeGermany: z.string().optional(), terminalID: z.string().optional(), traceNumber: z.string().optional(), oldTraceNumber: z.string().optional(), receiptNumber: z.string().optional(), transactionAID: z.string().optional(), transactionMSApp: z.string().optional(), transactionScriptResults: z.string().optional(), receiptType: z.string().optional(), customerTransactionDOLValues: z.string().optional(), merchantTransactionDOLValues: z.string().optional(), merchantJournalDOL: z.string().optional(), merchantJournalDOLValues: z.string().optional(), configMerchantId: z.string().optional(), configProductLabel: z.string().optional(), hostResponseAidParBMP53: z.string().optional(), hostResponsePrintDataBM60: z.string().optional(), sepaElvReceiptFormat: z.string().optional(), sepaElvExtAppLabel: z.string().optional(), sepaElvPreNotification: z.string().optional(), sepaElvMandate: z.string().optional(), sepaElvCreditorId: z.string().optional(), sepaElvMandateId: z.string().optional(), sepaElvIban: z.string().optional()}).optional(), appTracking: z.object({developerAppId: z.string().optional(), applicationName: z.string().optional(), applicationID: z.string().optional(), applicationVersion: z.string().optional(), sourceSDK: z.string().optional(), sourceSDKVersion: z.string().optional()}).optional(), cashAdvanceExtra: z.object({cashAdvanceSerialNum: z.string().optional(), cashAdvanceCustomerIdentification: z.object({idType: z.enum(["DRIVERS_LICENSE", "PASSPORT", "US_MILITARY_ID", "US_RESIDENT", "CONSULAR_ID", "CANADIAN_CITIZEN", "US_STATE_GOVT_ID", "OTHER_ID"]).optional(), serialNumber: z.string().optional(), maskedSerialNumber: z.string().optional(), encryptedSerialNumber: z.string().optional(), expirationDate: z.string().optional(), issuingState: z.string().optional(), issuingCountry: z.string().optional(), customerName: z.string().optional(), addressStreet1: z.string().optional(), addressStreet2: z.string().optional(), addressCity: z.string().optional(), addressState: z.string().optional(), addressZipCode: z.string().optional(), addressCountry: z.string().optional(), tellerID: z.number().int().optional()}).optional()}).optional(), transactionInfo: z.object({languageIndicator: z.string().optional(), transactionLocale: z.string().optional(), accountSelection: z.enum(["CREDIT", "DEBIT", "CHECKING", "SAVINGS"]).optional(), fiscalInvoiceNumber: z.string().optional(), installmentsQuantity: z.number().int().optional(), installmentsPlanCode: z.string().optional(), installmentsPlanId: z.string().optional(), installmentsPlanDesc: z.string().optional(), cardTypeLabel: z.string().optional(), cardSymbol: z.string().optional(), stan: z.number().int().optional(), identityDocument: z.object({id: z.string().optional(), type: z.string().optional(), number: z.string().optional(), createdTime: z.number().int().optional(), modifiedTime: z.number().int().optional(), deletedTime: z.number().int().optional(), payment: z.object({id: z.string().optional()}).optional()}).optional(), batchNumber: z.string().optional(), receiptNumber: z.string().optional(), reversalStanRefNum: z.string().optional(), reversalStan: z.number().int().optional(), reversalMac: z.string().optional(), reversalMacKsn: z.string().optional(), terminalIdentification: z.string().optional(), externalTerminalId: z.string().optional(), merchantIdentifier: z.string().optional(), merchantNameLocation: z.string().optional(), maskedTrack2: z.string().optional(), receiptExtraData: z.string().optional(), selectedService: z.enum(["NONE", "PAYMENT", "REFUND", "CANCELLATION", "PRE_AUTH", "UPDATE_PRE_AUTH", "PAYMENT_COMPLETION", "CASH_ADVANCE", "DEFERRED_PAYMENT", "DEFERRED_PAYMENT_COMPLETION", "VOICE_AUTHORISATION", "CARDHOLDER_DETECTION", "TOKEN_REQUEST", "VERIFICATION"]).optional(), transactionResult: z.enum(["APPROVED", "DECLINED", "ABORTED", "VOICE_AUTHORISATION", "PAYMENT_PART_ONLY", "PARTIALLY_APPROVED", "NONE"]).optional(), transactionTags: z.string().optional(), txFormat: z.enum(["DEFAULT", "NEXO"]).optional(), panMask: z.string().optional(), transactionSequenceCounter: z.string().optional(), applicationPanSequenceNumber: z.string().optional(), reversalReason: z.enum(["CHIP_DECLINE", "CARDHOLDER_CANCELLATION", "COMMUNICATION_ERROR", "OTHER_REASON"]).optional(), isTokenBasedTx: z.boolean().optional(), origTransactionSequenceCounter: z.string().optional(), transactionSequenceCounterUpdate: z.string().optional(), emergencyFlag: z.boolean().optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), promotionalMessage: z.object({message: z.string().optional(), showOnMerchantReceipt: z.boolean().optional(), showOnCustomerReceipt: z.boolean().optional(), showOnDisplay: z.boolean().optional()}).optional(), sepaElvTransactionInfo: z.object({receiptFormat: z.string().optional(), extAppLabel: z.string().optional(), preNotification: z.string().optional(), mandate: z.string().optional(), creditorId: z.string().optional(), mandateId: z.string().optional(), iban: z.string().optional(), isMerchantForced: z.boolean().optional()}).optional(), clientCardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), explicitlySelectedApp: z.string().optional(), isSepaElv: z.boolean().optional(), cardEntryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), printMessages: z.array(z.object({destination: z.enum(["CUSTOMER_DISPLAY", "CUSTOMER_RECEIPT", "CUSTOMER_RECEIPT_AID_PARAM", "MERCHANT_DISPLAY", "MERCHANT_RECEIPT", "MERCHANT_RECEIPT_AID_PARAM"]).optional(), content: z.string().optional()})).optional()}).optional(), signatureDisclaimer: z.object({disclaimerText: z.string().optional(), disclaimerValues: z.object({default: z.string().optional()}).optional()}).optional(), externalReferenceId: z.string().optional(), merchant: z.object({id: z.string().optional()}).optional(), increments: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), cardTransaction: z.object({cardType: z.enum(["VISA", "MC", "AMEX", "DISCOVER", "DINERS_CLUB", "JCB", "MAESTRO", "SOLO", "LASER", "CHINA_UNION_PAY", "CARTE_BLANCHE", "UNKNOWN", "GIFT_CARD", "EBT", "GIROCARD", "INTERAC", "OTHER", "RUPAY"]).optional(), entryType: z.enum(["SWIPED", "KEYED", "VOICE", "VAULTED", "OFFLINE_SWIPED", "OFFLINE_KEYED", "EMV_CONTACT", "EMV_CONTACTLESS", "MSD_CONTACTLESS", "PINPAD_MANUAL_ENTRY", "QR_CODE", "SCANNED"]).optional(), first6: z.string().optional(), last4: z.string().optional(), type: z.enum(["AUTH", "PREAUTH", "PREAUTHCAPTURE", "ADJUST", "VOID", "VOIDRETURN", "RETURN", "REFUND", "NAKEDREFUND", "GETBALANCE", "BATCHCLOSE", "ACTIVATE", "BALANCE_LOCK", "LOAD", "CASHOUT", "CASHOUT_ACTIVE_STATUS", "REDEMPTION", "REDEMPTION_UNLOCK", "RELOAD", "CASH_ADVANCE", "VOID_CREDIT", "REFUND_CREDIT", "INTERNET_ACTIVATE", "TOKEN_REQUEST", "VERIFICATION"]).optional(), authCode: z.string().optional(), referenceId: z.string().optional(), transactionNo: z.string().optional(), state: z.enum(["PENDING", "CLOSED"]).optional(), extra: z.object({default: z.string().optional()}).optional(), begBalance: z.number().int().optional(), endBalance: z.number().int().optional(), avsResult: z.enum(["SUCCESS", "ZIP_CODE_MATCH", "ZIP_CODE_MATCH_ADDRESS_NOT_CHECKED", "ADDRESS_MATCH", "ADDRESS_MATCH_ZIP_NOT_CHECKED", "NEITHER_MATCH", "SERVICE_FAILURE", "SERVICE_UNAVAILABLE", "NOT_CHECKED", "ZIP_CODE_NOT_MATCHED_ADDRESS_NOT_CHECKED", "ADDRESS_NOT_MATCHED_ZIP_CODE_NOT_CHECKED"]).optional(), cardholderName: z.string().optional(), token: z.string().optional(), vaultedCard: z.object({first6: z.string(), last4: z.string(), cardholderName: z.string().optional(), expirationDate: z.string().optional(), token: z.string().optional()}).optional(), gatewayTxState: z.enum(["INITIATED", "INITIATED_ON_AUTH", "ACKNOWLEDGED", "CONNECT_FAILED", "TIMEOUT", "FAILED", "REVERSE_INITIATED", "REVERSE_INITIATED_ON_AUTH", "REVERSED", "REVERSAL_FAILED", "EXTERNAL"]).optional(), currency: z.string().optional(), captured: z.boolean().optional(), debitRefund: z.object({debitTransactionRouteInd: z.string().optional(), isDebitTransactionRefundable: z.boolean().optional()}).optional()}).optional(), result: z.enum(["SUCCESS", "FAIL", "INITIATED", "VOIDED", "VOIDING", "VOID_FAILED", "AUTH", "AUTH_COMPLETED", "DISCOUNT", "OFFLINE_RETRYING", "PENDING"]).optional(), createdTime: z.number().int().optional(), employee: z.object({id: z.string().optional()}).optional(), incrementAmount: z.number().int().optional()})).optional(), purchaseCardL2: z.object({taxAmount: z.number().int().optional(), taxIndicator: z.enum(["UNKNOWN", "TAXABLE", "NON_TAXABLE"]).optional(), vatTaxAmount: z.number().int().optional(), vatTaxRate: z.number().int().optional(), purchaseIdentifier: z.string().optional(), pcOrderNumber: z.string().optional(), discountAmount: z.number().int().optional(), freightAmount: z.number().int().optional(), dutyAmount: z.number().int().optional(), destinationPostalCode: z.string().optional(), shipFromPostalCode: z.string().optional(), destinationCountryCode: z.string().optional(), merchantTaxId: z.string().optional(), productDescription: z.string().optional()}).optional(), purchaseCardL3: z.object({serviceCode: z.string().optional(), magneticStripeInd: z.boolean().optional(), level3LineItems: z.array(z.object({itemDescription: z.string().optional(), productCode: z.string().optional(), unitCost: z.number().int().optional(), quantity: z.number().int().optional(), discountAmount: z.number().int().optional(), unitOfMeasure: z.string().optional(), commodityCode: z.string().optional()})).optional()}).optional(), oceanGatewayInfo: z.object({tranSource: z.string().optional(), tranChannel: z.string().optional(), transactionType: z.string().optional(), merchantId: z.string().optional(), terminalId: z.string().optional(), tenderType: z.string().optional(), entryMethod: z.string().optional(), transactionAmount: z.string().optional(), transactionCurrency: z.string().optional(), fpTransactionId: z.string().optional(), merchantTxnId: z.string().optional(), fpRefundTransactionId: z.string().optional(), transactionStatus: z.string().optional(), transactionStatusDescription: z.string().optional(), rrn: z.string().optional(), batchNo: z.string().optional(), invoiceNo: z.string().optional(), cardScheme: z.string().optional(), qrType: z.string().optional(), transactionDateTime: z.string().optional(), authCode: z.string().optional(), pan: z.string().optional(), customerMobile: z.string().optional(), customerName: z.string().optional(), customerRemarks: z.string().optional(), bankName: z.string().optional(), bankCode: z.string().optional(), emiDetails: z.object({lenderName: z.string().optional(), tenure: z.string().optional(), interestRate: z.string().optional(), interest: z.string().optional(), emiAmount: z.string().optional(), lenderLoanId: z.string().optional(), fees: z.string().optional(), discountAmount: z.string().optional(), offerCashback: z.string().optional(), tranAmount: z.string().optional(), totalPayable: z.string().optional()}).optional()}).optional(), terminalManagementComponents: z.array(z.object({type: z.enum(["ACQUIRER_PROTOCOL_PARAMS", "APPLICATION_PARAMS", "TERMINAL_PARAMS", "SECURITY_PARAMS", "SERVER", "TERMINAL", "DEVICE", "SECURE_MODULE", "PAYMENT_APPLICATION", "EMV_KERNEL", "EMV_LEVEL1", "MIDDLEWARE", "DRIVER", "OPERATING_SYSTEM", "MERCHANT_PARAMS", "CERTIFICATE_PARAMS", "TMS_PROTOCOL_PARAMS"]).optional(), itemNumber: z.string().optional(), provider: z.string().optional(), serial: z.string().optional(), version: z.string().optional(), identification: z.string().optional(), standard: z.object({component: z.string().optional(), identification: z.string().optional(), version: z.string().optional(), issuer: z.string().optional(), type: z.string().optional(), assigner: z.string().optional(), assessmentIdentifier: z.string().optional()}).optional()})).optional(), emiInfo: z.object({mobileNumber: z.string().optional(), indicator: z.string().optional(), transactionAmount: z.number().int().optional(), productAmount: z.number().int().optional(), discountAmount: z.number().int().optional(), tenure: z.number().int().optional(), interestRate: z.number().optional(), interestAmount: z.number().int().optional(), processingFee: z.number().int().optional(), totalAmount: z.number().int().optional(), amountPerMonth: z.number().int().optional()}).optional()}).optional(), createdTime: z.number().int().optional(), additionalCharges: z.array(z.object({id: z.string().optional(), amount: z.number().int().optional(), rate: z.number().int().optional(), type: z.enum(["INTERAC", "CREDIT_SURCHARGE", "CONVENIENCE_FEE", "INTERAC_V2", "DELIVERY_FEE"]).optional()})).optional(), transactionSequenceCounter: z.string().optional(), acquirerTerminalId: z.string().optional()})).optional(), merchant: z.object({id: z.string().optional()}).optional(), printGroups: z.array(z.object({id: z.string().optional(), orderRef: z.object({id: z.string().optional()}).optional(), name: z.string().optional(), sortOrder: z.number().int().optional(), fired: z.boolean().optional(), printTime: z.number().int().optional()})).optional(), orderFulfillmentEvent: z.object({id: z.string().optional(), type: z.string(), orderId: z.string(), lineItemId: z.string().optional(), clientCreatedTime: z.number().int(), createdTime: z.number().int().optional(), parentLineItemEvent: z.object({id: z.string().optional()}).optional()}).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get all orders for an employee * * GET /v3/merchants/{mId}/employees/{empId}/orders */ export const getApiV3MerchantsMIdEmployeesEmpIdOrders = async (args: GetApiV3MerchantsMIdEmployeesEmpIdOrdersArgs, options?: GetApiV3MerchantsMIdEmployeesEmpIdOrdersOptions) => { const {baseUrl = "https://apisandbox.dev.clover.com", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args['User-Agent'] != null) headers.set("User-Agent", String(args['User-Agent'])) if (args.filter != null) query.append("filter", String(args.filter)) if (args.expand != null) query.append("expand", String(args.expand)) if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/v3/merchants/${encodeURIComponent(String(args.mId))}/employees/${encodeURIComponent(String(args.empId))}/orders${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiV3MerchantsMIdEmployeesEmpIdOrdersResponse, await res.json()) };