Credit Card Acceptance


I am trying to find a credit card processing solution for my automated water sales system.

My system is currently set up to meter out the desired amount of water to the customer based on an active Account/PIN entered on an industrial touchscreen. It will do pre-paid and also post-paid transactions. In addition to these options, I would like to accept credit cards.
Here is how I would like this to work:

  1. Customer enters Account\PIN
  2. Customer selects payment type – Credit Card
  3. Customer enters desired amount of water
  4. Controller calculates cost of transaction
  5. Controller sends value to credit card machine
  6. Credit card machine verifies card/limit
  7. Order is filled
  8. Credit Card is charged
    So, what I need is to interface my controller to the credit card equipment. My controller is a programmable logic controller (PLC). It has both ethernet and serial ports. It speaks native Modbus protocol, but is capable of many others.
    If you have any solutions or advice on this matter, I would really appreciate it.


Which Arduino do you plan to use, and what will it be doing?

No idea. Just looking for options.

My main objective is to find a system that I can use to accept credit card payment and also provide a communication "handshake" to my PLC system. I was hoping there may be options here. I have never programmed the Arduino so forgive me for my lack of knowledge.

I'm really hoping that an Arduino is not the right sort of platform to be trusted with credit card transactions.

In principle, an Arduino could accept instructions from a secure credit card system and send a command to operate a water valve.

Arduino could also monitor water flow and pressure sensors, display system status, etc.

You could use an ESP8266 an HTTP server and a payment gateway API like Stripe, Square or PayPal. This may help.

lastchancename: This may help.

While this is completely valid and necessary in situations where you are developing the hardware to accept the credit card yourself, I don't recommend going this route unless you have a team of programmers and are planning on competing with Stripe, Square, PayPal and

I would suggest using Stripe, Square or PayPal who already have PCI compliant hardware and an API that can tell you that the sale was made. Then all you need to do is check your database to see that the sale went through and dispense your product.

If you need an professional solution that can pass a PCI audit, look for credit card readers for unattended use such as gas pumps, vending machines, and parking meters. Designed to be engineered into another larger system. No Arduino involved.

Don't mess with credit card details. That adds a lot of headaches for you, more than it's worth, and you likely will never get a bank to accept your card requests to begin with.

Get a ready made credit card terminal (i.e. your Arduino passes in the amount to be charged; terminal will return an "accept" or "reject" signal) - ask your bank for what they offer, or go the PayPal/Stripe/whatever route.