Printing receipts
You can provide your customer with a printed or digital receipt after a successful in-person payment.
Depending on which Mollie terminal you use, you can print a receipt directly from the device, send a digital receipt, or retrieve receipt data through the API to generate and send the receipt yourself.
Which terminals support printing?
Most terminals do not have a built-in printer:
| Terminal | Built-in printer |
|---|---|
| PAX A920 Pro | Yes |
| PAX A35 | No |
| PAX IM30 | No |
| Tap terminal (iPhone / Android) | No |
If you use a PAX A35 or a Tap terminal, you can still provide receipts by using the Get Payment API to retrieve the payment's details and display (or send) them digitally to your customers.
Receipts on PAX A920 Pro
The PAX A920 Pro has a built-in thermal receipt printer, however, printing is turned off by default. If you want to enable or disable receipt printing on your terminal, make sure to contact Mollie Support.
Receipt management is currently not available in the Web App.
Receipt fields
Once printing is enabled, the terminal prompts your customers to confirm whether they want a receipt after each successful transaction.
The printed receipt includes:
- Merchant's name and address.
- Transaction amount.
- Payment method.
- Date and time of the transaction.
Customize your receipt
Merchant address
You can not modify your organization details in the Web App. To update your organization details, contact Mollie Support.
Logo
You can replace the default Mollie logo with your own logo if it meets the following requirements:
| Requirement | Value |
|---|---|
| Aspect ratio | 3:1 landscape |
| Format | .jpeg or .png |
| Print output | Black and white at low resolution |
If you want to customize the logo displayed on receipts, submit your logo to Mollie Support so we can add it for your terminals.
Logo customization is only available on
PAX A920 Proand applies to all terminals in your organization.
Generate receipts via the API
If your terminal does not have a built-in printer (or if you want to send digital receipts instead of the physical ones) - you can use the Get Payment API to retrieve the data needed to generate a receipt.
The
details.receiptobject is currently in beta. To enable it for your account, contact Mollie Support.
Example request
Call GET /v2/payments/{id} with your API key:
curl https://api.mollie.com/v2/payments/tr_7UhSN1zuXS \
-H "Authorization: Bearer test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM"Example response
For in-person payments, the response includes details object with terminal and card information. If the details.receipt object is enabled for your account, the response includes it as well.
{
"resource": "payment",
"id": "tr_7UhSN1zuXS",
"method": "pointofsale",
"status": "paid",
"amount": {
"currency": "EUR",
"value": "35.00"
},
"description": "Order #12345",
"createdAt": "2024-06-10T10:32:00+00:00",
"paidAt": "2024-06-10T10:32:45+00:00",
"details": {
"terminalId": "term_7MgL4wea46",
"cardNumber": "6765",
"maskedNumber": "453601xxxxxx6765",
"cardFingerprint": "fHB3CCKx4mqkovMjeK7r4RU5u5",
"cardAudience": "consumer",
"cardLabel": "Visa",
"cardFunding": "debit",
"cardCountryCode": "NL",
"feeRegion": "intra_eea",
"receipt": {
"authorizationCode": "098765",
"applicationIdentifier": "A0000000031010",
"cardReadMethod": "chip",
"cardVerificationMethod": "online-pin"
}
}
}Available fields
Terminal and card details
| Field | Type | Description |
|---|---|---|
details.terminalId | string | ID of the terminal that processed the payment. |
details.cardNumber | string / null | Last 4 digits of the customer's masked card number. |
details.maskedNumber | string / null | First 6 and last 4 digits of the customer's masked card number. |
details.cardFingerprint | string / null | Unique identifier linking multiple transactions to a single cardholder account, across payment methods and reissued cards. |
details.cardAudience | string / null | Card's target audience. Possible values: consumer, business. |
details.cardLabel | string / null | Card's label. Possible values: Mastercard, Visa, Maestro, Vpay. |
details.cardFunding | string / null | Card funding type. Possible values: credit, debit. |
details.cardCountryCode | string / null | ISO 3166-1 alpha-2 country code of the country the card was issued in. |
details.feeRegion | string / null | Applicable card fee region. Possible values: domestic, inter, intra_eea. |
Receipt object
| Field | Type | Description |
|---|---|---|
authorizationCode | string / null | Unique code provided by the cardholder's bank confirming the transaction was approved. |
applicationIdentifier | string / null | Unique number identifying the payment application on a chip card (AID). |
cardReadMethod | string / null | How the card was read by the terminal. Possible values: chip, magnetic-stripe, near-field-communication, contactless, moto. |
cardVerificationMethod | string / null | How the cardholder's identity was verified. Possible values: no-cvm-required, online-pin, offline-pin, consumer-device, signature, signature-and-online-pin, online-pin-and-signature, none, failed. |
Receipt compliance
Each country and card scheme defines which fields must appear on a customer receipt for the transaction to be considered valid. Hence, when generating a receipt using API, make sure it meets the requirements of local regulations and the relevant card scheme (e.g., Visa, Mastercard etc). These typically include:
- Merchant name
- Transaction amount and currency
- Date and time
- Card label
- Masked card number
- Authorization code
- Card read method
Check your local laws and the regulations of the relevant card scheme to confirm your receipts are fully compliant before going live.
Updated about 3 hours ago