View as Markdown

llms.txt

The API reference isn't available right now

This instance couldn't load its API specification. The reference returns as soon as the specification is readable again.

Back to the API reference

No such model

This instance publishes no model under that name. It may have been renamed, or no operation this installation serves uses it.

Back to the API reference

This reference may be out of date

This instance couldn't reach its API specification on the last attempt, so this page shows the copy fetched before that. Anything added or changed since then is missing here, and the reference updates itself as soon as the specification is readable again. Last fetched 2026-10-22 22:52 UTC.

API reference Models

TransactionDto

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

Values

Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields

Field Type Description
id required string (uuid)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
creationTime required string (date-time) The date and time when this entity was created.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
creatorId required string (uuid) The ID of the user who created this entity. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
lastModificationTime required string (date-time) The date and time when this entity was last modified. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
lastModifierId required string (uuid) The ID of the user who last modified this entity. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isDeleted required boolean Indicates whether this entity has been deleted.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deleterId required string (uuid) The ID of the user who deleted this entity, if it is deleted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deletionTime required string (date-time) The date and time when this entity was deleted, if it is deleted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
displayGuid required string nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
fraudScreenResult required FraudScreenResult FraudScreenResult 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of FraudScreenResult:

Field Type Description
clientIpGeoLocation required ClientIpGeoLocation ClientIpGeoLocation The geolocation information of the client's IP address.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
shippingAddressEvaluation required ShippingAddressEvaluation ShippingAddressEvaluation The evaluation results for the shipping address.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
billingAddressEvaluation required BillingAddressEvaluation BillingAddressEvaluation The evaluation results for the billing address.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emailAddressEvaluation required EmailAddressEvaluation EmailAddressEvaluation The evaluation results for the email address.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
phoneNumberEvaluation required PhoneNumberEvaluation PhoneNumberEvaluation The evaluation results for the customer phone number, if provided.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
usernameEvaluation required UsernameEvaluation UsernameEvaluation The evaluation results for the customer username, if provided.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cardEvaluation required CardEvaluation CardEvaluation The evaluation results for the card used in the transaction.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deviceEvaluation required DeviceEvaluation DeviceEvaluation The evaluation results for the device used in the transaction, if applicable.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
serviceId required string The unique identifier for the fraud screening service. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transactionId required string The unique identifier for the transaction being evaluated. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
result required string The overall result/recommendation from the fraud screening service. This does not represent the approval status of the transaction at the processor, nor does it definitively indicate fraud; it is a recommendation based on the service's evaluation. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
score required integer (int32) The fraud risk score for the transaction as returned by the screening service.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

merchantName required string nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
resultCode required ResultCode ResultCode nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required string The card brand (e.g., "VISA", "MASTERCARD") resolved from BIN data. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
extraProperties required object nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
currentStage required TransactionStage TransactionStage Represents the stage of a transaction within the transaction management workflow.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required array of TransactionHistoryItem array of TransactionHistoryItem nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of each TransactionHistoryItem:

Field Type Description
id required string (uuid)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transactionId required string (uuid)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
stage required TransactionStage TransactionStage Represents the stage of a transaction within the transaction management workflow.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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.
detailsJson required string nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
creatorId required string (uuid) The ID of the user who created this entity.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
creationTime required string (date-time) The date and time when this entity was created.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
operationId required string nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
lifecycleStatus required string The merchant-facing lifecycle status this entry was published under, or `null` when the entry carries none. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
lifecycleOccurredAtUtc required string (date-time) When the event named by `lifecycleStatus` actually occurred, or `null` when the entry's own `creationTime` is that instant. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
linkedReceiptId required string (uuid) The ID of the receipt generated for this timeline entry, if any. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
linkedReceiptType required ReceiptType ReceiptType The type of the linked receipt. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Authorization Receipt generated after a successful authorization.
Capture Receipt generated after a capture/settlement.
Refund Receipt generated after a full refund.
PartialRefund Receipt generated after a partial refund. Multiple partial refund receipts may exist on a single transaction, each with a distinct sequence number.
Void Receipt generated after a void.
Reversal Receipt generated after a full reversal: the entire approved amount has been released back to the issuer. Distinguished from PartialReversal so the transaction-detail / explorer pages can show the lifecycle event clearly.
OnDemand Receipt generated on-demand from the UI (legacy/fallback for pre-module transactions).
PartialReversal Receipt generated after a partial reversal. Multiple partial reversal receipts may exist on a single transaction (one per reversal operation), each with a distinct sequence number.
SplitTenderSummary Summary receipt for a completed split tender group: the order total, what each tender in the group authorized, and the combined authorized amount. Generated once per group, after the final tender completes, in addition to the per-tender receipts.
linkedReceiptSequenceNumber required integer (int32) The sequence number of the linked receipt within the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
subHistory required array of TransactionHistoryItem array of TransactionHistoryItem nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

appliedPatches required array of TransactionPatchSnapshot array of TransactionPatchSnapshot nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of each TransactionPatchSnapshot:

Field Type Description
appliedAtUtc required string (date-time)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
contributor required string nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
patch required TransactionPatchDto TransactionPatchDto
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

allowedActions required array of TransactionOperationType array of TransactionOperationType nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required string nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
entityVersion required integer (int32) read only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tenantId required string (uuid) nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transactionType required TransactionType TransactionType Represents the various types of transactions that can be performed in the system.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required CardData CardData Represents the data associated with a payment card.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of CardData:

Field Type Description
cardNumber required string The card account number. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
last4CardNumber required integer (int32) The last 4 digits of the card number as an integer. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationMonth required integer (int32) The expiration month of the card as an integer in the range `1` to `12`.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationYear required integer (int32) The expiration year of the card. Either a two-digit year (e.g. `29`) or a four-digit year (e.g. `2029`); two-digit years resolve to the 2000s.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
expirationDate required string (date-time) The expiration date of the card. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
binData required BinData BinData The BIN (Bank Identification Number) data associated with the card.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cvv required integer (int32) Deprecated: send `cardVerificationValue` instead. The CVV (Card Verification Value) of the card as an integer. Conditional: When IsStoredPayment is not true. Range: 100 to 9999. nullabledeprecated
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cardVerificationValue required string The card verification value (CVV, CVC or CID) exactly as printed on the card: three digits, or four for American Express. Send it as a string so a leading zero is kept. Conditional: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
nameOnCard required string The name on the card. Conditional: When IsStoredPayment is not true. Max length: 25. nullablemin length 0max length 25
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
pin required string The PIN (Personal Identification Number) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
keySerialNumber required string The Key Serial Number associated with the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emvData required string The EMV (Europay, Mastercard, and Visa) data associated with the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
trackData required string The track data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack1Data required string The encrypted track 1 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack2Data required string The encrypted track 2 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedTrack3Data required string The encrypted track 3 data of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dynamicCardVerificationData required string A reader-generated dynamic card verification value captured at the moment the card was read. Card readers that support it derive this value from physical characteristics of the magnetic stripe, which differ between an original card and a copy, so the decryption service that fronts the processor can score whether the presented card is genuine. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dynamicCardVerificationStatus required string Status metadata the reader reported alongside `dynamicCardVerificationData` (for example whether the reader considered the dynamic verification read successful). Non-secret: it describes the read, it is not the verification value itself, so it is persisted as submitted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
iin required string The IIN (Issuer Identification Number) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
arqc required string The ARQC (Authorization Request Cryptogram) of the card. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
entryMode required EntryModes EntryModes The entry mode of the card.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unknown The entry mode is unknown.
NotApplicable The entry mode is not applicable for this transaction.
Manual The transaction details were entered manually.
UnencryptedCardReaderSwipe The card was swiped through an unencrypted card reader.
EncryptedCardReaderSwipe The card was swiped through an encrypted card reader.
Icc The transaction was processed using an ICC (Integrated Circuit Card) or chip card.
Proximity The transaction was processed using a proximity or contactless payment method.
Fallback The transaction was processed using a fallback method when the primary method failed.
TechnicalFallback The transaction was processed using a fallback method when the primary method failed.
EmptyCandidateFallback The transaction was processed using a fallback method when the primary method failed.
DigitalWallet The transaction was processed using a digital wallet.
cvPresence required CvPresence CvPresence The CV (Card Verification) presence status.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
None The CV status is not specified or unknown.
NotSubmitted The CV has not been submitted.
Submitted The CV has been successfully submitted.
Illegible The submitted CV is illegible or cannot be read.
NotPresent The CV is not present or missing from the submission.
billingAddress required Address Address The billing address associated with the card. Optional by default (no nested validation enforced). Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
phone required string The phone number associated with the card. Conditional: When IsStoredPayment is not true. Max length: 15. Pattern: ^[0-9+()\-\s]*$. nullablemin length 0max length 15
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
email required string The email address associated with the card. Conditional: When IsStoredPayment is not true. Must be a valid email. Max length: 50. nullablemin length 0max length 50
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasEmvData required boolean Indicates whether EMV data was provided in the original request. The raw `emvData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasTrackData required boolean Indicates whether track data was provided in the original request. The raw `trackData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasEncryptedTrackData required boolean Indicates whether any encrypted track data (track 1, 2, or 3) was provided in the original request. The raw encrypted track values are not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasCvv required boolean Indicates whether a CVV was provided in the original request, in either `cardVerificationValue` or `cvv`. The raw value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasPin required boolean Indicates whether a PIN was provided in the original request. The raw `pin` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hasDynamicCardVerificationData required boolean Indicates whether reader-generated dynamic card verification data was provided in the original request. The raw `dynamicCardVerificationData` value is not stored. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emvAid required string nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isDebitRouting required boolean nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tenderType required CardTenderType CardTenderType The card-rail tender the caller is attempting to use. Drives deterministic processor routing. `null` (or absent JSON) is treated as `CreditDebit` for backward compatibility: see `EffectiveTenderType`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
CreditDebit Standard credit/debit card. The current card-rail behaviour. isDebitRouting modulates whether the request prefers debit-network routing within this rail.
EbtSnap EBT SNAP (food benefits). Routes through the EBT SNAP processor lane and requires PIN + card-present per program rules.
EbtCash EBT Cash (cash benefits). Distinct rail from SNAP; supports cashback where SNAP does not. PIN + card-present required.
Ewic eWIC (Women, Infants, and Children). Distinct rail from EBT, with item-level eligibility / voucher-select flow handled in the eWIC follow-up epic.
isStoredPayment required boolean When `true`, this card data originates from a stored payment method and client-side field validation is not applicable. The server resolves actual card data from the payment token. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
terminalCapability required TerminalCapability TerminalCapability The static hardware capability of the terminal. Selects the POS capability subfields on the processor wire message. Resolved once in `ProcessorSelectionApplier`: request value wins over the processor-profile default, which wins over `Unspecified`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unspecified No capability declared. The handler emits its current default POS capability fields, preserving existing wire behavior exactly.
MagneticStripe Magnetic stripe reader only (implies keyed entry).
MagneticStripeWithPin Magnetic stripe reader with PIN pad (implies keyed entry).
Chip Contact chip reader (EMV ICC).
ChipWithPin Contact chip reader with PIN pad.
ChipContactless Contactless chip reader (EMV contactless / NFC).
ChipContactlessWithPin Contactless chip reader with PIN pad.
cryptogram required string The payment network cryptogram recovered from wallet-token decryption (the online payment cryptogram for Apple Pay / Google Pay DPAN transactions). Sensitive: masked from logs. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
eciIndicator required string The Electronic Commerce Indicator (ECI) describing the authentication context of a tokenized / wallet transaction (e.g. `"05"` for a 3DS-authenticated transaction). Drives the liability-shift indicators processors include in the network message. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isTokenized required boolean Indicates the credential is a tokenized account number (DPAN / network token) rather than a raw PAN. `null` means unknown, which is treated the same as not tokenized. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tokenTransactionId required string The provider-specific transaction identifier returned alongside a wallet token (Apple Pay `transactionIdentifier`, network-token transaction id). Used for dispute matching against the wallet provider. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

