# Commerce Engine Release Notes

Each release below lists the new capabilities, enhancements, and fixed issues it introduces. Items marked with a version chip — for example  — were introduced in that point release.

Shift4 recommends keeping deployed terminals on one of the latest releases.

## 2.17

### New capabilities

- **Kiosk control** — POS and device-management applications can now enable or disable kiosk mode through the device configuration API, including during an active transaction.
- **Language selection** — Cardholders can now change the language from supported payment and tip screens during an active transaction.
- **Quebec tipping** — Commerce Engine now supports a Quebec-compliant tip flow that calculates percentage suggestions from the pre-tax amount.
-  **Remote terminal support** — TMS support users can now open a view-only session on a PAX or Verifone terminal when Commerce Engine 2.17.2 is paired with S4 Loader 4.1.2, and can control the terminal through that session with operator approval.


### Enhancements

- **Device identity in responses** — Error, decline, timeout, cancellation, and offline responses now include available terminal identity information.
- **Debit-scheme identification** — Debit responses now identify additional recognized debit schemes when a mapping is available.
- **OPI preauthorization receipts** — OPI preauthorization receipts can now include blank tip and total lines.
- **Final-result screens** — Final-result suppression now applies to gift-card operations, token creation, and card verification.
- **DCC presentation** — DCC amounts, currencies, exchange rates, conversion fees, and disclaimers now remain grouped within the corresponding currency choice.
-  **Declined OPI receipts** — OPI deployments can now omit receipt data from declined responses without changing approved responses.


### Fixed issues

- **Terminal busy recovery** — Fixed an issue where a background transaction could leave Commerce Engine permanently busy while its activity was closing.
-  **OPI lodging receipts** — Fixed an issue where lodging responses returned both receipt copies in `PrintData`. They now return only the customer copy, without the merchant copy or separator.
-  **OPI incremental authorization** — Fixed an issue where an incremental top-up voided the preceding authorization before sending the update. It now sends the updated authorization directly.
- Minor fixes and improvements.


## 2.16

### New capabilities

- **Light and dark presentation** — Commerce Engine now supports light and dark terminal presentation, including request-level selection by the POS.
- **REST-controlled terminal language** — POS applications can now retrieve the current and supported terminal languages, select a supported language, and clear the override.
- **DCC with surcharging** — Commerce Engine can now apply DCC and credit-card surcharging to the same transaction.


### Enhancements

- **OPI receipt suppression** — OPI deployments can now suppress the merchant receipt, customer receipt, or both independently.


### Fixed issues

- **Gift-card reload cancellation** — Fixed an issue where a cancelled or timed-out gift-card reload could fail to return an unsuccessful result.
- **POS result delivery during network changes** — Fixed an issue where a connectivity change during a transaction could drop the local POS connection and make an approved transaction appear unsuccessful.
- Minor fixes and improvements.


## 2.15

### New capabilities

- **Complete gift-card transaction set** — The REST interface now supports gift-card allocation, reload, cashback, cashout, reactivation, deactivation, and cancellation of the most recent eligible request.
- **Polish language support** — Commerce Engine now supports Polish.
- **Windows USB deployment** — POS applications can now send supported REST transaction requests to Commerce Engine on Windows while cardholder interaction takes place on a USB-connected PAX or Verifone terminal.


### Enhancements

- **girocard identification** — girocard responses now return `card.debitType: "girocard"` so POS applications can distinguish girocard from other debit transactions.


### Fixed issues

- **Receipt formatting** — Fixed an issue where gift-card, SAF, and void receipts did not follow the requested receipt-column formatting.
- **DCC lookup recovery** — Fixed an issue where a DCC rate-lookup network failure could switch the terminal into SAF or offline mode.
-  **Contactless profile activation** — Fixed an issue where configured contactless settings were not retained after a manifest update, requiring a terminal reinitialization before affected schemes became available.
-  **Whitelisted manual-entry data** — Fixed an issue where approved whitelisted manual-entry flows returned unusable encrypted card data instead of the permitted clear card details.
-  **AMEX contactless processing** — Fixed an issue where PAX AMEX contactless could use the wrong CAPK index when EMV tag `8F` was absent.
-  **Discover contactless retry** — Fixed an issue where an incomplete Discover contactless read failed instead of asking the cardholder to tap again.
-  **girocard cancellation recovery** — Fixed an issue where cancelling a contactless girocard transaction at application selection did not return the reader to idle.
-  **Manual-entry cancellation state** — Fixed an issue where a declined or cancelled manual card-entry sequence could carry its ZIP-entry cancellation state into the next transaction.
- Minor fixes and improvements.


