Receipt Requirements
What every receipt must contain to pass acquirer certification.
Receipt content is not cosmetic — it's regulated by the card schemes and enforced by the acquirer during terminal certification. If your printed or digital receipts are missing mandatory fields, the certification test cases will fail and you will not be allowed to go live. This page is the canonical contract for what Atlas guarantees to return in receiptData and what your POS must render.
Cardholder copy — required fields
Every transaction produces a cardholder copy (printed or emailed) with these fields. Atlas surfaces them on every TransactionResponse.receiptData. You are responsible for rendering them.
Trading name registered with the acquirer.
receiptData.merchantNameAcquirer-assigned merchant identifier.
receiptData.merchantIdAcquirer-assigned terminal identifier.
receiptData.terminalIdTransaction date and local time.
receiptData.dateTimeVisa, Mastercard, Amex, etc.
receiptData.cardSchemeLast 4 digits visible. Never print the full PAN.
receiptData.maskedPanCONTACTLESS, CONTACT, MAGSTRIPE, MANUAL.
receiptData.entryModeEMV application label (e.g. 'Visa Credit'). Required for chip transactions.
receiptData.applicationLabelEMV Application Identifier hex string. Required for chip transactions.
receiptData.aidSALE, REFUND, VOID, PRE_AUTH, etc.
typeTransaction amount in the cardholder's currency.
receiptData.amountSeparate line from the base amount when tipping is in use.
receiptData.tipAmountAmount + tip (if present).
receiptData.totalAmountIssuer auth code. Required on approved transactions.
receiptData.authorizationCodeAPPROVED or DECLINED. Print prominently.
receiptData.approvalStatusPIN, SIGNATURE, CDCVM, NO_CVM. Disclosure of cardholder verification method.
receiptData.cvmPerformedFor dispute traceability.
receiptData.transactionId + rrnOnly when CVM is SIGNATURE. Blank line for cardholder signature.
—Merchant copy — additional fields
The merchant copy (kept by the merchant, not given to the cardholder) includes everything on the cardholder copy plus extra technical fields used for chargeback defense and reconciliation.
- All cardholder-copy fields, plus:
- Response code (ISO 8583, e.g. "00").
- Reference ID (your referenceId from the request).
- Terminal Verification Results (TVR) hex string.
- Full cryptogram type (TC / ARQC / AAC).
Example rendered receipt
A passing receipt fits on a 32-character-wide thermal strip. All required fields are present, the approval status is the most prominent line, and the masked PAN never shows more than the last four digits.
ATLAS COFFEE — PONSONBY
129 Ponsonby Road, Auckland
MID: MID123456789
TID: TID-00012345
────────────────────────────────
09 Apr 2026 11:14:22
txn_01JQXYZ123456
────────────────────────────────
VISA ************1234
Visa Credit
AID A0000000031010
Contactless · NO CVM
Subtotal $25.00
Tip $0.00
TOTAL NZD $25.00
APPROVED
Auth code: A12345
RRN: 262803141422
THANK YOU
Retain for your recordsScheme-specific rules
- Visa — Application label must read 'Visa Credit' or 'Visa Debit' — not just 'Visa'. PIN-verified transactions must print 'PIN VERIFIED' in place of a signature line.
- Mastercard — If the AID begins with A0000000041010, the label must be 'Mastercard'. Contactless refunds must print 'REFUND' in place of the amount.
- Amex — Must print 'American Express' as the full scheme name — not 'Amex' or 'AMEX'. Requires the last 5 digits of the card, not 4.
- Discover — CVM must be spelled out as 'SIGNATURE VERIFIED' when applicable.
- UnionPay — Receipts must carry the UnionPay logo in printed copies. Localized characters are supported via the terminal's UTF-8 pipeline.
Digital vs printed receipts
Digital receipts (email, SMS, in-app) have the same content requirements as printed ones. The only difference is that digital receipts may render in color and include merchant branding — everything else (including the masked PAN rules) applies identically. Atlas does not send digital receipts on your behalf; you are responsible for delivering them, typically by capturing the cardholder's email via /v1/device/input and using your own transactional email provider.