Java SDK Simulator

The Nayax Marshall SDK includes a simulator to help developers test and debug their device integration with the Nayax payment system. The simulator replicates the behaviour of the actual hardware and software interactions, allowing you to validate the vending process without needing physical hardware.

Simulator

When the Java SDK simulator is started on a terminal, its menu will look like this:

[0]: Start Vend Session 0
[1]: Cancel Session
[2]: Close Session 0
[3]: query opened sessions
[4]: query reader state
[5]: cash sale
[6]: alert
[7]: display message
[8]: open socket
[9]: close socket
[10]: UI control
[q]: quit

The table below describes each option:

CommandDescription
Start Vend Session 0Starts a session (a transaction).
Cancel SessionCancels the transaction as if you pressed the X button on Nayax's device.
Close Session 0Only relevant in multisession. Closes the session at the end of a transaction.
Query opened sessionsGives information about which sessions are currently open. This option is relevant from 4.0.0.22 and above.
Query reader stateGives information about whether the reader is enabled (1)/ disabled (0). This option is Relevant from 4.0.0.22 and above.
Cash saleSimulates cash sale.
AlertSends an alert to the DCS. It can be seen in Last Alerts.
Display messageCurrently, this option is not available.
Open socketFor the peripheral, use Nayax's modem for its own needs.
Close socketCloses the socket which was opened for the peripheral.
UI controlTests the Display Control feature. Needs configurations in the DCS.
QuitQuits the simulator program.

🚧

Multi-Session

When performing a multi-session simulation, you will notice that there are multiple 2 Start vend session and Close session options.

  • Using Close session 0 causes the product not to be dispensed due to:
m_session.session_status = vmc_vend_t.session_status_fail_to_dispense_e;
  • While Close session 1 has:
    m_session.session_status = vmc_vend_t.session_status_ok_e;
    

Transaction Flow Examples

Below are examples of the flow for each transaction type:

  1. Regular Transaction (Single Session):
    1. Start a session: with [0]: Start session.
    2. Present card, wait for authorization and "Thank you" screen.
  2. Multi-Session Transaction:
    1. Start a session with [0]: Start session 0.
    2. Start another session with [2]: Start session 1.
    3. Present card, wait for authorization and "Thank you" screen for each session.
    4. Close sessions individually using [1]: Close Session 0 and [4]: Close Session 1.
  3. Unsuccessful Transaction:
    1. Start a session with [0]: Start session.
    2. Present card, wait for authorization.
    3. Close the session with an error status: [1]: Close Session 0.

See Also