## 2.14

### New capabilities

- **Terminal information API** — POS and estate-management applications can now retrieve available terminal identity, hardware, firmware, security, installed-application, and connectivity information.
- **Manual card entry for card-read requests** — Cardholders can now enter card details during supported card-read requests when manual entry is enabled for the station.
- **Custom idle media** — Merchants can now display a rotating set of assigned images while supported PAX and Verifone terminals are idle.
- **Additional terminal languages** — Commerce Engine now supports Czech, Danish, Finnish, Lithuanian, Norwegian, Romanian, and Swedish on terminal screens and receipts.
- **POS-managed Tax Free** — Approved sales can now return available card and payment-reference information for a POS or connected Tax Free application to perform eligibility detection and issuing.
- **Request-level SAF control** — Supported financial requests can now opt out of Store and Forward and decline instead when the terminal is offline.
- **Request-level tip presets** — Sale and authorization requests can now supply percentage or fixed-amount tip suggestions, select the initial preset, and optionally label the zero-tip choice as **No Tip** instead of **Cash Tip**.
- **Tip calculation basis** — POS applications can now calculate suggested tip percentages from a supplied basis amount instead of the payment total, and tell the cardholder when a different basis is used.


### Enhancements

- **Process-form buttons** — Supported terminals now accept as many as six process-form buttons; the Verifone P630 retains a four-button maximum.
- **DCC currency layout** — Portrait terminals now place the cardholder currency above the merchant currency, while landscape terminals retain the left-and-right layout.
- **Offline PIN guidance** — Cardholders now see localized retry and final-attempt messages after an incorrect offline PIN.
- **girocard recovery** — Commerce Engine now synchronizes the previous receipt number with the girocard host so the next transaction can detect a mismatched outcome and perform an implicit reversal.


### Fixed issues

- **Fallback response identification** — Fixed an issue where chip-to-swipe fallback was not identified in the transaction response; fallback responses now include `emv.fallback: "Y"`.
- **Alipay+ transaction results** — Fixed an issue where a cancelled or timed-out Alipay+ sale could return a successful result, or where the terminal could return to idle before delivering the timeout result to the POS.
-  **Card-read continuation** — Fixed an issue where manual card entry could leave a card-read request on the processing screen instead of continuing to its requested next step.
-  **Contactless card verification** — Fixed an issue where contactless card-verification and token-creation requests could unnecessarily fall back to insert or swipe.
-  **Mixed background transactions** — Fixed an issue where mixed background transaction types could leave the terminal permanently busy.
- Minor fixes and improvements.


## 2.13

### New capabilities

- **German girocard processing** — Commerce Engine now supports girocard on Verifone terminals.
- **Payment signature capture** — Commerce Engine can now collect and return an electronic signature when an authorization, sale, or refund requires one.
- **Standalone signature capture** — POS applications can now request an electronic signature outside a payment and receive the image as a Base64-encoded PNG.
- **Australian eftpos processing** — Commerce Engine now supports eftpos contact, contactless, and magstripe transactions on PAX terminals, including Savings and Cheque account selection.
- **QR display forms** — POS applications can now display a QR code with optional header and footer text on the terminal.
- **Additional Verifone Android 13 terminals** — Commerce Engine now supports Verifone Android 13 terminals.
- **Surcharge acceptance controls** — Surcharge flows can now require acceptance, accept a timeout, or apply the surcharge without presenting an acceptance prompt.
-  **Flat-value eftpos surcharges** — eftpos transactions can now use a fixed surcharge amount as well as a percentage-based surcharge.


### Enhancements

- **Standalone SAF voids** — Commerce Engine can now permit a standalone void when the original SAF record cannot be matched.
-  **Network receipt printing** — Simphony receipt requests can now reach the terminal printing service from another device on the network.
-  **Whitelisted-card track data** — Eligible card-read responses now include available original raw track data.


### Fixed issues

- **Contactless application selection** — Fixed an issue where affected Visa multi-application cards could select Debit instead of Credit.
- **Offline PIN retries** — Fixed an issue where a second offline PIN attempt could be rejected with a data error.
-  **Formatted receipt amounts** — Fixed an issue where approved or declined receipts could use the wrong amount layout; surcharge, tip, total, and requested blank tip lines now follow the transaction result and request.
-  **Chip-read HTTP status** — Fixed an issue where a failed chip read could return HTTP `200`; the response now uses an unsuccessful status.
-  **Payment recovery after Wi-Fi interruption** — Fixed an issue where a temporary Wi-Fi interruption could terminate the payment process while the terminal screen reconnected.
- Minor fixes and improvements.