checkData required CheckData CheckData Represents the data associated with a check transaction.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of CheckData:

Field Type Description
nameOnCheck required string The name printed on the check. Required: When IsStoredPayment is not true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingNumber required string The routing number of the bank. Required: When IsStoredPayment is not true. Conditional: When IsStoredPayment is true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingNumberLast4 required string The last 4 digits of `routingNumber` as a string, preserving leading zeros, or `null` when no digits are available. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
accountNumber required string The account number associated with the check. Required: When IsStoredPayment is not true. Conditional: When IsStoredPayment is true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
accountNumberLast4 required string The last 4 digits of `accountNumber` as a string, preserving leading zeros, or `null` when no digits are available. nullableread only
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
checkNumber required string The check number. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
micr required string The Magnetic Ink Character Recognition (MICR) data. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
driversLicense required string The driver's license number of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
state required string The state of issuance for the driver's license. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ssn required string The Social Security Number of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dateOfBirth required string The date of birth of the check writer. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
checkType required CheckType CheckType The type of check.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Personal Represents a personal check. This is typically issued by an individual from their personal account.
Business Represents a business check. This is typically issued by a company or organization from their business account.
accountType required CheckAccountType CheckAccountType The type of account associated with the check. Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Checking Represents a checking account.
Savings Represents a savings account.
rawMicr required string The raw MICR data. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
branchCity required string The city of the bank branch. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
emailAddress required string The email address of the check writer. Conditional: When IsStoredPayment is not true. Must be a valid email. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
telephoneNumber required string The telephone number of the check writer. Conditional: When IsStoredPayment is not true. Pattern: ^[0-9+()\-\s]*$. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
address required Address Address The address associated with the check. Optional by default (no nested validation enforced). Conditional: When IsStoredPayment is not true.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
secCode required SecCode SecCode The Standard Entry Class (SEC) code for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Ccd Corporate Credit or Debit (CCD) - Used for business-to-business transactions.
Ppd Prearranged Payment and Deposit (PPD) - Used for consumer transactions.
Web Internet-Initiated/Mobile Entry (WEB) - Used for internet or mobile-initiated transactions.
Arc Accounts Receivable Conversion (ARC) - Used for converting eligible checks to ACH debits.
Tel Telephone-Initiated Entry (TEL) - Used for telephone-initiated transactions.
isStoredPayment required boolean When `true`, this check data originates from a stored payment method and client-side field validation is not applicable. The server resolves actual account data from the payment token. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

cashData required CashPaymentDetails CashPaymentDetails 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of CashPaymentDetails:

Field Type Description
amountTendered required number (double) The amount of cash the customer physically handed over, in the transaction currency. May exceed the transaction total when change was returned. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
changeGiven required number (double) The amount of change returned to the customer, in the transaction currency. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cashReceivedAt required string (date-time) When the cash was taken. Send it to record a sale taken earlier, for example one recorded offline; when omitted, the gateway stamps the time of authorization. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

apmData required ApmData ApmData The alternative-payment instrument block for a payment the payer approved inside a provider. Null on every other tender.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of ApmData:

Field Type Description
providerKey required string The processor key of the provider that owns the approval (for example `loopback`, `paypal`). Recorded so the routing trail and every read surface can name the provider without quoting a reference. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
fundingSource required string The wallet or scheme the cardholder chose inside the provider, as a `PaymentMethodKeys` alternative-payment key (`paypal`, `venmo`, `paylater`, `affirm`, `klarna`, `afterpay`). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
providerOrderId required string The provider's identifier for the order or checkout session the approval belongs to. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
approvalToken required string The bearer value the provider handed back for the approval, exchanged for a charge. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
payerReference required string The provider's identifier for the payer, typically the email address the payer holds their provider account under. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
providerAuthorizationId required string The provider's authorization identifier, written from `ProcessorOutcome.References` after the processor answers. A capture or a void quotes it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
providerCaptureId required string The provider's capture identifier, written from `ProcessorOutcome.References` after the processor answers. A refund quotes it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
providerRefundId required string The provider's refund identifier, on a refund transaction. Written by the processor when the platform asks for a refund, or by the webhook receiver when it records a refund the provider initiated; a refund webhook is matched to its refund transaction by it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
providerInitiatedRefund required boolean True on a refund transaction the platform recorded from a provider webhook rather than asked for: the merchant refunded in the provider's own dashboard, or the provider refunded on its own account. No processor was called for it; the money had already moved. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
refundExceededCapacity required boolean True on a provider-initiated refund that exceeded the parent's remaining refundable amount when it was recorded. Recorded rather than rejected, because the provider has already returned the money; flagged so an operator can reconcile it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
providerFeeAmount required number (double) The fee the provider charged for the transaction, when it reported one on the response. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
approvedAtUtc required string (date-time) When the provider reported the approval, in UTC. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
clientParameters required object The values the provider's own button produced in the cardholder's browser, carried onto the begin-approval request the processor is dispatched with. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
clientPassthrough required object Opaque provider values the processor produced that the surface which began the approval has to hand back to the provider's own script. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
returnUri required string Where the provider returns the cardholder on approval, as the surface that started the approval supplied it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cancelUri required string Where the provider returns the cardholder on cancellation, as the surface that started the approval supplied it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

tokenData required TokenData TokenData Represents tokenized payment information used to process a transaction. This model supports internal stored tokens as well as digital wallet tokens such as Internal, Apple Pay, Google Pay, and network tokens.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of TokenData:

Field Type Description
token required string A secure token representing a stored payment method, charged in place of raw card data. Required: When ProviderType is null or ProviderType == Internal. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tokenSharing required boolean The sharing status of the token. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
merchantOriginalId required string (uuid) The original merchant identifier associated with the token, typically used when token sharing is enabled. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
providerType required TokenProviderType TokenProviderType Specifies the provider that generated the token. Examples include Internal, ApplePay, GooglePay, NetworkToken, and ReaderToken. This value determines how the token should be processed. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Internal Internal gateway token generated by WinkPG.
ApplePay Apple Pay encrypted payment token.
GooglePay Google Pay encrypted payment token.
NetworkToken Network token such as Visa Token Service or Mastercard MDES.
Paze Paze (Early Warning) encrypted payment token.
ReaderToken A reusable card token issued by a card-reader decryption service, carried on readerToken.
readerToken required string A reusable card token issued by a card-reader decryption service, charged in place of a physical card read. Required when `providerType` is `ReaderToken`, and ignored otherwise. Required: When ProviderType == ReaderToken. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptedPaymentToken required string The encrypted payment token payload received from a digital wallet provider (for example, Apple Pay or Google Pay). Required for digital wallet transactions. Required: When ProviderType == ApplePay or ProviderType == GooglePay or ProviderType == Paze. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
network required string The payment network associated with the token (for example: Visa, Mastercard, Amex). Typically provided by digital wallet transactions. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
displayName required string A display-friendly name for the payment method, nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cryptogram required string The cryptographic value used for transaction authorization in digital wallet or network token transactions. Required for Apple Pay, Google Pay, and network token processing. Required: When ProviderType == NetworkToken. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
eciIndicator required string The Electronic Commerce Indicator (ECI) that specifies the authentication level of the transaction. Commonly used in 3D Secure and digital wallet flows. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transactionIdentifier required string A unique identifier assigned by the wallet provider for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

deviceData required DeviceData DeviceData Represents data related to a device in a transaction.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of DeviceData:

