Release notes
New version of Terminal API now available
We have moved to a new version of Terminal API, which includes many new features, and some minor breaking changes. We have done this to ensure that our solution is easier to support moving forward, reducing time between support requests and resolutions.
Please check in the release notes of each version if there are new features or breaking changes that you need to consider, here is a small migration checklist that may help you with the process.
Migration checklist (v1 → v2)
- Switch the URL prefix from /api/v1/... to /api/v2/....
- Generate a UUID for Header.ExchangeIdentification on every request.
- Add a Header.SalesSystemInfo block (IntegratorId + at least one SaleSoftware with Type and Status.VersionNumber). Request the new values from your contact within Worldline
- Read successful payloads from body.data.
- Read errors from body.message; remove any body.code lookup.
- Handle 202 Accepted for async requests and consume the webhook payload from data.
- Move Card Acquisition currency / tipAmount / totalAmount into TransactionDetails.
- Move SaleTerminalData into Context.SaleContext.
- Send ProtocolVersion: "5.1-WL2.x.x" in the request header.
Update history
Release date: August 5, 2026
This release adds new UI and payment-request capabilities, tightens request validation, and fixes a number of mapping and error-handling issues.
Features
Accessibility settings on payment requests
Accessibility settings can now be supplied on a payment request through the AccessibilitySettings extension on PaymentTransaction , and are applied to the payment flow on the terminal.
Seamless ECR-initiated flows
ECR-initiated flows now render every step on a single, state-driven screen instead of opening a new screen per step, removing the visible flash between steps. Set ShowProcessingScreen in the request body to display a processing spinner between steps for up to 30 seconds.
Secondary button on image screens
Image screens now support a secondary action button, enabling richer interaction flows.
Reconciliation receipt format handling
Reconciliation flows now support both structured JSON receipts and formatted receipt content.
Text field on info screens
Info screens now support a dedicated text field.
Updates
TransactionReference validation and normalisation
Payment requests with a null, empty, or literal "Null" NEXO TransactionReference are now rejected, and valid references are trimmed before they are forwarded.
Empty ProtocolVersion validation
Requests with an empty NEXO ProtocolVersion are now rejected with a protocol-version error instead of being processed.
Bug fixes
Multi-option screens require unique IDs
Multi-option selections now accept only unique option IDs, preventing ambiguous selections.
Card Acquisition response mapping
Card Acquisition responses now return the response ServiceContent values ( FinancialCardAcquisitionResponse ) instead of echoing the request values ( FinancialCardAcquisitionRequest ).
Keep-alive UI after reboot
Keep-alive UI state is now retained correctly after a device restart.
Clearer missing mandatory field errors
Validation errors for missing mandatory fields are now formatted more clearly.
Expanded error reasons
Added missing reasons for invalid password, internal error, invalid key, transaction timeout, and encryption failures, so more error conditions now return an accurate reason.
Response service type fallback
The response service type is now resolved with a correct fallback when it is missing from the WPI response.
Graceful handling of missing payment-app envelope fields
When the payment app returns a response with missing fields, those failures are now converted into Nexo-friendly rejection responses instead of surfacing raw errors.