Single Session with Pre-Authorization
This guide explains the Pre-Authorization vending flow. This process is key to minimizing risk because it approves payment before the customer selects a product.
Payment Flow
Visualize the Pre-Authorization process with the diagram below, which illustrates each step of the single vending session flow, from product selection to payment authorization and dispensing.
Below is a breakdown of the diagram:
- The consumer presents the card to the Nayax Device.
- The Nayax Device sends an authorization request to the Nayax Server.
- The Nayax Server forwards the authorization request to the Billing Provider.
- The Billing Provider sends an authorization response (approved) to the Nayax Server.
- Nayax Server sends the authorization response (approved) back to the Nayax Device.
- The peripheral's SDK begins the session and triggers the "session begin" event:
vmc_vend_event_handler_cb(vm_vend_event_on_session_begin)vend_callbacks(onBeginSession(funds_avail))vmc_vend_events() (via onBeginSession(funds_avail)) - Message to the consumer: "Please Select a Product."
- The consumer selects a product.
- The peripheral's SDK sends a "vend request" to the Nayax Device:
- The peripheral's SDK handles transaction data received from the Nayax Device via Transfer Data command (said data includes information about the Nayax transaction ID and the consumer's card details):
vmc_vend_event_handler_cb(vm_vend_event_on_transaction_info)vend_callbacks(onTransactionInfo(data))vmc_vend_events() (via onTransactionInfo(data)) - The peripheral's SDK triggers the "vend approved" event:
vmc_vend_event_handler_cb(vm_vend_event_on_vend_approved)vend_callbacks() (via onVendApproved(session))vmc_vend_events() (via onVendApproved(session)) - The peripheral dispenses the product/ provides the service to the consumer
- The SDK reports vend success:
And completes the vend session:
vmc_vend_vend_status(&session, __true)vmc_vend_events() (via onVendApproved(session) -which would return "true")vmc_vend_events() (via onVendApproved(session) -which would return "true")vmc_vend_vend_session_complete_lowlevel()no such function in C# or Java due to the nature of the languagesno such function in C# or Java due to the nature of the languages - Message to the consumer: "Please Take Product."
- Nayax Device sends a settlement request to the Nayax Server.
- Nayax Server forwards the settlement request to the Billing Provider.
- The billing Provider sends a settlement response (OK) to the Nayax Server.
- Nayax Server sends the settlement response (OK) back to the Nayax Device.
- The vending session ends.
- Message to Card Holder: "Thank you & Goodbye."
See Also
Updated 22 days ago