Field Type Description
sdkVersion required string The version of the SDK used by the device. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
serialNumber required string The serial number of the device. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
batteryLevel required integer (int32) The battery level of the device. The value is nullable to accommodate devices that may not report battery level. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isEncrypted required boolean Value indicating whether the device data is encrypted.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptionType required string The type of encryption used for the device data, if applicable. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
encryptionKeyVariant required string The DUKPT key variant the reader used to encrypt the card data: `Data` for the data variant or `Pin` for the PIN variant. Both variants derive from the same base key, so the decryption service needs to be told which one applies before it can decrypt. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cvmResults required string The EMV Cardholder Verification Method (CVM) result reported by the device. Values: "1" = Offline PIN, "2" = Online PIN, "3" = Signature. Used as a fallback when EMV tag 9F34 is not present in the chip data (e.g. some Ingenico/Discover contactless flows). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

fsa required Fsa Fsa Represents a Flexible Spending Account (FSA) with various amount categories and partial authorization support.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of Fsa:

Field Type Description
qhpAmount required number (double) The Qualified Health Plan (QHP) amount for the FSA. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
rxAmount required number (double) The prescription (Rx) amount for the FSA. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
visionAmount required number (double) The vision care amount for the FSA. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dentalAmount required number (double) The dental care amount for the FSA. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
clinicalAmount required number (double) The clinical care amount for the FSA. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
copayAmount required number (double) The copay amount for the FSA. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transitAmount required number (double) The transit amount for the FSA. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
partialAuthSupport required boolean Whether partial authorization is supported for this transaction. FSA/HSA card acceptance effectively requires partial auth per IRS Rev. Rul. 2003-43 / Notice 2006-69 and SIGIS merchant operating rules: cardholders frequently have mixed eligible and ineligible purchases, and partial auth lets the FSA-eligible portion approve even when the full transaction exceeds the FSA balance.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

lodging required LodgingData LodgingData Lodging detail for a stay-related transaction, echoed back as it was submitted. Null on every transaction outside a lodging industry.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of LodgingData:

Field Type Description
checkInDate required string (date) The date the guest checked in, or is expected to. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
checkOutDate required string (date) The date the guest checked out, or is expected to. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
nights required integer (int32) How many nights the stay covers. Conditional: When Nights is not null. Range: 1 to 99. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
folioNumber required string The property's own reference for the guest's bill. nullablemax length 22
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
saleCode required LodgingSaleCode LodgingSaleCode What kind of lodging charge this is. Conditional: When SaleCode is not null. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Sale An ordinary stay, settled against the guest's folio.
NoShow A guaranteed reservation the guest did not arrive for, charged under the property's no-show policy.
Deposit An advance deposit taken against a future stay.
DelayedCharge A charge added after the guest checked out, for something attributable to the stay (a bar tab posted late, a room found damaged).
ExpressService Express checkout: the folio is settled without the guest presenting the card again.
AssuredReservation A reservation the property guaranteed to hold, which is what makes a later NoShow chargeable.
chargeDescriptor required LodgingChargeDescriptor LodgingChargeDescriptor Which part of the property the charge arose in. Conditional: When ChargeDescriptor is not null. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Lodging A room charge. The ordinary case.
Restaurant A restaurant charge.
GiftShop A gift-shop charge.
HealthClub A health-club or spa charge.
HairSalon A hair-salon charge.
ConventionFees A convention or meeting-room fee.
TennisClub A tennis-club charge.
GolfShop A golf-shop charge.
extraCharges required LodgingExtraCharges LodgingExtraCharges The ancillary items the folio included beyond the room. Conditional: When ExtraCharges is not null. Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
None Room charges only. An explicit statement, not an absent one.
Restaurant Restaurant charges.
GiftShop Gift-shop charges.
MiniBar Mini-bar charges.
Telephone Telephone charges.
Laundry Laundry charges.
Other Charges that fit none of the named categories.
extraChargeAmount required number (double) How much of the amount is accounted for by `extraCharges`. Conditional: When ExtraChargeAmount is not null. Must be > 0. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
preferredCustomer required boolean Whether the guest is enrolled in the property's loyalty programme. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

softDescriptor required SoftDescriptor SoftDescriptor Represents a soft descriptor for a transaction, containing alternative merchant information.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of SoftDescriptor:

Field Type Description
altMerchantName required string The alternative merchant name. nullablemax length 30
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
altMerchantAddress required Address Address The alternative merchant address.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

duplicateCheck required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
register required TransactionRegister TransactionRegister Represents a transaction register in the system.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of TransactionRegister:

Field Type Description
id required string (uuid) The unique identifier for the transaction register.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
name required string The name of the transaction register. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

invoiceData required Invoice Invoice Represents an invoice in the system.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of Invoice:

Field Type Description
customerId required string (uuid) The unique identifier of the customer associated with this invoice. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
amounts required TrxAmounts TrxAmounts The amounts associated with this invoice.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isEstimatedAmount required boolean Value indicating whether the amount on this invoice is estimated. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isTaxExempt required boolean Value indicating whether this invoice is tax exempt. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
shippingAddress required Address Address The shipping address for this invoice.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

originalTransaction required OriginalTransaction OriginalTransaction Represents an original transaction with its identifying information.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of OriginalTransaction:

