These Ingenico, Verifone, etc devices have its own SDK. So, we should have an access to their SDK and then wrap it into our own code. This is the hardest part. The rest will be easier. I have an offer if we could slice the project into smaller ones, such as stage #1 for Ingenico, #2 for Verifone, etc.