Credit Card Help

Where I work we have trouble running credit cards from one particular issuer. When we swipe the card we get an Invalid Data message back, but it works when we key it in. Keying it in is a pain, and we pay more in Merchant fees. The company we have our merchant services account with is pretty much useless, and just says that the problem is with the info on the magnetic stripe. But these cards work at other stores with no problem.

A friend of mine has one of these cards and I swiped it and captured the data to compare with my credit card. The cards that work are formated like below:

%B##…#^Lastname/Firstname^##…##?;##…#=##…#?

Where ‘##…#’ represents a string of numbers. All the other characters are as they appear.

The card that does not work has another group of characters at the end following the first ‘?’.

+===##…#=?

I suspect that this is a customer loyalty number. I guess what I want to know is whether cards with the second format are “supposed” to work and my merchant services people are just not accepting what should be a valid card.

The ? is an end sentinel, so there should not be any data after it or more than one ?. Hence it does appear to be bad card data. After the ? comes a longitudinal redundancy check, so your machine is probably trying to use the (presumed) loyalty number for that check and failing. The ^ character is supposed to be used as a separator between fields.

As to why the cards work elsewhere, maybe other machines read in the whole thing and find the last ? (or scan right to left to find the endmost ?), whereas your machine scans the track data left to right, finds the first ?, and assumes what comes next is the LRC.

Another possibility is that other machines are using a different track. From what you posted it looks like you are seeing track 1. If other machines are processing track 2, they will not hit the same problem.