Field Type Description
transactionId required string The unique identifier for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
pnRef required integer (int32) The PNRef (Processor's Reference Number) for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
authCode required string The authorization code for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transactionType required TransactionType TransactionType The transaction type of the original transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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.
entryMode required EntryModes EntryModes The entry mode used in the original transaction, if available. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unknown The entry mode is unknown.
NotApplicable The entry mode is not applicable for this transaction.
Manual The transaction details were entered manually.
UnencryptedCardReaderSwipe The card was swiped through an unencrypted card reader.
EncryptedCardReaderSwipe The card was swiped through an encrypted card reader.
Icc The transaction was processed using an ICC (Integrated Circuit Card) or chip card.
Proximity The transaction was processed using a proximity or contactless payment method.
Fallback The transaction was processed using a fallback method when the primary method failed.
TechnicalFallback The transaction was processed using a fallback method when the primary method failed.
EmptyCandidateFallback The transaction was processed using a fallback method when the primary method failed.
DigitalWallet The transaction was processed using a digital wallet.
paymentMethodsGranular required PaymentMethodsGranular PaymentMethodsGranular The granular payment method used in the original transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Amex American Express card.
Discover Discover card.
Visa Visa card.
MasterCard MasterCard.
JCB Japan Credit Bureau card.
CUP China UnionPay card.
Diners Diners Club card.
Debit Debit card.
Ebt Electronic Benefit Transfer.
Ach Automated Clearing House.
Check Check payment.
Cash Cash payment.
Generic Generic or unspecified payment method.
ApplePay Apple Pay digital wallet.
GooglePay Google Pay digital wallet.
DigitalWallet Generic / unspecified digital wallet.
Paze Paze digital wallet.
AlternativePayment An alternative payment method approved inside a provider (PayPal, Venmo, Pay Later, Affirm, Klarna, Afterpay) and presented to the gateway as an approval reference.
sureChargeAmt required number (double) The surcharge amount from the original transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
authAmt required number (double) The authorized amount from the original transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
totalAmt required number (double) The total amount from the original transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

customFields required array of TrxCustomField array of TrxCustomField nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of each TrxCustomField:

Field Type Description
id required string (uuid) Identifier of the custom-field entry. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
name required string Name of the merchant's custom-field definition this value belongs to. Required, at most 50 characters, and free of control characters. On the authenticated API the name must match an enabled custom-field definition configured for the transaction's merchant. nullablemax length 50
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
value required string Value captured for the field. At most 300 characters and free of control characters; printable punctuation is accepted. Any narrower format constraint comes from the regular expression and maximum length on the merchant's field definition. nullablemax length 300
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
values required array of string array of The list of values captured for a multi-value field, in the order submitted. At most 250 items; each item is at most 300 characters, non-empty and free of control characters. Accepted only when the merchant's field definition is flagged multi-value, where the definition's own maximum length, regular expression and value cap apply to every item. nullablemax items 250
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

signatureData required SignatureData SignatureData Represents signature data for a transaction.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of SignatureData:

Field Type Description
signatureType required SignatureTypes SignatureTypes The type of signature.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Signature1 Represents the first signature type.
Signature2 Represents the second signature type.
Signature3 Represents the third signature type.
Signature4 Represents the fourth signature type.
HypercomLegacy Represents the legacy Hypercom signature type.
HypercomEnhanced Represents the enhanced Hypercom signature type.
Receipt1 Represents the first receipt signature type.
data required string The signature data. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

level2Data required Level2Data Level2Data Represents Level 2 data for a transaction, including purchase order information, transaction date, and merchant zip code.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of Level2Data:

Field Type Description
poNumber required string The purchase order number. nullablemax length 25
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transactionDate required string (date-time) The date and time of the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
merchantZip required string The zip code of the merchant. nullablemax length 10
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

level3Data required Level3Data Level3Data Represents Level 3 data for a transaction, including shipping information and line items.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of Level3Data:

Field Type Description
shipFromZip required string The ZIP code from where the item is shipped. Conditional: When ShipFromZip is not null. Max length: 10. nullablemax length 10
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
destinationZip required string The destination ZIP code for the shipment. Conditional: When DestinationZip is not null. Max length: 10. nullablemax length 10
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
destinationCountryCode required string The destination country code for the shipment (ISO 3166-1 alpha-3 format). Conditional: When DestinationCountryCode is not empty. Pattern: ^[A-Z]{3}$. nullablemax length 3
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
invoiceNumber required string The invoice number associated with the transaction. Conditional: When InvoiceNumber is not null. Max length: 25. nullablemax length 25
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
orderNumber required string The order number for the transaction. Conditional: When OrderNumber is not null. Max length: 25. nullablemax length 25
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dutyAmount required number (double) The total duty amount for the transaction. Must be non-negative. Conditional: When DutyAmount is not null. Must be >= 0. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
freightAmount required number (double) The total freight/shipping amount for the transaction. Must be non-negative. Conditional: When FreightAmount is not null. Must be >= 0. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
discountAmount required number (double) The total discount amount applied at the header level. Must be non-negative. Conditional: When DiscountAmount is not null. Must be >= 0. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
lineItems required array of Level3LineItem array of Level3LineItem The list of line items associated with the transaction. nullablemax items 250
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

orderLines required array of TransactionOrderLine array of TransactionOrderLine 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of each TransactionOrderLine:

Field Type Description
productId required string (uuid) The catalog product this line sold. Indexed for per-SKU reporting.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
quantity required number (double) Quantity sold.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
unitPrice required number (double) Price per unit the payer was charged.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
lineTotal required number (double) `unitPrice` times `quantity`, rounded to cents.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
name required string Product name at the time of sale. Always written by the platform; nullable on the type so the published contract does not infer it as required on the create request the member is kept off of. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
productCode required string Optional SKU. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
unitOfMeasure required string Optional unit label. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
discountAmount required number (double) Discount attributed to this line, if any. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
taxAmount required number (double) Tax attributed to this line, if any. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

ebt required EbtData EbtData Transaction-level EBT (Electronic Benefit Transfer) data for the offline SNAP / Cash food-stamp voucher-clear flow. This is the first-class home for the voucher fields that the legacy gateway stuffed into `ExtData`; it carries the scalar voucher identifiers from the request through to the processor handlers.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of EbtData:

Field Type Description
voucherNumber required string The EBT voucher number captured during an offline food-stamp voucher-clear. Flows through to TSYS `CcBenefit1.VoucherNumber` and Fiserv `EbtGrp.VoucherNum`. nullablemin length 0max length 10
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
voucherApprovalCode required string The offline EBT voucher approval code (the legacy `EbtVoucherCode`). Flows through to TSYS `CcBenefit1.VoucherCode`. nullablemin length 0max length 10
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

useInterchangeDefaults required boolean nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
captureType required CaptureTypes CaptureTypes Represents the types of payment capture methods available for transactions.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required TransactionResponseData TransactionResponseData Represents the response data for a transaction, containing various details about the transaction outcome.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of TransactionResponseData:

Field Type Description
cardValidationData required CardValidationData CardValidationData The card validation data associated with the transaction.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
resultCode required ResultCode ResultCode The result code of the transaction. Defaults to ResultCode.Undefined.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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.
resultMessage required string The result message of the transaction. For successful (Ok) transactions this is normalized against a case-insensitive allow-list of canonical approved messages ("Approved", "Card OK", "Partial Approval"); when the trimmed processor text matches the allow-list its original casing is preserved, otherwise the message is rewritten to "Approved" so the UI/transaction explorer does not surface processor-specific AVS/CVV chatter (e.g. TSYS host text like "NO MATCH") as if it were a transaction-level outcome. For non-Ok results the trimmed processor text passes through verbatim so decline/error reasons remain actionable. The processor's original message (leading/trailing whitespace trimmed but otherwise untouched) is preserved on `originalProcessorMessage` for audit/diagnostics. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
originalProcessorMessage required string The processor's result text as returned by the processor handler, prior to approved-message normalization. Trimmed of leading/trailing whitespace but otherwise unmodified: preserves processor context (e.g. "APPROVED - {host text}", "NO MATCH") that `resultMessage` may have collapsed to a generic "Approved" for UI consumption. Null when the processor supplied no text or only whitespace. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
debitTraceNumber required string The debit trace number for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
resultDetail required string Gets or sets additional details about the transaction result. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
authorizationCode required string The authorization code for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
responseDate required string (date-time) The date and time when the response was received. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
authorizingNetworkId required string Identifies <b>which network authorized</b> the transaction, as the processor labelled it. A short code from the processor's own vocabulary (Fiserv sends one to three alphanumerics; Paymentech sends a name-like token such as "VISA"), constant across every transaction that routed the same way. It is not a per-transaction identifier: to match a single authorization back to the network, read `networkReferenceId` instead. Fiserv sends this and `authorizingNetworkName`; Paymentech sends this alone. Null when the processor supplied no network identification. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
authorizingNetworkName required string The authorizing network's name, when the processor sends one alongside `authorizingNetworkId`. Fiserv sends it; Paymentech sends no name, so this stays null there. Like the id, it identifies the routing, not the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingIndicator required RoutingIndicator RoutingIndicator The routing indicator for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ProcessedAsCredit Indicates that the transaction was processed as a credit transaction.
ProcessedAsDebit Indicates that the transaction was processed as a debit transaction.
ProcessedAsStarSignatureDebit Indicates that the transaction was processed as a Star Signature debit transaction.
customerSignatureRecommended required boolean Value indicating whether a customer signature is recommended.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processorResponseDetail required ProcessorResponseDetail ProcessorResponseDetail Gets or sets detailed response information from the processor.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
associationResponseCode required AssociationResponseCode AssociationResponseCode The association response code for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ExpiredCard
AccountUpgrade
PortfolioSale
Conversion
NewAccountInfoAvailable
AccountClosedFraudulent
RetryWith3ds
OverCreditLimit
InsufficientFunds
responseCategoryCode required ResponseCategoryCode ResponseCategoryCode The response category code for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
IssuerNeverApproves Indicates that the issuer never approves this type of transaction.
IssuerCannotApprove Indicates that the issuer cannot approve this transaction at this time.
DataQualityRevalidate Indicates that the data quality needs to be revalidated.
cardIndicator required string The card indicator for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
detailedProductId required string The detailed product ID associated with the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
clientIpAddress required string The client's IP address for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
amounts required ResponseAmounts ResponseAmounts The response amounts for the transaction.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
settlementXmlData required string Settlement data received from the processor. The stored value is a masked sentinel (`"****"`) that indicates settlement data was received and processed, without exposing the original content. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processorResponseCode required string Processor-specific response code (e.g., "00" for approved). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processorTraceNumber required string Retrieval reference number / trace number from processor. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
networkReferenceId required string The <b>per-transaction</b> reference the card network assigned at authorization: the Visa Transaction Identifier, the Mastercard BankNet reference, or the equivalent on another network. It identifies this one authorization and is the value to quote when matching a single transaction back to the network or anchoring a stored-credential chain to it. Null when the processor returned no such reference. It is not the name or code of the network that authorized: that is `authorizingNetworkId` and `authorizingNetworkName`. Fiserv and Paymentech return no per-transaction reference at all, so this is null on those rails, except that during a transitional compatibility window it repeats their `authorizingNetworkId` so integrations reading it here keep working. Read `authorizingNetworkId` for a network identity; that window will close. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processorTransactionId required string Processor transaction identifier. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transactionNumber required string Transaction number from processor. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
batchNumber required string Batch number from processor. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
authorizationSource required string Authorization source indicator. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
declineReasonCode required string Why the transaction did not go through, as one value from the platform's processor-agnostic decline reason vocabulary (for example `DO_NOT_HONOR`, `INSUFFICIENT_FUNDS`, `CV_REJECTED`). Populated on a declined, failed, or policy-rejected result and absent on an approval. The vocabulary is the same whichever processor handled the authorization: the processor's own code is on `processorResponseCode`. Every value, its meaning, and whether an authorization hold was placed and released, is published on the developer portal at `/docs/decline-reason-codes`. Branch on this field rather than on `declineReasonDescription`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
declineReasonDescription required string A readable description of the decline that goes with `declineReasonCode`, in the processor's or the platform's own words (for example `Insufficient Funds`). Wording can change without notice; the stable value to branch on is `declineReasonCode`, whose vocabulary is published on the developer portal at `/docs/decline-reason-codes`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
settlementAmount required number (double) Settlement amount from processor. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
settlementDate required string (date-time) Settlement date from processor. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cardLevelResults required string Card level results (A/B/C for Visa/MC card levels). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
returnedAci required string The Returned ACI (Authorization Characteristics Indicator) the network echoed back on the authorization response, stored as the raw single-character code. It reports how the transaction actually qualified (for CPS and related programs), which can differ from the ACI the gateway requested. Meanings are processor-specific, so the friendly description is resolved at display time from the transaction's processor key via `ReturnedAciCatalog` rather than persisted here. Null when the processor returned no ACI (blank / space-filled) and on every non-card flow. Non-sensitive protocol metadata. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
posDataCode required string POS data code. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
validationCode required string Validation code from processor. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
additionalProcessorData required object Additional processor-specific response data, keyed by merchant-facing display label. Populated by the per-processor detail-extraction registry (`ProcessorDetailExtractionExecutor`) from the processor's settlement/detail aggregate at authorization time. Every key is governed by the registry's PCI allowlist (`ProcessorDetailPciPolicy`), which is what makes this dictionary safe on all three surfaces it reaches: the merchant-facing transaction DTO, outbound webhook projection, and the transaction history `DetailsJson` copy of the `/ResponseData` patch. Card number, track, EMV, CVV, and expiration can never land here. Size is capped by `ProcessorDetailBudget` because the history copy duplicates this value per entry. Not queryable: `/ResponseData/AdditionalProcessorData/*` is index-excluded. A field that needs server-side filtering or reporting must be promoted to a typed property instead. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
eci required string Electronic Commerce Indicator returned by the network, canonicalized by the processor's detail adapter (upper-cased, whitespace-trimmed, leading zeros preserved: `05` and `5` are distinct ECI values). Promoted to a typed property because it is network-defined, normalizable across processors, and used for interchange-qualification reporting. `null` when the processor returned none. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
entryDataSource required string Entry data source indicator describing how the card data reached the terminal (keyed, swiped, contactless, stored credential), canonicalized by the processor's detail adapter. Promoted because entry mode is semantically common across processors and drives downgrade/qualification analysis. `null` when the processor returned none. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
requestedAci required string Authorization Characteristics Indicator the gateway <em>requested</em> for this authorization, extracted from the processor's settlement/detail aggregate. Promoted to a typed, queryable property rather than left in `additionalProcessorData`, because dictionary values can never be queried server-side. `null` when the processor returned none. <b>What a difference from `returnedAci` means depends on the processor.</b> On a processor whose requested value is an interchange qualification tier, a returned value differing from the requested one means the transaction downgraded to a costlier tier. On Fiserv it does not: the requested value there is a participation request drawn from P, I, Y, R rather than a tier, and the gateway sends Y on every Visa credit authorization and sale, so a requested Y against a returned A, E or W is the normal qualified outcome. On that rail the not-qualified signal is a returned N or T. Read the pair per processor; a single cross-processor comparison rule would report Fiserv downgrades that did not happen. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hostReferenceNumber required string An opaque, processor-assigned reference for this transaction that the gateway quotes back to the same processor on a follow-up operation. Which processor identifier it holds depends on the processor, and on TSYS on the product path as well, so neither its format nor its meaning is stable across processors. It is not a retrieval reference number on every processor, it is not an acquirer reference number, and it is not a network reference: an integrator wanting a standard identifier should read `processorTraceNumber` (the retrieval reference / trace number) or `networkReferenceId` (the network transaction reference) instead of this property. Per processor: on Fiserv it is the authorization network trace id, and the same value is also reported in `processorTraceNumber`, so the two are equal. On Paymentech it is the host retrieval reference number, which is likewise also reported in `processorTraceNumber`. On TSYS it is the host transaction id for ecommerce, retail, retail card-not-present, EMV retail, healthcare, non-EMV PIN debit and the partially approved EBT branch, and the retrieval reference number for the approved EBT branch, for EMV PIN debit and on the reversal path. On MagTek DAF it is the Magensa transaction id. On VeriCheck and VeriCheck v2 it is the provider's payment uuid. On the loopback simulator it is `null`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achTraceNumber required string NACHA-format ACH trace number echoed back by the ACH processor (15 characters: 8-digit Originating Depository Financial Institution identifier + 7-digit sequence). Stable for the logical transaction lifecycle: capture, refund, reversal, and return responses repeat the trace assigned at authorization so downstream consumers can correlate the lifecycle to a single ACH entry. Null on card flows. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
nachaReturnCode required string NACHA return code (e.g. `R01`, `R02`, `R10`) when the ACH transaction was returned by the receiving bank. `null` on approved/pending entries and on all card flows. The full canonical list is R01 through R85 per the NACHA Operating Rules. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
nachaReturnReason required string Human-readable reason text paired with `nachaReturnCode` (for example "Insufficient Funds" for R01, "Account Closed" for R02). Surfaced verbatim in the audit log and transaction explorer to spare consumers from maintaining their own code-to-reason mapping. Null when `nachaReturnCode` is null. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
effectiveEntryDate required string (date) The effective entry date the ACH entry will post to the receiving account, in the originator's local processing window. After the daily NACHA cutoff this rolls forward to the next banking day. Null on card flows. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
originatingDfi required string ABA routing number of the Originating Depository Financial Institution that transmitted the entry on behalf of the gateway/merchant. Null on card flows. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
secCode required string Standard Entry Class code echoed from the request: for example `PPD`, `CCD`, `WEB`, `TEL`, `ARC`. Mirrors `secCode` as a string so the response shape matches raw NACHA carrier fields rather than the gateway's enum representation. Null on card flows. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
micrEcho required string Verbatim echo of the inbound MICR line when the request carried check-image data (POP, ARC, BOC). Null for non-image ACH flows (PPD, CCD, WEB, TEL) and on all card flows. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tokenResult required TransactionTokenResult TransactionTokenResult When the card on this transaction was vaulted (HPP / VT save-card-on-payment), the merchant-facing token the gateway generated, so it can be retrieved from the transaction response / HPP callback / webhook and charged later. `null` when the card was not tokenized. Server-produced; never accepted on a create request. The internal vault id is on `Transaction.PaymentTokenId` and is not emitted here. .
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processorTokenId required string Reusable processor token captured from the processor at authorization time (TSYS wire path first). Populated only on a successful tokenizing auth: an auth the gateway gated on (SaveCardRequested AND the routed processor advertises tokenization AND the merchant preference), otherwise `null`. This identifier is PAN-correlating. It is encrypted at rest, is never returned on the merchant-facing transaction, and is never included in an outbound webhook. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processorTokenStatus required string The processor's status for the token minted on this auth (e.g. active / provisioned). Non-sensitive processor metadata; `null` on non-tokenizing auths. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tokenRequestorId required string The network Token Requestor ID the token was minted under, echoed back by the processor. Non-sensitive scheme/config identifier; `null` when not applicable. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processorTokenProfileId required string (uuid) The processor profile id the token was minted under, so a later stored-credential charge can be routed through the same processor profile. `null` on non-tokenizing auths. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isPartialApproval required boolean Whether the issuer approved less than the amount requested (a partial approval). `amounts.requested` and `amounts.approved` give the two amounts, and `amounts.balanceDue` the shortfall. Absent when the issuer approved the full amount. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

settleData required TransactionSettleData TransactionSettleData Represents settlement data for a transaction.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of TransactionSettleData:

Field Type Description
estimatedSettleDate required string (date-time) The estimated settlement date for the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dateSettled required string (date-time) The actual date when the transaction was settled. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
flag required SettleFlag SettleFlag Legacy settlement flag. Use `settlementStatus` instead. deprecated
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Open The transaction is open and not yet settled.
Settled The transaction has been successfully settled.
RolledBack The transaction has been rolled back or reversed.
InProgress The transaction is currently in the process of being settled.
Hold The transaction is on hold and cannot be settled at the moment.
processorBatchId required string The processor's batch identifier for this transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
gatewayBatchId required string (uuid) The gateway's batch identifier for this transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
settlementDataJson required string Settlement aggregate data as a JSON string (converted from processor XML). This contains the data needed to settle the transaction with the processor. Encrypted at rest. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
settlementStatus required SettlementStatus SettlementStatus Current settlement status of the transaction for processor settlement tracking. Treat null as `WaitingForSettlement`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
WaitingForSettlement Transaction is waiting to be settled with the processor
SettlementSucceeded Settlement completed successfully with the processor
SettlementFailed Settlement failed - requires review and retry (rollback)
NotEligible Transaction is not eligible for settlement (voided, reversed, or not yet captured)
SettlementInProgress Settlement is currently in progress with the processor.
SettlementOnHold Settlement is on hold and cannot proceed at the moment.
SettlementRolledBack Settlement was rolled back or reversed after a completed attempt. Distinct from SettlementFailed which indicates a transient failure needing retry.
ReversalFailed A reversal was attempted but the processor did not confirm that the authorization hold was voided: the contributor saw a non-Ok result code (transport failure, timeout, swallowed exception, malformed response, etc.). Distinct from NotEligible (a confirmed reversal/void) and SettlementFailed (a settlement-time failure). Operations need to confirm the hold state with the processor and reverse manually if required. The transaction's Stage is left at the pre-reversal value; the close-stage history entry is NOT written.
Pending The provider owns settlement and reports the outcome on its own schedule, so the transaction belongs to no gateway batch. Used for ACH sales and alternative payments. A background sync moves the transaction on as the provider reports, through any of the ACH in-flight statuses, to a terminal status.
Accepted The ACH processor has accepted the transaction for processing. VeriCheck V2 only: the entry has been received and accepted by the payment network.
Originated The ACH transaction has been originated (submitted to the NACHA network). VeriCheck V2 only: the debit has been forwarded to the RDFI.
Verifying The ACH processor is verifying the bank account before origination. VeriCheck V2 only: the check runs on the processor's side, before the debit reaches the ACH network.
PartiallySettled The ACH transaction has been partially settled. VeriCheck V2 only: a portion of the funds have cleared.
settlementAttemptedAt required string (date-time) Timestamp when settlement was last attempted with the processor. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
settledAt required string (date-time) Timestamp when settlement succeeded with the processor. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
settlementRetryCount required integer (int32) Number of settlement retry attempts. Treat null as 0. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
settlementErrorMessage required string Error message if settlement failed. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
batchId required string Gateway batch identifier assigned at authorization time for batch boundary management. Transactions are grouped into settlement batches by this ID, which is stamped from the merchant's `CurrentBatchId` during the authorization flow. Nullable because existing documents predate this property. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
closedSettlementBatchId required string (uuid) Identifier of the closed settlement batch that settled this transaction, set when the batch closes. `null` until then, and on transactions settled in batches that closed before this field was recorded. Distinct from the other batch identifiers on this type: `batchId` / `gatewayBatchId` are the open batch at authorization time, and `processorBatchId` is the processor's batch reference; none of them equals the settlement batch's id. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
overrideHistory required array of SettlementStatusOverrideRecord array of SettlementStatusOverrideRecord Append-only list of admin-driven manual overrides applied to `settlementStatus`. Populated by the `Transaction.OverrideSettlementStatus` domain method. Null, and omitted, on transactions that have never had a manual override (the default for the vast majority of rows). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

source required TransactionSource TransactionSource nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required TransactionSourceData TransactionSourceData Encapsulates the origin of a transaction and any source-specific identifiers.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of TransactionSourceData:

Field Type Description
source required TransactionSource TransactionSource The primary source of the transaction (virtual terminal, API, etc.). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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.
hostedPaymentPageId required string (uuid) When `source` is `HostedPaymentPage`, this is the ID of the hosted payment page where the transaction was run. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
contractId required string (uuid) When `source` is `RecurringBilling`, this is the ID of the recurring billing contract. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
offlineBatchId required string (uuid) When `source` is `OfflineBatch`, this is the ID of the batch which submitted the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
invoiceId required string (uuid) When `source` is `Invoicing`, this is the ID of the invoice the automatic charge (or smart-retry attempt) is settling. Stamped server-side by the Invoicing module's auto-charge executor; the join key used to reconcile the resulting transaction back onto the invoice. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
apiKeyId required string (uuid) When `source` is `Api`, this is the ID of the api key used to submit the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
apiKeyName required string The name associated with the API key used as the source of the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
usedHppSession required boolean Indicates the transaction was initiated via an HPP pre-filled session. Set to `true` when a session was resolved and consumed during form submission. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
usedManualStoredPaymentMethodAdd required boolean Indicates the transaction is the internal account verification run when a payment method is manually added as a stored payment method from the Customers back office. Set by the server only. Any value a client supplies on a create request is discarded, so this field is read-only for API callers. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
hppSessionId required string (uuid) The ID of the Hosted Payment Page session that produced this transaction. Populated only when the transaction was created through the HPP session flow; `null` for every other source (Virtual Terminal, API, recurring billing, offline batch, and HPP submits that did not resolve a session). This is a stable, server-supplied join key: integrators that drive transactions through the HPP session API can read it back from the transaction to correlate the originating session without subscribing to completion events. Distinct from `hostedPaymentPageId`, which identifies the reusable page template rather than the single-use session. Read-only from a client's perspective: the value is stamped server-side only on the verified HPP-session create path. Any value supplied on an inbound create request is ignored and overwritten with `null`, so it cannot be used to fabricate a session-to-transaction correlation. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
campaignId required string (uuid) The campaign the payment link that produced this transaction belonged to, when it belonged to one. `null` for every transaction created outside a campaign, which is every transaction created before campaigns existed and every one whose link named no campaign. Stamped server-side on the verified HPP-session create path from the session document, exactly like `hppSessionId`, and scrubbed to `null` on every other create entrypoint. A campaign report is a claim about which links earned which money, so a value a caller could supply would let one merchant's traffic be attributed to a campaign it never ran. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
campaignSource required string The per-channel source tag carried by the payment link that produced this transaction (`email`, `sms`, `qr`, `social`), when the link carried one. Bounded and normalized by `CampaignSourceRules`; `null` when the link named no source. Meaningful only alongside `campaignId`: it is the breakdown inside one campaign, not a standalone classification. Server-stamped and client-scrubbed on the same terms as `campaignId`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
promotionCode required string The promotion code that discounted this transaction, in the platform's normalized casing, or `null` when no promotion was applied, which is every transaction created before promotions existed and every one the payer entered no code on. Stamped server-side on the verified HPP-session create path from a re-evaluation the gateway performed itself, exactly like `campaignId`, and scrubbed to `null` on every other create entrypoint. A discount is money the merchant gave away, so a value a caller could supply would let anyone holding a payment link record a promotion the merchant never issued. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
discountAmount required number (double) The amount the promotion took off the base of this transaction, or `null` when none was applied. A record of what was discounted, not a component of what was charged: the base on `TrxAmounts` is already the discounted figure, so this never participates in any total. It is what makes the reduction legible afterwards, on a receipt, a report and the promotion's own redemption ledger. Server-stamped and client-scrubbed on the same terms as `promotionCode`, and meaningful only alongside it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
clientIpAddress required string The IP address of the client that initiated the transaction. Null for system-initiated transactions (recurring billing, offline batch). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
clientIpGeo required ClientIpGeoSnapshot ClientIpGeoSnapshot Point-in-time geolocation / ISP / ASN snapshot resolved at the enrichment stage from `clientIpAddress`. Snapshot: does NOT update if the underlying IP intelligence database changes. Once written by the enrichment pipeline this value is immutable; subsequent transaction operations (capture, refund, reversal, repeat, recurring-billing materializations) must not overwrite it. Null when no client IP was available (system-initiated transactions, or when the IP geo provider could not resolve the address: loopback / private / unrouted ranges).
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
clientDevice required ClientDeviceSnapshot ClientDeviceSnapshot Browser context of the client that submitted the transaction: the user agent and the accept-language header, as observed at create time. Server-stamped from the request on every surface the platform hosts (hosted payment page, virtual terminal), and accepted from the request body on the API, where the caller is the only party that has seen the shopper's browser. Preserved rather than overwritten when a caller supplies it, exactly like `clientIpAddress`. Null for system-initiated transactions (recurring billing, offline batch), for every transaction created before this field existed, and for any caller that sends neither header. Absent rather than empty when there is nothing to record. Conditional: When ClientDevice is not null.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
screeningDeviceSignals required object Device signals collected by an external screening provider's own client-side agent, keyed by the registered screening provider id (a Riskified beacon session id under `riskified`, a FraudLabs Pro agent checksum under `fraudlabspro`). A provider's agent runs in the shopper's browser and hands back an opaque token that only that provider can interpret; the token is the join key between what the agent observed and the screening call the gateway later makes. Keyed by provider id so a merchant running two providers keeps the two tokens apart, and so the screening request builder can hand each provider only its own: see `TryGetScreeningDeviceSignal`, which is the only sanctioned read. These are provider session tokens, so they are never logged and never leave the transaction document except on the screening call to the provider that issued them. Null when no agent ran, which is every transaction created before this field existed and every transaction on a surface that renders no agent. Absent rather than empty, for the reason given on `clientDevice`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
createdByUserId required string (uuid) The user ID of the user who created the transaction. Null for anonymous or system-initiated transactions. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
metadata required object Optional extra metadata for future sources or provider-specific data. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

tags required array of EntityTag array of EntityTag nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of each EntityTag:

Field Type Description
name required string nullablemin length 0max length 50
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
value required string nullablemin length 0max length 150
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

notes required array of EntityNote array of EntityNote nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of each EntityNote:

Field Type Description
id required string (uuid)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
enteredBy required string (uuid)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
timestamp required string (date-time)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
enteredByName required string Denormalized display name of the user who created the note. Populated at creation time from `ICurrentUser` to avoid N+1 lookups when rendering. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
content required string nullablemin length 0max length 1000
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

merchantId required string (uuid)
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
merchantTransactionId required integer (int64) nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
receiptIds required array of string array of List of receipt IDs generated for this transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
refundTransactionIds required array of string array of 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
decisionNotes required array of TransactionDecisionNote array of TransactionDecisionNote 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of each TransactionDecisionNote:

Field Type Description
category required TransactionDecisionNoteCategory TransactionDecisionNoteCategory The subsystem that made the decision.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ConvenienceFee The convenience-fee evaluator (first consumer).
Surcharge The surcharge eligibility pipeline. Records why a surcharge was not applied to a transaction on an enabled merchant (e.g. debit/prepaid card, restricted state, unsupported network), so the veto reason is queryable/displayable rather than buried in the /SurchargeResult snapshot. The code is a SurchargeIneligibilityReason value name.
FraudReview The manual fraud-review hold. Records that a transaction was parked for human disposition and how that hold ended, so the timeline explains a gap between screening and authorization rather than leaving an operator to infer it from /FraudReviewData. The code is one of ReviewHeld, ReviewApproved, ReviewDeclined, or ReviewExpired.
outcome required TransactionDecisionNoteOutcome TransactionDecisionNoteOutcome The decision's effect on the transaction.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Applied The thing was applied (e.g. a fee was assessed).
Suppressed The thing was deliberately not applied (e.g. a fee was waived/suppressed).
Adjusted The thing was applied at a modified value (e.g. a capped/percentage amount).
Blocked The transaction was blocked by the decision.
Info Purely informational; no effect on amounts or flow.
severity required TransactionDecisionNoteSeverity TransactionDecisionNoteSeverity Display severity (styling only).
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Info Neutral/informational styling.
Warning Attention styling (e.g. an expected fee that did not apply).
createdAt required string (date-time) UTC timestamp the note was recorded.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
code required string The discriminated reason within the `category` (e.g. `"SuppressedChannel"`). Owned by the consuming subsystem; resolved to copy with `category` at render time. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
amountDelta required number (double) Signed amount impact where meaningful (e.g. the waived/assessed fee). Currency is implied by the transaction. Null when not applicable. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
occurredOnStage required string Optional pipeline stage the decision occurred on, for ordering/diagnostics. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

linkedFeeChargeTransactionId required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
primaryChargeTransactionId required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
linkedChargeKind required LinkedChargeKind LinkedChargeKind 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: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required string (uuid) The unique identifier of the merchant processor profile that processed this transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processorKey required string The processor type key (e.g., "tsys", "fiserv") used for this transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingResult required RoutingResult RoutingResult 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of RoutingResult:

Field Type Description
selectedProcessorKey required string The selected processor key. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
selectedProcessorProfileId required string (uuid) The selected processor profile ID.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
routingIndicator required RoutingIndicator RoutingIndicator Optional routing indicator applied to the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ProcessedAsCredit Indicates that the transaction was processed as a credit transaction.
ProcessedAsDebit Indicates that the transaction was processed as a debit transaction.
ProcessedAsStarSignatureDebit Indicates that the transaction was processed as a Star Signature debit transaction.
matchedRuleName required string The name of the merchant processor routing rule that selected the processor profile, when a rule did. `null` on every transaction a routing rule did not route. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
auditTrail required array of RoutingRationale array of RoutingRationale Full audit trail from the evaluation pipeline. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
candidateSummaries required array of RoutingOptionSummary array of RoutingOptionSummary All candidates evaluated with their final scores. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

loopbackSimulation required LoopbackSimulation LoopbackSimulation 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of LoopbackSimulation:

Field Type Description
entries required array of LoopbackSimulationEntry array of LoopbackSimulationEntry One entry per trigger the simulator honoured, plus one per response value it filled in from a default. Ordered as the simulator resolved them. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

surchargeResult required SurchargeResult SurchargeResult 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).
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of SurchargeResult:

