It's very easy to read some data from contactless credit cards (PayPass/VisaWave-enabled) like card number with NFC/RFID Shiled for Raspberry PI and i'm just wondering, if it's possible to use Raspberry PI as a EMV contactless payment terminal?


Even if it is technically possible to read info from the card and to start a transaction with the related back-end, I think it will be really hard for a solution to be EMV or PCI compliant (or more importantly legal).

In countries, there have to be a regulatory authority who gives permission or license to solutions which will be used in payment processes. Without the permission/license, a solution cannot be used in payment processes.

These authorities have strict specifications/conditions. EMV or PCI standards are included in their minimal set.


Assuming you can read/write from/to a contactless card using something like the PN532 NFC Breakout Board, then you could certify your EMV kernel with EMVco. To achieve this certification takes time and money.

Time: to build the EMV Kernel, which is basically a binary that talks to your hardware from one side, and talks to the card issuer on the other side (sort of a bridge with a bit of logic in it).

Money: Certifying your EMV kernel means a bunch of people are going to have to test it and inspect it, and once they approve your binary it is done for a specific hash which means if you changed your code and recompiled your binary, it will have to be re-certified which will again cost you dearly (it's not cheap!).

However once you have your EMV kernel certified you should be good to go!

My personal opinion is that EMV is a failure because of how overly complex it is (and how costly it is to implement as a result), and that before it gains industry wide penetration it will be superseded by a better framework/standard that are easier to understand and implement, come with plenty of reference implementations to copy from, and are easier to certify (freely accessible automated test tools).

Not the answer you're looking for? Browse other questions tagged or ask your own question.