Overview
Introduction
The Terminal API enables secure communication between merchant applications and Worldline payment terminals through REST APIs. Use the API to initiate and manage payments, refunds, pre-authorisations, reversals, and reconciliation operations.
The API supports both synchronous and asynchronous transaction processing and uses Nexo Retailer V5 messages for payment data exchange. Authenticate requests using JWT bearer tokens and receive transaction results through API responses or webhook callbacks.
Use cases
Process in-store card payments through integrated POS and payment terminal systems.
Accept payments in hospitality environments with support for tableside, counter, and service-based transactions.
Enable secure payment acceptance at electric vehicle charging stations through integrated payment terminals.
Support customer-operated payments in kiosks, vending machines, parking systems, and other unattended environments.
Display custom messages, prompts, and branded content on payment terminals during customer interactions.
Monitor transaction status, retrieve payment details, and simplify reconciliation processes.
Support both immediate transaction processing and asynchronous workflows for long-running payment operations.
Integrate POS, ECR, kiosks, and payment applications using industry-standard Terminal API protocols for seamless payment processing.
Retail and POS payments
- Set connection timeout parameter to 5 seconds for fast checkout queues.
- Toggle
"unattended_mode": falseto enable merchant clerk prompts.
- Fire a
POSTrequest to/v1/terminal/intent. - Pass
"intent": "IMMEDIATE_AUTH"with the exact transaction balance.
- Prompt the customer to tap, insert, or swipe their card.
- Terminal processes the EMV data and checks for immediate bank approval.
- Read the synchronous success token from the gateway response.
- System clears the basket layout with zero persistent token creation.
- Trigger the local hardware register printer to issue a physical receipt.
- Reset the terminal screen interface to the default idle welcome screen.
Hospitality and restaurant payments
Create an order and maintain an open transaction while the customer is dining.
Send a pre-authorisation request to reserve funds on the customer's card.
Customer taps, inserts, or swipes their card.
Update the final amount to include additional items, service charges, or gratuities.
Submit the final capture request and complete the transaction.
EV charging payments
- Set connection timeout parameter to 45 seconds.
- Toggle
"unattended_mode": trueto suppress clerk prompts.
- Fire a
POSTrequest to /v1/terminal/intent. - Pass
"intent": "PRE_AUTH"with a fixed deposit amount.
- Prompt the driver to tap or insert their card.
- Terminal generates a temporary token valid for 3 hours.
- Read the
payment_intent_idfrom the success response payload. - Trigger the physical kiosk hardware switch to dispense electricity.
- Calculate final cost when the driver unplugs their vehicle.
- Fire a
POST /v1/terminal/intent/{id}/capturewith the final amount. - Gateway clears the final total and releases remaining held funds.
Self-service and unattended commerce
Configure the terminal for unattended operation.
Allow customers to select products or services.
Send a payment request for the selected item.
Customer presents a payment method.
Dispense the product or activate the purchased service.
Customer engagement on payment terminals
Present promotional or informational content on the terminal.
Capture selections, ratings, signatures, or survey responses.
Receive customer interactions through Terminal API responses.
Apply rewards, discounts, or service adjustments.
Return the terminal to the transaction or idle state.
Transaction tracking and reconciliation
Submit payment requests through Terminal API.
Monitor transaction progress using synchronous responses or webhooks.
Receive approval, refusal, or pending status information.
Request settlement and reconciliation information.
Compare transaction records with settlement reports.
Real-time and asynchronous transaction processing
Send a payment or service request.
Use synchronous or asynchronous processing.
Track transaction execution.
Collect results through the API response or webhook callback.
Synchronize transaction status with business systems.
Nexo retailer payment integration
Use the Nexo Retailer V5 message model as the foundation for payment communication.
Create payment, refund, reversal, and reconciliation requests using the Nexo data model.
Transmit Nexo messages through Terminal API REST endpoints using HTTPS.
Receive Nexo-compliant responses through synchronous API calls or asynchronous webhooks.
Reuse existing Nexo knowledge and integrations while supporting future protocol enhancements and platform updates.
Next steps
What's new
Version 2.1.0 — 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
AccessibilitySettingsextension onPaymentTransaction, 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
ShowProcessingScreenin 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
TransactionReferenceare now rejected, and valid references are trimmed before they are forwarded. -
Empty ProtocolVersion validation
Requests with an empty NEXO
ProtocolVersionare 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
ServiceContentvalues (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 WPI envelope fields, those failures are now converted into Nexo-friendly rejection responses instead of surfacing raw errors.
Refer to the Release Notes for details about the latest features, enhancements, bug fixes, and updates.