Field Type Description
surcharged required boolean Whether this transaction was surcharged.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ineligibilityReason required string Stable string reason code (e.g. `nameof(SurchargeIneligibilityReason.DebitCard)`) for why the transaction was not surcharged; `null` when `surcharged` is true. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
baseAmount required number (double) The transaction base amount the surcharge rate was applied against, in the transaction currency. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
baseComponents required string Which amount components formed `baseAmount`: `Base` (the base amount alone, the default) or `Base+Shipping` (the merchant elected a shipping-inclusive surcharge base). `null` on a decision recorded before the component was captured, which was always the base amount alone. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
surchargeAmount required number (double) The computed surcharge amount, in the transaction currency; null when not surcharged. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
appliedRate required number (double) The rate actually applied, as a decimal fraction (0.03 = 3%): the lesser of `merchantRate` and the caps below. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
merchantRate required number (double) The merchant-configured surcharge rate at evaluation time, as a decimal fraction (0.03 = 3%). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
networkCap required number (double) The card network's rate cap at evaluation time, as a decimal fraction, if applicable. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
stateCap required number (double) The governing state's rate cap at evaluation time, as a decimal fraction, if applicable. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
costOfAcceptanceCap required number (double) The merchant's cost-of-acceptance rate cap at evaluation time, as a decimal fraction, if applicable. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
winningCapSource required string Which of `merchantRate`/`networkCap`/`stateCap`/`costOfAcceptanceCap` produced `appliedRate`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cardFundingSource required string The card's funding source at evaluation time (e.g. "Credit", "Debit", "Prepaid"). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cardBrand required string The card brand at evaluation time (e.g. "Visa", "Mastercard"). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
billingStateCode required string The cardholder billing address state code at evaluation time. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
merchantStateCode required string The merchant's state code at evaluation time. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
governingStateCode required string The state whose surcharge rules actually governed this evaluation. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
channel required string The originating channel (e.g. "VirtualTerminal", "HostedPaymentPage", "Api"). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
configurationId required string (uuid) The surcharge configuration evaluated against. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
configurationVersion required integer (int32) The version of the surcharge configuration evaluated against, for audit reproducibility. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
requiresDisclosure required boolean Whether the caller must present a surcharge disclosure to the cardholder.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
evaluatedAt required string (date-time) UTC timestamp of when the evaluation was performed.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
auditTrail required array of SurchargeStageOutcome array of SurchargeStageOutcome Full per-stage audit trail from the eligibility pipeline, in execution order. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

