Reading a credit / debit card from an App

Associate
Joined
19 Jul 2011
Posts
2,362
Anyone know any open source or cheap solutions for reading the numbers off a credit / debit card that we can use with an SDK or HTML5 ?

We're a recruitment company, and as part of getting people paid we need to know their sortcode and account number. Now for what is just 6 + 8 digits, this information generates far too much manual work -> keying errors, calls to our helpdesk etc, frustrated workers when their payment doesnt arrive on payday.

We have an app on both iOS and Android, and it would be nice for us to be able to say "Point the app at your bankcard... 5..4..3..2..1.. aha, we've read your sort code as 123456 and acc number as 09876543, would you like us to use these?"

I've seen this before in some apps for registering payment details, but can't remember what the apps were.

We don't want any payment facilities or contactless stuff, this is literally read the numbers, and put them into a existing form / XML / whatever. Rather than people typing them in.
 
You wouldn't need something specifically for bank cards. Any OCR image processor would work, there's only going to be 4-5 different strings of information on a card and it should be pretty easy to work out which bit is the sort code and which is the account number.

I've got no experience of actually using any OCR stuff though.
 
Well we're playing around with the Amazon AWS facility for OCR'ing stuff, but I've just added a brand new card to my Google Pay by putting my card on the desk, clicking "Add Card", a window to view the camera pops up.. and then Google Pay snaps it and does it.
So wondered if anyone has any knowledge of a API or SDK for doing that.

(It would be amazing to do it by reading the card itself using NFC but I'd happily take plain OCR'ing the numbers for now)
 
The writing on my card is so worn that OCR doesn't work on it. I know this as the Wetherspoons app can't read it. You will still need to offer an alternative such as typing it in.
 
We'd definitely still need to have manual fields for when we can't read the numbers but you'd be surprised how often what is typed in isn't right
 
How many people are you talking about, can they not write their details on a piece of paper?
That's not exactly the approach we're looking for. We're already looking to replace the last of our remaining paper based timesheets, forms etc, there's a scanning cost, storage of those images, data entry and validation for paper based information. A very labour intensive process.

We process upto 40,000 timesheets a week, and if only 10% of those are new people, that's 4000 forms to process.

A duff timesheet is annoying, while a duff bank account entered means Bob the brickie doesn't get paid on time and gets the hump. Hence the need to capture the info as quickly, easily and accurately as possible.

Pretty much all working professionals have a smartphone so we're looking for how to improve our App.
 
So you get 4000 new employees per week, that must be mega cooperation.

How about a dedicated secured PC that everyone has to log their details in once a week?

I don't get your setup though. So many new people, what is the company?

And as said what happens if OCR cant read the card?

I think a website would be a better option or if they entered their details in the app.
 
We're a FTSE 250 listed-company providing both Temp and Perm recruitment to clients. We're part of a group of companies who operate around the globe.

In simple terms we find people for jobs and find jobs for people. That's the recruitment or front-office operation.

We pay those people and then bill the company they're working for. So we provide both payroll and invoicing on top of that. That's the back-office operation.
 
If OCR can't read it, we will have them type it in on the App. We're just looking to see if we can make the data entry easier - to add a new card to Google Pay is point and click.
 
It will be cheaper just to pay someone.

Ocr would still have highish error rate and require human intervention. Cards can have reflective or non-reflective numbers, wear and tear, raised numbers/non raised numbers, dirt, bright multiple background colors, deformed shapes etc which would be too many variations for the "cheap solution" you require.

Even basic ocr on white paper has many issues that only an honest developer/worker can tell you about

Set up a simple policy to double check input, and that metrics are gathered with a minimum threshold.

A simple data input job is also an opportunity for someone loyal to the company to do self development (probably more applicable to it roles though). Or an opportunity to hire someone you get a grant for. Or some scheme that your company helps learners etc
 
I don't get your setup though
...that's because you havn't read the thread.
So many new people, what is the company?
We're a recruitment company
And as said what happens if OCR cant read the card?
we've read your sort code as 123456 and acc number as 09876543, would you like us to use these?
(so presumably there's a "No" option/override)
I think a website would be a better option or if they entered their details in the app.
We have an app on both iOS and Android, and it would be nice for us to be able to say "Point the app at your bankcard
 
Have you considered another approach?

take photos of the cards themselves. You then have the software to read the card number from the photo in the office, and a staff member can look at the photo and the recognised card number and click YES if it's correct, UPDATE if they can't read it or CALL BACK if it can't be made out by the operator.

It's still a little manual but the accuracy will be a lot higher than an in-app OCR or the current method.
 
How about a dedicated secured PC that everyone has to log their details in once a week?
I'm loving this idea of 4000 people queued up every week to shuffle up to a secure PC to use one at a time.

Reminds me of benefit day.

@AHarvey - we certainly could take a pic and store it for manual input, thats not that different from our paper form based process. I wouldn't however be comfortable storing pictures of our workers bank cards. We already hold more than people realise - identify documents, qualifications and certs, proof of residency or eligibility to work.

If we can't use our existing OCR setups (which are actually pretty damn good accuracy for fixed layout forms - they're cloud based systems, not on device mind you) and NFC reading is a non-starter (can't imagine trying to support that over the phone to a helpdesk) we'll probably just stick with the current "Fill in these two fields.. kk.. thx.."

@balanceballs and @AHarvey - will throw those two references to APIs or existing SDKs to our Devs for them to check. Thank you

@morbid42 - it is simpler to pay someone to type the details in. We've already minimized the cost by moving this process to our offshore organisation. However I disagree that its cheaper. We hit accuracy rates above 90% on other OCR, and we can already validate "Is this a real sortcode + accnum" via other web services, so if we can tie the two together (and trigger it from an photo pinged from an App), then we already eliminate the manual work and delay.

@Lakeland - then hopefully our users will work out they can't use that card and have to type it in the old fashioned way
 
Surely instead of some OCR setup you just need to set up another method for the candidates to enter their own bank details and information. The requirement is then on them to get it right plus they only get it wrong once because by the time you pay them the following week, you would have identified any incorrect details from the previous week and amended accordingly.
 
Last edited:
Surely instead of some OCR setup you just need to set up another method for the candidates to enter their own bank details and information. The requirement is then on them to get it right plus they only get it wrong once because by the time you pay them the following week, you would have identified any incorrect details from the previous week and amended accordingly.
Seems like the most logical solution.

The last thing I’d want to do is give anyone a scanned image of my bank card so the OP would be right to avoid that.
 
Back
Top Bottom