This widget utilizes the cordova plugin available on Github.
The Mendix widget is just a wrapper around this plugin. So if there is an issue with the scanning it's probably down to the main library rather than the Mendix side.
As mentioned in the card-io documentation it will make an attempt to read the expiry. So it wont always detect the expiry correctly.
If you want to check the implementation then use the Mendix mobile showcase app. If you open up the showcases and select the customer portal. Then go to bills you can make a payment for a bill using card-io plugin.