correlationId required string The correlation ID linking this transaction to its orchestration audit trail. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cumulativeRefundedAmount required number (double) Running total of refund amounts applied to this transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cumulativeReversedAmount required number (double) Running total of reversal amounts applied to this transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
authorizedAmount required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
policyRejection required PolicyRejectionData PolicyRejectionData 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of PolicyRejectionData:

Field Type Description
deniedCode required string The AVS or CVV response code that matched the denylist (e.g. "N", "P", "S"). This is a processor result code, not the cardholder's CVV input value. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deniedCodeType required string Whether the triggering code was an AVS or CVV result. Expected values: `"Avs"` or `"Cvv"`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deniedCodeDescription required string The logical key identifying which card verification rule fired (e.g. `"AVNoMatch"`, `"CVNoMatch"`, `"AVZipOnly"`). This is a stable machine identifier, not a user-facing sentence. The merchant detail page renders this value verbatim alongside the human-readable rule label. Safe to display to merchants: it does not reveal the cardholder's actual input. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ruleSource required string Identifies which denylist configuration rule triggered the rejection (e.g., "AvsDeclineCodes", "CvvDeclineCodes", or a merchant-specific rule name). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
rejectedAt required string (date-time) UTC timestamp of the denylist evaluation that triggered this rejection. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
reversalResultCode required ResultCode ResultCode The result code from the reversal or void issued after the denylist match. `null` if no reversal/void was attempted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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.
reversalResultMessage required string The result message from the reversal or void. `null` if no reversal/void was attempted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
reversalAttemptedAt required string (date-time) UTC timestamp of the reversal or void attempt. `null` if no reversal/void was attempted. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
requiresReversal required boolean Whether the orchestrator should schedule an auto-reversal for this policy rejection. `null` (the default for historical gateway-side rejections written before the field existed) is treated as "yes, reverse": the original behaviour. The native AVS/CVV decline path sets `false` because the processor declined at auth time and never placed a hold, so there is nothing to reverse and the `reversalResultCode` / `reversalAttemptedAt` fields stay null. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

