Skip to main content
In-Store Payments

Receipt requirements

For every card transaction, the J.P. Morgan Payments platform generates receipt data and returns it in the transaction response.

This page describes our receipt solution and outlines the requirements for using the default receipt provided by the platform or creating a custom receipt from the data returned in API transaction responses.

Learn about receipt printing methods, ways to construct receipt content, requirements for all receipts, receipt language rules, and receipt details for credit, debit, prepaid, and gift card transactions.

Disclaimer

Comply with all PCI-DSS, federal, state, and local rules and regulations applicable to your business. We document the rules and regulations to the best of our knowledge.

Receipt printing methods

You have multiple supported options for where and how you can print receipts.

Print receipts on an integrated printer: If your POS environment includes an integrated receipt printer, generate and print receipts directly from your POS.

Print a custom receipt using the terminal’s built-in printer (DX4000 / DX8000): If you use a payment terminal with a built-in printer (DX4000 countertop or DX8000 handheld), generate a custom receipt by sending a print command to the terminal using the PrintText API.

Print the default terminal receipt template (DX4000 / DX8000): If you use a payment terminal with a built-in printer (DX4000 countertop or DX8000 handheld), print the default receipt template we generate from the receipt object in the transaction response.

Tip

Print your own receipts using an integrated printer when available. This approach gives you and your POS full control over the receipt layout and formatting.

Receipt content construction methods

Regardless of where you print, you can construct receipt content in the following ways:

Use the receipt object

Generate your receipt using the receipt object in the API response. You may:

  • Print the receipt as-is, or
  • Parse and reformat the content to meet your receipt design and formatting needs.

Use structured API response fields

Generate your receipt using the structured fields in the API response, such as transaction identifiers, amounts, card brand, entry mode, and authorization code. Format these fields according to your POS receipt layout.

Attention

The API response returns most required receipt elements as explicit API response fields, but the structured response fields do not include every receipt element in the receipt object. Refer to the mapping table to identify which elements come from API response fields or terminal configuration parameters and which appear only in the receipt text objects.

General receipt requirements

  • Give the cardholder the option for a receipt on every transaction. 
  • Receipts apply to all transaction types, all payment brands, card types, and transaction results of success, error, and decline.

The following is a list of all transaction types where receipts apply:

Transaction types where receipts apply
Credit and debit card transactions Gift card transactions
Sale Redemption
Authorization Issuance
Incremental authorization Activation
Completion Balance Inquiry (cardholder copy only)
Force Sale Void
MOTO Sale Force Redemption
MOTO Refund Force Issuance
Refund Force Activation
Void Deactivation
Balance Inquiry Reactivation
  • Label items on the receipt clearly so the merchant and cardholder understand the information.
  • For void receipts, include the voided transaction type and the original approval code. The standard receipt object includes these values.
  • Abbreviate only if the abbreviation is clear and easily understood.

Receipt language requirements

The following language requirements apply to both cardholder and merchant receipts.

Cardholder receipt

  • For locations excluding the province of Quebec, print the cardholder copy of the receipt in the merchant's or cardholder's language. 
  • For merchant locations in Quebec, you must print the cardholder copy of the receipt in the cardholder's language.  

Cardholder receipt language flow

The card data determines the receipt language. If the card data doesn’t specify a language, the Payment Terminal Application UI prompts the cardholder to choose a language for the receipt.

The following diagram shows the transaction flow, including the receipt language prompt.

Merchant receipt

Print the merchant copy of the receipt in the merchant's or cardholder's language.

Merchant receipt language flow

We configure the merchant language during onboarding, which the J.P. Morgan Payment platform uses to determine the receipt language.

The following diagram shows the transaction flow for merchant receipt language selection.

Receipt details for credit, debit, prepaid, and gift cards

The Payment Terminal Application generates default receipts using the merchantReceipt and cardholderReceipt text objects in the API response.

If you are creating your own receipts, these objects are the primary source for the content you print or display. The Payment Terminal Application structures them in a receipt-ready format and include the required receipt elements.

