Skip to main content
Nayax logs Marshall Java SDK changes on this page as they ship. Subscribe to the RSS feed using the icon at the top of the page to get notified of new entries. Release notes are organized into two categories to help you evaluate the impact of each update:
  • Improvements: New APIs, expanded feature support, and performance enhancements.
  • Fixes: Resolved bugs and reliability improvements.
Some features in this version require VPOS version 4.0.8.23-RC3 or newer.
This version spans patches 0.1.6.01 through 0.1.6.23.

Pre-authorization amount config

Added the pre_auth_amount_config (0x8c) vend sub-command, including the message class, decode/encode support, a factory method, and event handling in the public API. The demo application now includes a menu option to test pre-authorization amount configuration.

External reader and display control

Added an external reader command and extended the display control API to support additional layouts.
  • The display control API signature now takes a layout_t instance directly.
  • The SDK version string now also reports the SDK language.

Multi-vend, multi-session, and pricing

Added long_price support, a 4-byte price capability relevant for VPOS Media.
  • Fixed the display of negative prices.
  • Multi-session now works together with multi-vend in the same session.
  • Added a final_price field to onSessionInfo.
  • Real-time price changes are now supported in always-idle mode, even after the reader is already enabled.
  • The SDK gained file-system management support, since VPOS now provides those services.

Transfer data and QR/third-party authorization

Site ID and brand name are now transferred to the machine through transfer data.
  • Added a brands-selection bit for the Japanese market.
  • Added support for the QR-code card type and third-party authorization for QR-code readers.
  • Added a technician-mode command to open the door remotely.

Vend and session API improvements

vend_request and close_session now return a boolean value, with a sanity check that price does not exceed the permitted amount (65k when long_price is disabled).
  • Machine sub type can now be set explicitly instead of being hard-coded.
  • vend_session_data_t now exposes all nullable fields, so the caller can tell whether a value was assigned.
  • The VPOS serial number is now provided as a correctly arranged string instead of raw bytes.

Low-level serial and internal cleanup

The SDK no longer bundles lowlevel_serial.java directly. Instead, you inject a serial_port_i implementation (a certified FTDI and PC-port implementation is provided).
  • Removed a false warning on vmc_vend_t when no callback handler was registered, replacing it with a null check shared between marshall_sdk and marshall_master_sdk.
  • Optimized eth_port logging.
Fixed a missed-ack issue that stopped keepalive and the related link-down issue.
  • Fixed a race condition between the rx and tx threads on m_pending_tx_msg access.
  • Eliminated false retransmissions.
  • Improved vmc_link buffer management to prevent a possible retransmission and frame loss.
  • Fixed the session_end timeout expiring too soon, which previously caused reader_always_on to fire early.

Message encoding and decoding

Fixed several message encode/decode bugs:
  • msg_remote_selection_t encode was an empty stub; now encodes all fields (funds available, payment media ID, payment type, payment data, item number, item options).
  • msg_setup_max_min_prices_t encode was missing its sub-command byte and had a currency-code encoding typo; both are fixed.
  • msg_expansion_t now null-checks the body before decode/encode.
  • msg_mdb_rsp_t decode now correctly instantiates msg_ftl_retry_deny_t.
  • Fixed fw_info string copy, which could append garbage to the end of strings.
  • Fixed a msg_alert string decode error.
  • Fixed an encoding bug affecting multi-session multi-vend frames.
  • Fixed incorrect session ID encoding in vend_multi_close_session and multi-vend multi-session close.
  • Fixed a frame-size detection issue affecting varying Marshall message sizes.
  • Fixed a typo in marshall_func_code_transfer_data.

Vend and session safeguards

Fixed the reader state command so it also works in always-idle mode.
  • Added protection against vend, socket, and general actions being issued when there is no link.
  • Fixed a bug where card info from a previous session was not cleared once a session completed.

Version history

Every earlier Java SDK patch, condensed to one line. See the current version above for full detail and links.