# Generate receipts

Learn how to generate compliant transaction receipts.

The Tap+ system provides comprehensive receipt printing functionality for all transaction types. Receipts serve as a physical record of transactions and include different information for merchant and customer copies, in accordance with card scheme rules and data protection requirements.

## Receipt content structure

A receipt includes the following standard sections:

* Header information
* Transaction information
* Card details
* Method and type
* Amount information
* Verification information
* Authorisation information
* Technical details
* Footer


## Header information

| Information | Description | Parameter |
|  --- | --- | --- |
| Receipt type identifier | Whether the receipt is a merchant copy or customer copy. | N/A |
| Merchant's physical address | The street, city, postal code, and country of the merchant. | N/A |


## Transaction information

| Information | Description | Parameter |
|  --- | --- | --- |
| Transaction reference number | The reference number for the transaction. | `merchantTransactionId` |
| Merchant ID | Your merchant ID. This should be masked in the customer copy. | `providerResponse.merchantId` |
| Terminal ID | The ID of the point-of-sale device. This should be masked in the customer copy. | `providerResponse.terminalId` |


## Card details

| Information | Description | Parameter |
|  --- | --- | --- |
| Card scheme | The card's scheme. | `fundingData.cardScheme` |
| Application Identifier (AID) | The unique identifier for the application used during the EMV transaction. | `fundingData.emvDataResponse.applicationId` |
| Application label | The label or name of the application selected for the transaction, typically representing the card brand. | `fundingData.emvDataResponse.applicationLabel` |
| Masked PAN | The partially masked version of the Primary Account Number. | `fundingData.maskedPrimaryAccountNumber` |
| Card sequence number | The sequence number for the card used in this transaction. Sequence numbers differentiate cards with the same Primary Account Number (PAN) issued to the same account holder. | `fundingData.emvDataResponse.panSequenceNumber` |
| Expiry date | The card's expiry date. This should be masked in the customer copy. | `fundingData.expiryMonth` and `fundingData.expiryYear` |


## Method & type

| Information | Description | Parameter |
|  --- | --- | --- |
| Entry method | How the card was processed. | N/A |
| Transaction type | The type of transaction. | `transactionMethod.intent` |


## Amount information

| Information | Description | Parameter |
|  --- | --- | --- |
| Transaction amount | The amount of the transaction. | `amounts.transaction` |


## Verification information

| Information | Description | Parameter |
|  --- | --- | --- |
| Cardholder verification method used | The result of the Cardholder Verification Method (CVM) used in the transaction, such as PIN verification or signature. | `fundingData.emvDataResponse.cardHolderVerificationMethodResults` |
| PIN verified | If the CVM was `Pin verified`, include confirmation that the PIN was successfully verified. | N/A |
| Signature line | If the CVM was `Signature verified`, include the signature line. This only applies to the merchant copy. | N/A |


## Authorisation information

| Information | Description | Parameter |
|  --- | --- | --- |
| Authorisation code | The response code indicating the outcome of the authorisation request. | `approvalCode` |
| Transaction status | The status of the transaction. | `state` |


## Footer

| Information | Description | Parameter |
|  --- | --- | --- |
| Transaction date and time | The date and time when the transaction occurred. | `merchantTransactionDate` |


## Receipt variations

The system supports different receipt formats for various transaction types:

* Initial transaction receipts: standard purchase receipts and standalone refund receipts.
* Modification transaction receipts: void receipts.
* Special condition receipts: declined transaction receipts.