# PagedResultDtoOfTransactionDto

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

## Fields
- `items` (array<[TransactionDto](https://devportal.demo.winkpg.io/docs/api/models/TransactionDto.md)>): (nullable)
  Fields of each item:
  - `id` (string(uuid))
  - `creationTime` (string(date-time)): The date and time when this entity was created.
  - `creatorId` (string(uuid)): The ID of the user who created this entity. (nullable)
  - `lastModificationTime` (string(date-time)): The date and time when this entity was last modified. (nullable)
  - `lastModifierId` (string(uuid)): The ID of the user who last modified this entity. (nullable)
  - `isDeleted` (boolean): Indicates whether this entity has been deleted.
  - `deleterId` (string(uuid)): The ID of the user who deleted this entity, if it is deleted. (nullable)
  - `deletionTime` (string(date-time)): The date and time when this entity was deleted, if it is deleted. (nullable)
  - `displayGuid` (string): (nullable, read only)
  - `fraudScreenResult` ([FraudScreenResult](https://devportal.demo.winkpg.io/docs/api/models/FraudScreenResult.md)): Deprecated. This object is never populated: no screening provider writes it, and it is always null  on the wire. It is retained for schema compatibility only. External screening outcomes are not  exposed through this property. (deprecated)
  - `merchantName` (string): (nullable)
  - `resultCode` ([ResultCode](https://devportal.demo.winkpg.io/docs/api/models/ResultCode.md)): (nullable, read only)
    Values:
    - `Ok`: Indicates a successful operation.
    - `UserAuthenticationFailed`: Indicates that user authentication has failed.
    - `InvalidTransaction`: Indicates that the transaction is invalid.
    - `InvalidTransactionType`: Indicates that the transaction type is invalid.
    - `InvalidAmount`: Indicates that the amount specified in the transaction is invalid.
    - `InvalidMerchantInfo`: Indicates that the merchant information provided is invalid.
    - `InvalidRegisterInfo`: Indicates that the register information provided is invalid.
    - `FieldFormatError`: Indicates an error in the format of a field.
    - `NotATransactionServer`: Indicates that the server is not a transaction server.
    - `InvalidParameterStream`: Indicates that the parameter stream is invalid.
    - `TooManyLineItems`: Indicates that there are too many line items in the transaction.
    - `ClientTimeoutWaitingForResponse`: Indicates that the client timed out while waiting for a response.
    - `Decline`: Indicates that the transaction was declined.
    - `Referral`: Indicates that the transaction requires a referral.
    - `TransactionTypeNotSupportedInThisVersion`: Indicates that the transaction type is not supported in the current version.
    - `Partial`: Indicates a partial completion of the transaction.
    - `DuplicateBatchProcessed`: Indicates that a duplicate batch has been processed.
    - `IndeterminateBatchState`: Indicates that the batch state is indeterminate.
    - `Reject`: Indicates that the transaction was rejected.
    - `OriginalTransactionIdNotFound`: Indicates that the original transaction ID was not found.
    - `CustomerReferenceNumberNotFound`: Indicates that the customer reference number was not found.
    - `AccountNumberTruncated`: Indicates that the account number was truncated.
    - `InvalidAbaNumber`: Indicates that the ABA (American Bankers Association) number is invalid.
    - `InvalidAccountNumber`: Indicates that the account number is invalid.
    - `InvalidExpirationDate`: Indicates that the expiration date is invalid.
    - `TransactionTypeNotSupportedByHost`: Indicates that the transaction type is not supported by the host.
    - `InvalidReferenceNumber`: Indicates that the reference number is invalid.
    - `InvalidReceiptInformation`: Indicates that the receipt information is invalid.
    - `InvalidCheckHolderName`: Indicates that the check holder name is invalid.
    - `InvalidCheckNumber`: Indicates that the check number is invalid.
    - `CheckDlVerificationRequiresDlState`: Indicates that check DL verification requires a DL state.
    - `PaymentTypesDoNotMatch`: Indicates that the payment types do not match.
    - `InvalidVNumber`: Indicates that the V number is invalid.
    - `Submit`: Indicates that the transaction should be submitted.
    - `Pend`: Indicates that the transaction is pending: nothing was created and nothing went wrong, the outcome is simply not final yet.
    - `InsufficientFundsAvailable`: Indicates that there are insufficient funds available for the transaction.
    - `GeneralError`: Indicates a general error has occurred.
    - `TimeoutValueTooSmall`: Indicates that the timeout value is too small.
    - `ProcessorNotAvailable`: Indicates that the processor is not available.
    - `ErrorReadingResponseFromHost`: Indicates an error occurred while reading the response from the host.
    - `TimeoutWaitingForProcessorResponse`: Indicates a timeout occurred while waiting for the processor response.
    - `CreditError`: Indicates a credit error has occurred.
    - `HostNotAvailable`: Indicates that the host is not available.
    - `DuplicateSuppressionTimeout`: Indicates a timeout occurred during duplicate suppression.
    - `VoidError`: Indicates an error occurred during a void operation.
    - `TimeoutWaitingForHostResponse`: Indicates a timeout occurred while waiting for the host response.
    - `DuplicateTransaction`: Indicates that the transaction is a duplicate.
    - `CaptureError`: Indicates an error occurred during capture.
    - `FailedAvsCheck`: Indicates that the AVS (Address Verification System) check failed.
    - `CannotExceedSalesCap`: Indicates that the transaction cannot exceed the sales cap.
    - `NetworkNotFound`: Indicates that the network was not found.
    - `ReversalError`: Indicates an error occurred during reversal.
    - `InvalidIssuer`: Indicates that the issuer is invalid.
    - `InvalidIndustry`: Indicates that the industry is invalid.
    - `InvalidCompliance`: Indicates that the compliance is invalid.
    - `RegisterNotAuthenticated`: Indicates that the register is not authenticated.
    - `RegisterAuthenticationFailed`: Indicates that register authentication failed.
    - `RegisterAlreadyAuthenticated`: Indicates that the register is already authenticated.
    - `ProcessorNotConfigured`: Indicates that no active processor profile is configured for the transaction's payment method. This is a merchant configuration issue, not a communications failure.
    - `PinDebitNotSupportedOnCreditBin`: Indicates that the request carried PIN data while the resolved BIN funding source is Credit. A credit BIN cannot take a PIN debit authorization, so the request contradicts itself rather than merely being underspecified, and the gateway rejects it before the processor sees it.
    - `CardNotAcceptedByMerchantPolicy`: Indicates that the merchant's card acceptance policy refuses this card. The card was judged from its BIN by funding source, issued entity and issuer country, and one of those axes is one the merchant has configured itself not to take.
    - `ThreeDSecureAuthenticationRequired`: Indicates that the merchant requires 3-D Secure authentication on this kind of transaction and the transaction arrived without a usable authentication: none ran, the issuer did not authenticate the cardholder, or the result the pipeline was handed failed validation.
    - `CashAmountExceedsMerchantPolicy`: Indicates that a cash sale is above the largest cash sale the merchant's cash policy allows.
    - `CashRegisterRequiredByMerchantPolicy`: Indicates that a cash sale names no register (till) and the merchant's cash policy requires one.
    - `CashSourceNotAllowedByMerchantPolicy`: Indicates that a cash sale came from a source other than the Virtual Terminal and the merchant's cash policy takes cash at the Virtual Terminal only.
    - `GenericHostError`: Indicates a generic host error.
    - `InvalidLogin`: Indicates that the login is invalid.
    - `InsufficientPrivilege`: Indicates insufficient privileges for the operation.
    - `InvalidLoginBlocked`: Indicates that the invalid login has been blocked.
    - `InvalidLoginDeactivated`: Indicates that the invalid login has been deactivated.
    - `TransactionTypeNotAllowed`: Indicates that the transaction type is not allowed.
    - `UnsupportedProcessor`: Indicates that the processor is not supported.
    - `InvalidRequestMsg`: Indicates that the request message is invalid.
    - `InvalidVersion`: Indicates that the version is invalid.
    - `PaymentTypeNotSupported`: Indicates that the payment type is not supported.
    - `ErrorStartingTransaction`: Indicates an error occurred while starting the transaction.
    - `ErrorFinishingTransaction`: Indicates an error occurred while finishing the transaction.
    - `ErrorCheckingDuplicate`: Indicates an error occurred while checking for duplicates.
    - `NoRecordsToSettle`: Indicates that there are no records to settle.
    - `NoRecordsToProcess`: Indicates that there are no records to process.
    - `MustSettleAllPaymentTypes`: Indicates that all payment types must be settled.
    - `InvalidPoNumber`: Indicates that the PO (Purchase Order) number is invalid.
    - `FraudControlDecline`: Indicates a fraud control decline.
    - `FraudControlAuthAndHold`: Indicates a fraud control authorization and hold.
    - `FraudControlNoAuthAndHold`: Indicates a fraud control with no authorization and hold.
    - `FraudControlAudit`: Indicates a fraud control audit.
    - `PolicyRejected`: The transaction was rejected by the merchant's own address verification (AVS) or security code (CVV) policy rather than by the issuer. Not an error: the request was answered, and the answer is on the transaction. responseData.declineReasonCode says which of two shapes it took, using the published decline reason vocabulary (/docs/decline-reason-codes on the developer portal): CV_REJECTED when the processor approved and the platform then released the hold with a reversal or void, and CV_NATIVE_DECLINE when the processor applied the rule itself and declined outright, so no hold was ever placed.
    - `Undefined`: Indicates an undefined or unspecified result.
  - `cardBrand` (string): The card brand (e.g., "VISA", "MASTERCARD") resolved from BIN data. (nullable, read only)
  - `extraProperties` (object): (nullable, read only)
  - `currentStage` ([TransactionStage](https://devportal.demo.winkpg.io/docs/api/models/TransactionStage.md)): Represents the stage of a transaction within the transaction management workflow.
    Values:
    - `Created`
    - `Validated`
    - `Enriched`
    - `Screened`
    - `Authorized`
    - `Finalized`
    - `Captured`
    - `Completed`
    - `Reversed`
    - `Refunded`
    - `Voided`
    - `SplitTenderPending`: A partial approval is holding a reduced authorization and the gateway is waiting for a decision: accept the lesser amount, void it, or start a split tender for the shortfall. Non-terminal: the transaction leaves this stage once Transaction.PartialApprovalData.Disposition moves off PartialApprovalDisposition.Pending, or when the acknowledgment deadline elapses and the gateway voids it.
    - `Rejected`
    - `Declined`
    - `Failed`
    - `PolicyRejected`: Auth succeeded at the processor but a post-authorization denylist rule matched (AVS or CVV response code). A reversal or void was issued and the transaction is permanently rejected by gateway policy.
  - `history` (array<[TransactionHistoryItem](https://devportal.demo.winkpg.io/docs/api/models/TransactionHistoryItem.md)>): (nullable)
  - `appliedPatches` (array<[TransactionPatchSnapshot](https://devportal.demo.winkpg.io/docs/api/models/TransactionPatchSnapshot.md)>): (nullable)
  - `allowedActions` (array<[TransactionOperationType](https://devportal.demo.winkpg.io/docs/api/models/TransactionOperationType.md)>): (nullable)
    Values:
    - `Capture`: Finalizes a previously-approved authorization by sending an online capture / clearing message to the processor. Moves the transaction from "funds held" to "marked for the next batch close": settlement still happens later when the merchant's batch cuts. Valid only against approved, uncaptured TransactionType.Authorization transactions; the action matrix removes Capture once the transaction is settled (Refund is the post-settlement undo). Partial captures (less than the authorized amount) are supported and release the unused portion of the issuer hold per network rules.
    - `Refund`: Returns funds to the cardholder by spawning a new standalone TransactionType.Return transaction linked back to the parent via OriginalTransaction.TransactionId. The new transaction flows through the normal auth + settlement pipeline rather than mutating the parent in place. Used once the parent has settled (post-batch-close), at which point Reversal and Void are no longer applicable. Refund capacity is reserved against the parent's PendingRefundAmount with optimistic concurrency so concurrent partial refunds from different callers cannot collectively exceed the parent's available balance.
    - `Void`: Offline ledger-only cancel: marks the transaction for exclusion from the next batch close without sending any processor message. Used pre-settlement. Acts as the fallback when the configured processor does not support online Reversal (or the reversal window has expired). The action evaluator's mutual-exclusion step drops Void from the candidate set when Reversal is also eligible: Reversal is a strict superset of Void on the same stage. Terminal once approved.
    - `Reversal`: Online undo: sends a processor message (0420-equivalent on card networks) that releases the issuer hold on a captured-but-not-cleared transaction and pulls the transaction from the next clearing. Distinct from Void in that an actual rails-level message is exchanged with the processor; the processor can decline. Eligible post-auth and pre-settlement against Authorization, Sale, RepeatSale, and captured Authorization stages. Per-processor support is advertised via ProcessorCapabilities.SupportsReversal and gated by ReversalWindowSeconds; the gateway falls back to Void when the processor opts out. Partial reversals (strictly less than the remaining authorized balance) are supported when the processor also advertises SupportsPartialReversal; a partial reversal leaves the transaction non-terminal until cumulative reversed equals the authorized ceiling. Once settlement has cleared, Reversal is no longer valid and Refund is the only available undo.
    - `Repeat`: Re-runs a previously-approved transaction with the same payment data by spawning a new transaction linked back to the parent via OriginalTransaction.TransactionId. Authorizations repeat as Authorization (re-hold funds); Sale and RepeatSale both repeat as RepeatSale. Used for recurring billing, card-on-file scenarios, and operator-initiated re-charges. The caller may supply a different amount than the original; the new transaction flows through the normal auth + settlement pipeline. Available against approved transactions in any settlement state: once an authorization has settled, Repeat is the only re-charge path (Capture is no longer eligible).
    - `Retry`: Re-attempts a previously declined or failed transaction with the same TransactionType and the same amount as the original: changing either would violate retry semantics. Spawns a new transaction linked back to the parent via OriginalTransaction.TransactionId. Available only when the parent ended in a non-approved result code (decline, processing error, gateway failure). Distinct from Repeat, which preserves type-mapping rules (Sale → RepeatSale) and allows a caller-specified amount; Retry is intended to recover from a transient failure on the original attempt without altering its commercial intent.
    - `OfflineAdjustment`: An offline adjustment to a previously-authorized transaction's settlement record: tip (gratuity), tax, level-3 data, PO number, or AVS fields. Modifies the settlement amount/data before batch close without contacting the processor network. Tip and other amount-bearing fields are constrained to industry types that allow post-auth adjustments (restaurant, retail, e-commerce). Online amount changes (incremental authorization) belong to IncrementalAuthorization.
    - `IncrementalAuthorization`: An online incremental (or "estimated → final") authorization on top of a previously authorized (but uncaptured) transaction. The processor sends a fresh auth message to the brand network; on approve, the transaction's Total_Auth_Amt is bumped and a new auth response (with its own customer-facing receipt) replaces the prior one. Distinct from OfflineAdjustment in that an actual rails round-trip is performed and the issuer can decline. Valid only against TransactionType.Authorization transactions that have not yet been captured. Per-processor support is advertised via ProcessorCapabilities.SupportedAdjustmentTypes; the gateway rejects the operation up front when the configured processor lacks the capability.
    - `AcceptPartialApproval`: Acknowledges a partial approval by keeping the reduced authorization as-is. The issuer approved less than the gateway asked for, and the operator (or the cardholder) has decided the lesser amount is acceptable, so no reversal is issued and the transaction proceeds through the normal capture / settlement path for the approved amount. Valid only while the transaction is parked at TransactionStage.SplitTenderPending with PartialApprovalData.Disposition still Pending; a late acknowledgment against a disposition the deadline sweep has already resolved is expected traffic and is rejected. Its counterpart is Void, which rejects the reduced amount instead.
    - `SplitTender`: Acknowledges a partial approval by keeping the reduced authorization and collecting the shortfall on a second tender. The continuation transaction carries the same SplitTenderGroupId with the next SplitTenderSequence. Valid only while the transaction is parked at TransactionStage.SplitTenderPending, and only when the merchant permits split tender and the group has not reached VirtualTerminalSettings.SplitTenderMaxTenders.
  - `concurrencyStamp` (string): (nullable)
  - `entityVersion` (integer(int32)): (read only)
  - `tenantId` (string(uuid)): (nullable, read only)
  - `transactionType` ([TransactionType](https://devportal.demo.winkpg.io/docs/api/models/TransactionType.md)): Represents the various types of transactions that can be performed in the system.
    Values:
    - `Authorization`: Represents an authorization transaction, typically used to verify funds availability without capturing the amount.
    - `Sale`: Represents a sale transaction, which authorizes and captures funds in a single step.
    - `Return`: Represents a return transaction, used to refund money to the customer.
    - `Void`: Represents a void transaction, used to cancel a previously authorized transaction before it is settled.
    - `Force`: Represents a force transaction, typically used to manually enter a previously authorized transaction.
    - `Capture`: Represents a capture transaction, used to capture funds from a previously authorized transaction.
    - `CaptureAll`: Represents a capture all transaction, used to capture funds from multiple previously authorized transactions.
    - `RepeatSale`: Represents a repeat sale transaction, used to process a new sale based on a previous transaction's details.
    - `Adjustment`: Represents an adjustment transaction, used to modify the amount of a previous transaction.
    - `Activate`: Represents an activate transaction, typically used to activate a gift card or prepaid card.
    - `Deactivate`: Represents a deactivate transaction, typically used to deactivate a gift card or prepaid card.
    - `Redeem`: Represents a redeem transaction, typically used to redeem value from a gift card or loyalty program.
    - `Inquire`: Represents an inquire transaction, used to check the status or balance of an account or card.
    - `Reload`: Represents a reload transaction, typically used to add value to a gift card or prepaid card.
    - `VoucherClear`: Represents an offline EBT voucher clear: a terminal was offline, a paper food-stamp (SNAP) or eWIC voucher was written against a voice-obtained approval code, and the voucher is later uploaded so the benefit clears. Permitted on EBT SNAP and eWIC tenders only.
    - `Payout`: Represents a payout transaction, used to push funds from the merchant to an external bank account as an ACH credit. Unlike Return, which refunds a prior debit, a payout is a standalone outbound fund transfer with no originating transaction.
  - `cardData` ([CardData](https://devportal.demo.winkpg.io/docs/api/models/CardData.md))
  - `checkData` ([CheckData](https://devportal.demo.winkpg.io/docs/api/models/CheckData.md))
  - `cashData` ([CashPaymentDetails](https://devportal.demo.winkpg.io/docs/api/models/CashPaymentDetails.md)): The cash sale details: the cash handed over, the change returned, and when the cash was  taken. Null when the transaction's request carried none.
  - `apmData` ([ApmData](https://devportal.demo.winkpg.io/docs/api/models/ApmData.md)): The alternative-payment instrument block for a payment the payer approved inside a provider.  Null on every other tender.
  - `tokenData` ([TokenData](https://devportal.demo.winkpg.io/docs/api/models/TokenData.md))
  - `deviceData` ([DeviceData](https://devportal.demo.winkpg.io/docs/api/models/DeviceData.md))
  - `fsa` ([Fsa](https://devportal.demo.winkpg.io/docs/api/models/Fsa.md))
  - `lodging` ([LodgingData](https://devportal.demo.winkpg.io/docs/api/models/LodgingData.md)): Lodging detail for a stay-related transaction, echoed back as it was submitted. Null on every  transaction outside a lodging industry.
  - `softDescriptor` ([SoftDescriptor](https://devportal.demo.winkpg.io/docs/api/models/SoftDescriptor.md))
  - `duplicateCheck` (boolean): The duplicate-check intent the submitting request carried, echoed back as it was  submitted. Null means the request expressed no opinion and the merchant's screening  configuration decided, which is the value a request that omitted the field carries.  False means the request asked to waive the check, and it was waived only if the merchant  permits per-transaction overrides. Transactions written before this field became nullable  read as false regardless of what the caller intended. (nullable)
  - `register` ([TransactionRegister](https://devportal.demo.winkpg.io/docs/api/models/TransactionRegister.md))
  - `invoiceData` ([Invoice](https://devportal.demo.winkpg.io/docs/api/models/Invoice.md))
  - `originalTransaction` ([OriginalTransaction](https://devportal.demo.winkpg.io/docs/api/models/OriginalTransaction.md))
  - `customFields` (array<[TrxCustomField](https://devportal.demo.winkpg.io/docs/api/models/TrxCustomField.md)>): (nullable)
  - `signatureData` ([SignatureData](https://devportal.demo.winkpg.io/docs/api/models/SignatureData.md))
  - `level2Data` ([Level2Data](https://devportal.demo.winkpg.io/docs/api/models/Level2Data.md))
  - `level3Data` ([Level3Data](https://devportal.demo.winkpg.io/docs/api/models/Level3Data.md))
  - `orderLines` (array<[TransactionOrderLine](https://devportal.demo.winkpg.io/docs/api/models/TransactionOrderLine.md)>): The product lines of the order this transaction paid for, when it paid for one: a hosted page  selling catalog products records each product, quantity, unit price and line total here for  per-SKU reporting. `null` on every other transaction. Read-only: the platform writes it  from the order it priced itself. (nullable)
  - `ebt` ([EbtData](https://devportal.demo.winkpg.io/docs/api/models/EbtData.md))
  - `useInterchangeDefaults` (boolean): (nullable)
  - `captureType` ([CaptureTypes](https://devportal.demo.winkpg.io/docs/api/models/CaptureTypes.md)): Represents the types of payment capture methods available for transactions.
    Values:
    - `Credit`: Represents a credit card transaction.
    - `Debit`: Represents a debit card transaction.
    - `Check`: Represents a check transaction.
    - `EBT`: Represents an Electronic Benefit Transfer (EBT) transaction.
  - `responseData` ([TransactionResponseData](https://devportal.demo.winkpg.io/docs/api/models/TransactionResponseData.md))
  - `settleData` ([TransactionSettleData](https://devportal.demo.winkpg.io/docs/api/models/TransactionSettleData.md))
  - `source` ([TransactionSource](https://devportal.demo.winkpg.io/docs/api/models/TransactionSource.md)): (nullable)
    Values:
    - `Unknown`: The source of the transaction is unknown or not specified.
    - `VirtualTerminal`: The transaction originated from a virtual terminal interface.
    - `Api`: The transaction was initiated through an API call.
    - `HostedPaymentPage`: The transaction was processed via a hosted payment page.
    - `RecurringBilling`: The transaction is part of a recurring billing cycle.
    - `OfflineBatch`: The transaction was processed as part of an offline batch.
    - `Invoicing`: The transaction is an automatic charge against an invoice (e.g. a recurring-invoice auto-charge or a smart-retry attempt) submitted by the Invoicing module.
  - `sourceData` ([TransactionSourceData](https://devportal.demo.winkpg.io/docs/api/models/TransactionSourceData.md))
  - `tags` (array<[EntityTag](https://devportal.demo.winkpg.io/docs/api/models/EntityTag.md)>): (nullable)
  - `notes` (array<[EntityNote](https://devportal.demo.winkpg.io/docs/api/models/EntityNote.md)>): (nullable)
  - `merchantId` (string(uuid))
  - `merchantTransactionId` (integer(int64)): (nullable)
  - `receiptIds` (array<string>): List of receipt IDs generated for this transaction. (nullable)
  - `refundTransactionIds` (array<string>): IDs of the linked-refund child transactions issued against this transaction (as the parent  sale). Drives the detail-page reverse relationship ("Refunded by <guid>" and the  Related Transactions grid). Empty/null when this transaction has no linked refunds. (nullable)
  - `decisionNotes` (array<[TransactionDecisionNote](https://devportal.demo.winkpg.io/docs/api/models/TransactionDecisionNote.md)>): System-emitted decision explanations recorded against this transaction,  e.g. why the convenience-fee evaluator applied or suppressed a fee. Read-only on the wire:  written only by server-side contributors, never by an update. Rendered on the transaction  detail view via the decision-note copy resolver. (nullable)
  - `linkedFeeChargeTransactionId` (string): On a primary charge: the id of the separate convenience-fee charge linked to it (the  reverse link, primary → fee), when a card-brand program required the fee to settle as its own  authorization. Null when there is no linked fee charge. Server-state; read-only on the wire.  See `Transaction.LinkedFeeChargeTransactionId`. (nullable)
  - `primaryChargeTransactionId` (string): On a convenience-fee charge: the id of the primary charge this fee is linked to (the forward  link, fee → primary). Null for an ordinary transaction. Server-state; read-only on the wire.  See `Transaction.PrimaryChargeTransactionId`. (nullable)
  - `linkedChargeKind` ([LinkedChargeKind](https://devportal.demo.winkpg.io/docs/api/models/LinkedChargeKind.md)): Why this transaction exists as a separate linked charge (currently only  `ConvenienceFee`), or null when  it is not a linked charge. Server-state; read-only on the wire. (nullable)
    Values:
    - `ConvenienceFee`: A separate charge submitted to carry a convenience fee that a card-brand program requires to settle as its own authorization (its own approval code), linked to the primary payment it was assessed against.
  - `processorProfileId` (string(uuid)): The unique identifier of the merchant processor profile that processed this transaction. (nullable)
  - `processorKey` (string): The processor type key (e.g., "tsys", "fiserv") used for this transaction. (nullable)
  - `routingResult` ([RoutingResult](https://devportal.demo.winkpg.io/docs/api/models/RoutingResult.md)): The recorded processor routing decision: the selected processor and profile, the ordered  audit trail, and every evaluated candidate with its score and eliminated flag. Server-owned;  never accepted on a create or update. Back-office only: always null in responses to API-key  callers, and never included in outbound webhook payloads. `null` for  transactions that were not routed.
  - `loopbackSimulation` ([LoopbackSimulation](https://devportal.demo.winkpg.io/docs/api/models/LoopbackSimulation.md)): What the sandbox simulator did on this transaction: the published triggers your request fired,  and the response values it filled in from a default because nothing matched. Read it when a  sandbox answer is not the one you expected and you want to know which trigger the sandbox saw.  Each entry carries `isDefault`, which separates a trigger you sent from a value the  sandbox supplied. A card-verification entry reports the response code the sandbox returned and  never the security code you submitted.     Server-owned: it is never accepted on a create or update, and nothing in it changes what the  transaction did. `null` on every transaction the sandbox simulator did not  answer, which includes every transaction a live processor handled, and on every row written  before the trace existed.
  - `surchargeResult` ([SurchargeResult](https://devportal.demo.winkpg.io/docs/api/models/SurchargeResult.md)): The surcharge evaluation decision produced by the surcharge eligibility pipeline: the verdict,  applied rate, cap provenance, and the per-stage audit trail. Server-owned (mapped entity -> DTO  by convention; never accepted on a create/update). Back-office only: stripped for public  API-key callers and anonymous callers, mirroring `routingResult`.  `null` when the surcharge decision was never evaluated (no active surcharge  configuration, non-card tender, or a legacy row).
  - `correlationId` (string): The correlation ID linking this transaction to its orchestration audit trail. (nullable)
  - `cumulativeRefundedAmount` (number(double)): Running total of refund amounts applied to this transaction. (nullable)
  - `cumulativeReversedAmount` (number(double)): Running total of reversal amounts applied to this transaction. (nullable)
  - `authorizedAmount` (number(double)): The immutable amount the issuer authorised at the close of the Authorization stage.  UI should read this (not `responseData`.`Amounts.Approved`) when  computing remaining-reversible / remaining-refundable balances, because the  processor's reversal-response payload overwrites `/ResponseData` in place.  Null on legacy rows that pre-date. (nullable)
  - `policyRejection` ([PolicyRejectionData](https://devportal.demo.winkpg.io/docs/api/models/PolicyRejectionData.md)): Audit record of the post-authorization denylist match that policy-rejected this  transaction. Top-level (not nested under `responseData`) because the  auto-reversal flow Sets `/ResponseData` wholesale, so anything stored there  is clobbered. Null for any transaction that was not policy-rejected.
  - `partialApprovalData` ([PartialApprovalData](https://devportal.demo.winkpg.io/docs/api/models/PartialApprovalData.md)): Durable record of a partial approval (the issuer authorized less than was requested) and  the disposition decided for it. Its presence means the transaction was partially approved;  null when the issuer approved in full.
  - `fraudReviewData` ([FraudReviewData](https://devportal.demo.winkpg.io/docs/api/models/FraudReviewData.md)): Durable hold state when this transaction was parked for manual fraud review: when the hold  started, when it expires, what triggered it, and the disposition that was reached. Top-level  rather than nested under the screening results, which are rewritten wholesale on every  screening retry. Server-owned and read-only on the API surface. Null when the transaction was  never held for review.
  - `threeDSAuthentication` ([ThreeDSAuthenticationData](https://devportal.demo.winkpg.io/docs/api/models/ThreeDSAuthenticationData.md)): The 3-D Secure authentication record when this transaction was authenticated: the status the  issuer reported, the ECI, whether liability shifted, the directory-server and ACS transaction  identifiers, the message version, and the CAVV result code. Top-level rather than on  `cardData`, whose cryptogram and ECI describe a wallet authentication instead.  Server-owned and read-only on the API surface. The credential itself (CAVV / AAV) is never  returned: those members are always null here. Null when no 3-D Secure authentication ran.
  - `payloadDecryption` ([PayloadDecryption](https://devportal.demo.winkpg.io/docs/api/models/PayloadDecryption.md)): The provenance of the payload decryption the gateway performed through the merchant's  payment encryption provider before authorization: the provider, the scheme (`DUKPT` or  `ONGUARD`), the key serial identifier the request matched, the operator's key label,  the outcome, the provider's region and result code, the retry count and the latency.  Server-owned and read-only on the API surface. Carries no cardholder data and no key  material. Null when the gateway did not decrypt the payload through a provider.
  - `enhancedDataQualification` ([EnhancedDataQualificationDto](https://devportal.demo.winkpg.io/docs/api/models/EnhancedDataQualificationDto.md)): The gateway's own assessment of how well this transaction's enhanced data met the  commercial-card requirements, recorded when it settled. Server-owned and read-only on the API  surface. Null for a transaction that has not settled, that built no enhanced-data addendum, or  that settled before the gateway began recording this. Null is not the same as a clean result:  a present node with a finding count of zero is the clean one.
  - `splitTenderGroupId` (string(uuid)): Groups this transaction with the other tenders that together collect one order total after  a partial approval left a shortfall. Server-owned; read-only on the API surface. Null when  the transaction is not part of a split tender. (nullable)
  - `splitTenderSequence` (integer(int32)): 1-based position within the `splitTenderGroupId` group, so the tenders can be  presented in the order they were taken. Null when the transaction is not part of a split  tender. (nullable)
  - `splitTenderRole` ([SplitTenderRole](https://devportal.demo.winkpg.io/docs/api/models/SplitTenderRole.md)): Whether this transaction is the primary tender of its split-tender group or a continuation  collecting part of the remaining balance. Null when the transaction is not part of a split  tender. (nullable)
    Values:
    - `Primary`: The first tender in the group: the transaction whose partial approval created the shortfall. Exactly one member of a group holds this role, and it always carries SplitTenderSequence = 1.
    - `Continuation`: A follow-up tender collecting part of the remaining balance. A group may hold several, ordered by SplitTenderSequence (2, 3, ...). A continuation can itself be partially approved, which starts the disposition cycle again.
  - `splitTenderDeclaredTotal` (number(double)): The order total a planned split tender collects toward, as declared by  `requestedSplitTenderTotal` on this transaction's create request. Set on the first tender  of a planned split tender only; null on every other transaction, including the first tender of  a split tender started after a partial approval. (nullable)
  - `splitTenderDeadlineUtc` (string(date-time)): When an open planned split tender closes on its own, keeping what its payments collected, if no  further payment is being authorized. Restarted each time a payment leaves the order short.  Server-owned; read-only on the API surface. Null on every transaction that is not the first  tender of an open planned split tender; a split tender started after a partial approval reports  its deadline on `partialApprovalData` instead. (nullable)
  - `deferPartialApprovalAcknowledgment` (boolean): Whether this transaction's create request asked to decide a partial approval itself, as sent in  `deferPartialApprovalAcknowledgment`. Null when the request did not set it. (nullable)
  - `initiationType` ([InitiationType](https://devportal.demo.winkpg.io/docs/api/models/InitiationType.md)): Identifies whether this transaction was initiated by the cardholder (CIT) or the merchant (MIT).  Null on legacy transactions. (nullable)
    Values:
    - `CardholderInitiated`: The cardholder is present or otherwise authorizing this specific charge contemporaneously. Default for transactions originated by the cardholder through HPP checkout, API with cardholder interaction, or virtual terminal sales with the cardholder present.
    - `MerchantInitiated`: The merchant is initiating this charge without contemporaneous cardholder authorization, relying on prior consent captured on an earlier cardholder-initiated transaction. Used for recurring billing, unscheduled credential-on-file charges, resubmissions, and other merchant-triggered uses of a stored credential.
  - `mitReason` ([MITReasonCode](https://devportal.demo.winkpg.io/docs/api/models/MITReasonCode.md)): For MIT transactions, the reason code justifying the merchant-initiated charge. (nullable)
    Values:
    - `Recurring`: Fixed or variable charges on a scheduled basis for a subscription or ongoing service the cardholder has enrolled in.
    - `Installment`: A series of charges dividing a known total amount over a defined schedule.
    - `UnscheduledCOF`: Charges triggered by a specific, pre-agreed event (e.g. account balance threshold, usage overage). Not on a schedule.
    - `Resubmission`: Recharging after a declined or reversed transaction, in accordance with card network resubmission rules. Must be for the same amount as the original declined attempt and within the network's permitted resubmission window.
    - `Reauthorization`: Re-authorizing a prior authorization (e.g. when the original authorization has expired but the merchant still intends to capture).
    - `DelayedCharge`: A charge finalized after the cardholder's original authorization (e.g. tip adjustment, additional services added after checkout, or final amounts determined after service completion).
    - `NoShow`: No-show or cancellation fee where the cardholder made a reservation or booking and failed to cancel within the required window.
    - `IncrementalAuth`: Additional authorization on top of a prior authorization (e.g. hotel incidentals, car rental overages).
  - `storedCredentialConsentId` (string(uuid)): Reference to the stored credential consent authorizing this MIT. (nullable)
  - `schemeTransactionId` (string): The card network's trace ID linking this transaction to its original CIT. (nullable)
  - `description` (string): The merchant-supplied free-text payment description recorded on this transaction, echoed  back exactly as it was submitted. `null` when the create request carried  none, in which case the processor received the gateway's own reference instead. (nullable)
  - `merchantReference` (string): The merchant-supplied reconciliation reference recorded on this transaction, echoed back  exactly as it was submitted. `null` when the create request carried none, in  which case the clearing record carried the gateway's fallback instead. (nullable)
  - `tender` ([TenderKind](https://devportal.demo.winkpg.io/docs/api/models/TenderKind.md)): The tender the create request explicitly declared, echoed back as it was submitted.  `null` when the request declared nothing, which includes every card, check,  and token transaction and any cash transaction submitted without the declaration. (nullable)
    Values:
    - `Cash`: Cash taken at the point of sale. Resolved against the merchant's cash processor profile, auto-approved with no processor call, and settled into its own daily cash batch.
  - `cardholderPresence` ([CardholderPresence](https://devportal.demo.winkpg.io/docs/api/models/CardholderPresence.md)): How present the cardholder is at the point of sale, separate from the physical entry mode.  Drives network-level presence indicators at auth time. (nullable)
    Values:
    - `Unknown`: Presence not specified by the request. Handlers fall back to entry-mode and industry-type inference, then to the legacy default for the merchant's profile.
    - `CardPresent`: Cardholder physically present at the point of sale (retail/in-store flow).
    - `MOTO`: Mail-order / telephone-order: cardholder not present and the merchant captured the account number through a non-electronic channel (fax, phone, paper form).
    - `ECommerce`: E-commerce: cardholder not present and the transaction was originated through a website, mobile application, or other electronic channel.
    - `Recurring`: Recurring / subscription: cardholder is not contemporaneously present; the merchant is charging a stored credential against a prior cardholder authorization.
  - `specialCondition` ([SpecialCondition](https://devportal.demo.winkpg.io/docs/api/models/SpecialCondition.md)): Visa/MC special-condition tag (quasi-cash, quasi-MOTO). (nullable)
    Values:
    - `None`: No special condition applies: standard purchase semantics.
    - `QuasiCash`: Quasi-cash purchase: a transaction that resembles cash equivalent (money orders, foreign currency, traveler's cheques, gaming chips, casino vouchers, etc.). Triggers TSYS SpecialConditionIndicator=8 and requires a populated CardholderId on the network request.
    - `QuasiMoto`: Quasi-MOTO: a card-present capture that the merchant is required to process under MOTO routing rules (e.g. cert scenarios, specific Visa product types). Distinct from QuasiCash: the merchant remains in retail context but presence flags flip to MOTO for network routing.
  - `processorCertificationOverrides` ([ProcessorCertificationOverrides](https://devportal.demo.winkpg.io/docs/api/models/ProcessorCertificationOverrides.md)): Per-processor certification override knobs. Non-null only for cert-tooling traffic.  Production traffic always sees this as `null`.
  - `refundKind` ([RefundKind](https://devportal.demo.winkpg.io/docs/api/models/RefundKind.md)): Classifies a refund transaction as linked (follow-up against a previously approved  original transaction) or unlinked (standalone). `null` for  non-refund transactions. (nullable)
    Values:
    - `None`: Not a refund, or kind has not been classified. Default for all non-refund transactions.
    - `Linked`: A refund run as a follow-up action against a previously approved and settled original transaction. The refund is a new transaction in its own right and flows through the normal auth + settlement pipeline, but carries a reference to its parent via OriginalTransaction and debits the parent's refund capacity.
    - `Unlinked`: A standalone refund with no parent transaction in the gateway. Submitted directly as a Return transaction without an OriginalTransaction reference. Flows through the normal auth + settlement pipeline with no capacity tracking against any prior transaction.
  - `pendingRefundAmount` (number(double)): Reserved-but-not-yet-completed refund amount for this transaction (as a parent),  tracked separately from `cumulativeRefundedAmount` so UI can show  "refund pending settlement" vs "refund completed". `null` means zero. (nullable)
  - `saveCardRequested` (boolean): Operator (VT) or cardholder (HPP) opt-in to save the card for future merchant-initiated  use, captured at create time. Read-only on the API surface: the consumer cannot mutate  it through Update calls (server-side AutoMapper ignores the field on the Update map). (nullable)
  - `tokenizedPaymentMethodId` (string(uuid)): The id of the customer's stored payment method created when a customer-initiated  transaction was approved with `saveCardRequested` = `true`.  `null` on transactions that did not request save-card, were declined, or  where saving the card failed. (nullable)
  - `isAccountVerification` (boolean): When `true`, this transaction is a zero-dollar account verification (the HPP  "save card only" flow) rather than a charge: the card was authorized for $0 to confirm it,  vaulted with consent, and not charged. Read-only on the API surface; create-time-only (the  Update map ignores it). `null` on ordinary chargeable transactions. (nullable)
  - `convenienceFeeDisclosureAcknowledgedAt` (string(date-time)): UTC timestamp when the convenience-fee disclosure was accepted (CSR-as-proxy in the Virtual  Terminal, cardholder on the Hosted Payment Page, or the integrator's own checkout on a direct  API create), captured at confirm-click time. Echoed back as submitted: this is the caller's  attestation, set on create and never editable afterwards (the Update map ignores it).  `null` when no non-zero convenience fee was charged. See  `TransactionCreateOrUpdateDtoBase.ConvenienceFeeDisclosureAcknowledgedAt` for when it is  required. (nullable)
  - `convenienceFeeDisclosureChannel` (string): The surface on which the convenience-fee disclosure was shown and accepted:  `"VirtualTerminal"`, `"HostedPaymentPage"`, or `"Api"`. Set on create and never  editable afterwards. (nullable)
  - `convenienceFeeEligibilitySnapshot` (string): Serialized convenience-fee eligibility decision (reason code + assessed amount) captured  at disclosure-acknowledgment time. Codes / amounts only. Produced by the Virtual Terminal and  Hosted Payment Page; optional on a direct API create. Set on create and never editable  afterwards. (nullable)
  - `convenienceFeeCancelledAmount` (number(double)): The convenience-fee amount, in the transaction currency, the Virtual Terminal operator declined on  the disclosure-confirm modal, removing it from the submission. Audit-only: it was never charged, and the matching  `CsrCancelledVtModal` convenience-fee decision note carries the same amount. Read-only on  the API surface. `null` when no disclosed fee was cancelled. (nullable)
  - `surchargeRate` (number(double)): The surcharge rate actually applied to this transaction, as a decimal fraction (0.03 = 3%).  The same value as `surchargeResult`.AppliedRate, carried at the top level so it  can be filtered on. `null` when no surcharge was assessed. (nullable)
  - `surchargeDisclosureAcknowledgedAt` (string(date-time)): UTC timestamp when the surcharge disclosure was acknowledged, captured at confirm-click time.  Read-only on the API surface. `null` when no surcharge was disclosed. (nullable)
  - `surchargeDisclosureChannel` (string): Channel on which the surcharge disclosure was acknowledged  (`"VirtualTerminal"` / `"HostedPaymentPage"` / `"Api"`). Read-only on the API surface. (nullable)
  - `surchargeReversedAmount` (number(double)): The portion of the assessed surcharge amount reversed by a subsequent void or refund, in the  transaction currency.  Read-only on the API surface. `null` when nothing has been reversed. (nullable)
  - `achWebAuthorizationText` (string): NACHA WEB single-debit authorization language shown to the payer, captured verbatim at ACH  submit. Read-only on the API surface; delivered on the ACH completion webhook. PCI-safe.  `null` for non-ACH tenders. (nullable)
  - `achWebAuthorizationTextVersion` (string): Version hash (`sha256:{hex}`) of `achWebAuthorizationText`. Read-only. (nullable)
  - `achWebAuthorizationConsumerIp` (string): Consumer IP recorded at ACH WEB authorization time (required NACHA evidence). Read-only.  `null` for non-ACH tenders. (nullable)
  - `achWebAuthorizationAt` (string(date-time)): UTC timestamp of the ACH WEB authorization (server-stamped). Read-only.  `null` for non-ACH tenders. (nullable)
  - `achWebAuthorizationSecCode` (string): SEC code the ACH WEB authorization was captured under (always `"WEB"`). Read-only.  `null` for non-ACH tenders. (nullable)
  - `achAuthorizationStatementText` (string): CSR attestation statement captured for a Virtual Terminal CSR-keyed ACH debit (NACHA TEL / PPD).  Read-only on the API surface; delivered on the ACH completion webhook. PCI-safe.  `null` for non-VT-ACH tenders. (nullable)
  - `achAuthorizationStatementVersion` (string): Version hash (`sha256:{hex}`) of `achAuthorizationStatementText`. Read-only. (nullable)
  - `achAuthorizationSecCode` (string): SEC code the VT ACH authorization was captured under (`"TEL"` or `"PPD"`). Read-only.  `null` for non-VT-ACH tenders. (nullable)
  - `achAuthorizationChannel` (string): Channel on which the VT ACH authorization was attested (`"VirtualTerminal"`). Read-only.  `null` for non-VT-ACH tenders. (nullable)
  - `achAuthorizationAt` (string(date-time)): UTC timestamp of the VT ACH authorization (server-stamped). Read-only.  `null` for non-VT-ACH tenders. (nullable)
  - `idempotencyStatus` ([CreateIdempotencyStatus](https://devportal.demo.winkpg.io/docs/api/models/CreateIdempotencyStatus.md)): What create idempotency did to the request that produced this response: whether a  `idempotencyKey` was sent, whether deduplication was in effect for the merchant, and  whether this response replays an earlier create. (nullable)
    Values:
    - `NotRequested`: The request carried no idempotencyKey, so there was nothing to deduplicate. A repeat send will charge again.
    - `KeyIgnored`: The request carried an idempotencyKey, but deduplication is not enabled for this merchant, so the key had no deduplication effect. It is stored with the transaction and remains available through the lookup-by-idempotency-key operation, but a repeat send with the same key will charge again. Ask your provider to enable deduplication for the merchant.
    - `KeyAccepted`: The request carried an idempotencyKey, deduplication is enabled, and this request claimed the key. This is the original create; a repeat send with the same key inside the deduplication window replays this transaction instead of charging again.
    - `Replayed`: The idempotencyKey matched a create that had already completed for this merchant, so nothing was charged. The response body is that original transaction exactly as it stands, original identifiers and timestamps included.
  - `idempotencyKey` (string): The idempotency key this transaction was created with, exactly as stored.  `null` when the create request carried none. Read-only: the key is fixed at  create time and an update never changes it. (nullable)
- `totalCount` (integer(int64))

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
