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.
|
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.
|