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:

TerminalBuilt-in printer
PAX A920 ProYes
PAX A35No
PAX IM30No
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:

RequirementValue
Aspect ratio3:1 landscape
Format.jpeg or .png
Print outputBlack 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 Pro and 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.receipt object 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

FieldTypeDescription
details.terminalIdstringID of the terminal that processed the payment.
details.cardNumberstring / nullLast 4 digits of the customer's masked card number.
details.maskedNumberstring / nullFirst 6 and last 4 digits of the customer's masked card number.
details.cardFingerprintstring / nullUnique identifier linking multiple transactions to a single cardholder account, across payment methods and reissued cards.
details.cardAudiencestring / nullCard's target audience.
Possible values: consumer, business.
details.cardLabelstring / nullCard's label.
Possible values: Mastercard, Visa, Maestro, Vpay.
details.cardFundingstring / nullCard funding type.
Possible values: credit, debit.
details.cardCountryCodestring / nullISO 3166-1 alpha-2 country code of the country the card was issued in.
details.feeRegionstring / nullApplicable card fee region.
Possible values: domestic, inter, intra_eea.

Receipt object

FieldTypeDescription
authorizationCodestring / nullUnique code provided by the cardholder's bank confirming the transaction was approved.
applicationIdentifierstring / nullUnique number identifying the payment application on a chip card (AID).
cardReadMethodstring / nullHow the card was read by the terminal.
Possible values: chip, magnetic-stripe, near-field-communication, contactless, moto.
cardVerificationMethodstring / nullHow 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.


Did this page help you?