The last-transaction query answers: what happened to the most recent transaction on this terminal? It is your recovery mechanism when the synchronous window expired, the webhook did not arrive, or your ECR restarted mid-transaction.
The request
/last-transaction/PAX:{serialNumber}The response returns the terminal's last transaction result — the same shape as a process-transaction response: status, responseCode, terminalTransactionId, amounts.
The recovery pattern
- Your ECR loses the result (timeout below
waitTimemisconfiguration, webhook miss, crash). - Before any new transaction on that terminal, query last-transaction.
- Match the returned transaction against your journal via your
ecrTransactionId. - Approved → record it (store
terminalTransactionId); declined/aborted → record that. - Only if the returned transaction is not yours (or none exists) may the payment be treated as never processed.
The rule this enforces is the same as on every Market Pay integration: never re-send a payment to resolve uncertainty — there is no platform-side deduplication, and a re-send can charge the cardholder twice.
Warning
The query reports the last transaction on the terminal. Resolve uncertainty before the next sale runs, or the result you need is no longer the last one.
Related
- Troubleshooting: no result within waitTime — the incident this operation resolves.