Vending Sessions Examples

This section will provide several tutorials to use Qibixx' products for the most typical use cases.

Rule Of Thumb

Capital "C" messages are sent out to the MDB Interface/Pi Hat and are used to control Cashless Slave

Lower Case "c" messages are answers from the Cashless Slave on the MDB Interface/Pi Hat

Capital "D" messages are sent out to the MDB Interface/Pi Hat and are used to control Cashless Master

Lower Case "d" messages are answers from the Cashless Master on the MDB Interface/Pi Hat

"r,ACK" Messages are part of the Cashless Slave replies, meaning that the VMC (Cashless Master) sent some query to the Slave.

Selection First/Always Idle Mode

Master

Action

Slave

D,2

Enable Master Mode - Selection First


d,STATUS,RESET

Master got "Just Reset" response from Reader



Enable Cashless Slave

C,1


Cashless Slave is On, waiting for Cashless Master to query

c,STATUS,INACTIVE



c,1



c,STATUS,INACTIVE



r,ACK


Cashless Slave is disabled

c,STATUS,DISABLED



r,ACK



r,ACK

d,STATUS,INIT,1

INIT,1 tells you that the reader IS always idle capable


D,READER,1

Enable the Reader


d,STATUS,IDLE

Reader is in Idle mode



Reader has been enabled by the Cashless Master

c,STATUS,ENABLED

D,REQ,1,5

Request 1€ for product 5 from Reader


d,STATUS,VEND

Terminal waiting for payment



Master requested 1€ Credit for product 5

c,STATUS,VEND,1.00,5


Give Credit to Master

C,VEND,1,5



r,ACK

d,STATUS,RESULT,1,1.00

When card is presented and the transaction authorized, "RESULT,1,<value>


D,END

VEND SUCCESS


d,STATUS,IDLE

Cashless Master back to Idle mode



Successful VEND

c,VEND,SUCCESS


Cashless Slave back to Idle State

c,STATUS,IDLE


Cashless Slave back to Enabled State

c,STATUS,ENABLED



r,ACK

Authorization First/Credit from Card

Master

Action

Slave

D,1

Enable Master Mode - Authorization First


d,STATUS,RESET

Master got "Just Reset" response from Reader



Enable Cashless Slave

C,1


Cashless Slave is On, waiting for Cashless Master to query

c,STATUS,INACTIVE



c,1



c,STATUS,INACTIVE



r,ACK


Cashless Slave is disabled

c,STATUS,DISABLED



r,ACK



r,ACK

d,STATUS,INIT,0

INIT,0 tells you that the reader IS NOT always idle capable


D,READER,1

Enable the Reader


d,STATUS,IDLE

Reader is in Idle mode



Reader has been enabled by the Cashless Master

c,STATUS,ENABLED


Give credit to the machine

C,START,1


Ongoing Vending Session with 1 Credit

c,STATUS,IDLE,1



r,ACK

d,STATUS,CREDIT,1.00,-1

1 Euro have been authorized when card was swiped


D,REQ,1,5

Request 1€ for product 5 from Reader


d,STATUS,VEND

Terminal waiting for payment



Master requested 1€ Credit for product 5

c,STATUS,VEND,1.00,5


Give Credit to Master

C,VEND,1



r,ACK

d,STATUS,RESULT,1,1.00

When card is presented and the transaction authorized, "RESULT,1,<value>


D,END

VEND SUCCESS


d,STATUS,IDLE

Cashless Master back to Idle mode



Successful VEND

c,VEND,SUCCESS


Cashless Slave back to Idle State

c,STATUS,IDLE


Cashless Slave back to Enabled State

c,STATUS,ENABLED



r,ACK

How to give credit to a machine on Authorization First/Always Idle

How to give credit to a machine

Commands sequence:

  • D,1 or D,2

  • C,1

  • D,READER,1

  • C,START,1 - run this command or swipe the card

MDB 4.3 Remote Product Selection

Info

This is only possible if the vending machine is compliant with MDB 4.3

C,SEL,<Funds>,<PaymentID>,<ProductID> Example: C,SEL,1.00,FFFFFFFF,2 <!--Payment ID can be any number from 00000000 to FFFFFFFF, where FFFFFFFF means unknown payment ID-->

Always Idle

A,10 #Listen to address 10 S,C,1100,0103175601021e08 #Answer as level 3 machine, country code: 1756 ,scale factor: 01, decimal places: 02, max response time: 1s, Misc=08 (payment media supports cash sale subcommand) S,C,1700,09514258333433303538333332323433514942495858204d44423030372000000161 #bit 5 = Always idle , bit 6 = Remote vend capable , bit 9 = Ask Begin session in Selection first S,1 Q,12,14000affffffff000000000200000000 #Ask Begin Session (14H):funds available= 000a , ffffffff = unknown payment media ID,( Z8 = test media z9/z10 = 0 => payment data= 000000 ),item number=0002,options=00000000 VMC DATA : r,17,005248563030303030303030303030303232323232323232323232321122,c r,17,0400000020,a