partialApprovalData required PartialApprovalData PartialApprovalData 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of PartialApprovalData:

Field Type Description
disposition required PartialApprovalDisposition PartialApprovalDisposition Where the partial approval currently sits in its decision lifecycle. `null` is equivalent to `Pending`: the shape a document written by the detection step alone can take. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Pending The partial approval has been detected and recorded, but nobody has decided its fate yet. The transaction is holding a reduced authorization at the issuer and is waiting on an operator/cardholder acknowledgment until dispositionDeadlineUtc elapses.
Accepted The reduced authorization was accepted as-is. No reversal is issued and the transaction proceeds through the normal capture/settlement path for the approved (lesser) amount.
Voided The reduced authorization was rejected and reversed, so the issuer hold is released. The reason is recorded on voidReason (operator choice, acknowledgment timeout, or an automatic gateway policy void).
SplitTenderInitiated The reduced authorization was kept and a follow-up tender was started to collect the shortfall. The continuation transaction carries the same SplitTenderGroupId with the next SplitTenderSequence.
dispositionSetAtUtc required string (date-time) UTC timestamp of the moment `disposition` last moved. Set alongside every disposition write, including the initial transition to `Pending` at detection time, so the age of a stuck pending disposition is measurable. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dispositionDeadlineUtc required string (date-time) UTC instant by which a `Pending` disposition must be resolved before the gateway voids the reduced authorization on the operator's behalf. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
voidReason required string Why the reduced authorization was voided, for the merchant audit trail. Only meaningful when `disposition` is `Voided`; `null` otherwise. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
requestedAmount required number (double) The amount the gateway asked the issuer to authorize, in major currency units, snapshotted at detection time. Kept here rather than read back from the response because a subsequent reversal overwrites `/ResponseData`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
approvedAmount required number (double) The lesser amount the issuer actually authorized, in major currency units, snapshotted at detection time. The shortfall a split tender needs to collect is `requestedAmount` minus this value. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

fraudReviewData required FraudReviewData FraudReviewData 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of FraudReviewData:

Field Type Description
heldAtUtc required string (date-time) UTC instant the transaction was parked for review. Stamped once by the screening stage. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deadlineUtc required string (date-time) UTC instant by which a `Pending` hold must be resolved before the expiry sweep dispositions it on the merchant's behalf. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
triggeringProviderId required string Identifier of the screening provider whose verdict triggered the hold, matching `ExternalScreeningResult.ProviderId`. `null` when the hold came from a platform rule rather than an external provider. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
triggeringProviderName required string Display name of the triggering provider as it stood at park time, snapshotted so the record still reads correctly after the merchant renames or removes the profile. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
score required number (double) The normalized risk score that drove the hold, when the trigger reported one. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
disposition required FraudReviewDisposition FraudReviewDisposition Where the hold currently sits in its disposition lifecycle. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Pending Held and awaiting a human decision. The state the park step writes.
Approved An operator released the transaction to continue processing.
Declined An operator rejected the transaction.
ExpiredApproved The hold deadline elapsed with no reviewer decision and the merchant's configured expiry action released the transaction to continue processing. Only the parked flow itself can produce this: approving on expiry means going on to authorize the payment.
ExpiredDeclined The hold deadline elapsed with no reviewer decision and the transaction was rejected. Either the merchant configured a decline on expiry, or the backstop sweep reclaimed a hold whose flow did not survive to honor an approval. DispositionReasonCode tells the two apart.
dispositionAtUtc required string (date-time) UTC instant `disposition` last moved off `Pending`. `null` while the hold is still awaiting a decision. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dispositionByUserId required string (uuid) The operator who dispositioned the hold. `null` when the expiry sweep decided it, which is exactly what distinguishes a human decision from an automatic one in the audit trail. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dispositionReasonCode required string Why the hold was dispositioned the way it was: a stable gateway-authored code, or short operator-entered text. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

threeDSAuthentication required ThreeDSAuthenticationData ThreeDSAuthenticationData 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of ThreeDSAuthenticationData:

