I am exploring the idea of a vending machine. Due to literally no budget and the risk of a machine being broken into ... plus the complexity of handling coins and bills - let's not go there?
I was thinking the best way to create one would be if it only accepts bank cards and/or credit cards. I don't know much about the distinction. I live in a EU country and I can use my bank card for everything (wireless or by sticking it in). Sometimes I am asked to confirm my PIN code and other times not, so it would need to be able to handle that.
Do you know if this is possible and if someone has done this before with Arduino? I have come across of some youtube video with a wireless card reader demonstration - but there was no keypad for PIN confirmation.
At the risk of too much information - my girlfriend wants to sell her delicious food through a vending machine, because of her PTST she can't really deal with people, so the vending machine would be the way to go. We have no real budget to afford some fancy machine so low-budget DIY it is, plus I would probably need to tailor it to some special size and product delivery.
Again any help on this would be greatly appreciated!
The vending machine needs to cryptographically prove to the bank that it is what it says it is and no amateur has opened it up to mess with its hardware or software. Basically impossible for an Arduino since you're always messing with it.
I hope you realise the massive implications the moment you start dealing with customer's credit card data and so?
Call your bank, ask what they have in the way of devices to accept ATM card transactions (the kind of device you find in shops). Then if they're OK to open an ATM payments account for you and rent you one of the devices, you can try and find out how you can connect this to whatever else you're building: i.e. the interface that transmits the payment request to the device, and receives the payment transaction result from the device.
After that you can build your vending machine, but make sure it's totally reliable as there's nothing more destructive to your machine than a customer angry for having made a payment but then not getting their goodies.
Probably the easier route overall is to get your girl to get over her PTSD (which I think is what you meant to type). And yes I know that's not an easy thing to do. Or you doing the sales for her. At least the last option doesn't require any budget of sorts, because building yourself a working vending machine requires a budget that's a lot more than a couple hundred hours of your time.
In Europe most small transactions do not require a PIN confirmation any more, just swipe your ATM card. Very convenient.
These PINless transactions are limited to 25 Euro per transaction and 50 Euro a day. Not having to enter your PIN code every time is mostly done to enhance security: less opportunities for thieves to glean your PIN code, and therefore less incentive to steal ATM cards (the value is at most 50 Euro, no cash without PIN).
As added bonus (for the banks and others that like to track your purchases) this convenience makes such transactions very popular.
As a sidenote, people should be discouraged from allowing someone's Arduino project read their credit cards and giving it their pin. Really, no please. Don't do that.
No worries, the banks won't accept such transaction requests to begin with.
OP should get a ready-made, bank approved device to handle the payments. Then it's just a matter of asking the device to charge a certain amount, after which the device gives back an OK or not OK message. I'm using PayPal in a same manner on my web sites: a way to accept credit card payments without having to deal with the credit card details itself.
wvmarle:
No worries, the banks won't accept such transaction requests to begin with.
OP should get a ready-made, bank approved device to handle the payments. Then it's just a matter of asking the device to charge a certain amount, after which the device gives back an OK or not OK message. I'm using PayPal in a same manner on my web sites: a way to accept credit card payments without having to deal with the credit card details itself.
The reason banks won't accept such transactions is you need a CONTRACT with a bank to do that. Remember the transaction is a two-way street. You must program the communications with a network and be able to handle ALL the various messages.
Sir-Rogers:
I am exploring the idea of a vending machine. Due to literally no budget and the risk of a machine being broken into ... plus the complexity of handling coins and bills - let's not go there?
Have you seen these coin acceptors?
But like another poster said,
wvmarle:
I think the "no budget" part will get in the way of that. Just like it'll get in the way of just about any attempt to DIY it.
General advice for handling money: don't use a float. Floats have inherent imprecision which makes them the wrong tool for that job. Instead, use an int or a long, and store the amount as cents. (example: store 2.20 euros as 220 cents)
While there are other options, my wife uses a SQUARE card reader (touch or insert) to perform almost exactly what OP is looking for.
In his case, he’d probably bump to an Android device as the user interface, then the works all done.
Yes, there is a handling fee (<2%) - like all financial institutions, but it’s quite modest in real world terms.