If you choose to construct your receipt from structured API response fields, reference the corresponding fields (for example, terminalIDreferencedateTimetransactionIDauthCode, and totalAmount) alongside the receipt text objects. 

The following is a sample API response:

{"AC":"11B8A96ACAB6674A", 
"AID":"A0000000031010", 
"ARC":"3030", 
"IAD":"06010A03A00000", 
"PARData":"V0010013018037103627480477422", 
"TSI":"0000", 
"TVR":"0000000000", 
"account":"476173******0011", 
"accountType":"0", 
"approval":"approved", 
"approvalMode":"ISSUER", 
"authCode":"001484", 
"authorizedAmount":"500", 
"balance":"0", 
"batchJulianDay":"210", 
"batchNumber":"000002", 
"cardBrand":"VISA", 
"cardToken":"4761736242620011", 
"cardTypeProcessed":"1", 
"cardholderLanguage":"en", 
"cardholderReceipt":"\n         TEST STORE #123\n         213 Test Street\n      Testingvale, TN 12345\n         (123) 456-7890\n\n\nMerc. ID: 9999999\nTerm. ID: 002\nRRN: 210090936531\nWed,Jul 29,2026         09:09:36\n\n              SALE\n\n            APPROVED\n\n      Verified by Signature\n\n        ************0011\nVISA                 Contactless\n\nAMOUNT                     $1.00\nSUBTOTAL                   $1.00\n            ____________________\nTOTAL                      $1.00\n\nTransaction ID:\n                2100000011000001\nBatch#:                  210-001\nApproval Code:            047018\n\nVISA CREDIT\nAID: A0000000031010\n\n\nX  ______________________________\n\n      *** Customer copy ***\n\n            Thank You\n        Please Come Again\n", 
"cashbackAmount":"0", 
"commercialCardType":"-1", 
"currencyCode":"USD", 
"cvm":"Signature", 
"dateTime":"07-29-2026 11:02:22", 
"dccBillingAmount":"0", 
"dccExchangeRate":"0.0", 
"dccIndicator":"0", 
"dccMarkup":"0", 
"dccProvider":"Fexco", 
"demoMode":"no", 
"dueAmount":"0", 
"emvTags":"...", "_comment": "Removed for brevity", 
"expDate":"3112", 
"footerLine1":"Thank You", 
"footerLine2":"Please Come Again", 
"headerLine1":"TEST STORE #123", 
"headerLine2":"213 Test Street", 
"headerLine3":"Testingvale, TN 12345", 
"headerLine4":"(123) 456-7890", 
"merchantID":"9999999", 
"merchantReceipt":"\n         TEST STORE #123\n         213 Test Street\n      Testingvale, TN 12345\n         (123) 456-7890\n\n\nMerc. ID: 9999999\nTerm. ID: 002\nRRN: 210090936531\nWed,Jul 29,2026         09:09:36\n\n              SALE\n\n            APPROVED\n\n      Verified by Signature\n\n        ************0011\nVISA                 Contactless\n\nAMOUNT                     $1.00\nSUBTOTAL                   $1.00\n            ____________________\nTOTAL                      $1.00\n\nTransaction ID:\n                2100000011000001\nBatch#:                  210-001\nApproval Code:            047018\n\nVISA CREDIT\nAID: A0000000031010\n\n\nX  ______________________________\n\n      *** Merchant copy ***\n\n            Thank You\n        Please Come Again\n", 
"operation":"Transaction", 
"preferredName":"VISA CREDIT", 
"processorLine1":"", 
"processorLine2":"", 
"reference":"210110222456", 
"requestedAmount":"500", 
"responseCode":"00", 
"result":"0", 
"safState":"-1", 
"safSubmissionState":"0", 
"shift":"1", 
"signatureRequired":"yes", 
"subTotalAmount":"500", 
"surchargeAmount":"0", 
"surchargeFixed":"0", 
"surchargePercentage":"0", 
"table":"0", 
"taxAmount":"0", 
"taxAmount2":"0", 
"taxLabel":"Tax:", 
"taxLabel2":"TAX2:", 
"taxSurchargeAmount":"0", 
"taxTotalAmount":"0", 
"terminalID":"002", 
"tipAmount":"0", 
"totalAmount":"500", 
"transactionID":"2100000021000002", 
"transactionType":"SALE", 
"type":"SALE", 
"uniqueTransactionId":"700000014039002178533734200100"} 