Field Type Description
providerType required ThreeDSProviderType ThreeDSProviderType Which 3-D Secure provider produced this authentication. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Fake Deterministic in-memory provider that performs no network calls. The local-dev, CI, and default-selection provider, and the safe landing spot for an absent configuration value.
Paay Paay (API brand "3DS Integrator"), reached over its Direct API. Supports authentication, the 3DS Method step, the cardholder challenge, and 3RI; it documents no decoupled or Secure Payment Confirmation capability, so the registry refuses those.
messageCategory required ThreeDSMessageCategory ThreeDSMessageCategory The EMVCo message category the authentication ran under: a payment authentication or a non-payment one (adding a card on file, verifying an account). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Payment Wire value 01: a payment authentication.
NonPayment Wire value 02: a non-payment authentication, such as adding a card on file or verifying an account without an amount.
threeDSVersion required string The 3DS message version the flow negotiated, in EMVCo dotted form (for example `2.2.0`). A string because the wire field is a string and a new version must not need a code change here. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
threeDSServerTransactionId required string The 3DS server transaction identifier that correlates every message in this authentication. The one identifier a support agent needs to trace a 3DS flow end to end with the provider. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
dsTransactionId required string The directory server transaction identifier, which most schemes require on the authorization and which a later merchant-initiated (3RI) authentication quotes as its prior reference. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
acsTransactionId required string The access control server (issuer) transaction identifier, used to correlate a challenge with its authentication. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
transactionStatus required ThreeDSTransactionStatus ThreeDSTransactionStatus The normalized EMVCo `transStatus` (wire values `Y`, `N`, `U`, `A`, `C`, `D`, `R`, `I`). This, not `liabilityShifted`, is the protocol answer; the liability flag is the interpretation. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Unknown No status was reported, or the value could not be mapped. Treated as "no authentication happened": never liability-shifting.
Authenticated Wire value Y: authentication or account verification succeeded.
NotAuthenticated Wire value N: not authenticated, or the transaction was denied.
Unavailable Wire value U: authentication could not be performed (technical or other problem).
AttemptsProcessed Wire value A: an authentication attempt was performed and proof is supplied, but the cardholder was not actually authenticated (the "attempts" / stand-in path).
ChallengeRequired Wire value C: a cardholder challenge is required to complete authentication.
DecoupledChallengeRequired Wire value D: a decoupled cardholder challenge is required (3DS 2.2 and later).
Rejected Wire value R: authentication was rejected by the issuer.
InformationalOnly Wire value I: informational only. The 3DS requestor asked for information and no authentication was performed.
transactionStatusReason required string The EMVCo `transStatusReason`, present when the issuer explains a non-authenticated status. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
eci required string The electronic commerce indicator to forward on the authorization. Scheme-specific: Visa and Amex use `05` / `06` / `07`, Mastercard uses `02` / `01` / `00`. Distinct from the wallet `CardData.EciIndicator`, which a wallet decryption writes. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cavvResultCode required string The scheme's CAVV result code, describing how the issuer validated the credential. Metadata about the credential, not the credential, so it is merchant-safe. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cavvAlgorithm required string The algorithm the issuer used to generate the credential, where the scheme reports one. Metadata about the credential, not the credential, so it is merchant-safe. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
liabilityShifted required boolean `true` when this outcome shifts chargeback liability to the issuer under the scheme's rules for the reported status and ECI. Set by the provider so the rule lives in one place per vendor; readers must not re-derive it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
challengeRequired required boolean `true` when the issuer required a cardholder challenge to complete the authentication. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
challengeCompleted required boolean `true` when a required challenge ran to completion and the issuer reported its result; `false` when the cardholder abandoned it or it timed out; `null` when no challenge was required. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
authenticationType required ThreeDSAuthenticationType ThreeDSAuthenticationType How the authentication reached its outcome: frictionless, challenged, an attempts stand-in, or merchant-initiated. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
Frictionless The issuer authenticated the cardholder from the risk data alone; no challenge was presented.
Challenge The issuer required a cardholder challenge and the flow completed it (or the challenge was attempted and the issuer reported its result).
Attempt The directory server or the scheme stood in for an issuer that could not authenticate and produced attempts proof (wire status A). Liability may still shift under scheme rules.
RequestorInitiated A merchant-initiated (3RI) authentication with no cardholder present, run against a prior authentication.
authenticatedAtUtc required string (date-time) UTC instant the authentication outcome was recorded on the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
cavv required string The base64-encoded cardholder authentication verification value the issuer returned (Visa, Discover, Amex). Always sensitive: never logged, never delivered on a webhook, never written into transaction history, and masked on every read surface. `null` on a Mastercard authentication, which carries `aav` instead. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
aav required string The base64-encoded accountholder authentication value (Mastercard's spelling of the same credential as `cavv`). Handled identically: always sensitive. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

payloadDecryption required PayloadDecryption PayloadDecryption 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of PayloadDecryption:

Field Type Description
providerName required string The provider that performed the decryption, as its registered name. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
scheme required string The scheme that was dispatched: `DUKPT` or `ONGUARD`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
ksi required string The key serial identifier the request's key serial number matched. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
keyLabel required string The operator's label for the matched key entry. Never the key reference. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
outcome required string `Succeeded` or `Failed`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
failureCode required string The `Decryption:` error code when `outcome` is `Failed`; otherwise `null`. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
providerResultCode required string The provider's own sanitized result code (a Futurex `AM` code, an HTTP status), carried for triage. Never the provider's error text. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
regionUsed required string Which of the provider's regions or endpoints answered, as the provider labels it. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
retryCount required integer (int32) How many failover retries the provider ran before answering. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
latencyMilliseconds required integer (int64) How long the provider call took, in whole milliseconds. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
decryptedAtUtc required string (date-time) When the decryption completed, in UTC. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

enhancedDataQualification required EnhancedDataQualificationDto EnhancedDataQualificationDto 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.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of EnhancedDataQualificationDto:

Field Type Description
isPreview required boolean `true` when this node is a preview computed at request time rather than the record of a settlement. Absent (or `false`) on every stored result. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
attemptedLevel required CedpQualificationLevel CedpQualificationLevel The addendum level the settlement set out to build from the data supplied on the transaction. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
None No enhanced-data addendum was attempted; the row settles at Level 1.
Level2 A Level 2 addendum was attempted (tax, tax-exempt flag, purchase order).
Level3 A Level 3 addendum was attempted (Level 2 header plus itemized line detail).
emittedLevel required CedpQualificationLevel CedpQualificationLevel The addendum level that actually went to the processor. Equal to `attemptedLevel` unless the addendum was withheld, in which case `gateReason` says why. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
None No enhanced-data addendum was attempted; the row settles at Level 1.
Level2 A Level 2 addendum was attempted (tax, tax-exempt flag, purchase order).
Level3 A Level 3 addendum was attempted (Level 2 header plus itemized line detail).
gateReason required string A stable code for the emission decision, or `null` when the addendum was sent as attempted. Never free text. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
findings required array of EnhancedDataQualificationFindingDto array of EnhancedDataQualificationFindingDto Every finding, in evaluation order: line-level findings first, ordered by line index. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
findingCount required integer (int32) The number of findings, counting a code once per line that raised it. Zero on a transaction that was evaluated and came back clean. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
processor required string The processor whose settlement produced this result, as its gateway processor key. Findings are not comparable across processors that build different addenda. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
evaluatorVersion required integer (int32) The evaluator rule-set revision that produced this result. It is bumped whenever a rule is added, removed or changed, so a qualification rate trended across releases can tell a data improvement from a rule change. Absent on a result recorded before the revision was stamped. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
evaluatedAt required string (date-time) When the evaluation ran, in UTC. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This body has no documented fields.

splitTenderGroupId required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
splitTenderSequence required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
splitTenderRole required SplitTenderRole SplitTenderRole 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: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
splitTenderDeadlineUtc required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
deferPartialApprovalAcknowledgment required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
initiationType required InitiationType InitiationType Identifies whether this transaction was initiated by the cardholder (CIT) or the merchant (MIT). Null on legacy transactions. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required MITReasonCode MITReasonCode For MIT transactions, the reason code justifying the merchant-initiated charge. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required string (uuid) Reference to the stored credential consent authorizing this MIT. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
schemeTransactionId required string The card network's trace ID linking this transaction to its original CIT. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
description required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
merchantReference required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tender required TenderKind TenderKind 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: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required CardholderPresence CardholderPresence 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: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required SpecialCondition SpecialCondition Visa/MC special-condition tag (quasi-cash, quasi-MOTO). nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required ProcessorCertificationOverrides ProcessorCertificationOverrides Per-processor certification override knobs. Non-null only for cert-tooling traffic. Production traffic always sees this as `null`.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

Fields of ProcessorCertificationOverrides:

Field Type Description
$processor required string Type discriminator naming the processor these certification overrides target. Required whenever processorCertificationOverrides is supplied. Accepted values: "fiserv", "paymentech", "tsys". Values are lower-case and case-sensitive.
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
fiserv
paymentech
tsys

This body has no documented fields.

refundKind required RefundKind RefundKind Classifies a refund transaction as linked (follow-up against a previously approved original transaction) or unlinked (standalone). `null` for non-refund transactions. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
saveCardRequested required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
tokenizedPaymentMethodId required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
isAccountVerification required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
convenienceFeeDisclosureAcknowledgedAt required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
convenienceFeeDisclosureChannel required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
convenienceFeeEligibilitySnapshot required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
convenienceFeeCancelledAmount required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
surchargeRate required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
surchargeDisclosureAcknowledgedAt required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
surchargeDisclosureChannel required string Channel on which the surcharge disclosure was acknowledged (`"VirtualTerminal"` / `"HostedPaymentPage"` / `"Api"`). Read-only on the API surface. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
surchargeReversedAmount required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achWebAuthorizationText required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achWebAuthorizationTextVersion required string Version hash (`sha256:{hex}`) of `achWebAuthorizationText`. Read-only. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achWebAuthorizationConsumerIp required string Consumer IP recorded at ACH WEB authorization time (required NACHA evidence). Read-only. `null` for non-ACH tenders. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achWebAuthorizationAt required string (date-time) UTC timestamp of the ACH WEB authorization (server-stamped). Read-only. `null` for non-ACH tenders. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achWebAuthorizationSecCode required string SEC code the ACH WEB authorization was captured under (always `"WEB"`). Read-only. `null` for non-ACH tenders. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achAuthorizationStatementText required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achAuthorizationStatementVersion required string Version hash (`sha256:{hex}`) of `achAuthorizationStatementText`. Read-only. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achAuthorizationSecCode required string SEC code the VT ACH authorization was captured under (`"TEL"` or `"PPD"`). Read-only. `null` for non-VT-ACH tenders. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achAuthorizationChannel required string Channel on which the VT ACH authorization was attested (`"VirtualTerminal"`). Read-only. `null` for non-VT-ACH tenders. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
achAuthorizationAt required string (date-time) UTC timestamp of the VT ACH authorization (server-stamped). Read-only. `null` for non-VT-ACH tenders. nullable
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
idempotencyStatus required CreateIdempotencyStatus CreateIdempotencyStatus 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: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.
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 required 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
Values: Values combine: send one or more member names separated by a comma and a space, or the integer sum of their values. Responses carry the names.

This model has no documented fields.

Reconnecting to the server

Could not reconnect

This session has ended

Attempt 1

Your work on this page is still here. Retrying keeps it; reloading starts the page again.

The server no longer holds this page's state, so it has to be loaded again.