CardDto
cardNumberGets or sets the card number.
balanceGets or sets the current balance of the card.
lastTransactionGets or sets the date and time of the last transaction. Converted from UTC to Eastern Standard Time.
isActiveGets or sets a value indicating whether the card is active.
remarkGets or sets an optional remark or note about the card. Empty when none.
expirationDateGets or sets the optional expiration date of the card.
cardTypeGets or sets the card type based on the IIN (Issuer Identification Number). Empty when unknown.
Active category allowance snapshot. Populated on the single-card fetch path only; empty on list/create/edit/transaction responses. Same shape as cart quote/charge Allowances.
CardDtoListResponse
Gets or sets the results list if the operation was successful.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a known business error. Clients should switch on this instead of parsing ErrorMessage. Null for success and for generic/unclassified failures.
totalCountGets or sets the total count of items available (useful for pagination). This value is null when pagination is not used.
pageGets or sets the current page number (1-based). This value is null when pagination is not used.
pageSizeGets or sets the number of items per page. This value is null when pagination is not used.
CardDtoResponseData
Data transfer object representing a gift card.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
CardNumberRequest
cardNumberGets or sets the card number. This field is required.
CartChargeRequest
cardNumberFull PAN of the card being charged.
saleIdPOS sale id (echoed onto the persisted Transaction row).
registerRegister number at which the sale is being rung.
userIdOperator/cashier identifier (echoed onto the persisted Transaction row).
acceptPartialWhen true, the cart approves whatever portion of the total the card can cover. When false, the cart rejects every line if the amount exceeds the available balance.
maxChargeOptional ceiling on the total amount drawn from the card (allowance purses + main
balance combined). Use when part of the cart has already been paid by another tender
(cash, loyalty points, etc.) and only the remainder should be charged to this card.
Lines are processed in order; once the cumulative approved amount reaches
MaxCharge the remaining lines are approved for zero and returned with reason
"Max charge reached.".
When null (default) no ceiling is applied.
discountAppliedAmountOptional amount of discount applied to the cart. this is just a passthrough from the POS to the API, it is not used for any calculations.
Cart lines. Must contain at least one entry.
remarkOptional remark forwarded to the persisted Transaction row.
pinCard PIN entered at the register / self-checkout. Required only when the card (or its provider) requires a PIN; ignored otherwise. Never persisted.
phoneCardholder phone entered at the register / self-checkout. Required only when the card (or its provider) requires a phone; ignored otherwise. Any common format is accepted (normalised to E.164 server-side). Never persisted.
idempotencyKeyOptional client-supplied idempotency key — typically the POS transaction id. When a
request repeats a previously committed key (per store) with the same card and line
items, it is rejected as a duplicate charge (Duplicate_Charge) and the card is
not charged again; reusing a key with a different payload (amount, card, or lines) is
rejected with Idempotency_KeyReuse. Ignored on the quote path (quotes have no
side effects).
CartChargeRequestLine
lineIdClient-supplied line identifier. Echoed back in the response so the POS can correlate approvals with its original line items.
codeThe exact code the cashier scanned. Resolved against item codes + aliases.
totalLine total charged for this scanned code.
CartChargeResultAllowance
idId of the CardCategoryAllowance row.
categoryIdCategory id this purse is scoped to.
categoryCodeCategory name (with optional "/ sub" suffix).
remainingRemaining drawable amount.
expiresAtPurse expiry (null = never expires).
CartChargeResultDraw
allowanceIdThe CardCategoryAllowance.Id this draw came from.
categoryCodeCategory name (with optional "/ sub" suffix) for human-readable POS display.
amountDollar amount drawn from the source purse for this line.
expiresAtThe source purse's expiry (null = never expires).
CartChargeResultDto
transactionIdPersisted transaction id; 0 on the quote path.
requestedTotalSum of every line's Total in the request.
approvedTotalSum of ApprovedAmount over every line.
amountApprovedBackwards compatibility with the old transaction result dto. AmountApproved is the same as ApprovedTotal.
remainingBalanceCard's main balance after the charge (or projected balance for the quote path).
outcomeRoll-up outcome: Approved, PartiallyApproved, or Rejected.
reasonCart-wide rejection explanation when the entire request is blocked (e.g. forced redemption floor, store spending cap). Empty for per-line outcomes.
Per-line outcome breakdown.
appliedProfileIdsDistinct restriction-profile ids that contributed to the decision (either via a matching Deny rule, or as the matching Allow rule). Empty when the card is unrestricted.
Active purse snapshot post-charge (or post-quote for the quote path).
pinRequiredTrue when the card requires a PIN at checkout. On the quote path the POS uses this to decide whether to prompt for a PIN before submitting the real charge.
pinProvisionedTrue when a PIN has actually been set on the card. When PinRequired is true but this is false, the card cannot transact until a PIN is provisioned.
pinStatusPIN evaluation outcome for this request as a stable, PIN_-prefixed token
(PIN_NotRequired/PIN_Accepted/PIN_Required/PIN_Incorrect/PIN_Locked/PIN_NotProvisioned).
Populated on the quote path (no lockout counting) so a POS can render the right prompt.
The shared tokens match the charge path's errorCode so a client can branch identically on both.
phoneRequiredTrue when the card requires a phone number at checkout. On the quote path the POS uses this to decide whether to prompt for a phone before submitting the real charge.
phoneProvisionedTrue when a phone has actually been set on the card. When PhoneRequired is true but this is false, the card cannot transact until a phone is provisioned.
phoneStatusPhone evaluation outcome for this request as a stable, PHONE_-prefixed token
(PHONE_NotRequired/PHONE_Accepted/PHONE_Required/PHONE_Incorrect/PHONE_Locked/PHONE_NotProvisioned).
Populated on the quote path (no lockout counting) so a POS can render the right prompt.
The shared tokens match the charge path's errorCode so a client can branch identically on both.
forfeitureWarningWhen a forced-redemption rule applies, warns that committing will forfeit the remaining balance (quote path only; null when not applicable).
velocityStatusVelocity evaluation outcome as a stable, VELOCITY_-prefixed token
(VELOCITY_Ok/VELOCITY_TransactionLimit/VELOCITY_SpendLimit).
A blocked cart is returned with Outcome = Rejected and the
matching token so a POS can message the customer identically on quote and charge.
CartChargeResultDtoResponseData
Response body for POST /api/Transactions/cart and /cart/quote. Carries
the per-line decision, the draws made against each purse, and a roll-up summary.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
CartChargeResultLine
lineIdEchoes the client-supplied lineId from the request.
approvedTrue when at least one cent was approved against this line.
requestedAmountLine Total from the request.
approvedAmountSum of Draws + main-balance contributions for this line.
reasonFree-form rejection / partial-approval explanation; empty when none.
scannedCodeThe exact code the cashier scanned (raw request input). Surfaced alongside ProductSku so a store sees both its own scanned code and the resolved provider item code — they differ when the code resolved via a store-owned mapping.
productSkuResolved catalog item code; empty when the scanned code is unknown.
categoryNameCategory name for the resolved SKU; empty when unknown or uncategorised.
Purses this line drew from (in draw order — FIFO-by-expiry).
mainBalanceAmountPortion of ApprovedAmount covered by the card's main balance.
PublicCardBalanceDto
cardNumberMasked card number (e.g. ••••1234). Never the full PAN.
isActiveWhether the card is active.
expirationDateOptional expiration date.
mainBalanceUnrestricted main balance (sum of non-voided transactions).
walletTotalSum of remaining across all active wallets.
totalBalanceMainBalance + WalletTotal.
Per-wallet breakdown (active wallets with remaining balance).
PublicCardBalanceDtoResponseData
Response body for POST /api/public/v1/cards/balance. Reports the card's spendable
balance broken out by benefit wallet. The card number is masked to the last 4 digits.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
PublicItemCheckDto
eligibleTrue when the item is covered: it resolves to a SKU, passes restriction rules, and
checkout would find spendable funds (same ComputeFundsAvailable rule — segregated
wallets, spending-limit caps bounding main-balance draw, and main-balance fallback).
Equivalent to AmountCovered > 0. Returns false when neither
funding source has funds (or funding is disabled / the category cap is exhausted).
amountCoveredMax this item can draw right now, combining wallets, spending-limit caps, and main
balance the way checkout would. 0 when ineligible or when no funding path has funds.
Price-agnostic: cover a line with min(lineAmount, amountCovered). Single-item
headroom only — a later cart quote can still shrink approval (velocity, MaxCharge,
per-transaction caps, forced redemption, store advance cap).
productSkuResolved provider catalog item code; empty when the scanned code is unknown.
reasonExplanation when Eligible is false; empty otherwise.
PublicItemCheckDtoResponseData
Response body for POST /api/public/v1/items/check. Tells a register whether a
scanned item is covered by the card and how much it can still draw
(AmountCovered), already combined across the card's funding sources. Does not
depend on the item's price (no amount on the request); the register covers a line with
min(lineAmount, amountCovered).
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
PublicItemCheckRequest
cardNumberFull PAN of the card being checked.
codeThe scanned item code (store PLU or provider UPC/EAN).
PublicStoreProviderDto
providerNameProvider display name.
providerIdProvider id (stable handle for the consumer). 0 marks a provider known only to the
gateway's routing configuration, not to the gift card backend.
cardTypeProvider card type (e.g. GiftCard, SCNCard, VendorGiftCard).
iinsThe provider's 6-digit card IINs, ascending. Includes both the backend's own IINs and any the gateway routes to this provider for your store.
PublicStoreProviderDtoListResponse
Gets or sets the results list if the operation was successful.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a known business error. Clients should switch on this instead of parsing ErrorMessage. Null for success and for generic/unclassified failures.
totalCountGets or sets the total count of items available (useful for pagination). This value is null when pagination is not used.
pageGets or sets the current page number (1-based). This value is null when pagination is not used.
pageSizeGets or sets the number of items per page. This value is null when pagination is not used.
PublicStoreSkuDto
skuProvider catalog item code (UPC/EAN/PLU or provider-specific code).
descriptionItem description. When several providers list the code, the description of the most recently updated catalog row wins. Null when no provider recorded one.
The store's accepted providers whose catalog contains this code.
lastUpdatedMost recent catalog update (UTC) across the providers listing this code.
PublicStoreSkuDtoListResponse
Gets or sets the results list if the operation was successful.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a known business error. Clients should switch on this instead of parsing ErrorMessage. Null for success and for generic/unclassified failures.
totalCountGets or sets the total count of items available (useful for pagination). This value is null when pagination is not used.
pageGets or sets the current page number (1-based). This value is null when pagination is not used.
pageSizeGets or sets the number of items per page. This value is null when pagination is not used.
PublicStoreSkuDtoResponseData
One item code available to a store across its accepted providers' catalogs, returned by
GET /api/public/v1/skus. The same code may be listed by several providers, each with
its own category — those appear as entries in Providers.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
PublicStoreSkuProviderDto
nameProvider display name.
idProvider id (stable handle for the consumer).
categoryCategory (with optional "/ sub" suffix) the item falls under for this provider; empty when uncategorised.
categoryIdCategory id the item falls under for this provider; null when uncategorised.
PublicWalletDto
walletIdWallet id (the CardCategoryAllowance.Id).
categoryIdCategory id this wallet is scoped to.
categoryCategory (with optional "/ sub" suffix).
remainingRemaining drawable amount.
expiresAtWallet expiry (null = never expires).
StringResponseData
resultGets or sets the result data if the operation was successful.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.
TransactionDto
cardNumberGets or sets the card number associated with this transaction.
transactionTypeGets or sets the type of transaction as a string (e.g., "Credit", "Debit").
entryTypeGets or sets the entry type or reason for the transaction as a string (e.g., "Spend", "Load", "Expiration", "Adjustment", "Refund", "Void").
storeGets or sets the name of the store where the transaction occurred.
dateTimeGets or sets the date and time of the transaction. Converted from UTC to Eastern Standard Time.
amountGets or sets the transaction amount. Positive for credits, negative for debits.
ticketNumberGets or sets an optional ticket number associated with the transaction.
userIdGets or sets the user ID who processed the transaction.
remarkGets or sets an optional remark or note about the transaction.
registerGets or sets the register number where the transaction occurred.
storeIdGets or sets the store id where the transaction occurred.
isVoidedGets or sets a value indicating whether this transaction has been voided.
idGets or sets the unique identifier for the transaction.
TransactionDtoListResponse
Gets or sets the results list if the operation was successful.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a known business error. Clients should switch on this instead of parsing ErrorMessage. Null for success and for generic/unclassified failures.
totalCountGets or sets the total count of items available (useful for pagination). This value is null when pagination is not used.
pageGets or sets the current page number (1-based). This value is null when pagination is not used.
pageSizeGets or sets the number of items per page. This value is null when pagination is not used.
TransactionRequest
cardNumberGets or sets the card number to process the transaction for.
amountGets or sets the transaction amount. Must be positive (greater than zero). The TransactionType determines whether this is a credit (adds value) or debit (deducts value).
saleIdGets or sets the sale ID associated with this transaction.
registerGets or sets the register number where the transaction is occurring.
userIdGets or sets the user ID processing the transaction.
transactionTypeGets or sets the type of transaction (Credit, Debit, etc.). Must be explicitly provided when not coming from route parameter.
acceptPartialGets or sets a value indicating whether partial payment is accepted for debit transactions.
remarkGets or sets an optional remark or note about the transaction.
pinCard PIN entered at the register / self-checkout. Required only for debit transactions on cards that require a PIN; ignored otherwise. Never persisted.
phoneCardholder phone entered at the register / self-checkout. Required only for debit transactions on cards that require a phone; ignored otherwise. Never persisted.
idempotencyKeyOptional client-supplied idempotency key — typically the POS transaction id. When a
request repeats a previously committed key (per store) with the same transaction type,
card and amount, it is rejected as a duplicate charge (Duplicate_Charge) and no
funds move; reusing a key with a different payload is rejected with
Idempotency_KeyReuse.
TransactionResultDto
transactionIdGets or sets the ID of the processed transaction.
amountApprovedGets or sets the amount that was approved for the transaction.
remainingBalanceGets or sets the remaining balance on the card after the transaction.
Data transfer object representing a gift card.
forcedRedemptionMessageWhen a forced-redemption floor rejects the debit, the cashier-facing reason.
TransactionResultDtoResponseData
Data transfer object representing the result of processing a transaction.
isOkGets or sets a value indicating whether the operation was successful.
errorMessageGets or sets the error message if the operation failed.
errorCodeGets or sets a stable, machine-readable error code when the operation failed with a
known business error (e.g. "Incorrect" / "Locked" for PIN checkout).
Clients should switch on this instead of parsing ErrorMessage. Null for
success and for generic/unclassified failures.