The following is the cardholderReceipt text object from the preceding API response.

"cardholderReceipt":"\n         TEST STORE #123\n         213 Test Street\n      Testingvale, TN 12345\n         
(123) 456-7890\n\n\nMerc. ID: 9999999\nTerm. ID: 002\nRRN: 210090936531\nWed,Jul 29,2026         
09:09:36\n\n              SALE\n\n            APPROVED\n\n      Verified by Signature\n\n        
************0011\nVISA                 Contactless\n\nAMOUNT                     $1.00\nSUBTOTAL                   
$1.00\n            ____________________\nTOTAL                      
$1.00\n\nTransaction ID:\n                2100000011000001\nBatch#:                  210-001\nApproval Code:            
047018\n\nVISA CREDIT\nAID: A0000000031010\n\n\nX  ______________________________\n\n      
*** Customer copy ***\n\n            Thank You\n        Please Come Again\n", 

The following is the merchantReceipt text object from the preceding API response.

"merchantReceipt":"\n         TEST STORE #123\n         213 Test Street\n      Testingvale, TN 12345\n         
(123) 456-7890\n\n\nMerc. ID: 9999999\nTerm. ID: 002\nRRN: 210090936531\nWed,Jul 29,2026         
09:09:36\n\n              SALE\n\n            APPROVED\n\n      Verified by Signature\n\n        
************0011\nVISA                 Contactless\n\nAMOUNT                     $1.00\nSUBTOTAL                   
$1.00\n            ____________________\nTOTAL                      $1.00\n\nTransaction ID:\n                
2100000011000001\nBatch#:                  210-001\nApproval Code:            
047018\n\nVISA CREDIT\nAID: A0000000031010\n\n\nX  ______________________________\n\n      
*** Merchant copy ***\n\n            Thank You\n        Please Come Again\n", 

These objects use the escape code \n to define line breaks and use leading or trailing spaces to center, justify, or right-align content in the default receipt format for terminals with built-in printers: the DX4000 and DX8000.

Sample cardholder and merchant receipts

The following image presents the default printed format of the cardholderReceipt and merchantReceipt text objects on DX4000 and DX8000 terminals.

Examples of cardholder and merchant receipts

Receipt field mapping table

The following table presents each line of the receipt objects without the blank lines that provide spacing. In the example Appearance columns, we have removed formatting spaces and left-aligned the content.

The table data shows an example approved Sale transaction.

Receipt field mapping table
Receipt field API field
or Parameter Source
(ALL CAPS)
Required?
Configurable?
Appearance on
Cardholder receipt
Appearance on
Merchant receipt
Merchant receipt header line 1 HEADERLN1 Required Company Name Company Name
Merchant receipt header line 2
HEADERLN2 Optional, configurable Street Address Street Address
Merchant receipt header line 3
HEADERLN3 Optional, configurable City, State, Zip City, State, Zip
Merchant receipt header line 4 HEADERLN4 Optional, configurable Phone Number Phone Number
Merchant receipt header line 5 HEADERLN5 Optional, configurable [additional info] [additional info]
Merchant receipt header line 6 HEADERLN6 Optional, configurable [additional info] [additional info]
Merchant ID merchantID Required

Merc. ID: 9999999

Merc. ID: 9999999

