# TransactionReceiptDto

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

A receipt for one event in a transaction's life, frozen when it was generated.

## Fields
- `id` (string(uuid)): The receipt id.
- `transactionId` (string(uuid)): The transaction this receipt belongs to.
- `merchantId` (string(uuid)): The merchant that owns the transaction.
- `receiptType` ([ReceiptType](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ReceiptType.md)): The event in the transaction's life that this receipt records.
  Values:
  - `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.
- `sequenceNumber` (integer(int32)): The receipt's position among the transaction's receipts, starting at 1.
- `generatedAtUtc` (string(date-time)): When the receipt was generated, in UTC.
- `confirmationNumber` (string): The confirmation number printed on the receipt. (nullable)
- `transactionType` ([TransactionType](https://devportal.signapay-sbx.winkpg.io/docs/api/models/TransactionType.md)): The transaction type.
  Values:
  - `Authorization`: Represents an authorization transaction, typically used to verify funds availability without capturing the amount.
  - `Sale`: Represents a sale transaction, which authorizes and captures funds in a single step.
  - `Return`: Represents a return transaction, used to refund money to the customer.
  - `Void`: Represents a void transaction, used to cancel a previously authorized transaction before it is settled.
  - `Force`: Represents a force transaction, typically used to manually enter a previously authorized transaction.
  - `Capture`: Represents a capture transaction, used to capture funds from a previously authorized transaction.
  - `CaptureAll`: Represents a capture all transaction, used to capture funds from multiple previously authorized transactions.
  - `RepeatSale`: Represents a repeat sale transaction, used to process a new sale based on a previous transaction's details.
  - `Adjustment`: Represents an adjustment transaction, used to modify the amount of a previous transaction.
  - `Activate`: Represents an activate transaction, typically used to activate a gift card or prepaid card.
  - `Deactivate`: Represents a deactivate transaction, typically used to deactivate a gift card or prepaid card.
  - `Redeem`: Represents a redeem transaction, typically used to redeem value from a gift card or loyalty program.
  - `Inquire`: Represents an inquire transaction, used to check the status or balance of an account or card.
  - `Reload`: Represents a reload transaction, typically used to add value to a gift card or prepaid card.
  - `VoucherClear`: Represents an offline EBT voucher clear: a terminal was offline, a paper food-stamp (SNAP) or eWIC voucher was written against a voice-obtained approval code, and the voucher is later uploaded so the benefit clears. Permitted on EBT SNAP and eWIC tenders only.
  - `Payout`: Represents a payout transaction, used to push funds from the merchant to an external bank account as an ACH credit. Unlike Return, which refunds a prior debit, a payout is a standalone outbound fund transfer with no originating transaction.
- `statusDisplay` (string): The status printed on the receipt: Approved, Partially Approved, Pending, Not Completed or Declined. (nullable)
- `isApproved` (boolean): Whether the transaction was approved when the receipt was generated.
- `authorizationCode` (string): The processor's authorization code. Present only on an approved receipt. (nullable)
- `declineReason` (string): Why the transaction was declined. Present only when `isApproved` is false. (nullable)
- `processorMessage` (string): The processor's response message. (nullable)
- `signatureRequired` (boolean): Whether the receipt asks for the cardholder's signature.
- `customerEmail` (string): The customer email address captured on the transaction. (nullable)
- `transactionDateUtc` (string(date-time)): When the transaction took place, in UTC.
- `transactionDateLocal` (string): When the transaction took place, formatted in the merchant's time zone as printed on the receipt. (nullable)
- `merchantInfo` ([ReceiptMerchantInfoDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ReceiptMerchantInfoDto.md)): The merchant details printed on the receipt.
  Fields:
  - `name` (string): Merchant legal name. (nullable)
  - `dba` (string): "Doing Business As" name. (nullable)
  - `logoUrl` (string): Absolute URL to the merchant logo. (nullable)
  - `brandColor` (string): Brand accent color (hex). (nullable)
  - `address` (string): Pre-formatted display address. (nullable)
  - `phone` (string): Support phone number. (nullable)
  - `email` (string): Support email. (nullable)
  - `footerText` (string): Custom footer text. (nullable)
  - `terminalId` (string): Terminal/register identifier (TID). From the POS register or lane name. (nullable)
  - `termsAndConditions` (string): Merchant terms and conditions of sale (e.g. "No Refunds"). Printed at the foot of the receipt. (nullable)
- `cardSummary` ([ReceiptCardSummaryDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ReceiptCardSummaryDto.md)): The payment method printed on the receipt. A card is identified by its brand and last four digits only.
  Fields:
  - `lastFour` (string): Last four digits of the card number (e.g. "4242"). (nullable)
  - `cardBrand` (string): Card brand (e.g. "Visa", "Mastercard"). (nullable)
  - `cardholderName` (string): Cardholder name. (nullable)
  - `entryMode` ([EntryModes](https://devportal.signapay-sbx.winkpg.io/docs/api/models/EntryModes.md)): Card entry mode. (nullable)
    Values:
    - `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.
  - `avsResponseCode` (string): AVS response code. (nullable)
  - `avsResponseText` (string): Human-readable AVS response. (nullable)
  - `paymentType` (string): Payment type derived from BIN data (e.g. "Credit", "Debit"). Printed so the receipt says whether the card was a credit or a debit card, which processor receipt rules require. (nullable)
  - `tenderType` ([CardTenderType](https://devportal.signapay-sbx.winkpg.io/docs/api/models/CardTenderType.md)): Card-rail tender used for the transaction. Surfaces this on receipts so EBT SNAP / EBT Cash / WIC transactions render program-appropriate language even when the BIN-derived `paymentType` would label them generically (e.g. "Debit"). Null when the transaction recorded no tender; the receipt then uses the generic credit/debit layout. (nullable)
    Values:
    - `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.
  - `ebtBalanceAvailable` (number(double)): EBT balance available after the transaction, when the processor returns it on the authorization response. `null` when not applicable (credit/debit) or not provided by the processor. receipts render this value on a dedicated "EBT Balance Available" line for EBT SNAP / EBT Cash transactions. (nullable)
  - `tenderLabel` (string): Human-readable label for the tender (e.g. "Credit / Debit", "EBT SNAP", "EBT Cash", "WIC"). Pre-formatted by the receipt assembler so renderers don't need to localize the enum themselves. (nullable)
- `amountSummary` ([ReceiptAmountSummaryDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ReceiptAmountSummaryDto.md)): The amounts printed on the receipt.
  Fields:
  - `subtotal` (number(double)): Subtotal (base amount before tax and tip), in the transaction currency. (nullable)
  - `tax` (number(double)): Tax amount, in the transaction currency. (nullable)
  - `tip` (number(double)): Tip/gratuity amount, in the transaction currency. (nullable)
  - `shipping` (number(double)): Shipping amount, in the transaction currency. Null / zero when no shipping amount was collected, in which case no shipping line is rendered. (nullable)
  - `total` (number(double)): Total transaction amount, in the transaction currency. (nullable)
  - `approvedAmount` (number(double)): Approved amount, in the transaction currency (may differ from total for partial approvals). (nullable)
  - `isPartialApproval` (boolean): Whether the approval was partial.
  - `requestedAmount` (number(double)): The amount requested from the card issuer, in the transaction currency. Present on a partial approval receipt, where it is printed beside `approvedAmount`, and on a split tender summary, where it is the order total. Null on every other receipt. (nullable)
  - `remainingBalanceAfterApproval` (number(double)): What a partial approval left unpaid on this card: `requestedAmount` minus `approvedAmount`, never negative. On a split tender summary, what the group as a whole left unpaid. In the transaction currency. Null whenever `requestedAmount` is null. (nullable)
  - `currencyCode` (string): ISO 4217 currency code (e.g. "USD"). (nullable)
  - `cashBack` (number(double)): Cash back (debit) or cash over (Discover credit) amount, in the transaction currency. Printed on Discover credit and debit receipts, where the processor's receipt rules require it. (nullable)
  - `transactionFee` (number(double)): Transaction fee assessed (e.g. PIN debit fees), in the transaction currency. Included when provided by the processor. (nullable)
  - `availableBalance` (number(double)): Available balance remaining after the transaction, in the transaction currency. Included when provided by the processor (credit, debit, EBT, prepaid). (nullable)
  - `convenienceFee` (number(double)): Convenience fee assessed on the transaction, in the transaction currency. Null / zero when no convenience fee applies, in which case no fee line is rendered. (nullable)
  - `convenienceFeeBilledSeparately` (boolean): True when the convenience fee was submitted as its own separately-authorized charge rather than being included in this transaction's `total`. The fee line is then rendered with a "billed as a separate charge" qualifier so the total still reconciles.
  - `surcharge` (number(double)): Surcharge amount assessed on the transaction, in the transaction currency. Present only when the gateway computed and applied a surcharge; null otherwise (a non-surcharged transaction shows no surcharge line). (nullable)
  - `surchargeRate` (number(double)): The surcharge rate applied to produce `surcharge`, as a decimal fraction (e.g. 0.03 for 3%). (nullable)
  - `surchargeReversed` (number(double)): Surcharge amount reversed back to the cardholder on a refund / reversal receipt, in the transaction currency. Null / zero on non-refund receipts. (nullable)
  - `cashPrice` (number(double)): For a merchant that posts a cash price and a card price, the cash price of this payment, in the transaction currency: its base amount. Present, with `cardPrice`, only when the payment was charged one of the two posted prices; null otherwise, and the receipt then prints its ordinary subtotal. (nullable)
  - `cardPrice` (number(double)): For a merchant that posts a cash price and a card price, the card price of this payment, in the transaction currency: the cash price plus the merchant's card rate. On a card payment it is the price charged; on a cash or bank payment it is the price the payer did not pay. Null when the payment was not dual priced. (nullable)
  - `cashDiscountAmount` (number(double)): The discount a payment charged the cash price received, in the transaction currency: `cardPrice` minus `cashPrice`. Present only on a cash payment, or a bank payment the merchant treats as cash; null on a card payment and when the payment was not dual priced. (nullable)
  - `cashDiscountForBankPayment` (boolean): True when `cashDiscountAmount` was received by a bank payment rather than cash. False whenever no cash discount applies.
  - `cardPriceReversed` (number(double)): The share of the card price returned to the payer on a void, reversal or refund of a payment charged the card price, in the transaction currency. Not printed as a row of its own: the refunded total already includes it. Null when nothing of a card price was returned. (nullable)
- `customFields` (array<[ReceiptCustomFieldDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ReceiptCustomFieldDto.md)>): The transaction custom fields the merchant chose to show on receipts. (nullable)
  Fields of each item:
  - `name` (string): Custom field display name. (nullable)
  - `value` (string): Custom field value. (nullable)
  - `values` (array<string>): The list of values for a multi-value custom field, or `null` for a single-value field. A renderer shows one item per line; `value` is `null` when this is set unless the field was captured through its single value, in which case both are present. (nullable)
- `originalSaleDateUtc` (string(date-time)): On a refund receipt, when the original sale took place, in UTC. (nullable)
- `refundReason` (string): On a refund receipt, the reason given for the refund. (nullable)
- `emailSent` (boolean): Whether the receipt has been emailed.
- `linkedChargeRole` ([LinkedChargeRole](https://devportal.signapay-sbx.winkpg.io/docs/api/models/LinkedChargeRole.md)): Which half of a linked pair of charges this receipt covers, or null when the transaction is not part of one. (nullable)
  Values:
  - `PrimaryCharge`: The primary payment. A separate fee charge was authorized alongside it, so this transaction's own amount is not the whole of what the cardholder was billed.
  - `FeeCharge`: The separately-authorized fee charge. The payment it was assessed against is a different transaction with its own authorization and approval code.
- `linkedChargeTransactionId` (string): The id of the other transaction in the linked pair, or null when there is none. (nullable)
- `linkedChargeKind` ([LinkedChargeKind](https://devportal.signapay-sbx.winkpg.io/docs/api/models/LinkedChargeKind.md)): Why the other charge in the pair exists. Present on the fee charge's own receipt only. (nullable)
  Values:
  - `ConvenienceFee`: A separate charge submitted to carry a convenience fee that a card-brand program requires to settle as its own authorization (its own approval code), linked to the primary payment it was assessed against.
- `splitTenderContext` ([ReceiptSplitTenderContextDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ReceiptSplitTenderContextDto.md)): The split tender group this receipt belongs to, or null when the transaction is not part of a split tender.
  Fields:
  - `groupId` (string(uuid)): Identifier shared by every tender in the group. (nullable)
  - `tenderSequence` (integer(int32)): 1-based position of this receipt's transaction within the group. Null on a split tender summary, which covers the whole group. (nullable)
  - `totalTendersInGroup` (integer(int32)): Number of tenders in the group, voided ones included. Null when the group size was not known when the receipt was generated, which is the case on a per-tender receipt. (nullable)
  - `groupTotalAuthorized` (number(double)): Combined amount authorized across the tenders in the group that were not voided or reversed, in the transaction currency. Null when the whole group was not known when the receipt was generated. (nullable)
  - `returnedAmount` (number(double)): What the bank took back from the group after it completed: the sum of the lines marked `isReturned`, in the transaction currency. Null on every receipt that shows no return, including the summary issued when the group completed. (nullable)
  - `tenders` (array<[ReceiptSplitTenderLineDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ReceiptSplitTenderLineDto.md)>): One line per tender, ordered by sequence. Populated on a split tender summary; empty otherwise. (nullable)

## See also

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