Terminal ID terminalID Required Term. ID: 002 Term. ID: 002
Request reference reference Required RRN: 092112909069  RRN: 092112909069
Table number
(restaurant settings only)
table Required Table: 0 Table: 0
Transaction date and time dateTime Required Thu,Apr 02,2026         11:29:09 Thu,Apr 02,2026        
11:29:09
Transaction type transactionType Required SALE SALE
Transaction result approval Required APPROVED APPROVED
Customer verification method cvm Required No Signature Required  No Signature Required
Account number account Required ************0443 ************0443
Card brand and entry mode cardBrand and entryMode Required VISA Contactless  VISA Contactless
Account type
(Interac EMV contact transactions only)
accountType Required CHEQUING CHEQUING
Requested amount requestedAmount Required AMOUNT $1.00  AMOUNT $1.00
Subtotal subTotalAmount Required SUBTOTAL $1.00  SUBTOTAL $1.00
Cashback amount
(shown only when requested)
cashback Required CASHBACK $XX.00 CASHBACK $XX.00
Separator line N/A N/A ________________  ________________
Total totalAmount Required TOTAL $1.00  TOTAL $1.00
Amount due
(partially approved transactions only)
dueAmount Required AMT.DUE $XX.00 AMT.DUE $XX.00
Available balance
(debit, EBT, and gift cards only; label varies by card type)
balance Required N/A Balance Debit Card: $200.00 
Transaction ID label N/A Required Transaction ID:  Transaction ID:
JPMC Transaction ID transactionID Required 910000011000009 910000011000009
Batch number
(Julian day + batch number)
batchJulianDay and last three digits of the batchNumber Required Batch#: 091-001  Batch#: 091-001
Trace number
(debit and EBT transactions only)
traceNumber Required Trace: 00484443  Trace: 00484443
Authorization code authCode Required Approval Code: 060328 Approval Code: 060328
Card brand
(value depends on card)
preferredName Required CHASE VISA  CHASE VISA
Card application identifier
(not included for swiped transactions)
AID Required AID: A0000000031010  AID: A0000000031010
Signature line
(merchant receipt only; controlled by CVM and signature parameters)
Signature line Configurable N/A N/A
Cardholder name
(merchant receipt only; not shown on Interac; parameter-controlled)
cardholderName
CHNPRINT
Configurable N/A LAST/FIRST
Label for receipt copy N/A N/A *** Customer copy ***  *** Merchant copy *** 
Gift card tip authorization statement
(required when a tip is included)
N/A Required N/A I AUTHORIZE THE TRANSFER OF FUNDS FOR THE AMOUNT OF THIS TRANSACTION
Merchant receipt footer line 1
FOOTLN1 Configurable Thank You Thank You
Merchant receipt footer line 2
FOOTLN2 Configurable Please Come Again Please Come Again
Merchant receipt footer line 3 FOOTLN3 Configurable [additional message] [additional message]

Amount fields on our receipts

A transaction response may contain multiple different amount values depending on context of the transaction. The preceding receipt field mapping table only lists some of the amount response fields. The following is the complete list of all amount fields that the API response could return, and the logical sequence they may appear in receipt data:

  • requestedAmount: The original amount of the transaction. This is the base amount and does not include the tipAmount, taxAmount, surchargeAmount, or cashBackAmount.
  • taxAmount: If you provide this value in the request, it overrides the tax amount the Payment Terminal App calculates based on the TAXPERCENT parameter (if configured). Canada and some states require you to print the tax amount on the receipt.
  • taxAmount2: If you provide this value in the request, it overrides the tax amount the Payment Terminal App calculates based on the TAXPERCENT2 parameter (if configured). Canada may require you to print a second tax amount on the receipt.
  • subTotalAmount: The subTotalAmount comprises the requestedAmount, taxAmount and taxAmount2.
  • cashBackAmount: The cash back amount, if applicable.
  • tipAmount: The tip amount entered during the transaction.
  • surchargeAmount: The surcharge amount, if the transaction includes a surcharge. 
  • totalAmount: The sum of all the amounts in the transaction.
  • authorizedAmount: The amount that the issuer authorizes on the card. The authorizedAmount will match the totalAmount unless there is a partial authorization.
  • dueAmount: For partial authorizations this field contains the difference between the totalAmount and the amount the issuer approved, that is, the authorizedAmount.